@font-face{font-family:IBM;src:local('DejaVu Sans Mono')}*{box-sizing:border-box}html{background:#030912;color:#dcf3f5;font-family:IBM,'Courier New',monospace;font-synthesis:none}body{margin:0;min-height:100svh;background:radial-gradient(ellipse at 50% 42%,#0a1822 0,#030912 62%);overflow-x:hidden}button,a{font:inherit}.shell{width:min(100%,760px);min-height:100svh;margin:auto;padding:0 34px;display:flex;flex-direction:column}.topline{height:82px;display:flex;align-items:center;border-bottom:1px solid #1b3640;gap:22px;flex-shrink:0}.brand{color:#44e6ed;text-decoration:none;font-size:16px;font-weight:bold;letter-spacing:.06em}.brand span{color:#cce9ec}.signal-label{font-size:10px;letter-spacing:.12em;color:#628994}.signal-label i,.footer i{color:#ef65b3;font-style:normal}.sound-button{margin-left:auto;display:flex;align-items:center;gap:8px;background:transparent;color:#7babb4;border:1px solid #284a52;padding:9px 12px;cursor:pointer;font-size:10px;letter-spacing:.1em;min-height:40px}.sound-button:hover,.sound-button:focus-visible{border-color:#44e6ed;color:#d6f9fa}.sound-glyph{font-size:16px;color:#ffb547}.sound-on .sound-glyph{animation:note 1.4s ease-in-out infinite alternate}@keyframes note{to{color:#44e6ed;transform:translateY(-2px)}}main{flex:1;display:flex;align-items:center;justify-content:center;min-height:0}main:focus{outline:none}.screen{width:100%;animation:arrive .35s ease both}@keyframes arrive{from{opacity:.5;transform:translateY(7px)}to{opacity:1;transform:none}}[hidden]{display:none!important}.home-screen{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:22px;padding:45px 0}.eyebrow{color:#75abb4;font-size:10px;letter-spacing:.14em;display:flex;align-items:center;gap:9px}.status-dot{width:6px;height:6px;border-radius:50%;background:#ffb547;box-shadow:0 0 11px #ffb547;display:inline-block}.eyebrow-id{color:#45646d;margin-left:auto}.home-copy h1{font-family:Arial,sans-serif;font-size:clamp(32px,6vw,48px);line-height:1.07;letter-spacing:-.045em;margin:30px 0 17px;color:#e4f2f3}.home-copy h1 span{color:#44e6ed}.tagline{font-size:15px;color:#96b4b9;letter-spacing:.02em;margin:0 0 30px}.primary-button{border:0;background:#44e6ed;color:#031016;font-weight:bold;letter-spacing:.09em;display:inline-flex;justify-content:space-between;align-items:center;gap:30px;min-width:150px;min-height:48px;padding:0 17px;cursor:pointer;transition:background .16s,transform .16s}.primary-button:hover{background:#8af5f3;transform:translateY(-2px)}.primary-button:active{transform:translateY(0)}button:focus-visible,a:focus-visible,.tile:focus-visible{outline:3px solid #ffb547;outline-offset:3px}.home-meta{display:flex;gap:14px;flex-wrap:wrap;margin-top:50px;font-size:9px;letter-spacing:.09em;color:#557a83}.home-meta span+span:before{content:'·';color:#ef65b3;margin-right:14px}.home-art{min-width:0;text-align:center}.home-art canvas{display:block;width:min(100%,350px);height:auto;margin:auto;aspect-ratio:420/430}.art-caption{font-size:9px;color:#60848c;letter-spacing:.13em}.art-caption span{color:#ef65b3}.footer{min-height:54px;border-top:1px solid #1b3640;display:flex;justify-content:space-between;align-items:center;gap:10px;color:#486c74;font-size:9px;letter-spacing:.08em}.game-screen{padding:20px 0 25px}.game-heading{display:flex;align-items:center;justify-content:space-between}.game-heading h2{font-size:21px;color:#44e6ed;margin:10px 0 0}.game-heading h2 span{font-size:14px;color:#d9edee;margin-left:9px;letter-spacing:.06em}.icon-button{height:42px;width:44px;border:1px solid #284a52;background:#07141c;color:#44e6ed;font-size:25px;cursor:pointer}.icon-button:hover{border-color:#44e6ed}.progress-row{display:flex;align-items:center;gap:12px;margin:20px 0 12px}.progress-track{display:flex;gap:7px;flex:1}.progress-pip{display:block;height:3px;flex:1;background:#18313a}.progress-pip.current{background:#44e6ed;box-shadow:0 0 9px #44e6ed}.progress-pip.done{background:#ffb547}.progress-count{color:#72949b;font-size:10px}.board-frame{border:1px solid #23414a;background:linear-gradient(140deg,rgba(7,20,29,.86),rgba(4,13,20,.93));padding:12px 16px 11px;box-shadow:0 12px 50px #0005, inset 0 1px #ffffff08}.board-topline,.board-foot{display:flex;justify-content:space-between;align-items:center;color:#668b94;font-size:9px;letter-spacing:.1em}.board-topline{padding:0 1px 10px}.live-indicator{color:#7ea0a7;display:flex;align-items:center;gap:7px}.live-indicator i{height:5px;width:5px;border-radius:50%;background:#ffb547;box-shadow:0 0 8px #ffb547}.board{width:min(100%,530px);aspect-ratio:1;display:grid;grid-template-columns:repeat(var(--size),minmax(0,1fr));grid-template-rows:repeat(var(--size),minmax(0,1fr));gap:clamp(2px,.65vw,5px);margin:0 auto}.cell{min-width:0;min-height:0;position:relative}.cell.empty{background:transparent}.cell.blocked{display:grid;place-items:center;color:#21353b;background:repeating-linear-gradient(135deg,#09151a 0 4px,#0b181d 4px 8px);border:1px solid #152930}.blocked span{font-size:15px;opacity:.6}.tile{display:grid;place-items:center;padding:0;border:1px solid #1e3841;background:linear-gradient(145deg,#0b1b24,#07121a);color:#a2c9cf;cursor:pointer;touch-action:manipulation;transition:border-color .2s,background .25s,box-shadow .25s,transform .17s}.tile:hover{border-color:#57848d;background:#0d222b}.tile:active{transform:scale(.96)}.tile-svg{width:100%;height:100%;overflow:visible;transform:rotate(var(--turn,0deg));transition:transform .22s cubic-bezier(.2,.8,.2,1)}.conduit{stroke:#48656c;stroke-width:7;stroke-linecap:square;fill:none;transition:stroke .22s,filter .22s}.junction-core{fill:#48656c}.connected .conduit{stroke:#44e6ed;filter:drop-shadow(0 0 4px #44e6ed88);stroke-dasharray:12 24;animation:signal 1.4s linear infinite}.connected .junction-core{fill:#ffb547;filter:drop-shadow(0 0 5px #ffb547)}@keyframes signal{to{stroke-dashoffset:-36}}.ghost{border-color:#2d505a;background:radial-gradient(ellipse at 50% 62%,#0e2a32,#08161e 70%)}.ghost-icon{width:88%;height:88%;overflow:visible}.ghost-body{fill:#07151b;stroke:#448a97;stroke-width:3;stroke-linejoin:miter;transition:stroke .25s,filter .25s}.ghost-eye{fill:#b9e7ec;transition:fill .2s}.ghost-flame{fill:#a16c2d;transition:fill .28s,filter .28s}.sleep-mark{stroke:#3f636b;stroke-width:3}.source-ghost .ghost-body,.awake .ghost-body{stroke:#44e6ed;filter:drop-shadow(0 0 3px #44e6ed55)}.source-ghost .ghost-flame,.awake .ghost-flame{fill:#ffb547;filter:drop-shadow(0 0 4px #ffb547)}.awake .ghost-eye{fill:#efffff;filter:drop-shadow(0 0 3px white)}.source-ghost .ghost-eye{fill:#efffff}.turn-hint{position:absolute;right:3px;bottom:2px;font-size:9px;color:#506c72;opacity:0;transition:opacity .2s}.tile:hover .turn-hint,.tile:focus-visible .turn-hint{opacity:1}.board-foot{padding:10px 2px 0;gap:13px;flex-wrap:wrap}.board-foot>span{display:inline-flex;align-items:center;gap:6px}.legend-source,.legend-receiver{width:7px;height:7px;display:inline-block;border:1px solid #44e6ed}.legend-source{background:#ffb547;border-color:#ffb547;clip-path:polygon(50% 0,100% 80%,50% 100%,0 80%)}.legend-receiver{border-radius:50%;border-color:#62858d}.moves{margin-left:auto;color:#9cb6ba!important}.moves span{font-size:13px;color:#e7f5f5}.game-instructions{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:14px}.game-instructions p{color:#c0d5d8;font-size:12px;margin:0}.key-hint{font-size:9px;color:#60818a;white-space:nowrap}kbd{font:inherit;color:#9bb9bf;border:1px solid #2a4850;padding:4px 5px}.key-hint span{color:#ef65b3;padding:0 4px}.win-panel{margin-top:16px;padding:12px 14px;display:flex;align-items:center;gap:12px;border:1px solid #9c7441;background:linear-gradient(90deg,#171b19,#0b171a);animation:arrive .3s ease}.win-symbol{color:#ffb547;font-size:22px}.win-panel strong{color:#ffcf78;font-size:11px;letter-spacing:.1em}.win-panel p{margin:4px 0 0;color:#9ab0b3;font-size:10px}.next-button{margin-left:auto;min-width:105px;min-height:40px;font-size:11px}.final-screen{text-align:center;padding:22px 0}.final-overline{color:#80abb0;font-size:10px;letter-spacing:.13em;display:flex;justify-content:center;align-items:center;gap:10px}.online{color:#ffb547}.final-screen canvas{display:block;width:min(100%,640px);height:auto;aspect-ratio:720/390;margin:12px auto 0}.final-kicker{font-family:Arial,sans-serif;color:#44e6ed;font-weight:bold;letter-spacing:.1em;font-size:clamp(17px,3.8vw,25px);margin:4px 0 22px;text-shadow:0 0 16px #44e6ed3c}.final-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.channel-button{min-height:48px;padding:15px;border:1px solid #35545c;color:#d1e8e9;text-decoration:none;font-size:10px;letter-spacing:.08em;display:flex;align-items:center}.channel-button:hover{border-color:#44e6ed;color:#44e6ed}.final-note{font-size:9px;color:#567c84;letter-spacing:.11em;margin:27px 0 0}.final-note span{color:#ef65b3}.toast{position:fixed;z-index:20;bottom:calc(22px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%,14px);padding:11px 15px;background:#10222a;border:1px solid #47646b;color:#e3f4f4;font-size:11px;max-width:calc(100vw - 28px);opacity:0;pointer-events:none;transition:.2s}.toast.visible{opacity:1;transform:translate(-50%,0)}
@media(max-width:600px){.shell{padding:0 18px}.topline{height:67px;gap:12px}.brand{font-size:14px}.signal-label{font-size:8px}.sound-button{padding:7px 9px;min-height:38px}.sound-label{font-size:8px}.home-screen{grid-template-columns:1fr;gap:0;padding:19px 0 24px}.home-copy h1{font-size:clamp(31px,9.1vw,43px);margin:20px 0 10px}.tagline{margin-bottom:20px}.home-meta{margin-top:19px;font-size:8px}.home-art{grid-row:1}.home-art canvas{width:min(57vw,215px);max-height:210px}.art-caption{font-size:8px}.footer{font-size:7px;min-height:43px}.game-screen{padding:14px 0 16px}.game-heading h2{font-size:18px}.game-heading h2 span{font-size:11px;margin-left:5px}.progress-row{margin:14px 0 9px}.board-frame{padding:9px 8px 8px}.board-topline,.board-foot{font-size:8px}.board-foot{gap:7px}.game-instructions{align-items:flex-start;flex-direction:column;margin-top:10px}.game-instructions p{font-size:11px}.key-hint{font-size:8px}.win-panel{padding:9px;gap:8px}.win-panel p{font-size:9px}.next-button{min-width:82px;padding:0 10px;gap:9px}.final-screen{padding:9px 0}.final-screen canvas{width:min(100%,440px);max-height:35svh}.final-kicker{margin-bottom:16px}.final-note{margin-top:20px}}
@media(max-height:720px) and (max-width:600px){.home-art canvas{width:155px;max-height:155px}.home-screen{padding:8px 0}.home-meta{margin-top:12px}.game-screen{padding:8px 0}.board{width:min(100%,calc(100svh - 330px))}.board-foot{padding-top:6px}.progress-row{margin:9px 0 6px}.game-instructions{margin-top:7px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
.sound-controls{margin-left:auto;position:relative}.sound-button{margin-left:0}.volume-control{position:absolute;right:0;top:48px;z-index:8;display:flex;align-items:center;gap:10px;background:#0b1b23;border:1px solid #35545c;padding:10px 12px;color:#94b5bb;font-size:9px}.volume-control input{width:100px;accent-color:#44e6ed}.tile-svg{transform:rotate(var(--turn,0deg));transform-origin:50% 50%}
@media(max-width:380px){.shell{padding-inline:12px}.board-frame{margin-inline:-5px;padding-inline:5px}.board{gap:2px}.game-heading h2{font-size:16px}.game-heading h2 span{font-size:10px}.board-foot{gap:5px}}
/* Keep the network pulse readable without animating expensive SVG filters. */
.connected .conduit{filter:none;animation-duration:2.8s}

.challenge-button{min-height:44px;padding:8px 12px;border:1px solid #4c8992;color:#d8f6f7;background:#091923;cursor:pointer;font-size:10px;font-weight:bold}.challenge-button:hover{border-color:#44e6ed}.win-panel{flex-wrap:wrap}.win-panel>div:nth-child(2){flex:1 1 180px}@media(max-width:480px){.win-panel .challenge-button,.win-panel .next-button{flex:1 1 auto}}
