:root{color:#e5ecee;background:#050a11;font-family:ui-monospace,Cascadia Mono,monospace;font-synthesis:none;color-scheme:dark}*{box-sizing:border-box}html{min-height:100%;background:#050a11}body{min-width:320px;margin:0;background:#050a11;min-height:100dvh;overflow-x:hidden}#app{position:relative;min-height:100dvh;isolation:isolate}.space-environment{position:fixed;z-index:-2;inset:-4vmax;overflow:hidden;pointer-events:none;background:#050a11 url(/orbital-ruins-bg.jpg) center / cover no-repeat;transform:scale(1.07);animation:orbital-drift 30s ease-in-out infinite alternate}.space-environment:before{content:"";position:absolute;inset:-15%;opacity:.42;background-image:radial-gradient(circle,#d8f6ff 0 1px,transparent 1.5px),radial-gradient(circle,#80dbed 0 1px,transparent 1.5px);background-position:0 0,47px 83px;background-size:123px 137px,191px 211px;mix-blend-mode:screen;animation:star-drift 42s linear infinite}.space-environment:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 82% 43%,#83ffad12 0 5%,transparent 18%),radial-gradient(ellipse at 50% 42%,transparent 0 16%,#03070db8 68%,#02050aeb 100%),linear-gradient(90deg,#02050b70,transparent 28%,transparent 72%,#02050b70);animation:signal-breathe 7s ease-in-out infinite}.space-haze,.space-drift{position:absolute;display:block;border-radius:50%;filter:blur(50px);mix-blend-mode:screen}.space-haze{width:46vw;height:28vw;min-width:340px;min-height:210px;left:10%;top:17%;opacity:.14;background:#2b86a4;animation:haze-crossing 24s ease-in-out infinite alternate}.space-drift{width:34vw;height:22vw;min-width:260px;min-height:170px;right:3%;bottom:9%;opacity:.11;background:#68d99b;animation:haze-crossing 19s ease-in-out infinite alternate-reverse}.galactic-ribbon{position:absolute;width:135%;height:42%;left:-18%;top:17%;border-radius:50%;opacity:.18;background:conic-gradient(from 104deg at 50% 50%,transparent 0 38%,#3c8fb2 43%,#785aa5 48%,#61d6bb 52%,transparent 58% 100%);filter:blur(62px) saturate(1.35);mix-blend-mode:screen;transform:rotate(-14deg) scaleY(.44);animation:galaxy-undulate 26s ease-in-out infinite alternate}.star-twinkle{position:absolute;inset:2%;display:block;background-repeat:no-repeat;mix-blend-mode:screen;transform-origin:center}.twinkle-a{background-image:radial-gradient(circle,#fff 0 1px,#96eaff 1.4px,transparent 3px),radial-gradient(circle,#fff 0 1.2px,#c3f6ff 1.6px,transparent 3.5px),radial-gradient(circle,#d9fbff 0 1px,transparent 2.8px),radial-gradient(circle,#fff 0 1px,#8cd8ef 1.5px,transparent 3px),radial-gradient(circle,#fff 0 1.2px,transparent 3.2px);background-position:11% 18%,28% 69%,52% 12%,76% 73%,91% 26%;background-size:9px 9px,11px 11px,8px 8px,10px 10px,9px 9px;animation:twinkle-soft 7s ease-in-out infinite}.twinkle-b{background-image:radial-gradient(circle,#e8fdff 0 1px,#6ac9ec 1.5px,transparent 3.5px),radial-gradient(circle,#fff 0 1px,transparent 3px),radial-gradient(circle,#ceffdc 0 1.1px,#6ae0a0 1.5px,transparent 3.6px),radial-gradient(circle,#fff 0 1px,transparent 2.7px),radial-gradient(circle,#e4faff 0 1.2px,transparent 3.4px);background-position:19% 44%,39% 24%,67% 41%,83% 17%,94% 64%;background-size:10px 10px,8px 8px,11px 11px,8px 8px,10px 10px;animation:twinkle-bright 8.5s ease-in-out -2.3s infinite}.twinkle-c{background-image:radial-gradient(circle,#fff 0 1px,transparent 2.8px),radial-gradient(circle,#bcefff 0 1.1px,transparent 3.4px),radial-gradient(circle,#fff 0 1px,#6cbbdc 1.4px,transparent 3.2px),radial-gradient(circle,#dffcff 0 1px,transparent 2.8px);background-position:7% 76%,34% 88%,61% 81%,87% 89%;background-size:8px 8px,10px 10px,9px 9px,8px 8px;animation:twinkle-soft 10s ease-in-out -4.1s infinite reverse}.space-comet{position:absolute;width:150px;height:1px;left:72%;top:8%;opacity:0;background:linear-gradient(90deg,transparent,#aeeeffa8,#fff);box-shadow:0 0 8px #8be3ff;transform:rotate(-27deg) translateZ(0);transform-origin:right center;animation:comet-pass 15s ease-in infinite}@keyframes orbital-drift{0%{transform:scale(1.07) translate3d(-.7%,-.4%,0) rotate(-.08deg)}to{transform:scale(1.1) translate3d(.7%,.5%,0) rotate(.08deg)}}@keyframes star-drift{to{transform:translate3d(70px,-48px,0)}}@keyframes signal-breathe{0%,to{opacity:.78}50%{opacity:1}}@keyframes haze-crossing{0%{transform:translate3d(-4%,-3%,0) scale(.94)}to{transform:translate3d(9%,7%,0) scale(1.08)}}@keyframes galaxy-undulate{0%{transform:rotate(-16deg) translate3d(-2%,-4%,0) scaleY(.4)}to{transform:rotate(-10deg) translate3d(3%,6%,0) scaleY(.56)}}@keyframes twinkle-soft{0%,to{opacity:.2}50%{opacity:.48}}@keyframes twinkle-bright{0%,to{opacity:.18}50%{opacity:.58}}@keyframes comet-pass{0%,76%{opacity:0;transform:rotate(-27deg) translateZ(0) scaleX(.35)}78%{opacity:.75}84%{opacity:0;transform:rotate(-27deg) translate3d(-42vw,0,0) scaleX(1)}to{opacity:0}}#app:before{content:"";position:fixed;z-index:-1;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent,#071019a6 calc(50% - 330px),#071019d6 50%,#071019a6 calc(50% + 330px),transparent),repeating-linear-gradient(0deg,#bdefff05 0 1px,transparent 1px 4px)}button,select,input{font:inherit}button,select,summary{touch-action:manipulation}button{cursor:pointer;color:inherit;border:1px solid #536170;background:#1b2731;border-radius:4px;min-height:48px;padding:12px 22px}button:disabled{cursor:default;opacity:.4}#app:has(.stage.non-tutorial-stage .board[aria-busy=true]) :is(#archive,#open-today,#view-results):disabled{opacity:1}button:focus-visible,select:focus-visible,summary:focus-visible,input:focus-visible{outline:2px solid #c8efab;outline-offset:5px}button:hover:enabled{background:#293a43;border-color:#b9d9b1}[hidden]{display:none!important}.shell{position:relative;z-index:1;width:min(100% - 36px,600px);margin:0 auto;padding:28px 0 34px}.masthead{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #30404b;padding-bottom:18px}.wordmark{font-size:30px;font-weight:800;letter-spacing:.06em}.brand-dot{color:#c8efab}.header-actions{display:flex;gap:6px}.header-icon{position:relative;display:grid;place-items:center;width:44px;min-height:44px;padding:10px;background:transparent}.header-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.sound-toggle[aria-pressed=true]{color:#c8efab}.sound-toggle[aria-pressed=true] .sound-muted,.sound-toggle[aria-pressed=false] .sound-waves{display:none}.archive-indicator{position:absolute;top:5px;right:5px;width:6px;height:6px;border-radius:50%;background:#c8efab;box-shadow:0 0 8px #c8efab,0 0 14px #7bd89d;opacity:0;transform:scale(.7)}.header-icon.has-history{color:#c8efab;box-shadow:inset 0 0 16px #c8efab12,0 0 12px #83e6a516}.header-icon.has-history .archive-indicator{opacity:1;transform:scale(1)}.room-heading{text-align:center;margin-top:30px}.eyebrow{font-size:10px;letter-spacing:.2em;color:#c8efab;margin:0 0 10px}#mode-label{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px 6px;min-height:24px;font-size:clamp(8px,2.5vw,12px);letter-spacing:.12em}.mode-label-action{min-height:20px;margin:0;padding:2px 6px;border:1px solid #557064;border-radius:3px;background:#10232a;color:#d8f5cc;font-size:9px;font-weight:700;line-height:1;letter-spacing:.06em;text-transform:uppercase}.mode-label-action:hover:enabled{border-color:#7ca78e;background:transparent;color:#d8f5cc}h1{font-size:clamp(22px,5.5vw,32px);letter-spacing:.12em;margin:0}.tutorial-instruction{width:min(100%,480px);margin:16px auto -6px;padding:10px 14px;border-left:2px solid #c8efab;background:#14231f;color:#cfdfd3;font-size:13px;line-height:1.6;text-align:center}.stage{--board-size: min(72vw, 390px, max(160px, calc(100dvh - 500px) ));position:relative;display:grid;place-items:start center;min-height:calc(var(--board-size) + 70px);padding-top:52px;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.stage:before{content:"";position:absolute;width:min(90vw,520px);height:calc(var(--board-size) + 100px);border-radius:50%;background:radial-gradient(ellipse,#25516b38,#08121d59 48%,transparent 72%);filter:blur(10px);animation:chamber-glow 6s ease-in-out infinite;pointer-events:none}@keyframes chamber-glow{0%,to{opacity:.66;transform:scale(.97)}50%{opacity:1;transform:scale(1.03)}}.station-light{position:absolute;z-index:2;width:3px;height:3px;border-radius:50%;color:#8cecff;background:currentColor;box-shadow:0 0 5px currentColor,0 0 16px currentColor,0 0 38px currentColor;mix-blend-mode:screen;pointer-events:none}.station-light-red{left:6%;top:25%;color:#ff5e55;animation:station-flicker-red 8s ease-in-out -2.1s infinite}.station-light-amber{right:12%;bottom:19%;width:2px;height:2px;color:#ffc56b;filter:blur(.35px);animation:station-flicker-amber 10s ease-in-out -5.4s infinite}.station-light-cyan{right:5%;top:34%;width:4px;height:1px;color:#7de8ff;box-shadow:0 0 7px currentColor,0 0 22px currentColor,0 0 52px #56ccec;animation:station-pulse-cyan 7.8s ease-in-out -1.7s infinite}.station-light-violet{left:15%;bottom:13%;width:2px;height:2px;color:#b69cff;filter:blur(.8px);box-shadow:0 0 8px currentColor,0 0 28px currentColor;animation:station-pulse-violet 11.4s ease-in-out -7s infinite}@keyframes station-flicker-red{0%,to{opacity:.06}50%{opacity:.24}}@keyframes station-flicker-amber{0%,to{opacity:.04}50%{opacity:.2}}@keyframes station-pulse-cyan{0%,to{opacity:.05}42%{opacity:.18}50%{opacity:.48}58%{opacity:.12}}@keyframes station-pulse-violet{0%,to{opacity:.02;transform:scale(.8)}48%{opacity:.2}55%{opacity:.36;transform:scale(1.15)}70%{opacity:.06}}.gravity-label{display:inline-flex;align-items:center;flex:none;margin-right:auto;min-height:30px;color:#91a99f;font-size:9px;letter-spacing:.15em;text-shadow:0 0 7px #c8efab55;white-space:nowrap}.board-wrap{position:relative;z-index:1;display:grid;place-items:center;width:var(--board-size);height:var(--board-size)}.board{--cell: calc(var(--board-size) / var(--size));position:relative;width:calc(var(--cols) * var(--cell));height:calc(var(--rows) * var(--cell));display:grid;grid-template-columns:repeat(var(--cols),1fr);grid-template-rows:repeat(var(--rows),1fr);background:#0f1a23;box-shadow:0 0 0 1px #9bc9d329,0 18px 50px #000a,0 0 56px #55c8e41c;outline:1px solid #5c6f7d;transform-origin:center}.board:before,.board:after{content:"";position:absolute;z-index:4;inset:0;pointer-events:none}.board:before{opacity:.22;background:linear-gradient(118deg,transparent 20%,#71d9ee0a 39%,#b9f4e62e 49%,#71d9ee0b 59%,transparent 78%);background-size:240% 100%;background-position:140% 0;mix-blend-mode:screen;animation:board-light-sweep 8s ease-in-out infinite}.board:after{box-shadow:inset 0 0 18px #83d9e010,inset 0 0 2px #c8efab4d,0 0 20px #55c8e40a;animation:board-power-breathe 5.5s ease-in-out infinite}@keyframes board-light-sweep{0%,18%{background-position:140% 0;opacity:.08}48%{opacity:.26}78%,to{background-position:-140% 0;opacity:.08}}@keyframes board-power-breathe{0%,to{opacity:.45}50%{opacity:.9}}.tile{display:grid;place-items:center;font-size:calc(var(--cell) * .7);line-height:1;border:1px solid #202f3a}.tile.empty{background-color:#0f1a23;background-image:radial-gradient(circle at center,#d5f3ff0a 0 4%,transparent 5%),repeating-radial-gradient(circle at center,#d8f4ff04 0 1px,transparent 1px 7px),radial-gradient(circle at center,#b9e6ee08 0%,transparent 52%,#00070d14 100%);box-shadow:inset 0 0 calc(var(--cell) * .16) #02070c19}.wall{background:#34424e;box-shadow:inset 0 2px #53616b,inset 0 -3px #263440;border-color:#25333e}.exit{color:#c8efab;background:#24463c;box-shadow:inset 0 0 0 3px #93c496}.spikes{color:#b7c1c4;font-size:calc(var(--cell) * .62)}.entity{position:absolute;display:grid;place-items:center;width:calc(100% / var(--cols));height:calc(100% / var(--rows));font-size:calc(var(--cell) * .7);line-height:1}.exit-beacon{position:absolute;z-index:3;width:calc(100% / var(--cols));height:calc(100% / var(--rows));pointer-events:none;border:max(2px,calc(var(--cell) * .07)) solid #c8efab;box-shadow:inset 0 0 calc(var(--cell) * .22) #c8efab99,0 0 calc(var(--cell) * .28) #86e7a8bb;animation:exit-beacon-pulse 1.8s ease-in-out infinite}@keyframes exit-beacon-pulse{0%,to{opacity:.62;filter:brightness(.9)}50%{opacity:1;filter:brightness(1.3)}}.board.reduced-motion .exit-beacon{animation:none;opacity:.88;filter:none}.board.reduced-motion:before,.board.reduced-motion:after{animation:none}.player:before{content:"";width:62%;height:70%;background:#f0eadb;border-radius:32% 32% 16% 16%;box-shadow:inset 0 -5px #afa99a;position:absolute}.player:after{content:"";position:absolute;top:27%;left:23%;width:54%;height:24%;background:#2d6572;box-shadow:inset 0 2px #83c6ca;border-radius:2px}.crate{color:#e6c397;background:#805f41;border:calc(var(--cell) * .09) solid #b79064;scale:.82;font-weight:700}.boulder:before{content:"";width:83%;height:83%;background:#8996a3;clip-path:polygon(25% 0,76% 4%,100% 31%,94% 76%,70% 100%,22% 91%,0 64%,4% 25%);box-shadow:inset 5px 5px #bac3cb,inset -5px -5px #596977}.crate:after,.boulder:after{content:"";position:absolute;pointer-events:none}.crate:after{inset:13%;background:linear-gradient(90deg,transparent 47%,#f4d4a117 48% 50%,#32201321 51% 53%,transparent 54%),linear-gradient(0deg,transparent 47%,#f4d4a10e 48% 50%,#32201319 51% 53%,transparent 54%),linear-gradient(145deg,#fff2d412,transparent 34%,#2a190f1f 78%);box-shadow:inset 1px 1px #fff4d016,inset -1px -1px #24160e24;mix-blend-mode:soft-light}.boulder:after{inset:7%;clip-path:polygon(25% 0,76% 4%,100% 31%,94% 76%,70% 100%,22% 91%,0 64%,4% 25%);background:radial-gradient(circle at 30% 28%,#eef4ff2e 0 7%,transparent 8%),radial-gradient(circle at 68% 64%,#28303f38 0 10%,transparent 11%),linear-gradient(132deg,transparent 25%,#e2e9f21a 26% 43%,transparent 44%),linear-gradient(38deg,transparent 55%,#252c3824 56% 72%,transparent 73%);opacity:.72;mix-blend-mode:soft-light}.death{outline:2px solid #ed937f}.death .player{opacity:.35}.stats{display:flex;justify-content:center;gap:18px;margin-top:12px;color:#9dabb5}.stats div{display:flex;align-items:baseline;gap:4px}.stats span{color:#e5ecee;font-size:14px}.stats small{font-size:11px;letter-spacing:.04em}.status{height:48px;text-align:center;font-size:12px;line-height:1.6;color:#bac8cc;margin:8px 0 0;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.optimal-icons{display:grid;grid-template-columns:repeat(var(--step-count),minmax(0,1fr));gap:3px;width:100%;max-width:var(--route-width);min-width:0;margin:auto;padding:3px;border:1px solid #426269;border-radius:6px;background:#10242bdc;box-shadow:0 5px 18px #0008}.optimal-icon{display:grid;place-items:center;min-width:0;width:100%;aspect-ratio:1;overflow:hidden;border:1px solid currentColor;border-radius:4px;font-size:clamp(11px,4vw,23px);line-height:1}.optimal-icon.left{color:#75dbe8;background:#163740;box-shadow:inset 0 0 9px #75dbe82b}.optimal-icon.right{color:#e8c47c;background:#403322;box-shadow:inset 0 0 9px #e8c47c2b}.controls{display:flex;gap:12px;justify-content:center;margin-bottom:12px;user-select:none;-webkit-user-select:none}.turn{display:flex;align-items:center;justify-content:center;gap:10px;width:106px;min-height:54px;padding:7px 10px}.turn-icon{font-size:30px;line-height:1;color:#c8efab}.turn kbd{min-width:22px;font-size:15px;line-height:1;text-align:center}kbd{font:inherit;color:#9dafb9;font-size:10px}.text-button{display:block;margin:7px auto 0;background:transparent;border:0;font-size:11px;color:#a9b8c1}.text-button kbd{margin-left:10px}.restart-button{display:flex;align-items:center;justify-content:center;gap:9px;margin:8px auto 0;min-height:38px;padding:7px 14px;color:#d8e5e6;background:#16222b;border-color:#536474;font-size:11px;user-select:none;-webkit-user-select:none}.restart-icon{color:#c8efab;font-size:18px;line-height:1}.score-penalty{color:#ff8f87;font-weight:700;text-shadow:0 0 7px #ff675b80;white-space:nowrap}.score-penalty[hidden]{display:none}.restart-button kbd{margin-left:4px}.board-actions{position:absolute;z-index:4;right:0;bottom:calc(100% + 8px);left:0;display:flex;align-items:center;justify-content:flex-end;gap:7px;min-height:30px}.board-actions button{min-height:30px;padding:5px 9px;border-color:#465b6380;background:#0d1a2180;color:#9eb1b4;font-size:10px;font-weight:400}.board-actions button:hover:enabled{border-color:#759489;background:#1a3032;color:#d6e9dc}.board-actions button[aria-pressed=true]{border-color:#86ad8c;background:#253a31;color:#e0f6dc;box-shadow:inset 0 0 0 1px #c8efab24}.board-actions button[aria-pressed=true]:hover:enabled{background:#304c3e}.legend{padding:0;list-style:none;display:flex;justify-content:center;flex-wrap:wrap;gap:11px 14px;margin:14px 0 18px;color:#a7b8c1;font-size:10px}.legend li{display:flex;align-items:center;gap:6px;min-height:18px}.legend-icon{display:block;width:18px;height:18px;flex:0 0 18px;background-position:center;background-repeat:no-repeat;background-size:contain;image-rendering:pixelated}.legend-player{background-image:url(/sprites/player.svg)}.legend-exit{background-image:url(/sprites/exit.svg)}.legend-crate{background-image:url(/sprites/crate.svg)}.legend-boulder{background-image:url(/sprites/boulder.svg)}.legend-spike{background-image:url(/sprites/spikes.svg)}footer{border-top:1px solid #2a3944;padding-top:20px;color:#a7b8c1;font-size:11px}.site-links{display:flex;flex-wrap:wrap;gap:12px 22px;margin-top:22px;padding-top:16px;border-top:1px solid #2a3944}.site-links a{color:#c8efab;text-underline-offset:3px}.site-links a:focus-visible{outline:2px solid #c8efab;outline-offset:4px}.room-picker{display:flex;align-items:center;justify-content:space-between;gap:10px}select{max-width:65%;min-height:44px;background:#14212a;border:1px solid #425460;border-radius:4px;padding:8px;color:#d3e0e6;font-size:12px}details{margin-top:15px}summary{cursor:pointer;min-height:44px;display:list-item;align-content:center}details p{line-height:1.8}.motion-option{display:flex;align-items:center;gap:10px;min-height:44px}input{width:20px;height:20px;accent-color:#c8efab}@media(max-width:400px){.shell{width:calc(100% - 28px);padding-top:18px}.room-heading{margin-top:24px}.stats{gap:13px}.legend{gap:11px}}@media(max-width:600px){.shell{padding-bottom:18px}.stage.non-tutorial-stage{--board-size: min( calc(100vw - 28px) , max(240px, calc(100svh - 335px) ), 420px)}}@media(max-height:720px)and (min-width:601px){.stage{--board-size: min(66vw, 340px, max(160px, calc(100dvh - 540px) ))}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important}.space-environment,.space-environment:before,.space-environment:after,.space-haze,.space-drift,.galactic-ribbon,.star-twinkle,.space-comet,.stage:before,.station-light{animation:none!important}.space-comet{display:none}}html.reduce-environment-motion .space-environment,html.reduce-environment-motion .space-environment:before,html.reduce-environment-motion .space-environment:after,html.reduce-environment-motion .space-haze,html.reduce-environment-motion .space-drift,html.reduce-environment-motion .galactic-ribbon,html.reduce-environment-motion .star-twinkle,html.reduce-environment-motion .space-comet,html.reduce-environment-motion .stage:before,html.reduce-environment-motion .station-light{animation:none!important}html.reduce-environment-motion .space-comet{display:none}@media(max-height:800px){.shell{padding-top:12px}.masthead{padding-bottom:8px}.room-heading{margin-top:14px}}.notice{padding:12px;border:1px solid #c49f74;background:#342b25;font-size:12px;line-height:1.6;text-align:center}.results-dialog p.score-flavour{margin:0 0 16px;color:#c8efab;font-size:15px;font-weight:700;letter-spacing:.1em;line-height:1.35}.result-breakdown{width:min(100%,360px);margin:16px auto;overflow:hidden;border:1px solid #668276;background:#0d1c19a8;text-align:left}.result-breakdown table{width:100%;border-collapse:collapse;font-size:10px}.result-breakdown caption{padding:9px 12px;border-bottom:1px solid #668276;color:#c8efab;font-size:9px;font-weight:700;letter-spacing:.16em;text-align:left;text-transform:uppercase}.result-breakdown th,.result-breakdown td{padding:8px 10px;border-bottom:1px solid #ffffff12}.result-breakdown thead{color:#9eb5a5;font-size:9px;letter-spacing:.08em;text-transform:uppercase}.result-breakdown thead th{padding-top:7px;padding-bottom:7px;font-weight:400}.result-breakdown tbody tr:last-child th,.result-breakdown tbody tr:last-child td{border-bottom:0}.result-breakdown tbody tr:nth-child(odd){background:#ffffff06}.result-breakdown tbody th{color:#d9e4dc;font-weight:400}.result-breakdown td{color:#bdd0c4;text-align:right;white-space:nowrap}.result-breakdown td:last-child{color:#e8aa9d}.results-modal{position:fixed;z-index:10;inset:0;display:grid;place-items:center;padding:20px;background:#071015c9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.results-dialog{position:relative;width:min(100%,420px);max-height:min(720px,calc(100dvh - 40px));overflow:auto;text-align:center;border:1px solid #8cac8c;background:linear-gradient(150deg,#20372f,#14231f);box-shadow:0 24px 70px #000a;padding:32px 24px 24px}.results-dialog h2{margin:8px 0 4px;font-size:clamp(28px,8vw,38px)}.results-dialog p{font-size:11px;line-height:1.7;color:#d0ddd5}.results-dialog .score-flavour{margin-top:0}.results-dialog #modal-detail{color:#bdd0c4}.community-stats{width:min(100%,360px);margin:18px auto;padding:15px 13px 12px;border:1px solid #598a83;background:linear-gradient(150deg,#122a2b,#0b1b20);box-shadow:inset 0 0 24px #57c9af0b,0 0 20px #65dabe0a;text-align:left;user-select:none;-webkit-user-select:none}.community-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:5px}.community-stats h3{margin:0;color:#c8efab;font-size:11px;letter-spacing:.11em;text-transform:uppercase}.community-stats p{margin:0 0 12px;color:#c4d9d1;font-size:10px;line-height:1.5}.score-flavour{display:flex;align-items:center;justify-content:center;gap:9px}.score-separator{color:#6db4a4}.score-streak{display:inline-flex;align-items:center;gap:5px;color:#f3ce82;letter-spacing:0;white-space:nowrap}.score-streak svg{width:12px;height:16px;filter:drop-shadow(0 0 4px #f5b75985)}.your-score-key{flex:none;color:#8cf5eb;font-size:8px;letter-spacing:.05em;text-transform:uppercase}.your-score-key:before{display:inline-block;width:6px;height:6px;margin-right:5px;border-radius:50%;background:#87fff1;box-shadow:0 0 8px #87fff1;content:"";vertical-align:1px}.score-histogram{margin-top:4px}.histogram-plot{position:relative;display:grid;grid-template-columns:repeat(11,minmax(0,1fr));gap:2px;height:158px;padding:0 4px;overflow:hidden;border:1px solid #4d807b;background:radial-gradient(circle at 50% 45%,transparent 0 21%,#7de9d012 21.5% 22%,transparent 22.5% 43%,#7de9d010 43.5% 44%,transparent 44.5%),repeating-linear-gradient(0deg,transparent 0 25px,#66bfb41c 26px 27px),repeating-linear-gradient(90deg,transparent 0 25px,#66bfb417 26px 27px),linear-gradient(180deg,#0b2b2b,#071b22);box-shadow:inset 0 0 25px #59d5c014}.histogram-plot:before{position:absolute;inset:0;background:linear-gradient(150deg,transparent 35%,#83ffe70a 50%,transparent 65%);content:"";pointer-events:none}.histogram-plot:after{position:absolute;right:0;bottom:26px;left:0;border-top:1px solid #8ee5c25c;content:"";pointer-events:none}.histogram-column{position:relative;min-width:0;z-index:1}.histogram-bar{position:absolute;right:3px;bottom:27px;left:3px;height:min(var(--bar-height),calc(100% - 43px));min-height:0;border:1px solid #72d5af;background:linear-gradient(180deg,#a9edc0,#3b9c85);box-shadow:0 0 8px #6ce6b644}.histogram-column.is-empty .histogram-bar{border:0}.histogram-count{position:absolute;right:0;bottom:min(calc(31px + var(--bar-height)),calc(100% - 12px));left:0;color:#d8f2e6;font-size:9px;text-align:center}.histogram-label{position:absolute;right:0;bottom:7px;left:0;color:#9dbbb4;font-size:8px;text-align:center}.histogram-column.is-your-score .histogram-bar{border-color:#b9fffc;background:linear-gradient(180deg,#c3fff8,#54d4cb);box-shadow:0 0 8px #75fff8,0 0 21px #6bfdf977}.histogram-column.is-your-score .histogram-count,.histogram-column.is-your-score .histogram-label{color:#a9fff4;font-weight:700;text-shadow:0 0 7px #72fff5}.histogram-column.is-your-score:after{position:absolute;right:1px;bottom:1px;left:1px;height:3px;background:#8bfff5;box-shadow:0 0 8px #8bfff5;content:""}.histogram-axis{margin-top:5px;color:#8db5ad;font-size:8px;letter-spacing:.22em;text-align:center}.story-modal{background:#06090edb}.story-dialog{background:linear-gradient(150deg,#1a2932,#0d171e);border-color:#617d87}.story-dialog #begin-story{background:#c8efab;border-color:#c8efab;color:#15231a}.archive-dialog{width:min(100%,390px);background:linear-gradient(150deg,#172a2d,#0e1b21);border-color:#617d87}.calendar-heading{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:8px;margin:2px 0 18px}.calendar-heading h2{margin:0;font-size:clamp(20px,6vw,26px);letter-spacing:.05em}.calendar-nav{min-height:40px;padding:0;border-color:#4f626c;background:#122129;color:#c8efab;font-size:28px;line-height:1}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.calendar-weekdays{margin-bottom:7px;color:#82969f;font-size:8px;letter-spacing:.08em}.calendar-grid button,.calendar-blank{aspect-ratio:1;min-width:0;min-height:0;padding:0}.calendar-grid button{position:relative;border-color:#344852;background:#101d24;color:#bac9cd;font-size:12px}.calendar-grid button:disabled{border-color:transparent;background:transparent;color:#56636a;opacity:.58}.calendar-grid button.is-today{border-color:#75dbe8;color:#a9f1fa;box-shadow:inset 0 0 0 1px #75dbe84d}.calendar-grid button.is-selected{outline:2px solid #e8c47c;outline-offset:-3px;color:#ffe4a9}.calendar-grid button.is-today.is-selected{outline-color:#75dbe8;color:#a9f1fa;box-shadow:inset 0 0 0 1px #75dbe84d,0 0 10px #75dbe82b}.calendar-grid button.is-complete{color:#ddffd0;background:#1a342b;border-color:#7fa982;box-shadow:0 0 10px #88df9730,inset 0 0 12px #9ded9a14}.calendar-grid button.is-complete:after{content:"";position:absolute;right:4px;bottom:4px;width:4px;height:4px;border-radius:50%;background:#c8efab;box-shadow:0 0 6px #c8efab}.calendar-key{display:flex;justify-content:center;flex-wrap:wrap;gap:14px;margin-top:16px;color:#9fb0b5;font-size:9px}.calendar-key span{display:flex;align-items:center;gap:5px}.calendar-key i{width:10px;height:10px;border:1px solid;border-radius:2px}.calendar-key .key-today{border-color:#75dbe8}.calendar-key .key-complete{border-color:#7fa982;background:#1a342b;box-shadow:0 0 5px #88df9740}.calendar-key .key-selected{border:2px solid #e8c47c}.modal-dismiss{position:absolute;top:8px;right:8px;display:grid;place-items:center;width:36px;min-height:36px;padding:0;border-color:transparent;background:transparent;color:#c4d0cb;font-size:24px;line-height:1}.modal-dismiss:hover:enabled{background:#ffffff18;border-color:#71947c}.modal-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:18px}.modal-actions button{min-width:142px;min-height:46px;padding:10px 16px;font-weight:700}#modal-copy-status{min-height:18px;color:#c8efab}#results-modal .results-dialog{width:min(100%,390px);padding:20px 20px 15px}#results-modal .results-dialog h2{margin:0 0 2px}#results-modal #modal-eyebrow{margin:0 0 5px;font-size:9px;color:#9eb5a5}#results-modal .tutorial-score-card{margin:13px 0 4px;padding:14px 16px 12px;border:1px solid #6f9a84;background:linear-gradient(155deg,#142d27,#10201e);box-shadow:inset 0 0 22px #a5f2b40b,0 0 22px #9feab00d;text-align:left}#results-modal .tutorial-score-start{margin:0;color:#a7c9b0;font-size:9px;font-weight:700;letter-spacing:.18em;text-align:center}#results-modal .tutorial-score-value{display:flex;align-items:baseline;justify-content:center;gap:6px;margin:0 0 12px;color:#c8efab;line-height:1;text-shadow:0 0 16px #a9eb8c42}#results-modal .tutorial-score-value strong{font-size:clamp(44px,13vw,58px)}#results-modal .tutorial-score-value span{color:#9ebca9;font-size:17px}.tutorial-score-rules{margin:0;padding:0;list-style:none}.tutorial-score-rules li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 8px;border-top:1px solid #a9d9b023;color:#e0e9e2;font-size:12px}.tutorial-score-rules strong{color:#ff8f87;font-size:15px;text-shadow:0 0 7px #ff675b80}#results-modal .tutorial-score-note{margin:9px 4px 0;color:#a9bcb1;font-size:10px;line-height:1.5;text-align:center}#results-modal .tutorial-score-lock{margin:12px 0 0;color:#d9f4d3;font-size:11px;font-weight:700;text-align:center}#results-modal .results-dialog .score-flavour{margin-bottom:8px}#results-modal .result-breakdown{margin:8px auto}#results-modal .result-breakdown caption{padding:6px 10px}#results-modal .result-breakdown th,#results-modal .result-breakdown td{padding:5px 8px}#results-modal .result-breakdown thead th{padding-top:5px;padding-bottom:5px}#results-modal .community-stats{margin:9px auto 10px;padding:10px 10px 8px}#results-modal .community-stats p{margin-bottom:7px}#results-modal .histogram-plot{height:142px}#results-modal .modal-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:10px}#results-modal.is-tutorial .modal-actions{grid-template-columns:1fr}#results-modal.is-tutorial #modal-continue{border-color:#9bc994;background:#31543d;color:#efffe9}#results-modal.is-tutorial #modal-continue:hover{background:#406a4d}#results-modal.has-share .modal-actions{grid-template-columns:repeat(3,minmax(0,1fr))}#results-modal .modal-actions button{min-width:0;min-height:36px;padding:7px 4px;font-size:10px}#results-modal #modal-copy-status:empty{display:none}#results-modal #modal-copy-status:not(:empty){min-height:0;margin:8px 0 0}@media(max-height:700px){#results-modal{padding:10px}#results-modal .results-dialog{max-height:calc(100dvh - 20px);padding:13px 15px 9px}#results-modal .results-dialog h2{font-size:29px}#results-modal .result-breakdown{margin:5px auto}#results-modal .result-breakdown caption{padding:4px 8px}#results-modal .result-breakdown th,#results-modal .result-breakdown td{padding:3px 7px}#results-modal .community-stats{margin:5px auto 6px;padding:7px 9px 5px}#results-modal .community-stats p{margin-bottom:4px}#results-modal .histogram-plot{height:clamp(92px,17dvh,120px)}#results-modal .modal-actions{margin-top:6px}}.content-note,#reset-time{font-size:10px;line-height:1.7}.board .entity,.board .exit,.board .spikes{background-position:center;background-repeat:no-repeat;background-size:100% 100%;image-rendering:pixelated}.board .player{background-image:url(/sprites/player.svg)}.board .player:before,.board .player:after,.board .boulder:before{content:none}.board .crate{background-image:url(/sprites/crate.svg);background-color:transparent;border:0;scale:1;color:transparent}.board .crate.shattering{background-image:none;z-index:5}.board .crate.shattering:after{content:none}.crate-fragment{position:absolute;inset:0;background:url(/sprites/crate.svg) center / 100% 100% no-repeat;image-rendering:pixelated;pointer-events:none}.crate-fragment:nth-child(1){clip-path:polygon(0 0,53% 0,43% 43%,0 57%)}.crate-fragment:nth-child(2){clip-path:polygon(53% 0,100% 0,100% 43%,57% 53%,43% 43%)}.crate-fragment:nth-child(3){clip-path:polygon(0 57%,43% 43%,57% 53%,40% 100%,0 100%)}.crate-fragment:nth-child(4){clip-path:polygon(57% 53%,100% 43%,100% 100%,40% 100%)}.crate-burst{position:absolute;inset:22%;border:max(2px,calc(var(--cell) * .055)) solid #f4d4a1;border-radius:50%;box-shadow:0 0 calc(var(--cell) * .2) #e7ba79;pointer-events:none}.board .boulder{background-image:url(/sprites/boulder.svg)}.board .spikes{background-image:url(/sprites/spikes.svg),radial-gradient(circle,#d6545424 12%,transparent 73%);box-shadow:inset 0 0 calc(var(--cell) * .18) #d654541c,0 0 calc(var(--cell) * .12) #d6545418;color:transparent}.board .exit{background-image:url(/sprites/exit.svg);background-color:#15352c;box-shadow:none;color:transparent}.board .wall{background-color:#3c4553;background-image:radial-gradient(circle at center,#727e8e1d 0 20%,transparent 21%),repeating-radial-gradient(circle at center,#f0f6ff07 0 1px,transparent 1px 6px),radial-gradient(circle at center,#606e7f19 0%,transparent 52%,#1318213d 100%);box-shadow:inset 0 0 0 2px #76848d3e,inset 0 0 calc(var(--cell) * .2) #20283388}.board .fragile,.board .cracked{background-color:#657382;background-image:url(/sprites/fragile-cracks.svg),radial-gradient(circle at center,#d4e1e32b 0 20%,transparent 21%),repeating-radial-gradient(circle at center,#f0f6ff12 0 1px,transparent 1px 6px),radial-gradient(circle at center,#a9b8c222 0%,transparent 52%,#26344144 100%);background-position:center;background-size:100% 100%;background-repeat:no-repeat;image-rendering:pixelated;border-color:#394b59;box-shadow:inset 0 0 0 2px #b1c4cb68,inset 0 0 calc(var(--cell) * .2) #23313e99}.board .cracked{background-color:#566372;background-image:url(/sprites/fragile-cracks-heavy.svg),radial-gradient(circle at center,#d4e1e32b 0 20%,transparent 21%),repeating-radial-gradient(circle at center,#f0f6ff12 0 1px,transparent 1px 6px),radial-gradient(circle at center,#a9b8c222 0%,transparent 52%,#26344144 100%);box-shadow:inset 0 0 0 2px #a9bdc79c,inset 0 0 calc(var(--cell) * .25) #1f2a38b3}:is(html.static-effects,html.reduce-environment-motion) .space-environment{inset:0;transform:none;animation:none;background-image:radial-gradient(ellipse at 17% 25%,#2b86a429,transparent 34%),radial-gradient(ellipse at 84% 74%,#68d99b1c,transparent 32%),radial-gradient(ellipse at 50% 42%,transparent 0 16%,#03070d4a 68%,#02050a76 100%),linear-gradient(90deg,transparent,#07101942 calc(50% - 330px),#0710196b 50%,#07101942 calc(50% + 330px),transparent),url(/orbital-ruins-bg.jpg)}:is(html.static-effects,html.reduce-environment-motion) .space-environment:before,:is(html.static-effects,html.reduce-environment-motion) .space-environment:after,:is(html.static-effects,html.reduce-environment-motion) .space-haze,:is(html.static-effects,html.reduce-environment-motion) .space-drift,:is(html.static-effects,html.reduce-environment-motion) .galactic-ribbon,:is(html.static-effects,html.reduce-environment-motion) .space-comet,:is(html.static-effects,html.reduce-environment-motion) #app:before,:is(html.static-effects,html.reduce-environment-motion) .board:before{display:none}:is(html.static-effects,html.reduce-environment-motion) .star-twinkle{animation:none;mix-blend-mode:normal;opacity:.32}:is(html.static-effects,html.reduce-environment-motion) .stage:before{animation:none;filter:none;opacity:.85}:is(html.static-effects,html.reduce-environment-motion) .station-light{animation:none;filter:none;mix-blend-mode:normal;opacity:.32}:is(html.static-effects,html.reduce-environment-motion) .board{contain:paint;backface-visibility:hidden}:is(html.static-effects,html.reduce-environment-motion) .board:after,:is(html.static-effects,html.reduce-environment-motion) .exit-beacon{animation:none}.stage{background:radial-gradient(ellipse,#6d777014,transparent 67%)}.turn:active:enabled{border-color:#c8efab;background:#354c46}.turn:focus-visible{outline-offset:3px}#settings-status{font-size:11px;color:#c8efab}.stats-area{position:relative;min-height:24px;margin-top:12px}.stats-area .stats{min-height:24px;margin-top:0;align-items:center;transition:opacity .18s ease}.stats-area:has(.solution-output:not([hidden])) .stats{opacity:0}.stats-area .solution-output{position:absolute;z-index:6;top:50%;left:0;display:flex;align-items:center;justify-content:center;width:100%;height:36px;margin:0;padding:0 4px;overflow:hidden;transform:translateY(-50%);color:#c8efab;font-size:11px;line-height:1;text-align:center;animation:route-appear .18s ease-out}@keyframes route-appear{0%{opacity:0;transform:translateY(-45%)}to{opacity:1;transform:translateY(-50%)}}.stats-area .status{position:absolute;z-index:5;top:50%;left:50%;width:max-content;max-width:min(100%,460px);height:auto;min-height:0;margin:0;padding:9px 14px;overflow:visible;border:1px solid #71947c;border-radius:5px;background:#1d302a;box-shadow:0 8px 24px #0009;color:#e5f5dd;font-size:11px;font-weight:700;line-height:1.5;white-space:normal;pointer-events:none;opacity:0;visibility:hidden;transform:translate(-50%,-45%);transition:opacity .18s ease,transform .18s ease,visibility .18s}.stats-area .status.is-visible{opacity:1;visibility:visible;transform:translate(-50%,-50%)}@media(max-height:680px){.stats-area{margin-top:5px}}@media(prefers-reduced-motion:reduce){.stats-area .status,.stats-area .stats{transition:none}.stats-area .solution-output{animation:none}}.header-actions .header-icon{flex:0 0 44px}body:has(.results-modal:not([hidden])){overflow:hidden}.information-dialog{display:flex;flex-direction:column;width:min(100%,430px);max-height:min(700px,calc(100dvh - 32px));padding:0;overflow:hidden;text-align:left;border-color:#617d87;background:linear-gradient(160deg,#1b3030,#101d23)}.information-heading{position:relative;flex:none;padding:22px 56px 16px 24px;border-bottom:1px solid #48615b}.information-heading .eyebrow{margin-bottom:4px}.information-heading h2{margin:0;color:#e5ecee;font-size:23px;letter-spacing:.02em}.information-content{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:20px 24px 28px}.information-panel h3{margin:0 0 12px;color:#c8efab;font-size:13px;letter-spacing:.08em}.information-panel h3:not(:first-child){margin-top:24px}.information-panel p,.information-panel li{color:#d0ddd5;font-size:12px;line-height:1.7}.information-panel ul{padding-left:20px}.information-panel li+li{margin-top:7px}.information-panel a{display:inline-block;margin-top:8px;color:#c8efab;font-size:12px;text-underline-offset:4px}.information-panel .text-button{margin-left:0;padding-left:0}.information-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;flex:none;padding:10px;border-top:1px solid #48615b;background:#0e1b20}.information-tabs button{min-height:44px;padding:8px 4px;border-color:transparent;background:transparent;color:#aebfbd;font-size:10px}.information-tabs button[aria-selected=true]{border-color:#668c75;background:#29483c;color:#ddffd0}.information-tabs button:hover:enabled{border-color:#668c75}@media(max-height:680px){.shell{padding-top:8px;padding-bottom:8px}.room-heading{margin-top:8px}.stats{margin-top:5px}.stage{--board-size: min(72vw, 390px, max(132px, calc(100dvh - 395px) ))}.controls{margin-bottom:4px}.turn{min-height:48px}.status{height:36px;margin-top:4px}.restart-button{margin-top:2px}.legend{margin:6px 0 0}}@media(forced-colors:active){.board .player,.board .crate,.board .boulder,.board .spikes,.board .exit{forced-color-adjust:none}.board .wall{background:CanvasText}.exit-beacon{border-color:Highlight;box-shadow:none}}
