@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Fraunces:opsz,wght@9..144,600;9..144,700&display=swap";:root{font-family:DM Mono,monospace;color:#fff8ee;background:#291d4b}*{box-sizing:border-box}body{margin:0;min-width:320px}button{font:inherit;border:0;cursor:pointer}main{min-height:100dvh;position:relative;overflow:hidden;isolation:isolate;display:flex;flex-direction:column;background:radial-gradient(circle at 50% 25%,color-mix(in srgb,var(--glow) 29%,#302251),#201538 64%)}.cosmos{position:fixed!important;inset:0;z-index:-2;opacity:.72;pointer-events:none}header,.mission,.game-shell,footer{width:min(740px,calc(100% - 28px));margin-inline:auto}header{padding:17px 0 9px;display:flex;justify-content:space-between;align-items:center}.wordmark{font:700 26px/1 Fraunces,serif;letter-spacing:-1px}.wordmark span{color:var(--accent);font-size:37px;vertical-align:-4px}.new{color:#35234e;background:var(--accent);border-radius:99px;padding:11px 14px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.mission{text-align:center;padding:11px 10px 15px}.eyebrow{color:var(--accent);margin:0 0 5px;font-size:10px;letter-spacing:.15em;text-transform:uppercase}h1{margin:0;font:700 clamp(31px,7.4vw,49px)/.98 Fraunces,serif;letter-spacing:-2px}.mission>p:last-child{max-width:500px;margin:11px auto 0;color:#f0e9fb;font-size:12px;line-height:1.55}.mission b{color:var(--accent)}.game-shell{position:relative;aspect-ratio:1.12 / 1;min-height:350px;max-height:570px;overflow:hidden;border:2px solid #ffffff38;border-radius:27px;background:linear-gradient(145deg,#433267dd,#201533e6);box-shadow:0 25px 60px #0c072444,inset 0 1px #ffffff3c}.board{position:absolute;inset:55px 15px 14px;transform:perspective(900px) rotateX(5deg);transform-origin:50% 48%}.board:before{content:"";position:absolute;inset:6% 5%;border-radius:24px;background-image:radial-gradient(circle,#ffffff2e 1.5px,transparent 1.7px);background-size:19% 19%;opacity:.9}.status{position:absolute;z-index:4;top:13px;left:15px;padding:8px 11px;display:flex;align-items:baseline;gap:7px;border-radius:13px;border:1px solid #ffffff2e;background:#281a45dd}.status b{color:var(--accent);font-size:19px}.status span{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:#efe7fa}.touch-tip{position:absolute;z-index:4;top:18px;right:16px;color:var(--accent);font-size:9px;text-transform:uppercase;letter-spacing:.05em;font-weight:700}.wire-layer{position:absolute;inset:0;z-index:1;width:100%;height:100%;overflow:visible;pointer-events:none}.track{stroke:#8f86ab;stroke-width:3.2;stroke-linecap:round;vector-effect:non-scaling-stroke;filter:drop-shadow(0 4px 3px #100a2255);transition:stroke .14s ease,filter .14s ease}.track.on{stroke:var(--accent);filter:drop-shadow(0 0 8px var(--glow))}.track.candidate{stroke:#fff6d3;stroke-width:4.5;filter:drop-shadow(0 0 8px var(--accent));animation:cable-pulse .8s ease-in-out infinite alternate}.beacon{position:absolute;z-index:2;width:76px;height:76px;padding:0;border-radius:50%;background:transparent;transform:translate(-50%,-50%);display:grid;place-items:center;filter:drop-shadow(0 8px 8px #11092a88);touch-action:manipulation;-webkit-tap-highlight-color:transparent}.beacon:focus-visible{outline:4px solid #fff;outline-offset:3px}.orb{width:58px;height:58px;border-radius:50%;display:grid;place-content:center;text-align:center;color:#38234f;background:radial-gradient(circle at 35% 27%,#fffef4 0 22%,#fff0b1 23% 65%,#e6a548);border:3px solid #fff9dc;box-shadow:inset -5px -7px #c8843477,0 0 0 3px #513566;transition:transform .17s ease,box-shadow .17s ease}.orb b{display:block;font:700 29px/.85 Fraunces,serif}.orb span{margin-top:5px;font-size:7px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.counter{position:absolute;right:-4px;bottom:-1px;min-width:37px;padding:4px 5px;border-radius:99px;background:#281a46;color:#e9dff4;border:2px solid #ffffff5a;font-size:10px;text-align:center}.counter strong{color:var(--accent)}.beacon.selected .orb{transform:scale(1.16);box-shadow:0 0 0 7px color-mix(in srgb,var(--accent) 37%,transparent),0 0 27px var(--glow),inset -5px -7px #fff4}.beacon.possible .orb{animation:orb-pulse .8s ease-in-out infinite alternate}.beacon.complete .orb{background:radial-gradient(circle at 35% 27%,#f7ffec 0 22%,var(--accent) 25% 67%,var(--glow) 100%);box-shadow:0 0 23px var(--glow),inset -5px -7px #fff4}.beacon.complete .counter{background:#19624f}.beacon.complete .counter strong{color:#fff}.beacon.over .orb{background:radial-gradient(circle at 35% 27%,#fff2ef,#ff967f 66%,#d64f61)}.beacon.over .counter{background:#9a3450}.win{position:absolute;inset:0;z-index:8;display:grid;place-content:center;text-align:center;background:#261840e8;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);animation:pop .25s ease-out}.win>div{color:var(--accent);font-size:55px;text-shadow:0 0 28px var(--glow)}.win p{margin:3px 0;color:var(--accent);font-size:10px;letter-spacing:.16em}.win h2{margin:5px 0 20px;font:700 36px/.98 Fraunces,serif;letter-spacing:-1.4px}.win button{padding:14px 17px;border-radius:99px;background:var(--accent);color:#3a2450;font-weight:700}footer{padding:13px 0 19px;display:flex;justify-content:space-between;align-items:center;gap:9px;font-size:9px;color:#e4d9ef;text-transform:uppercase;letter-spacing:.045em}footer button{color:var(--accent);padding:8px 0;background:transparent;font-weight:700}footer span{text-align:center;opacity:.9}@keyframes pop{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes orb-pulse{to{transform:scale(1.1);box-shadow:0 0 0 7px color-mix(in srgb,var(--accent) 35%,transparent),0 0 24px var(--glow)}}@keyframes cable-pulse{to{opacity:.72}}@media(max-width:480px){.game-shell{width:calc(100% - 20px);min-height:405px}.board{inset:54px 10px 12px}.beacon{width:72px;height:72px}.orb{width:55px;height:55px}.orb b{font-size:28px}.mission{padding-bottom:10px}.mission>p:last-child{font-size:11px}.status{top:10px;left:11px}.touch-tip{top:15px;right:11px;max-width:134px;text-align:right;line-height:1.3}.track.horizontal span{height:18px}.track.vertical span{width:18px}footer span{max-width:170px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.header-stats{font-size:10px;color:#eee1fa;text-transform:uppercase;letter-spacing:.05em}.challenge-controls{display:flex;align-items:end;justify-content:center;gap:8px;flex-wrap:wrap;margin:14px auto 0}.challenge-controls label{display:grid;gap:4px;font-size:8px;text-align:left;text-transform:uppercase;letter-spacing:.06em;color:#e5dbf0}.challenge-controls input,.challenge-controls select{height:36px;border:1px solid #ffffff45;border-radius:10px;background:#251a46;color:#fff8ee;font:500 13px DM Mono,monospace;padding:0 9px}.challenge-controls input{width:86px}.challenge-controls button{height:36px;padding:0 13px;border-radius:10px;background:var(--accent);color:#34204c;font-size:10px;font-weight:700;text-transform:uppercase}.run-stats{position:absolute;z-index:4;right:14px;bottom:10px;padding:7px 9px;border-radius:10px;background:#281a46d9;color:#f5ecff;font-size:9px;text-transform:uppercase;letter-spacing:.04em}@media(max-width:480px){.header-stats{display:none}.challenge-controls{gap:6px}.run-stats{right:9px;bottom:8px;font-size:8px}.game-shell{margin-top:2px}}
