:root{--bg:#140c33;--bg-2:#1c1248;--card:#241a5a;--card-2:#2c2069;--line:#3a2d80;--text:#f5f2ff;--muted:#a99fd8;--accent:#2ad4ff;--gold:#ffd23f;--lime:#dbf21d;--good:#3ee08f;--bad:#ff5a5a;--ghost:#c58bff;--r:10px;--edge:inset 0 1px 0 #ffffff12;--lift:0 3px 0 #0a0520;--raised:var(--edge), var(--lift);--pixel:"Jersey 10", ui-monospace, monospace;--body:"Nunito", ui-rounded, system-ui, -apple-system, sans-serif;--mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}html:has(.play){overscroll-behavior:none}html:has(.play) body{overscroll-behavior:none}.play,.play *,.puzzle-backdrop,.puzzle-backdrop *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.play img,.puzzle-backdrop img{-webkit-user-drag:none}.sheet,.end-backdrop,.puzzle-backdrop{touch-action:pan-y;overscroll-behavior:contain}.standings{touch-action:pan-x;overscroll-behavior:contain}.puzzle-table-wrap{touch-action:pan-x pan-y}body{background:radial-gradient(ellipse 120% 60% at 50% -10%, #33197f 0%, var(--bg) 65%) fixed, var(--bg);min-height:100dvh;color:var(--text);font-family:var(--body);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-weight:600}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}h1,h2,h3,p{margin:0}.pixel{font-family:var(--pixel);letter-spacing:.02em;font-weight:400}.label{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:600}.muted{color:var(--muted)}.small{font-size:13px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--raised);gap:12px;padding:14px 16px 16px;display:grid}.card-chrome{border-bottom:1px solid var(--line);background:var(--card-2);border-radius:var(--r) var(--r) 0 0;font-family:var(--mono);letter-spacing:.08em;color:var(--muted);justify-content:space-between;margin:-14px -16px 0;padding:6px 12px;font-size:11px;display:flex}button.primary,.end-actions button,.chip-button{border:1px solid var(--line);border-radius:var(--r);background:var(--card-2);box-shadow:var(--raised);padding:10px 16px;font-weight:800}button.primary{background:var(--lime);color:var(--bg);border-color:var(--lime)}button.primary.big{font-family:var(--pixel);padding:8px 16px;font-size:26px;font-weight:400}button:active:not(:disabled){box-shadow:var(--edge);transform:translateY(2px)}.setting{gap:8px;display:grid}.chips{flex-wrap:wrap;gap:8px;display:flex}.setting .chips{grid-auto-columns:1fr;grid-auto-flow:column;gap:6px;display:grid}.setting .chip-button{white-space:nowrap;padding:10px 2px;position:relative}.setting .chip-button.recommended:after{content:"★";color:var(--gold);text-shadow:0 1px #0a0520;font-size:11px;position:absolute;top:-7px;right:-3px}.setting-note{min-height:3.6em;color:var(--muted);margin:0;font-size:12px;line-height:1.4}.chip-button{padding:6px 12px;font-size:14px}.chip-button.on{background:var(--accent);color:var(--bg);border-color:var(--accent)}.how ul{gap:6px;margin:0;padding-left:18px;font-size:14px;display:grid}.play{touch-action:none;flex-direction:column;max-width:640px;height:100dvh;margin:0 auto;display:flex;position:relative;overflow:hidden}.topbar{z-index:3;padding:calc(14px + env(safe-area-inset-top)) 16px 8px;background:var(--bg-2);border-bottom:1px solid var(--line);gap:6px;display:grid;position:relative}.topbar-row{justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.k-block{align-items:baseline;gap:6px;display:flex;position:relative}.k-dip{font-family:var(--pixel);color:var(--bad);text-shadow:0 2px #0a0520;white-space:nowrap;pointer-events:none;font-size:22px;line-height:1;animation:1.4s ease-out forwards dip;position:absolute;top:28px;left:22px}@keyframes dip{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(18px)}}.pause-button{border:1px solid var(--line);background:var(--card);width:34px;height:34px;box-shadow:var(--raised);color:var(--text);border-radius:8px;flex:none;align-self:center;place-items:center;padding:0;display:grid}.k-value{font-family:var(--pixel);color:var(--gold);font-size:40px;line-height:.8}.where{text-align:right;display:grid}.level-name{font-family:var(--pixel);font-size:24px;line-height:.9}.level-bar,.gap-bar{background:var(--card);border-radius:3px;height:6px;position:relative;overflow:hidden}.level-fill{background:var(--gold);transition:width .2s linear;position:absolute;inset:0 auto 0 0}.gate{color:var(--gold);font-size:12px;font-weight:800}.gate.held{background:var(--gold);color:var(--bg);border-radius:6px;padding:4px 8px}.level-bar.held .level-fill{background:var(--lime)}.tabs button.call{border-color:var(--lime);box-shadow:0 0 0 2px var(--lime), var(--raised);animation:1s ease-in-out infinite call}@keyframes call{50%{box-shadow:0 0 0 4px #dbf21d66, var(--raised)}}.ghost-row{flex-wrap:wrap;align-items:baseline;gap:8px;font-size:13px;display:flex}.ghost-k{color:var(--ghost);font-weight:800}.gap{margin-left:auto;font-weight:800}.gap small{color:var(--muted);font-weight:600}.gap.ahead{color:var(--good)}.gap.behind{color:var(--bad)}.gap-mid{background:var(--muted);width:1px;position:absolute;top:0;bottom:0;left:50%}.gap-fill{position:absolute;top:0;bottom:0}.gap-fill.ahead{background:var(--good)}.gap-fill.behind{background:var(--bad)}.notices{pointer-events:none;gap:6px;display:grid;position:absolute;top:calc(100% + 8px);left:12px;right:12px}.notice{--edge-color:#a99fd880;border:1px solid var(--edge-color);text-shadow:0 1px 2px #0a0520,0 0 4px #0a0520;background:#140c3359;border-radius:8px;padding:6px 10px;font-size:14px;font-weight:700;animation:.25s ease-out notice-in}.notice-good{--edge-color:#3ee08fb3}.notice-culture{--edge-color:#ff7ac8bf}.notice-bad,.notice-fell{--edge-color:#ff5a5abf}.notice-averted{--edge-color:#2ad4ffb3}.notice-level{--edge-color:var(--gold);color:var(--gold);font-weight:800}.notice-ghost{--edge-color:#c58bffb3;color:var(--ghost)}.notice-time{--edge-color:var(--lime)}@keyframes notice-in{0%{opacity:0;transform:translateY(-6px)}}.world{touch-action:none;cursor:grab;background:#0a0618;flex:1;position:relative;overflow:clip}.world:active{cursor:grabbing}.map-layer{transform-origin:0 0;will-change:transform;position:absolute;top:0;left:0}.map-canvas,.sprite-icon{image-rendering:pixelated;image-rendering:crisp-edges;display:block}.world-caption{color:var(--muted);text-shadow:0 1px 2px #000;pointer-events:none;font-size:12px;position:absolute;bottom:10px;left:12px;right:56px}.world-caption .warn{color:var(--bad)}.bubble{--tint:#ffd23f;--fill:1;width:54px;height:54px;transform:scale(var(--fill));touch-action:manipulation;scale:calc(1 / var(--zoom,1));background:0 0;border:0;margin:-27px 0 0 -27px;padding:0;transition:transform .25s linear;position:absolute}.bubble img{width:54px;height:54px;image-rendering:pixelated;filter:drop-shadow(0 0 5px var(--tint)) drop-shadow(0 2px 0 #0a0520);pointer-events:none;animation:1.4s ease-in-out infinite bubble-bob;display:block}.bubble.full img{filter:drop-shadow(0 0 10px var(--tint)) drop-shadow(0 0 3px #fff) drop-shadow(0 2px 0 #0a0520);animation:.7s ease-in-out infinite bubble-full}@keyframes bubble-bob{50%{transform:translateY(-4px)}}@keyframes bubble-full{50%{transform:translateY(-6px)scale(1.08)}}.walker{pointer-events:none;width:18px;height:24px;margin:-12px 0 0 -9px;animation:linear infinite alternate walk;position:absolute}.walker img{width:18px;height:24px;image-rendering:pixelated;filter:drop-shadow(0 1px #0a0520);animation:.5s steps(2,end) infinite step;display:block}@keyframes walk{0%{transform:translate(0)}to{transform:translate(var(--dx), var(--dy))}}@keyframes step{50%{transform:translateY(-2px)}}.pop{z-index:1;font-family:var(--pixel);color:var(--lime);text-shadow:0 2px #0a0520,0 0 6px #0a0520;white-space:nowrap;pointer-events:none;transform:translate(-50%,-50%);scale:calc(1 / var(--zoom,1));font-size:22px;line-height:1;animation:.9s ease-out forwards pop-rise;position:absolute}@keyframes pop-rise{0%{opacity:1;margin-top:0}to{opacity:0;margin-top:-36px}}.festival{pointer-events:none;width:0;height:0;position:absolute}.festival span{background:var(--c);width:3px;height:3px;box-shadow:0 0 4px var(--c);opacity:0;animation:2.4s ease-out infinite festival-rise;position:absolute;top:0;left:0}.festival-lanterns span{border-radius:1px;width:5px;height:6px;animation-duration:5s;animation-timing-function:linear}.festival-fireworks span{width:2px;height:2px;animation:1.8s ease-out infinite festival-burst}.festival-drones span{width:2px;height:2px;animation:4s ease-in-out infinite alternate festival-drones}@keyframes festival-rise{0%{opacity:0;transform:translate(var(--sx), var(--sy))}15%{opacity:1}to{opacity:0;transform:translate(var(--x), var(--y))}}@keyframes festival-burst{0%{opacity:1;transform:translate(var(--sx), var(--sy)) scale(1.5)}70%{opacity:1}to{opacity:0;transform:translate(var(--x), calc(var(--y) + 8px))}}@keyframes festival-drones{0%{opacity:.2;transform:translate(var(--sx), var(--sy))}60%,to{opacity:1;transform:translate(var(--x), var(--y))}}.find{touch-action:manipulation;background:0 0;border:0;justify-items:center;gap:2px;margin:-20px 0 0 -20px;padding:0;animation-name:find-life;animation-timing-function:linear;animation-fill-mode:both;display:grid;position:absolute}.find-mark{width:40px;height:40px;font-family:var(--pixel);color:var(--bg);place-items:center;font-size:28px;line-height:1;display:grid;position:relative}.find-mark:before{content:"";z-index:-1;background:var(--gold);box-shadow:0 0 16px var(--gold);border:2px solid #fff6c8;animation:1.2s ease-in-out infinite find-pulse;position:absolute;inset:5px;transform:rotate(45deg)}.find{isolation:isolate;scale:calc(1 / var(--zoom,1));transform-origin:50% 20px}.find-name{max-width:120px;color:var(--gold);text-align:center;background:#0a0520cc;border-radius:6px;padding:2px 6px;font-size:11px;font-weight:800}@keyframes find-pulse{50%{box-shadow:0 0 4px var(--gold)}}@keyframes find-life{0%{opacity:0;transform:scale(.4)}4%{opacity:1;transform:scale(1)}85%{opacity:1}to{opacity:0}}.edge-arrow{z-index:2;border:1px solid var(--line);width:30px;height:30px;color:var(--text);background:#1c1248d9;border-radius:50%;place-items:center;padding:0;font-size:14px;line-height:1;display:grid;position:absolute}.edge-arrow.find{background:var(--gold);color:var(--bg);border-color:var(--gold)}.home-button{z-index:2;border:1px solid var(--line);width:36px;height:36px;box-shadow:var(--raised);background:#1c1248e6;border-radius:10px;font-size:20px;line-height:1;position:absolute;bottom:8px;right:12px}.panel{z-index:2;position:relative}.tabs{background:var(--bg-2);border-top:1px solid var(--line);padding:8px 12px calc(8px + env(safe-area-inset-bottom));gap:8px;display:flex}.tabs button{border:1px solid var(--line);border-radius:var(--r);background:var(--card);min-width:0;font-family:var(--pixel);white-space:nowrap;box-shadow:var(--raised);flex:1;padding:10px 4px;font-size:clamp(16px,5.2vw,22px);line-height:1}.tabs button.close{background:var(--accent);color:var(--bg);border-color:var(--accent)}.badge{background:var(--lime);min-width:20px;color:var(--bg);font-family:var(--body);vertical-align:middle;border-radius:10px;margin-left:6px;padding:1px 6px;font-size:12px;font-weight:900;display:inline-block}.sheet{background:var(--bg-2);border-top:1px solid var(--line);border-radius:14px 14px 0 0;height:min(56dvh,460px);padding:12px;position:absolute;bottom:100%;left:0;right:0;overflow-y:auto;box-shadow:0 -8px 24px #00000059}.sheet-head{z-index:1;background:var(--bg-2);border-bottom:1px solid var(--line);border-radius:14px 14px 0 0;justify-content:space-between;align-items:center;margin:-12px -12px 10px;padding:10px 12px;display:flex;position:sticky;top:-12px}.amounts{gap:6px;margin-left:auto;margin-right:8px;display:flex}.amounts .chip-button{padding:4px 10px;font-size:13px}.buy-count{opacity:.8;font-size:10px;display:block}.rows{gap:8px;margin:0;padding:0;list-style:none;display:grid}.row{border-radius:var(--r);background:var(--card);border:1px solid var(--line);align-items:center;gap:10px;padding:8px 10px;display:flex}.row-glyph{flex:none;width:32px}.row-main{flex:1;min-width:0}.row-title{font-weight:800}.count{color:var(--muted);font-weight:700}.row-sub{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:12px;display:flex}.chip{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;background:var(--card-2);border:1px solid var(--line);color:var(--text);white-space:nowrap;border-radius:6px;padding:2px 6px;font-size:10px}.chip.dim{color:var(--muted)}.buy{border:1px solid var(--lime);background:var(--lime);min-width:76px;color:var(--bg);font-family:var(--mono);border-radius:8px;flex:none;padding:8px 10px;font-size:13px;font-weight:800}.buy:disabled{color:var(--muted);border-color:var(--line);background:0 0}.level-nodes{gap:8px;margin-bottom:14px;display:grid}.level-nodes.preview{opacity:.8}.node .chip.kind{text-align:center;flex:none;width:82px}.node.lit{border-color:var(--gold);background:color-mix(in srgb, var(--gold) 12%, var(--card))}.node.locked{opacity:.6}.kind-root .chip.kind{background:var(--gold);color:var(--bg);border-color:var(--gold)}.kind-energy .chip.kind{background:var(--accent);color:var(--bg);border-color:var(--accent)}.done{color:var(--gold);text-align:center;width:76px;font-size:20px}.link{color:var(--accent);background:0 0;border:0;padding:4px 0 12px;font-weight:800}.end-backdrop{z-index:10;background:#0a0520cc;place-items:start center;padding:16px;display:grid;position:absolute;inset:0;overflow-y:auto}.end{width:100%;max-width:440px}.pause-card{text-align:center;width:100%;max-width:360px}.pause-card h2{color:var(--gold);font-size:36px;line-height:.95}.end-actions button.danger{background:var(--bad);border-color:var(--bad);color:var(--bg)}.end h2{color:var(--gold);font-size:36px;line-height:.95}.reward{font-family:var(--mono);color:var(--lime);font-size:12px}.end-actions{gap:8px;display:flex}.end-actions button{flex:1}.chart{background:var(--bg-2);border-radius:8px;width:100%;height:auto}.chart .grid{stroke:var(--line)}.chart .tick{fill:var(--muted);font-size:9px;font-family:var(--mono)}.chart .line-you{fill:none;stroke:var(--gold);stroke-width:2px}.chart .line-ghost{fill:none;stroke:var(--ghost);stroke-width:1.5px;stroke-dasharray:4 3}.chart .legend{font-size:10px;font-family:var(--mono);fill:var(--muted)}.chart .you{fill:var(--gold)}.chart .ghost{fill:var(--ghost)}.tree{gap:4px;display:grid}.tree-row{align-items:center;gap:4px;display:flex}.tree-level{width:16px;font-family:var(--mono);color:var(--muted);font-size:10px}.leaf{background:var(--card-2);border:1px solid var(--line);border-radius:3px;width:14px;height:14px}.leaf.lit{background:var(--gold);border-color:var(--gold)}.leaf.lit.kind-root{background:var(--lime);border-color:var(--lime)}.leaf.lit.kind-energy{background:var(--accent);border-color:var(--accent)}.era-1 .world{background:radial-gradient(at 50% 120%,#7a3b14 0%,#2a160d 55%,#120a06 100%)}.era-1 .notice:not(.notice-level){color:#f3dcbc;font-family:var(--pixel);background:#d9b48a2e;border-color:#d9b48a;font-size:18px}.era-2 .world{background:linear-gradient(#5c4a2f,#2d2416)}.era-2 .notice:not(.notice-level){color:#f0dcb8;font-variant:small-caps;letter-spacing:.04em;background:#c9a9782e;border-color:#c9a978}.era-3 .world,.era-4 .world{background:radial-gradient(at 50% 0,#3d3524 0%,#1f1a12 80%)}.era-3 .notice:not(.notice-level),.era-4 .notice:not(.notice-level){color:#f7ecd4;background:#efe2c429;border-color:#cbb084;font-family:Georgia,Times New Roman,serif;font-style:italic}.era-5 .world{background:linear-gradient(#3b3b3b,#1a1a1a)}.era-5 .notice:not(.notice-level){color:#f7f4ea;background:#f2efe624;border-color:#f2efe6;border-radius:0;font-family:Georgia,Times New Roman,serif;font-weight:700}.era-6 .world{background:radial-gradient(at 50% 100%,#4a3418 0%,#1a1208 80%)}.era-6 .notice:not(.notice-level){color:#ffb547;font-family:var(--mono);background:#2a1d0c66;border-color:#ffb547}.era-7 .world{background:radial-gradient(#26302a 0%,#0c100d 85%)}.era-7 .notice:not(.notice-level){color:#9cffb0;font-family:var(--mono);text-shadow:0 1px 2px #0a0520,0 0 6px #9cffb080;background:#0f1a1266;border-color:#3c7a4a}.era-8 .world{background:linear-gradient(#1b2340,#0d1226)}.era-8 .notice:not(.notice-level){color:#fff;background:#ffffff24;border-color:#e5e7ebb3;border-radius:14px;font-family:system-ui,-apple-system,sans-serif}.era-9 .world{background:radial-gradient(at 50% 100%,#0b3b4a 0%,#04121a 80%)}.era-9 .notice:not(.notice-level){color:#aef1ff;text-shadow:0 1px 2px #0a0520,0 0 8px #2ad4ffb3;background:#2ad4ff1f;border-color:#2ad4ff}.small-title{font-size:36px}.room-code{justify-content:space-between;align-items:baseline;display:flex}.room-code .code{letter-spacing:.12em;color:var(--gold);font-size:48px;line-height:.9}.players{gap:6px;margin:0;padding:0;list-style:none;display:grid}.players li{background:var(--card-2);border-radius:8px;align-items:center;gap:6px;padding:8px 10px;font-weight:800;display:flex}.players li.away{opacity:.5}.field{gap:6px;display:grid}input{border:1px solid var(--line);background:var(--bg-2);border-radius:8px;padding:10px 12px;font-weight:800}.join-row{gap:8px;display:flex}.code-input{min-width:0;font-family:var(--pixel);letter-spacing:.2em;text-transform:uppercase;flex:1;padding:4px 12px;font-size:26px}.warn-text{color:var(--bad);font-weight:800}.gap-text{text-align:right;font-size:13px}.gap-text .gap{margin-left:0}.sprint-text{justify-content:flex-end;gap:4px;font-weight:800;display:flex}.sprint-bar{background:var(--card);border-radius:5px;height:10px;margin:2px 4px 0;position:relative}.sprint-tick{background:var(--line);width:1px;position:absolute;top:1px;bottom:1px}.sprint-dot{border-radius:50%;width:10px;height:10px;margin:-5px 0 0 -5px;transition:left .3s linear;position:absolute;top:50%}.sprint-dot.you{background:var(--gold);z-index:1;box-shadow:0 0 6px #ffd23fb3}.sprint-dot.rival{background:var(--ghost);opacity:.85}.standings{scrollbar-width:none;gap:6px;font-size:12px;display:flex;overflow-x:auto}.standing{background:var(--card);border:1px solid var(--line);white-space:nowrap;border-radius:6px;flex:none;align-items:baseline;gap:4px;padding:3px 8px;display:inline-flex}.standing .rank{font-family:var(--pixel);color:var(--muted);font-size:16px;line-height:1}.standing strong{color:var(--ghost)}.standing small{color:var(--muted)}.standing.you{border-color:var(--gold)}.standing.you strong{color:var(--gold)}.standing.frozen{opacity:.5}.notice-rival{--edge-color:#c58bff99;color:var(--ghost)}.notice-milestone{--edge-color:var(--ghost);color:var(--ghost);font-weight:800}.final{counter-reset:place;gap:6px;margin:0;padding:0;list-style:none;display:grid}.final li{background:var(--card-2);border-radius:8px;grid-template-columns:1fr auto auto;gap:10px;padding:6px 10px;font-weight:800;display:grid}.final li.you{outline:1px solid var(--gold)}.era-10 .notice:not(.notice-level),.era-11 .notice:not(.notice-level),.era-12 .notice:not(.notice-level){color:#aef1ff;text-shadow:0 1px 2px #0a0520,0 0 8px #2ad4ffb3;background:#2ad4ff1f;border-color:#2ad4ff}.era-13 .notice:not(.notice-level),.era-14 .notice:not(.notice-level),.era-15 .notice:not(.notice-level),.era-16 .notice:not(.notice-level){color:#e8d4ff;font-family:var(--mono);letter-spacing:.02em;background:#c58bff1f;border-color:#c58bff}.row-spend{color:var(--muted);margin-top:2px;font-size:11px}.spend strong{color:var(--text)}.tree-view{gap:10px;display:grid}.tree-nav{align-items:center;gap:8px;display:flex}.tree-nav .chip-button{padding:6px 12px}.tree-nav .chip-button:disabled{opacity:.35}.tree-title{text-align:center;flex:1;justify-items:center;line-height:1.15;display:grid}.tree-title strong{font-family:var(--pixel);font-size:24px;font-weight:400}.tree-diagram{background:radial-gradient(ellipse 90% 70% at 50% 100%, #7a4f2e59, transparent 70%), var(--card);border:1px solid var(--line);border-radius:12px;gap:22px;padding:14px 4px 22px;display:grid;position:relative}.tree-lines{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.tree-lines line{stroke:#5a4c9c;stroke-width:3px;stroke-linecap:round}.tree-lines line.lit{stroke:var(--gold)}.tree-row-nodes{flex-wrap:wrap;justify-content:center;gap:8px 6px;display:flex;position:relative}.tree-ground{background:#a68a5c99;border-radius:1px;height:2px;position:absolute;bottom:10px;left:12px;right:12px}.tree-node{border:2px solid var(--line);background:var(--bg-2);min-width:64px;min-height:66px;box-shadow:var(--raised);border-radius:10px;flex:0 82px;align-content:start;justify-items:center;gap:4px;padding:6px 4px;display:grid;position:relative;overflow:hidden}.tree-node .tree-icon{place-items:center;height:24px;display:grid}.tree-mark{background:var(--card-2);width:24px;height:24px;color:var(--muted);border-radius:6px;place-items:center;font-size:14px;font-weight:900;display:grid}.tree-name{text-align:center;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;max-width:100%;font-size:10.5px;font-weight:800;line-height:1.15}.tree-node.kind-weapon{border-color:#ff6b6b}.tree-node.kind-weapon .tree-mark{color:var(--bg);background:#ff6b6b}.tree-node.kind-shield .tree-mark,.tree-node.kind-guard .tree-mark{background:var(--good);color:var(--bg)}.kind-weapon .chip.kind{color:#ff6b6b;border-color:#ff6b6b}.kind-shield .chip.kind,.kind-guard .chip.kind{border-color:var(--good);color:var(--good)}.tree-check{background:var(--gold);width:18px;height:18px;color:var(--bg);border-radius:50%;place-items:center;font-size:11px;font-weight:900;display:grid;position:absolute;top:3px;right:3px}.tree-node.lit{border-color:var(--gold);background:color-mix(in srgb, var(--gold) 16%, var(--bg-2))}.tree-node.ready{border-color:var(--lime);animation:1.4s ease-in-out infinite ready}@keyframes ready{50%{box-shadow:0 0 0 3px #dbf21d59, var(--raised)}}.tree-node.locked{opacity:.5}.tree-node.carried{opacity:.75;border-style:dashed}.tree-node.selected{outline:2px solid var(--accent);outline-offset:2px}.tree-node.kind-root .tree-mark{background:var(--gold);color:var(--bg)}.tree-node.kind-boost .tree-mark{background:var(--accent);color:var(--bg)}.tree-node.kind-automation .tree-mark{background:var(--ghost);color:var(--bg)}.tree-node.kind-safeguard .tree-mark{background:var(--good);color:var(--bg)}.tree-hint{text-align:center}.node-card{background:var(--card);border:1px solid var(--line);border-radius:12px;gap:8px;padding:12px;display:grid}.node-card-head{align-items:center;gap:8px;display:flex}.node-card-head strong{font-size:16px}.node-card p{font-size:13px}.node-card .primary{width:100%}.node-actions{gap:6px;display:grid}.node-actions button{width:100%}.tree-bonus{opacity:.55}.done-text{color:var(--gold);font-weight:900}.puzzle-backdrop{z-index:30;background:#0a0520d1;place-items:start center;padding:16px;display:grid;position:fixed;inset:0;overflow-y:auto}.puzzle-card{text-align:center;width:100%;max-width:420px;margin-block:auto}.puzzle-card .card-chrome{align-items:center}.puzzle-x{color:var(--muted);background:0 0;border:0;padding:0 2px;font-size:18px;line-height:1}.puzzle-title{color:var(--gold);font-size:32px;line-height:.95}.puzzle-story{color:var(--muted);text-align:left;margin:0;font-size:13px}.puzzle-prompt{text-align:left;margin:0;font-weight:800}.puzzle-table-wrap{overflow-x:auto}.puzzle-table{border-collapse:collapse;text-align:left;margin:0 auto;font-size:13px}.puzzle-table th{font-family:var(--mono);letter-spacing:.02em;color:var(--muted);border-bottom:1px solid var(--line);padding:4px 8px;font-size:11px;font-weight:600}.puzzle-table td{vertical-align:middle;border-bottom:1px solid #3a2d8080;padding:5px 8px}.puzzle-show{background:#d9c39a;border-radius:8px;place-items:center;padding:8px;display:grid}.numeral{vertical-align:middle;display:inline-block}.numeral .wedge{fill:#3b2a17}.numeral .glyph{fill:none;stroke:#3b2a17;stroke-width:2.2px;stroke-linecap:round}.numeral .glyph.thin{stroke-width:1.2px}.puzzle-table .numeral,.puzzle-options .numeral{box-sizing:content-box;background:#d9c39a;border-radius:4px;padding:2px 3px}.puzzle-show .numeral{background:0 0}.numeral .impress{fill:#5a4026;stroke:#3b2a17;stroke-width:1px}.numeral .impress.inner{fill:#f0dfb8;stroke:#2a1b0c;stroke-width:1.4px}.puzzle-squares{vertical-align:middle;--sq:16px;gap:2px;display:inline-grid}.puzzle-squares.big{--sq:30px}.puzzle-squares .sq{width:var(--sq);height:var(--sq);font-family:var(--mono);font-size:calc(var(--sq) * .55);color:var(--text,#f4f1e6);background:#3a2d808c;border-radius:3px;place-items:center;font-weight:700;line-height:1;display:grid}.puzzle-squares .sq-filled{background:var(--gold)}.puzzle-squares .sq-check{box-shadow:inset 0 0 0 2px var(--gold);color:var(--gold);background:0 0}.puzzle-squares .sq-rock{background:#6a6a76;box-shadow:inset -3px -3px #0000004d}.puzzle-squares .sq-flag{color:#ff7ac8}.puzzle-squares .sq-rover{color:#2ad4ff}.puzzle-squares .sq-blank{background:0 0}.puzzle-options.list{grid-template-columns:1fr;display:grid}.puzzle-options.list .chip-button{text-align:left}.puzzle-options .chip-button.right,.puzzle-order .chip-button.right{background:var(--good);border-color:var(--good);color:var(--bg)}.puzzle-options .chip-button.wrong,.puzzle-order .chip-button.wrong{background:var(--bad);border-color:var(--bad);color:var(--bg)}.puzzle-explain{border:1px solid var(--line);background:var(--bg-2);text-align:left;border-radius:8px;gap:10px;padding:10px 12px;font-size:14px;display:grid}.puzzle-explain p{margin:0}.puzzle-right-order{text-align:left;color:var(--good);margin:0;padding-left:22px;font-weight:700}.puzzle-end-note{text-align:left}.puzzle-options{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.puzzle-options.grid{grid-template-columns:1fr 1fr;display:grid}.puzzle-options .chip-button{padding:10px 12px;font-size:14px}.puzzle-wrong{margin:0}.puzzle-card button.primary:disabled{opacity:.4}.puzzle-order{text-align:left;gap:6px;margin:0;padding:0;list-style:none;display:grid}.puzzle-order li{border:1px dashed var(--line);border-radius:8px;align-items:center;gap:8px;min-height:40px;padding:2px 8px 2px 2px;display:flex}.puzzle-order li:not(.empty){border-style:solid}.puzzle-order .chip-button{text-align:left;flex:1;padding:8px 10px;font-size:14px}.puzzle-slot{text-align:center;width:28px;font-family:var(--pixel);color:var(--muted);font-size:22px}.puzzle-equation{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;display:flex}.puzzle-side{flex-wrap:wrap;justify-content:center;gap:4px;display:flex}.puzzle-side-term{align-items:center;gap:4px;display:inline-flex}.puzzle-plus{color:var(--muted);font-weight:800}.puzzle-term{background:var(--card-2);border:1px solid var(--line);border-radius:8px;padding:6px 8px;font-weight:800}.puzzle-term.blank{color:var(--muted);border-style:dashed;min-width:40px}.puzzle-term.filled{border-color:var(--accent);color:var(--accent)}.puzzle-arrow{font-family:var(--pixel);color:var(--gold);font-size:28px}.puzzle-sums{border-collapse:collapse;font-family:var(--mono);margin:0 auto;font-size:13px}.puzzle-sums th{text-align:right;color:var(--muted);padding:2px 8px 2px 0;font-weight:600}.puzzle-sums td{white-space:nowrap;padding:2px 4px;font-weight:800}.puzzle-sums .gap{color:var(--accent)}.puzzle-grid{touch-action:manipulation;-webkit-user-select:none;user-select:none;width:min(100%,288px);margin:0 auto}.puzzle-cell{fill:var(--card-2);stroke:var(--line)}.puzzle-tile.turn{cursor:pointer}.puzzle-tile.turn:active .puzzle-cell{fill:var(--line)}.puzzle-pipe{stroke:var(--muted);stroke-width:10px;stroke-linecap:round}.puzzle-joint{fill:var(--muted)}.puzzle-tile.lit .puzzle-pipe,.puzzle-tile.lit .puzzle-joint{stroke:var(--accent);fill:var(--accent)}.puzzle-tile.lit .puzzle-pipe{filter:drop-shadow(0 0 3px var(--accent))}.puzzle-end{stroke:#0a0520;stroke-width:2px}.puzzle-end.from{fill:var(--gold)}.puzzle-end.to{fill:var(--lime)}.puzzle-end-label{font-family:var(--mono);letter-spacing:-.03em;fill:var(--bg);pointer-events:none;font-size:8px;font-weight:800}.puzzle-table td:first-child{white-space:nowrap}main.world.scene-earth{background:#060c16}main.world.scene-orbit,main.world.scene-system,main.world.scene-galaxy{background:#05030c}.scene-shift{transform-origin:50%;position:absolute;inset:0}.scene-shift.shift-out{animation:.55s cubic-bezier(.2,.7,.2,1) shift-out}.scene-shift.shift-in{animation:.55s cubic-bezier(.2,.7,.2,1) shift-in}@keyframes shift-out{0%{opacity:0;transform:scale(2.4)}}@keyframes shift-in{0%{opacity:0;transform:scale(.4)}}.motion-canvas{pointer-events:none;position:absolute;top:0;left:0}.scale-ladder{z-index:2;justify-items:end;gap:4px;display:grid;position:absolute;bottom:52px;right:12px}.scale-ladder button{border:1px solid var(--line);color:var(--muted);letter-spacing:.02em;box-shadow:var(--raised);background:#1c1248cc;border-radius:8px;padding:5px 9px;font-size:11px;font-weight:800;line-height:1.1;position:relative}.scale-ladder button.on{background:var(--gold);border-color:var(--gold);color:var(--bg)}.ladder-dot{background:var(--lime);width:8px;height:8px;box-shadow:0 0 6px var(--lime);border-radius:50%;position:absolute;top:-3px;left:-3px}.back-chip{z-index:2;border:1px solid var(--gold);color:var(--gold);white-space:nowrap;box-shadow:var(--raised);background:#0a0520d9;border-radius:999px;padding:7px 14px;font-size:12px;font-weight:800;position:absolute;top:12px;left:50%;transform:translate(-50%)}.back-chip strong{color:var(--lime)}.type-backdrop{place-items:center}.type-card{border-color:var(--gold);box-shadow:0 0 40px #ffd23f59, var(--raised);animation:.5s cubic-bezier(.2,1.4,.4,1) type-in;position:relative;overflow:visible}.type-title{color:var(--gold);text-shadow:0 4px #0a0520,0 0 24px #ffd23f99;margin:0;font-size:64px;line-height:.9}.type-title small{color:var(--text);text-shadow:none;font-size:22px;display:block}.type-next{text-align:left;background:#ffffff0d;border-radius:8px;gap:2px;padding:8px 10px;display:grid}.type-burst{pointer-events:none;width:0;height:0;position:absolute;top:110px;left:50%}.type-burst span{background:var(--c);width:6px;height:6px;box-shadow:0 0 8px var(--c);opacity:0;animation:1.4s ease-out forwards type-spark;position:absolute}@keyframes type-spark{0%{opacity:1;transform:translate(0)}70%{opacity:1}to{opacity:0;transform:translate(var(--x), calc(var(--y) + 30px))}}@keyframes type-in{0%{opacity:0;transform:scale(.6)}}.bank{box-sizing:border-box;gap:16px;max-width:720px;height:100%;margin:0 auto;padding:24px 16px 64px;display:grid;overflow-y:auto}.bank-level{gap:12px;display:grid}.bank-level h2{color:var(--gold);margin:16px 0 0;font-size:28px}.bank-sample{gap:8px;padding:14px;display:grid}.bank-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.bank-head h3{margin:0;font-size:22px}.bank-gimmick{color:var(--accent);margin:0;font-weight:700}.bank-why{border-top:1px solid var(--line);margin:4px 0 0;padding-top:8px;font-size:14px}.puzzle-show:has(.puzzle-squares){background:0 0}.tabs button.sabotage-tab{color:#ff8a8a}.targets{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.row.weapon{border-color:#ff6b6b73}.row.weapon .buy{color:var(--bg);background:#ff6b6b;border-color:#ff6b6b}.row-text{color:var(--text);margin-top:2px;font-size:12px}.notice-sabotage{color:#ffb4b4;border-color:#ff6b6b}.chip.warn{color:var(--bad);border-color:var(--bad)}.battle-title,.cataclysm-title{text-align:center;font-size:34px;line-height:1}.battle-sides{grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;display:grid}.battle-side{text-align:center;justify-items:center;gap:8px;display:grid}.battle-vs{color:var(--muted);font-size:28px}.battle-sum{color:var(--muted);font-size:13px}.battle-sum strong{color:var(--text);font-size:30px;display:block}.battle-result{text-align:center;font-size:30px}.battle-result.good{color:var(--good)}.battle-result.bad{color:var(--bad)}.battle-card.won{border-color:var(--good)}.battle-card.lost,.cataclysm-card{border-color:var(--bad)}.cataclysm-title{color:#ff8a5a}.die{background:#f5f2ff;border-radius:10px;grid-template-rows:repeat(3,12px);grid-template-columns:repeat(3,12px);gap:4px;padding:8px;display:grid;box-shadow:0 4px #a99fd8}.die span{border-radius:50%}.die .pip{background:#140c33}.die.rolling{animation:.18s linear infinite tumble}@keyframes tumble{0%{transform:rotate(0)}50%{transform:rotate(14deg)translateY(-4px)}to{transform:rotate(0)}}.rows-head{padding:8px 2px 0}.row.defense{border-color:#3ee08f73}.defense-glyph{color:var(--good);text-align:center;font-size:22px}.home{max-width:760px;padding:calc(16px + env(safe-area-inset-top)) 16px 32px;grid-template-columns:minmax(0,1fr);gap:22px;margin:0 auto;display:grid;overflow-x:hidden}.home-top{align-items:center;min-height:44px;display:flex}.brand-link{color:var(--text);border-radius:6px;align-items:center;gap:8px;text-decoration:none;display:inline-flex}.brand-link img{width:auto;height:22px;display:block}.brand-play{font-family:var(--pixel);letter-spacing:.08em;text-transform:uppercase;border:1.5px solid var(--line);color:var(--muted);border-radius:4px;padding:3px 7px 2px;font-size:1.05rem;line-height:1}.brand-link:hover .brand-play{color:var(--text);border-color:var(--muted)}.hero{text-align:center;justify-items:center;gap:14px;display:grid}.climb{align-items:flex-end;gap:3px;max-width:100%;height:74px;display:flex}.climb-step{background:var(--card);border:1.5px solid var(--line);width:31px;height:31px;box-shadow:var(--raised);transform:translateY(calc(var(--i) * -4px));border-radius:8px;place-items:center;display:grid}.logo{color:var(--text);text-transform:uppercase;letter-spacing:.04em;flex-wrap:wrap;justify-content:center;gap:0 .22em;font-size:clamp(2.8rem,13vw,5.6rem);line-height:.85;display:flex}.logo .hl{background:var(--gold);color:var(--bg);border-radius:.1em;padding:.06em .18em 0;box-shadow:0 .07em #b8901c}.tagline{color:var(--muted);max-width:36ch;font-size:1.05rem}.doors{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;display:grid}.door{border-radius:var(--r);background:var(--card);border:1.5px solid var(--line);min-height:210px;box-shadow:var(--raised);text-align:left;flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:6px;padding:20px;transition:transform .12s,box-shadow .12s;display:flex}.door .sprite-icon{margin-bottom:auto}.door:hover{transform:translateY(-2px)}.door:active{transform:translateY(2px)}.door-title{font-size:clamp(2.2rem,8vw,2.7rem);line-height:1}.door-sub{color:var(--muted);font-size:.95rem}.door-solo{background:var(--gold);border-color:var(--gold);color:var(--bg);box-shadow:0 5px #b8901c}.door-solo .door-sub{color:#4a3a05}.door-multi{border-color:color-mix(in srgb, var(--accent) 45%, var(--line))}.setup{gap:16px}.setup .card-chrome .link{color:var(--muted);font:inherit;background:0 0;border:0;padding:0}.divider{align-items:center;gap:12px;margin:0;font-size:1.6rem;line-height:1;display:flex}.divider:after{content:"";background:repeating-linear-gradient(90deg, var(--line) 0 6px, transparent 6px 10px);flex:1;height:2px}.how{gap:12px;display:grid}.how-steps{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.how-steps li{border-radius:var(--r);background:var(--card);border:1px solid var(--line);box-shadow:var(--raised);color:var(--muted);flex-direction:column;gap:6px;padding:16px;font-size:14px;line-height:1.45;display:flex}.how-steps strong{color:var(--text)}.how-num{color:var(--gold);font-size:2.2rem;line-height:1}.site-foot{border-top:1.5px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;padding-top:20px;font-size:.85rem;display:flex}.site-foot a{color:var(--muted);text-decoration:none}.site-foot a:hover{color:var(--text)}.site-foot nav{gap:16px;display:flex}.site-foot-brand{align-items:center;gap:8px;font-weight:800;display:inline-flex}.site-foot-brand img{width:auto;height:22px}.limin-mark{flex:none;font-size:.95rem;line-height:1}.limin-line{color:var(--muted);margin:0;font-size:.85rem;font-weight:800}.limin-line.saved{color:var(--text)}.limin-line.invite{border-radius:var(--r);border:1px solid var(--gold);background:var(--card-2);color:var(--text);flex-wrap:wrap;justify-content:center;gap:4px 8px;padding:10px 12px;text-decoration:none;display:flex}.limin-line.invite strong{color:var(--gold)}button.limin-line{text-align:left;background:0 0;border:none;width:100%;padding:0;display:block}button.limin-line strong{color:var(--gold);white-space:nowrap}button.limin-line:hover strong{text-decoration:underline}.stats-link{border:1px solid var(--line);background:var(--card);color:var(--text);box-shadow:var(--raised);border-radius:999px;align-items:center;gap:6px;margin-left:auto;padding:8px 12px;font-size:.9rem;font-weight:800;display:inline-flex}.stats-link:hover{border-color:var(--gold)}.stats-sheet{z-index:30;overscroll-behavior:contain;background:radial-gradient(ellipse 120% 60% at 50% -10%, #33197f 0%, var(--bg) 65%), var(--bg);position:fixed;inset:0;overflow-y:auto}.stats-page{max-width:640px;padding-bottom:max(48px, env(safe-area-inset-bottom));gap:16px}.stats-top{justify-content:space-between}.stats-top .link{padding:8px 0}.stats-head{gap:6px;display:grid}.stats-head h1:focus{outline:none}.stats-status{text-align:center;padding:24px 0}.stats-get{border-radius:var(--r);background:var(--lime);color:var(--bg);box-shadow:var(--raised);justify-self:start;padding:10px 16px;font-weight:800;text-decoration:none}.stats-totals{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.stats-total{border-radius:var(--r);background:var(--card);border:1px solid var(--line);box-shadow:var(--raised);flex-direction:column;gap:6px;padding:12px 12px 10px;display:flex}.stats-total strong{color:var(--gold);font-variant-numeric:tabular-nums;font-size:2.4rem;line-height:.9}.stats-card{gap:4px}.stats-card .card-chrome{margin-bottom:8px}.stats-rows,.stats-board,.stats-recent{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.stats-rows li,.stats-recent li{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.stats-rows li:first-child,.stats-recent li:first-child{border-top:none}.stats-rows span{color:var(--muted)}.stats-rows strong{text-align:right}.stats-board{gap:6px;margin-bottom:4px}.stats-board li{background:var(--card-2);border-radius:8px;align-items:center;gap:12px;padding:8px 12px;display:flex}.stats-board li.me{outline:1px solid var(--gold)}.stats-rank{color:var(--muted);min-width:1.1em;font-size:1.5rem;line-height:1}.stats-board-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:800;overflow:hidden}.stats-board-num{color:var(--muted);white-space:nowrap;font-size:.85rem}.stats-board-num strong{color:var(--text)}.stats-recent-main,.stats-recent-result{flex-direction:column;gap:2px;min-width:0;display:flex}.stats-recent-result{flex:none;align-items:flex-end}.stats-recent-title{text-overflow:ellipsis;white-space:nowrap;font-weight:800;overflow:hidden}.stats-recent li.won .stats-recent-result strong{color:var(--gold)}@media (width<=520px){.stats-totals{grid-template-columns:repeat(2,1fr)}}
