.card.cookie{width:min(92vw,440px);height:min(92vh,820px);box-sizing:border-box;gap:8px;background:radial-gradient(120% 70% at 50% 0%,#3a2618,#1c140f 55%,#120d0a);border:1px solid rgba(255,210,122,.18)}.cookie-title{display:flex;justify-content:space-between;align-items:center;gap:8px}.cookie-heading{display:flex;align-items:center;gap:8px}.cookie-back{padding:4px 10px}.cookie-give-up{padding:5px 12px;font-size:.85rem;white-space:nowrap}.cookie-meta,.cookie-best{margin-top:-4px}.cookie-status{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:36px}.cookie-hint{flex:1;text-align:left;font-weight:700;font-size:.92rem;padding:7px 10px;border-radius:10px;background:#ffd27a1a;border:1px solid rgba(255,210,122,.3);color:#ffe2a3;transition:background .2s,border-color .2s,color .2s}.cookie-hint.swap{background:#2ec4b624;border-color:#2ec4b680;color:#9ff0e6}.cookie-hint.crumbs{background:#b388ff24;border-color:#b388ff80;color:#d8c4ff}.cookie-hint.warn{background:#e5484d29;border-color:#e5484d80;color:#ffb4b6}.cookie-hint.good{background:#30a46c2e;border-color:#30a46c8c;color:#9fe6c1}.cookie-score{font-weight:800;color:#ffd27a;font-variant-numeric:tabular-nums;white-space:nowrap}.cookie-view{flex:1 1 auto;min-height:0;width:100%;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.cookie-bottom{justify-content:center}.cc-glass{fill:#ffffff08;stroke:#ffffff14}.cc-aim{stroke:#ffd27a47;stroke-width:2;stroke-dasharray:4 6}.cc-peg{fill:#e0b16f;transition:fill .25s}.cc-peg.hit{fill:#fff5d6;filter:drop-shadow(0 0 4px #ffd27a);transition:none}.cc-jar{fill:#ffffff0a;stroke:#fff3;stroke-width:1.5}.cc-lid{fill:#e7b25c;opacity:0;transform-box:fill-box;transform-origin:center;transform:translateY(-8px) scaleX(.6);transition:opacity .2s,transform .3s cubic-bezier(.3,1.6,.5,1)}.cc-lid.on{opacity:1;transform:none}.cc-claw{fill:#aab3bd;stroke:#5b626b;stroke-width:1.5}.cc-next-pill{fill:#ffffff0f;stroke:#ffffff24}.cc-next-label{fill:#9aa3ad;font-size:11px;font-weight:600}.cc-next-later{opacity:.55}.cc-col{fill:#ffffff09;stroke:#ffffff14}.cc-drop-layer,.cc-grid-layer{transition:opacity .5s}.cc-grid-layer{opacity:0}.cookie-view.crumble .cc-drop-layer{opacity:0;pointer-events:none}.cookie-view.crumble .cc-grid-layer{opacity:1}.cc-ck{filter:drop-shadow(0 3px 2px rgba(0,0,0,.45))}.cc-in{transform-box:fill-box;transform-origin:center;transition:transform .15s,filter .45s,opacity .45s}.cc-in.hidden{filter:brightness(0) saturate(0);opacity:.55}.hidden-buckets .cc-jar{fill:#140c088c;stroke:#ffd27a38}.cc-in.selected{transform:scale(1.1);filter:drop-shadow(0 0 5px #2ec4b6) drop-shadow(0 0 2px #fff)}.cc-in.crumbling{animation:cc-crumble .28s ease-in forwards}.cc-in.shake{animation:cc-shake .3s}@keyframes cc-crumble{0%{transform:scale(1);filter:drop-shadow(0 0 6px #ffd27a)}35%{transform:scale(1.18) rotate(-6deg);filter:drop-shadow(0 0 8px #ffd27a)}to{transform:scale(.2) rotate(20deg);opacity:0}}@keyframes cc-shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}.cc-crumb{transform-box:fill-box;transform-origin:center;animation:cc-crumb .55s ease-out forwards}@keyframes cc-crumb{to{transform:translate(var(--dx),var(--dy)) rotate(220deg);opacity:0}}.cc-pop{font-size:20px;font-weight:900;fill:#ffd27a;stroke:#5a3510;stroke-width:3px;paint-order:stroke;pointer-events:none;animation:cc-pop .9s ease-out forwards}.cc-pop.cascade{fill:#ff9a6a;font-size:22px}.cc-pop.swap{fill:#9ff0e6;stroke:#10403b;font-size:17px}.cc-pop.crumbs{fill:#d8c4ff;stroke:#2e2150;font-size:15px}@keyframes cc-pop{0%{transform:translateY(6px);opacity:0}20%{opacity:1}to{transform:translateY(-34px);opacity:0}}@media(prefers-reduced-motion:reduce){.cc-in.crumbling,.cc-in.shake,.cc-crumb,.cc-pop{animation-duration:.01s}}@media(max-width:600px){.play-modal:has(>.card.cookie){padding:0;align-items:stretch}.card.cookie{width:100%;height:100%;min-height:100%;border-radius:0;border-left:0;border-right:0;padding:max(12px,env(safe-area-inset-top)) 12px max(10px,env(safe-area-inset-bottom))}}:root{--panel: rgba(18, 20, 28, .82);--text: #f1f3f5;--muted: #9aa3ad;--accent: #2ec4b6;--dev: #b388ff;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text)}html,body{margin:0;height:100%;overflow:hidden;background:#101218}canvas{display:block}.muted{color:var(--muted);font-size:.9rem}button{font:inherit;font-weight:600;padding:12px 18px;border-radius:10px;border:1px solid rgba(255,255,255,.18);background:#ffffff14;color:var(--text);cursor:pointer}button.primary{background:var(--accent);border-color:var(--accent);color:#06201d}button.small{padding:6px 10px;font-size:.85rem;font-weight:500}button.dev-button{border-color:var(--dev);color:var(--dev)}button:disabled{opacity:.4;cursor:default}.tool-nav{display:flex;justify-content:center;align-items:center;gap:6px;font-size:.9rem;position:relative;z-index:20}.tool-nav-top,.tool-nav-menu>summary{color:var(--muted);text-decoration:none;white-space:nowrap;padding:6px 12px;border-radius:999px;cursor:pointer}.tool-nav-top:hover,.tool-nav-menu>summary:hover{color:var(--accent)}.tool-nav-top[aria-current=page],.tool-nav-menu>summary[aria-current]{color:var(--text);font-weight:600;background:#2ec4b624;box-shadow:inset 0 0 0 1px #2ec4b673}.tool-nav-menu{position:relative}.tool-nav-menu>summary{list-style:none;display:flex;align-items:center;gap:5px}.tool-nav-menu>summary::-webkit-details-marker{display:none}.tool-nav-caret{font-size:.75em;transition:transform .15s}.tool-nav-menu[open] .tool-nav-caret{transform:rotate(180deg)}.tool-nav-list{position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);min-width:190px;max-height:60vh;overflow-y:auto;display:flex;flex-direction:column;padding:6px;border-radius:12px;background:#1b1e24;border:1px solid rgba(255,255,255,.1);box-shadow:0 12px 30px #00000080}.tool-nav-list a{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:8px;color:var(--text);text-decoration:none;white-space:nowrap}.tool-nav-divider{border:0;border-top:1px solid rgba(255,255,255,.1);margin:4px 6px}.tool-nav-list a:hover{background:#ffffff0f}.tool-nav-list a[aria-current=page]{color:var(--accent);font-weight:600;background:#2ec4b61a}.tool-nav-mark{width:12px;font-size:.7em;text-align:center;color:var(--accent)}.tool-nav-gear{font-size:1.15rem;line-height:1;display:inline-block;transition:transform .25s}.tool-nav-settings[open] .tool-nav-gear{transform:rotate(60deg)}.tool-nav-settings .tool-nav-list{left:auto;right:0;transform:none;width:min(260px,calc(100vw - 32px));gap:6px}.tool-nav-toggle{display:flex;justify-content:space-between;align-items:center}.tool-nav-switch{min-width:3em;padding:2px 8px;border-radius:999px;font-size:.85em;font-weight:600;background:#ffffff14;color:var(--muted);transition:background .15s,color .15s}.tool-nav-toggle[aria-pressed=true] .tool-nav-switch{background:#2ec4b633;color:var(--accent)}.tool-nav-status{margin:0;font-size:.85em;white-space:normal}.tool-nav-status:empty{display:none}.play-hud{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:5;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text)}.play-panel{pointer-events:auto;background:var(--panel);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:12px}.play-top{position:absolute;top:max(10px,env(safe-area-inset-top));left:10px;right:10px;display:flex;justify-content:space-between;align-items:center;padding:6px;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}.play-top-buttons{display:flex;flex-wrap:wrap;gap:6px}.play-top button{background:var(--panel)}.play-timer{font-variant-numeric:tabular-nums;font-weight:700;padding:8px 12px;border-radius:10px;background:var(--panel)}.play-inventory{position:absolute;left:50%;bottom:max(14px,env(safe-area-inset-bottom));transform:translate(-50%);max-width:calc(100vw - 24px);display:flex;gap:6px;padding:8px;overflow-x:auto}.play-inventory.empty{padding:8px 14px}.play-inventory .chip{display:flex;align-items:center;gap:6px;padding:8px 12px;white-space:nowrap;font-size:.9rem}.icon{width:14px;height:14px;border-radius:3px;flex:none}.icon.note{background:#efe6cf}.icon.laser{border:2px solid #2ec4b6;box-sizing:border-box;background:#2f3a46}.icon.laser.mirror{background:linear-gradient(135deg,#2f3a46 42%,#e6eef6 42%,#e6eef6 58%,#2f3a46 58%)}.icon.laser.splitter{background:linear-gradient(135deg,#2f3a46 42%,#aad8ff 42%,#aad8ff 58%,#2f3a46 58%)}.icon.laser.prism{background:linear-gradient(90deg,#ff4d4d,#3ddc84,#4d8dff)}.play-inventory .chip.selected{outline:2px solid #2ec4b6;outline-offset:-2px;background:#2ec4b633}.play-toast{position:absolute;left:50%;top:72px;transform:translate(-50%);max-width:86vw;padding:10px 14px;border-radius:10px;background:var(--panel);opacity:0;transition:opacity .25s;text-align:center;font-size:.95rem}.play-toast.visible{opacity:1}.play-modal{position:absolute;top:0;right:0;bottom:0;left:0;display:none;overflow-y:auto;padding:8px 0;box-sizing:border-box;align-items:safe center;justify-content:center;background:#00000059;pointer-events:auto}.play-modal.open{display:flex}.card{width:min(88vw,340px);padding:18px;display:flex;flex-direction:column;gap:12px;text-align:center}.card-title{font-weight:700;font-size:1.1rem}.note-card{background:#efe6cf;color:#2b2620}.note-card button:not(.primary){color:#2b2620}.note-text{font-family:Courier New,monospace;font-size:1.4rem;font-weight:700;white-space:pre-wrap}.swatches{display:flex;justify-content:center;gap:8px}.swatch{width:42px;height:42px;border-radius:8px;display:grid;place-items:center;color:#fff;font-weight:800;text-shadow:0 1px 2px rgba(0,0,0,.6)}.keypad-display{font-family:Courier New,monospace;font-size:2rem;letter-spacing:.4em;padding:8px;border-radius:8px;background:#0d1a12;color:#7cffb2}.keypad-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.keypad-grid button{font-size:1.3rem;padding:14px 0}.shake{animation:shake .35s}@keyframes shake{20%,60%{transform:translate(-8px)}40%,80%{transform:translate(8px)}}.solved-title{font-size:1.6rem;font-weight:800}.solved-time{font-size:2.4rem;font-variant-numeric:tabular-nums;color:var(--accent)}.row{display:flex;gap:8px;justify-content:center}.quit-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:5;display:flex;align-items:center;justify-content:center;background:#0000008c;animation:quit-fade .15s ease-out}.quit-confirm{animation:quit-pop .18s ease-out}.quit-confirm .primary{padding:14px 0;font-size:1.1rem}@keyframes quit-fade{0%{opacity:0}}@keyframes quit-pop{0%{transform:scale(.92);opacity:0}}.card.lockpick,.card.wiring,.card.cryptex,.card.torn,.card.lasers{width:min(94vw,400px);padding:14px;gap:10px;text-align:left}.lockpick-title,.wiring-title,.cryptex-title,.torn-title,.lasers-title{display:flex;justify-content:space-between;align-items:baseline}.lockpick-view,.wiring-view,.lasers-view{width:100%;height:auto;touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab}.lockpick-hint,.wiring-hint,.cryptex-hint,.torn-hint,.lasers-hint{font-size:.85rem;min-height:2.6em;padding:7px 10px;border-radius:10px;background:#2ec4b61f;border:1px solid rgba(46,196,182,.35)}.lockpick-hint.good,.wiring-hint.good,.cryptex-hint.good,.torn-hint.good,.lasers-hint.good{background:#30a46c29;border-color:#30a46c8c}.lockpick-hint.warn,.wiring-hint.warn,.cryptex-hint.warn,.torn-hint.warn,.lasers-hint.warn{background:#e5484d24;border-color:#e5484d80}.lockpick-hint.gold,.cryptex-hint.gold{background:#f5b83d21;border-color:#f5b83d80}.lockpick-gauge{display:flex;justify-content:center}.lockpick-tension{display:flex;align-items:center;gap:10px}.lockpick-slider{flex:1;height:32px;accent-color:#f5f1e6;touch-action:none}.lockpick-hold{touch-action:none;-webkit-user-select:none;user-select:none}.lockpick-hold.held{filter:brightness(1.25);box-shadow:0 0 0 3px #2ec4b673}.lockpick-bottom,.wiring-bottom,.cryptex-bottom,.torn-bottom,.lasers-bottom{display:flex;justify-content:space-between;align-items:center}.lockpick-heading,.wiring-heading,.cryptex-heading,.torn-heading,.lasers-heading{display:flex;align-items:center;gap:8px}.lockpick-back,.wiring-back,.cryptex-back,.torn-back,.lasers-back{padding:4px 12px;font-size:1.2rem;line-height:1.2}.wiring-view{cursor:crosshair}.wiring-progress{display:flex;align-items:center;gap:5px;font-size:.85rem}.wiring-progress .muted{margin-left:4px;white-space:nowrap}.wiring-bottom button{white-space:nowrap}.wiring-dot{width:16px;height:16px}.lasers-progress{display:flex;align-items:center;gap:5px;font-size:.85rem}.lasers-progress .muted{margin-left:4px;white-space:nowrap}.lasers-bottom button{white-space:nowrap}.lasers-dot{width:16px;height:16px}.cryptex-title{align-items:center}.cryptex-give-up{padding:5px 12px;font-size:.85rem;white-space:nowrap}@media(max-width:600px){.play-modal:has(>.card.cryptex){padding:0;align-items:flex-start}.card.cryptex{width:100%;min-height:100%;box-sizing:border-box;border-radius:0;border-left:0;background:#12141c;border-right:0;padding:max(12px,env(safe-area-inset-top)) 14px max(12px,env(safe-area-inset-bottom))}.card.cryptex .cryptex-history{order:1;flex:1;max-height:none;justify-content:flex-start}.card.cryptex .cryptex-keys{order:2}.card.cryptex .cryptex-bottom{order:3}.card.cryptex .cx-key{min-height:46px}}.cryptex-body{display:flex;justify-content:center;align-items:center;padding:6px 0;transition:transform .4s}.cryptex-cap{width:22px;height:118px;background:linear-gradient(90deg,#6e5320,#d6a640,#8a6a2a);border-radius:8px;flex:none;transition:transform .7s cubic-bezier(.3,1.4,.5,1)}.cryptex-body.opened .cryptex-cap.left{transform:translate(-26px)}.cryptex-body.opened .cryptex-cap.right{transform:translate(26px)}.cryptex-rings{display:flex}.cryptex-ring{width:clamp(34px,11vw,48px);height:140px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:2px 0;box-sizing:border-box;background:linear-gradient(180deg,#2b2114,#8a6a2a 22%,#e8c068,#8a6a2a 78%,#2b2114);border-left:2px solid #3d2e14;border-right:2px solid #3d2e14;font-family:Georgia,Times New Roman,serif;font-weight:700;color:#2b1d08;touch-action:none;-webkit-user-select:none;user-select:none;cursor:ns-resize;position:relative;transition:box-shadow .15s}.cryptex-ring:after{content:"";position:absolute;left:3px;right:3px;top:50%;height:38px;margin-top:-19px;border:2px solid rgba(245,241,230,.55);border-radius:6px;pointer-events:none}.cx-arrow{font-size:.6rem;color:#f5f1e6;opacity:.7}.cx-letter{position:relative;line-height:1}.cx-letter.off{font-size:.95rem;opacity:.5}.cx-letter.on{font-size:1.6rem}.cx-letter.correct{color:#0f5a35}.cx-letter.correct.on:after{content:"✓";position:absolute;top:-6px;right:-9px;font-size:.7rem;color:#0f5a35}.cx-letter.elsewhere{text-decoration:underline;text-decoration-color:#7a4d00;text-decoration-thickness:3px;text-underline-offset:3px}.cx-letter.out{opacity:.25;text-decoration:line-through;text-decoration-thickness:2px}.cx-letter.out.on{opacity:.45}.cryptex-ring.flash-correct{box-shadow:inset 0 0 0 3px #30a46c,0 0 14px #30a46ccc}.cryptex-ring.flash-present{box-shadow:inset 0 0 0 3px #d19a1f,0 0 12px #d19a1fb3}.cryptex-ring.flash-absent{box-shadow:inset 0 0 0 3px #3a3f47}.cryptex-body.opened .cryptex-ring{box-shadow:inset 0 0 0 2px #30a46c,0 0 16px #30a46cb3}.cryptex-body.jammed{animation:cryptex-jam .12s linear 8}@keyframes cryptex-jam{0%,to{transform:translate(0)}25%{transform:translate(-4px) rotate(-.6deg)}75%{transform:translate(4px) rotate(.6deg)}}.cryptex-ring.cursor{outline:3px solid #2ec4b6;outline-offset:-3px;z-index:1}.cryptex-ring.nope,.cryptex-body.nope{animation:cryptex-jam .1s linear 3}.cryptex-known{text-align:center;font-size:.9rem}.cryptex-known b{font-family:Courier New,monospace;font-size:1.15rem;letter-spacing:.1em;color:#efe6cf}.cryptex-keys{display:flex;flex-direction:column;gap:5px;align-items:center}.cryptex-key-row{display:flex;gap:4px;width:100%;justify-content:center}.cx-key{flex:1 1 0;max-width:34px;min-width:0;height:40px;padding:0;border-radius:6px;font-weight:700;font-size:.85rem;position:relative;touch-action:manipulation}.cx-key.wide{max-width:54px;flex-grow:1.6;font-size:.78rem}.cx-key.correct{background:#30a46c;color:#fff}.cx-key.elsewhere{background:#d19a1f;color:#fff}.cx-key.elsewhere:after{content:"";position:absolute;bottom:4px;left:50%;width:10px;margin-left:-5px;height:2px;background:#fff}.cx-key.out{background:#1f2328;color:#5c636d}.cx-key.not-here{opacity:.35}.cryptex-history{display:flex;flex-direction:column;gap:5px;align-items:center;max-height:136px;overflow-y:auto}.cryptex-attempt{display:flex;gap:4px;align-items:center}.cx-n{width:18px;color:#6b7280;font-size:.75rem;text-align:right;margin-right:2px}.cx-tile{width:30px;height:30px;border-radius:6px;display:grid;place-items:center;font-weight:800;position:relative;background:#3a3f47;color:#b5bcc6}.cx-tile.correct{background:#30a46c;color:#fff}.cx-tile.correct:after{content:"✓";position:absolute;top:0;right:2px;font-size:.55rem}.cx-tile.present{background:#d19a1f;color:#fff}.cx-tile.present:after{content:"";position:absolute;bottom:3px;left:50%;width:12px;margin-left:-6px;height:2px;border-radius:1px;background:#fff}.cx-tile.reveal{animation:cryptex-flip .3s ease-out both}@keyframes cryptex-flip{0%{transform:rotateX(90deg);background:#2a2f38}to{transform:rotateX(0)}}.uv-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:0;transition:opacity .25s;background:radial-gradient(circle at 50% 50%,#965aff1a 0,#965aff2e 17vmin,#280a5a9e 34vmin,#0c0220cc 75vmax)}.uv-overlay.on{opacity:1;animation:uv-flicker .3s steps(3) 1}@keyframes uv-flicker{0%{opacity:.2}40%{opacity:.9}60%{opacity:.4}to{opacity:1}}.uv-toggle.on{background:#7c4dff;color:#fff;box-shadow:0 0 12px #7c4dffcc}.uv-toggle.found{animation:uv-found 1.1s ease-in-out infinite}@keyframes uv-found{0%,to{box-shadow:0 0 #7c4dffb3}50%{box-shadow:0 0 0 8px #7c4dff00}}.icon.uv{background:#9b5cff;border-radius:3px}.torn-area{position:relative;width:336px;max-width:100%;align-self:center;touch-action:none;-webkit-user-select:none;user-select:none}.torn-sheet{position:absolute;border:2px dashed rgba(239,230,207,.35);border-radius:3px;background:#efe6cf0d;box-sizing:border-box}.torn-guide{position:absolute;background:#efe6cf1f}.torn-guide.v{top:0;bottom:0;width:1px}.torn-guide.h{left:0;right:0;height:1px}.torn-tray-label{position:absolute;left:4px;font-size:.75rem}.torn-piece{position:absolute;background-repeat:no-repeat;cursor:grab;filter:drop-shadow(0 2px 3px rgba(0,0,0,.5));transition:left .18s,top .18s,transform .18s;touch-action:none}.torn-piece.dragging{z-index:3;transition:none;cursor:grabbing;filter:drop-shadow(0 8px 10px rgba(0,0,0,.6)) brightness(1.06)}.torn-piece.right{filter:drop-shadow(0 0 3px #30a46c) drop-shadow(0 0 5px rgba(48,164,108,.7))}.card.torn.mended .torn-piece{clip-path:none!important;filter:drop-shadow(0 0 6px rgba(245,241,230,.6));transition:clip-path .6s}.card.torn.mended .torn-sheet{border-color:#30a46c}.icon.scrap{background:#efe6cf;clip-path:polygon(0 10%,30% 0,60% 12%,100% 0,92% 45%,100% 100%,55% 88%,20% 100%,0 70%)}.map-toggle.on{background:#2ec4b640;box-shadow:inset 0 0 0 2px #2ec4b6}.virtual-loading{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#0c0d10;opacity:0;pointer-events:none;transition:opacity .35s;z-index:5}.virtual-loading.on{opacity:1;pointer-events:auto;transition:none}.virtual-loading-card{display:flex;flex-direction:column;align-items:center;gap:6px;color:#f1f3f5;font-size:1.1rem}.virtual-loading-card b{font-size:1.8rem}.virtual-loading-card span{color:#9aa3ad}
