:root{--gold: #e0b03a;--page: #ffffff;--page-rgb: 255 255 255;--page-under: #15171d;--ink: #16181d;--ink-soft: #8b8f99;--rule: #ececed;--btn-bg: #23262e;--btn-bg-hover: #2c3038;--btn-shadow: #0e1015;--btn-ink: #ffffff}:root[data-theme=dark]{--page: #15171d;--page-rgb: 21 23 29;--page-under: #f3f3f6;--ink: #e9eaee;--ink-soft: #868b97;--rule: #272b34;--btn-bg: #e9eaee;--btn-bg-hover: #f7f8fa;--btn-shadow: #05060a;--btn-ink: #15171d}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--page);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,sans-serif;overscroll-behavior:none;transition:background-color .45s ease,color .45s ease}#app{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.shell-stage{flex:1;display:grid;place-items:center;min-height:0;position:relative}.hidden-key{position:absolute;transform:translate(-50%,-50%);z-index:40;padding:6px;font-size:1.1rem;line-height:1;background:none;border:none;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .3s ease,filter .3s ease}:root.torch-lit .hidden-key{opacity:1;pointer-events:auto;filter:drop-shadow(0 0 8px rgba(224,176,58,.75))}.hidden-key.taken{animation:key-taken .6s cubic-bezier(.3,.8,.4,1) forwards;pointer-events:none}@keyframes key-taken{0%{opacity:1}to{opacity:0;transform:translate(-50%,-50%) scale(2.1) rotate(22deg)}}.site-footer:empty,.site-level-slot:empty,.site-progress-slot:empty{display:none}.site-header[hidden]{display:none}.site-level-slot{position:relative;z-index:75;padding:14px 22px 2px}.level-strip{margin:0;font-size:.72rem;font-weight:700;letter-spacing:.34em;text-indent:.34em;text-transform:uppercase;text-align:center;color:var(--ink-soft)}.level-parts{display:flex;justify-content:center;gap:9px}.level-parts:not(:empty){margin-top:9px}.part-dot{width:8px;height:8px;border-radius:50%;border:1px solid var(--rule);transition:background .3s ease,border-color .3s ease,transform .3s ease}.part-dot.set{background:var(--gold);border-color:var(--gold);transform:scale(1.2)}.site-progress-slot{position:relative;z-index:75}.site-progress{height:4px;background:var(--rule);overflow:hidden;animation:fade-in .5s ease}.site-progress-fill{display:block;height:100%;background:var(--gold);transform:scaleX(0);transform-origin:left center;transition:transform .7s cubic-bezier(.2,.9,.3,1)}.site-slot{padding:18px 22px;transition:border-color .45s ease;position:relative;z-index:75}.site-header{border-bottom:1px solid var(--rule);display:flex;align-items:center;justify-content:space-between;gap:16px;animation:reveal-down .6s cubic-bezier(.2,.9,.3,1)}.header-main,.header-tools{display:flex;align-items:center}.header-main{gap:20px}.header-tools{gap:10px}.site-nav .nav-link{font-family:inherit;font-size:.78rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);background:none;border:none;padding:6px 4px;cursor:pointer;transition:color .2s}.site-nav .nav-link:hover{color:var(--ink)}.site-footer{border-top:1px solid var(--rule);text-align:center;animation:reveal-up .6s cubic-bezier(.2,.9,.3,1)}.site-title{margin:0;font-size:.92rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--ink)}.title-aside{font-size:.74em;font-weight:500;color:var(--ink-soft)}.site-credit{margin:0;font-size:.76rem;letter-spacing:.11em;color:var(--ink-soft)}.key-count{position:absolute;right:22px;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;gap:5px;font-size:.76rem;font-weight:700;letter-spacing:.06em;color:var(--ink);padding:4px 11px 4px 9px;border:1px solid var(--rule);border-radius:99px;white-space:nowrap}.site-link{color:inherit;text-decoration-color:var(--rule);text-underline-offset:3px;transition:color .2s,text-decoration-color .2s}.site-link:hover{color:var(--ink);text-decoration-color:var(--gold)}.header-tool{order:9;flex:none;width:34px;height:34px;display:grid;place-items:center;font-size:1rem;line-height:1;color:var(--ink);background:transparent;border:1px solid var(--rule);border-radius:50%;cursor:pointer;transition:border-color .2s,transform .2s,color .3s ease}.header-tool:hover{border-color:var(--ink-soft);transform:rotate(-18deg)}.world-toggle{order:8}.torch-toggle{order:9}.theme-toggle{order:10}:root[data-theme=dark] .theme-moon,:root[data-theme=light] .theme-sun{display:none}:root.torch-lit .torch-toggle{border-color:var(--gold);box-shadow:0 0 0 3px #e0b03a29}.modal-backdrop{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:20px;background:#0a0c108c;animation:fade-in .22s ease}.modal{position:relative;width:min(460px,100%);background:var(--page);color:var(--ink);border:1px solid var(--rule);border-radius:14px;padding:30px 28px 26px;box-shadow:0 24px 60px #06080e66;animation:modal-rise .3s cubic-bezier(.2,.9,.3,1)}.modal-title{margin:0 0 14px;font-size:.86rem;font-weight:700;letter-spacing:.24em;text-indent:.24em;text-transform:uppercase}.modal p{margin:0 0 12px;font-size:.92rem;line-height:1.62;color:var(--ink-soft)}.modal p:last-child{margin-bottom:0}.modal-sign{padding-top:4px}.modal-close{position:absolute;top:12px;right:14px;width:30px;height:30px;display:grid;place-items:center;font-family:inherit;font-size:1.3rem;line-height:1;color:var(--ink-soft);background:none;border:none;border-radius:50%;cursor:pointer;transition:color .2s,background .2s}.modal-close:hover{color:var(--ink)}.level-list{display:grid;gap:4px;margin-top:16px;max-height:65vh;overflow-y:auto}.level-row{display:flex;align-items:center;gap:12px;width:100%;font-family:inherit;font-size:.86rem;text-align:left;color:var(--ink);background:none;border:none;border-radius:8px;padding:10px 12px;cursor:pointer;transition:background .15s}.level-row:hover{background:#8c96aa24}.level-name{flex:1}.level-key{flex:none;font-size:.8rem;letter-spacing:.14em;color:var(--ink-soft)}.level-key.got{color:var(--gold)}.level-final{margin-top:6px;padding-top:14px;font-weight:700;letter-spacing:.06em;color:var(--gold);border-top:1px solid var(--rule);border-radius:0 0 8px 8px}.level-final:hover{background:#e0b03a24}@keyframes modal-rise{0%{opacity:0;transform:translateY(14px) scale(.98)}}.site-pet{position:fixed;inset:0;width:100vw;height:100vh;z-index:60;pointer-events:none;animation:fade-in .6s ease}.site-pet-hit{position:fixed;top:0;left:0;width:44px;height:44px;z-index:61;padding:0;background:none;border:none;cursor:pointer;will-change:transform}:root.torch-lit body{touch-action:none}.site-torch{position:fixed;inset:0;width:100vw;height:100vh;z-index:70;pointer-events:none;animation:fade-in .35s ease}@keyframes fade-in{0%{opacity:0}}@keyframes reveal-down{0%{opacity:0;transform:translateY(-100%)}}@keyframes reveal-up{0%{opacity:0;transform:translateY(100%)}}.key-on-floor canvas{display:block;touch-action:none}.takeover{position:fixed;inset:0;z-index:80;pointer-events:none;background:var(--page-under);clip-path:circle(0% at 50% 50%);transition:clip-path .98s cubic-bezier(.45,.05,.55,.95)}.takeover.full{clip-path:circle(150% at 50% 50%)}.takeover.gone{opacity:0;transition:opacity .46s ease}.zip-page canvas{display:block;touch-action:none}.zip-page canvas.grabbable{cursor:grab}.zip-page canvas.grabbing{cursor:grabbing}.torch-hunt canvas{display:block;touch-action:none;cursor:none}.the-door{display:grid;justify-items:center;gap:12px;padding:12px 20px}.door-status{margin:0;font-size:.8rem;font-weight:700;letter-spacing:.28em;text-indent:.28em;color:var(--ink-soft);transition:color .25s ease}.door-status[data-tone=ready]{color:#79dd86}.door-status[data-tone=bad]{color:#c9605a}.door-stage canvas{display:block}.door-try{font-family:inherit;font-size:.82rem;font-weight:700;letter-spacing:.18em;text-indent:.18em;color:var(--btn-ink);background:var(--btn-bg);border:none;border-radius:.6em;padding:.78em 1.9em;cursor:pointer;box-shadow:0 .18em 0 var(--btn-shadow),0 .5em 1.2em #14182042;transition:background .2s,box-shadow .2s,opacity .2s}.door-try:hover:not(:disabled){background:var(--btn-bg-hover)}.door-try:disabled{opacity:.5;cursor:default}.magnet-maze canvas{display:block;touch-action:none;cursor:crosshair}.scratch-seal{display:grid;justify-items:center;gap:10px}.scratch-seal canvas{display:block;touch-action:none;cursor:crosshair}.fishing{display:grid;justify-items:center;gap:12px;padding:16px 20px}.fish-pins{display:flex;gap:11px}.fish-meter{width:208px;max-width:100%;height:9px;border-radius:99px;background:var(--rule);overflow:hidden}.fish-meter-fill{display:block;height:100%;border-radius:99px;background:#d8a72c;transform:scaleX(0);transform-origin:left center;transition:background .3s ease}.fish-meter-fill.high{background:#4cbf76}.fish-status{margin:0;min-height:1.2em;font-size:.78rem;font-weight:700;letter-spacing:.18em;text-indent:.18em;text-align:center;color:var(--ink-soft);transition:color .25s ease}.fish-status[data-tone=good]{color:#e0a838}.fish-status[data-tone=prize]{color:#79dd86}.fish-stage canvas{display:block;touch-action:none}.fish-cast{font-family:inherit;font-size:.86rem;font-weight:700;letter-spacing:.2em;text-indent:.2em;min-width:11em;color:var(--btn-ink);background:var(--btn-bg);border:none;border-radius:.6em;padding:.8em 2.4em;cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;box-shadow:0 .18em 0 var(--btn-shadow),0 .5em 1.2em #14182042;transition:background .2s,box-shadow .2s,opacity .2s}.fish-cast:hover:not(:disabled){background:var(--btn-bg-hover)}.fish-cast:active:not(:disabled){transform:translateY(.14em);box-shadow:0 .04em 0 var(--btn-shadow),0 .2em .6em #1418204d}.fish-cast:disabled{opacity:.5;cursor:default}.lockpick{display:grid;justify-items:center;gap:14px;padding:20px}.pick-status{margin:0;font-size:.8rem;font-weight:700;letter-spacing:.34em;text-indent:.34em;transition:color .25s ease}.pick-pins{display:flex;gap:11px}.pin{width:9px;height:9px;border-radius:50%;border:1px solid var(--rule);transition:background .3s ease,border-color .3s ease,transform .3s ease}.pin.set{background:#e0a838;border-color:#e0a838;transform:scale(1.2)}.pick-status[data-heat="0"]{color:#6c8099}.pick-status[data-heat="1"]{color:#6f93b4}.pick-status[data-heat="2"]{color:#82a39c}.pick-status[data-heat="3"]{color:#c0a765}.pick-status[data-heat="4"]{color:#e0a838}.pick-status[data-heat="5"]{color:#f5c343}.pick-status[data-heat=fail]{color:#c9605a}.pick-status[data-heat=open]{color:#79dd86}.pick-stage canvas{display:block;touch-action:none;cursor:grab}.pick-stage canvas:active{cursor:grabbing}.pick-try{font-family:inherit;font-size:.86rem;font-weight:700;letter-spacing:.2em;text-indent:.2em;color:var(--btn-ink);background:var(--btn-bg);border:none;border-radius:.6em;padding:.78em 2.2em;cursor:pointer;box-shadow:0 .18em 0 var(--btn-shadow),0 .5em 1.2em #14182042;transition:background .2s,box-shadow .2s,opacity .2s}.pick-try:hover:not(:disabled){background:var(--btn-bg-hover)}.pick-try:active:not(:disabled){transform:translateY(.14em);box-shadow:0 .04em 0 var(--btn-shadow),0 .2em .6em #1418204d}.pick-try:disabled{opacity:.5;cursor:default}.creator-combo{display:grid;justify-items:center;gap:24px;padding:24px}.padlock{display:grid;justify-items:center}.padlock-shackle{width:160px;height:124px;overflow:visible;fill:none;stroke:#8d95a2;stroke-width:15;stroke-linecap:round;transform-origin:75% 95%;transition:transform .55s cubic-bezier(.2,1.55,.4,1)}.padlock.open .padlock-shackle{transform:translateY(-10px) rotate(30deg)}.padlock-body{position:relative;z-index:1;margin-top:-34px;background:linear-gradient(#474e5d,#262b35);border-radius:18px;padding:22px 20px;display:flex;gap:12px;box-shadow:0 14px 34px #080a1066}.dial{display:grid;justify-items:center;gap:6px}.dial-btn{width:46px;height:30px;font-family:inherit;font-size:.72rem;line-height:1;color:#98a0ae;background:#1d212a;border:1px solid #363c49;border-radius:8px;cursor:pointer}.dial-btn:hover{color:#d2d8e2}.dial-btn:active{transform:translateY(1px)}.dial-window{width:54px;height:62px;background:#0e1116;border:1px solid #3b414f;border-radius:10px;display:grid;place-items:center;overflow:hidden}.dial-digit{font-size:1.9rem;font-weight:700;font-variant-numeric:tabular-nums;color:#d8a72c}.dial-digit.rolling{animation:digit-roll .19s ease-out}.padlock.open .dial-digit{color:#79dd86}@keyframes digit-roll{0%{transform:translateY(-70%);opacity:0}}.nine-presses{display:grid;place-items:center;width:100%;height:100%;padding:20px;touch-action:none}.troll-button{font-family:inherit;font-size:1rem;font-weight:600;color:var(--btn-ink);background:var(--btn-bg);border:none;border-radius:.6em;padding:.72em 1.6em;max-width:92vw;cursor:pointer;box-shadow:0 .18em 0 var(--btn-shadow),0 .5em 1.2em #14182042;transition:background .2s,box-shadow .2s}.troll-button:hover{background:var(--btn-bg-hover)}.troll-button:active{transform:translateY(.14em);box-shadow:0 .04em 0 var(--btn-shadow),0 .2em .6em #1418204d}.troll-button.pressed{animation:squash .26s ease-out}.roam-pen{position:relative;width:100%;height:100%}.hold-button{top:0;left:0;will-change:transform}.hold-button{position:absolute;display:grid;place-items:center;width:160px;height:160px;padding:0 14px;overflow:hidden;font-family:inherit;font-size:1.15rem;font-weight:700;text-align:center;color:var(--btn-ink);background:var(--btn-bg);border:none;border-radius:18px;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;box-shadow:0 .18em 0 var(--btn-shadow),0 .5em 1.2em #14182042}.hold-button:active{cursor:grabbing}.hold-label{position:relative;z-index:1}.hold-fill{position:absolute;inset:0;background:#e0b03a73;transform:scaleX(0);transform-origin:left center}.hold-button.opened,.troll-button.opened{background:#b98a1e;box-shadow:0 .18em #7d5b0d,0 .5em 1.4em #aa821e6b;animation:pop .5s cubic-bezier(.2,1.7,.4,1)}@keyframes squash{0%{transform:scale(.94,.9)}to{transform:scale(1)}}@keyframes pop{0%{transform:scale(.9)}55%{transform:scale(1.12)}to{transform:scale(1)}}
