:root{--bg: #050607;--ink: #e9e6dc;--dim: #7b7f86;--gold: #d9b45a;--cyan: #6fe7ff;--red: #ff4d6a;--line: rgba(111, 231, 255, .22)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font-family:Inter,system-ui,sans-serif;overflow-x:hidden}.mono{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;letter-spacing:.08em}.small{font-size:.72rem}.dim{color:var(--dim)}.app{position:relative;min-height:100%;display:flex;flex-direction:column;max-width:520px;margin:0 auto}.bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(255,255,255,.025) 0 1px,transparent 1px 3px),linear-gradient(rgba(111,231,255,.05) 1px,transparent 1px) 0 0 / 40px 40px,linear-gradient(90deg,rgba(111,231,255,.05) 1px,transparent 1px) 0 0 / 40px 40px,radial-gradient(ellipse at 50% 0%,#10161a,var(--bg) 70%);animation:drift 8s linear infinite}@keyframes drift{to{background-position:0 3px,0 40px,40px 0,0 0}}.top{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;font-size:.75rem;border-bottom:1px solid var(--line);background:#050607b3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);position:sticky;top:0;z-index:5}.icon{background:none;border:1px solid var(--line);color:var(--cyan);font:inherit;padding:6px 10px;cursor:pointer}.icon:hover{background:#6fe7ff1a}main{flex:1;padding:16px;transition:filter .3s}main.blurred{filter:blur(6px) brightness(.6);pointer-events:none}footer{text-align:center;font-size:.65rem;color:var(--dim);padding:14px}.screen{display:flex;flex-direction:column;gap:14px;animation:in .4s ease}@keyframes in{0%{opacity:0;transform:translateY(8px)}}h1{font-size:3.6rem;letter-spacing:.35em;margin:8px 0 0;font-weight:200;text-align:center;padding-left:.35em}h2{font-weight:300;letter-spacing:.2em;text-transform:uppercase;margin:0;font-size:1.1rem}.glyph{font-size:5rem;text-align:center;color:var(--gold);text-shadow:0 0 24px rgba(217,180,90,.5);line-height:1}.tag{color:var(--cyan);font-size:.7rem;text-align:center}.panel .tag{text-align:left}.tagline{text-align:center;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin:0;font-size:.85rem}.meaning{text-align:center;color:var(--dim);font-size:.9rem;line-height:1.6;margin:0 8px}.glitch{position:relative}.glitch:before,.glitch:after{content:attr(data-t);position:absolute;top:0;right:0;bottom:0;left:0;text-align:center;padding-left:inherit;opacity:.6;pointer-events:none}h1.glitch:before,h1.glitch:after{padding-left:.35em}.glitch:before{color:var(--cyan);animation:gl 4s infinite steps(1);clip-path:inset(0 0 55% 0)}.glitch:after{color:var(--red);animation:gl 4s infinite steps(1) .1s reverse;clip-path:inset(55% 0 0 0)}@keyframes gl{0%,92%,to{transform:none}93%{transform:translate(-3px,1px)}96%{transform:translate(3px,-1px)}}.menu{display:flex;flex-direction:column;gap:10px}.btn{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#ffffff08;border:1px solid var(--line);color:var(--ink);padding:14px 16px;font:inherit;text-transform:uppercase;letter-spacing:.15em;font-size:.85rem;cursor:pointer;text-decoration:none;justify-content:center;transition:.2s;clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px)}.menu .btn{justify-content:space-between}.btn small{color:var(--dim);text-transform:none;letter-spacing:.05em;font-size:.72rem}.btn:hover:not(:disabled){border-color:var(--cyan);box-shadow:0 0 18px #6fe7ff40}.btn:disabled{opacity:.3;cursor:default}.btn.primary{background:linear-gradient(135deg,#d9b45a40,#d9b45a0d);border-color:var(--gold);color:var(--gold)}.btn.ghost{background:none}.btn.small{font-size:.7rem;padding:8px}.row{display:flex;gap:10px}.row .btn{flex:1}.panel{position:relative;border:1px solid var(--line);background:#0a0e10b3;padding:18px;display:flex;flex-direction:column;gap:10px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.c{position:absolute;width:10px;height:10px;border:0 solid var(--cyan)}.c.tl{top:-1px;left:-1px;border-width:2px 0 0 2px}.c.tr{top:-1px;right:-1px;border-width:2px 2px 0 0}.c.bl{bottom:-1px;left:-1px;border-width:0 0 2px 2px}.c.br{bottom:-1px;right:-1px;border-width:0 2px 2px 0}.bar{height:6px;background:#ffffff14;overflow:hidden}.bar>span{display:block;height:100%;background:linear-gradient(90deg,var(--cyan),var(--gold));transition:width .3s;box-shadow:0 0 10px var(--cyan)}.loader{min-height:80vh;justify-content:center;align-items:center}.log{align-self:stretch;font-size:.75rem;color:var(--cyan);min-height:90px}.loader .bar{width:100%}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:16px;background:#00000073;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);animation:in .25s}.guide{max-width:440px;max-height:90vh;overflow:auto}.guide ol{padding-left:18px;line-height:1.6;font-size:.9rem;margin:0}.guide b{color:var(--gold);font-weight:500}.grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.cell{position:relative;display:flex;flex-direction:column;gap:4px;align-items:flex-start;background:#ffffff08;border:1px solid var(--line);color:var(--ink);padding:12px;font:inherit;text-align:left;cursor:pointer}.cell:disabled{opacity:.3;cursor:default}.cell.done{border-color:var(--gold)}.cell small{color:var(--dim)}.cell .mono{color:var(--cyan);font-size:.7rem}.cell em{position:absolute;top:8px;right:8px;font-size:.6rem;color:var(--gold);font-style:normal;letter-spacing:.1em}.hud{display:flex;justify-content:space-between;align-items:center;font-size:.72rem;gap:8px}.hud b{color:var(--gold);font-size:1rem}.field{position:relative;border:1px solid var(--line);background:#0a0d0f;box-shadow:inset 0 0 60px #000c,0 0 30px #6fe7ff0f}.field.flash{border-color:var(--red)}.field svg{display:block;width:100%;height:auto;max-height:62vh;touch-action:manipulation;cursor:crosshair}.rake{fill:none;stroke:#e9e6dc17;stroke-width:.25}.ripple{fill:none;stroke:#e9e6dc24;stroke-width:.3;pointer-events:none}.ripple.r2{stroke:#e9e6dc12}.stone{cursor:pointer;filter:drop-shadow(0 1px 2px #000)}.stone.bad{stroke:var(--red);stroke-width:1.2;filter:drop-shadow(0 0 3px var(--red))}.windlines line{stroke:var(--cyan);stroke-width:.3;stroke-dasharray:3 4}.scan{position:absolute;bottom:8px;left:10px;color:var(--cyan);font-size:.7rem}.meter{display:flex;flex-direction:column;gap:6px}.m{display:grid;grid-template-columns:70px 1fr 110px;align-items:center;gap:8px;color:var(--dim)}.m span:last-child{text-align:right}.m.warn{color:var(--red)}.m.warn .bar>span{background:var(--red);box-shadow:0 0 8px var(--red)}.verdict{border:1px solid;padding:14px;display:flex;flex-direction:column;gap:8px;animation:in .3s;background:#0a0e10cc}.verdict.pass,.debrief.pass{border-color:var(--gold)}.verdict.fail,.debrief.fail{border-color:var(--red)}.verdict.pass b{color:var(--gold)}.verdict.fail b{color:var(--red)}.verdict small{color:var(--dim);line-height:1.5}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}.stat{border:1px solid var(--line);padding:10px;display:flex;flex-direction:column;gap:4px;background:#ffffff05}.stat small{color:var(--dim);font-size:.62rem;text-transform:uppercase}.stat b{font-weight:400;font-size:1.1rem}.rank{font-size:2rem;font-weight:200;letter-spacing:.2em;color:var(--gold);text-transform:uppercase}.ranks{display:flex;flex-wrap:wrap;gap:6px;color:var(--dim)}.ranks .on{color:var(--cyan)}.lesson{color:var(--dim);line-height:1.6;margin:0;font-style:italic}.rankup{color:var(--cyan);border:1px solid var(--cyan);padding:8px;text-align:center;animation:pulse 1.2s infinite}@keyframes pulse{50%{box-shadow:0 0 16px #6fe7ff80}}
