:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--ink:#1f1a16;--ink-soft:#5c5249;--surface:#fffcf7f0;--surface-line:#1f1a161f;--accent:#c4602d;--control:#ffffff47;--control-line:#ffffffbf;--control-ink:#fff;--control-pressed:#ffffff8c;--font:ui-rounded, "SF Pro Rounded", system-ui, -apple-system, "Segoe UI", sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--ink:#f3ece4;--ink-soft:#b8ada2;--surface:#1c1815f0;--surface-line:#f3ece424;--accent:#e8874f;--control:#14100c52;--control-line:#ffffff8c;--control-pressed:#14100c8c}}*{box-sizing:border-box}html,body{height:100%;font-family:var(--font);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;background:#9fd6f7;margin:0;overflow:hidden}#game,#game canvas{touch-action:none;display:block;position:fixed;inset:0}#boot{--wall:#9fd6f7;--wall-shade:#1f304247;--house:#0000;--ticket:#f7eedc;--ticket-ink:#3a2a1d;--meter:#c4602d;--open-ms:1.5s;z-index:50;font-family:"Marker Felt", "Chalkboard SE", var(--font);position:fixed;inset:0;overflow:hidden}@media (prefers-color-scheme:dark){#boot{--wall:#17202c;--wall-shade:#00000073;--house:#08060a80;--ticket:#efe4cf}}.boot-stage{width:max(100vw,179.31vh);aspect-ratio:1664/928;width:max(100vw,179.31dvh);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.boot-opening{width:82%;height:80.5%;box-shadow:0 0 0 200vmax var(--wall);z-index:0;position:absolute;top:9.5%;left:9%;overflow:hidden}#boot:after{content:"";pointer-events:none;background:radial-gradient(ellipse 60vw 55vh at 50% 48%, transparent 45%, var(--house) 100%), radial-gradient(ellipse at 50% 50%, transparent 60%, var(--wall-shade) 100%);position:absolute;inset:0}#boot.open:after{opacity:0;transition:opacity .4s ease-out}.boot-drape{background:url(/assets/drapes-CLt6lpyd.webp) 0 0/197.6% 100% no-repeat;width:50.6%;position:absolute;top:0;bottom:0}.boot-drape-left{transform-origin:0;z-index:1;background-position:0 0;left:0;box-shadow:6px 0 10px -6px #28060299}.boot-drape-right{transform-origin:100%;background-position:100% 0;right:0}.boot-valance{z-index:2;aspect-ratio:1664/200;filter:drop-shadow(0 4px 5px #28060273);background:url(/assets/valance-Z2UcI0lq.webp) 0 0/100% 100% no-repeat;width:102%;position:absolute;top:-3%;left:-1%}.boot-frame{filter:drop-shadow(0 6px 10px #1e120859);width:100%;height:100%;position:absolute;inset:0}.boot-sun{transform-origin:50% 100%;filter:drop-shadow(0 4px 6px #1e12084d);width:8.5%;animation:3.4s ease-in-out infinite boot-sun;position:absolute;top:7%;right:1.2%}.boot-bunting{transform-origin:50% 0;filter:drop-shadow(0 5px 5px #1e12084d);width:56%;animation:4.2s ease-in-out infinite boot-sway;position:absolute;top:-3.5%;left:22%}.boot-title{z-index:3;justify-items:center;gap:clamp(8px,2.2vh,22px);width:min(40%,58vw);display:grid;position:absolute;top:56%;left:50%;transform:translate(-50%,-50%)}.boot-wordmark{filter:drop-shadow(0 10px 12px #1e040073);width:100%;animation:.95s cubic-bezier(.3,.9,.35,1.25) .12s both boot-drop}.boot-ticket,.boot-start,.boot-new{background:var(--ticket);min-width:11em;color:var(--ticket-ink);font:inherit;letter-spacing:.02em;filter:drop-shadow(0 3px 3px #1e040066);border:0;border-radius:3px;padding:.55em 1.6em;font-size:clamp(15px,2.4vh,24px);position:relative;transform:rotate(-2deg);-webkit-mask:radial-gradient(circle at 0,#0000 .42em,#000 .45em) 0/51% 100% no-repeat,radial-gradient(circle at 100%,#0000 .42em,#000 .45em) 100%/51% 100% no-repeat;mask:radial-gradient(circle at 0,#0000 .42em,#000 .45em) 0/51% 100% no-repeat,radial-gradient(circle at 100%,#0000 .42em,#000 .45em) 100%/51% 100% no-repeat}.boot-ticket{height:2.2em;animation:.4s ease-out .9s both boot-fade}.boot-meter{background:#3a2a1d2e;border-radius:1em;height:.38em;margin-top:-.19em;position:absolute;top:50%;left:1.4em;right:1.4em;overflow:hidden}.boot-bar{background:var(--meter);transform-origin:0;transition:transform .2s ease-out;position:absolute;inset:0;transform:scaleX(0)}#boot:not(.loading):not(.ready) .boot-bar{width:30%;animation:1.2s ease-in-out infinite alternate boot-scan;transform:none}.boot-start{cursor:pointer;animation:1.6s ease-in-out infinite boot-pulse}.boot-start:focus-visible,.boot-new:focus-visible{outline:3px solid var(--meter);outline-offset:4px}#boot.ready .boot-ticket{display:none}#boot.ready .boot-stage,#boot.ready .boot-drape,#boot.ready .boot-title,#boot.ready .boot-valance{will-change:transform, opacity}#boot.open{pointer-events:none}#boot.open .boot-title{opacity:0;transition:transform .46s cubic-bezier(.4,0,.7,.3),opacity .46s ease-in;transform:translate(-50%,-190%)}#boot.open .boot-drape-left{animation:boot-part-left calc(var(--open-ms) * .75) cubic-bezier(.45, .05, .2, 1) both}#boot.open .boot-drape-right{animation:boot-part-right calc(var(--open-ms) * .75) cubic-bezier(.45, .05, .2, 1) both}#boot.open .boot-valance{transition:transform .52s cubic-bezier(.55, 0, .6, 1) calc(var(--open-ms) * .45);transform:translateY(-130%)}#boot.open .boot-stage{transition:transform calc(var(--open-ms) * .45) cubic-bezier(.5, 0, .7, .4) calc(var(--open-ms) * .55), opacity calc(var(--open-ms) * .4) ease-in calc(var(--open-ms) * .6);opacity:0;transform:translate(-50%,-50%)scale(1.22)}@keyframes boot-drop{0%{transform:translateY(-160%)rotate(-5deg)}65%{transform:translateY(4%)rotate(1.5deg)}to{transform:translateY(0)rotate(-1deg)}}@keyframes boot-fade{0%{opacity:0;transform:rotate(-2deg)translateY(10px)}}@keyframes boot-scan{0%{left:0}to{left:70%}}@keyframes boot-pulse{50%{transform:rotate(-2deg)scale(1.05)}}@keyframes boot-sway{0%,to{transform:rotate(-.8deg)}50%{transform:rotate(.8deg)}}@keyframes boot-sun{0%,to{transform:translateY(0)rotate(-4deg)}50%{transform:translateY(-5%)rotate(4deg)}}@keyframes boot-part-left{to{transform:scaleX(.2)}}@keyframes boot-part-right{to{transform:scaleX(.2)}}@media (prefers-reduced-motion:reduce){.boot-wordmark,.boot-ticket,.boot-start,.boot-sun,.boot-bunting{animation:none}#boot.open .boot-stage,#boot.open .boot-title,#boot.open .boot-valance{transition:opacity .3s;transform:translate(-50%,-50%)}#boot.open .boot-title{transform:translate(-50%,-50%)}#boot.open .boot-valance{transform:none}#boot.open .boot-drape-left,#boot.open .boot-drape-right{animation:none}#boot.open{opacity:0;transition:opacity .3s}}#toast{top:max(14px, env(safe-area-inset-top));background:var(--surface);max-width:min(560px,100vw - 32px);color:var(--ink);border:1px solid var(--surface-line);z-index:40;border-radius:12px;padding:10px 16px;font-size:15px;font-weight:600;position:fixed;left:50%;transform:translate(-50%)}#rotate{display:none}@media (orientation:portrait) and (pointer:coarse){#rotate{background:var(--surface);color:var(--ink);z-index:60;place-content:center;justify-items:center;gap:16px;font-size:18px;font-weight:600;display:grid;position:fixed;inset:0}#rotate svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:64px;height:64px}}.touch{display:none}.has-touch .touch{display:block}.pad-zone{left:max(24px, env(safe-area-inset-left));touch-action:none;z-index:20;width:46vw;position:fixed;top:18vh;bottom:0}.pad{border:2px solid var(--control-line);background:var(--control);opacity:0;pointer-events:none;z-index:21;border-radius:50%;width:112px;height:112px;margin:-56px 0 0 -56px;transition:opacity .12s;position:fixed}.pad.active{opacity:1}.pad-knob{background:var(--control-line);border-radius:50%;width:48px;height:48px;margin:-24px 0 0 -24px;position:absolute;top:50%;left:50%}.btn{border:2px solid var(--control-line);background:var(--control);color:var(--control-ink);touch-action:none;z-index:20;border-radius:50%;place-items:center;padding:0;display:grid;position:fixed}.btn svg{fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round}.btn.pressed{background:var(--control-pressed);transform:scale(.94)}.btn-jump{right:max(22px, env(safe-area-inset-right));bottom:max(22px, env(safe-area-inset-bottom));width:92px;height:92px}.btn-jump svg{width:40px;height:40px}.btn-dash{right:calc(max(22px, env(safe-area-inset-right)) + 104px);bottom:calc(max(22px, env(safe-area-inset-bottom)) + 18px);width:72px;height:72px}.btn-dash svg{width:30px;height:30px}.lab-toggle{top:max(12px, env(safe-area-inset-top));right:max(12px, env(safe-area-inset-right));border:1px solid var(--surface-line);background:var(--surface);width:44px;height:44px;color:var(--ink);z-index:30;border-radius:12px;place-items:center;padding:0;display:grid;position:fixed}.lab-toggle[hidden]{display:none}.lab-toggle svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;width:22px;height:22px}.lab-sheet{top:max(12px, env(safe-area-inset-top));right:max(12px, env(safe-area-inset-right));bottom:max(12px, env(safe-area-inset-bottom));background:var(--surface);width:min(340px,100vw - 24px);color:var(--ink);border:1px solid var(--surface-line);z-index:31;-webkit-user-select:none;user-select:none;border-radius:16px;padding:14px 16px 16px;position:fixed;overflow-y:auto;box-shadow:0 12px 40px #0000002e}.lab-sheet[hidden]{display:none}.lab-sheet header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.lab-sheet h2{margin:0;font-size:17px;font-weight:700}.lab-close{width:36px;height:36px;color:var(--ink-soft);background:0 0;border:0;border-radius:10px;font-size:24px;line-height:1}.lab-group{border-top:1px solid var(--surface-line);gap:10px;padding:12px 0;display:grid}.lab-row{color:var(--ink-soft);gap:6px;font-size:13px;display:grid}.lab-check{grid-template-columns:auto 1fr;align-items:center}.lab-row select{font:inherit;border:1px solid var(--surface-line);color:var(--ink);background:0 0;border-radius:10px;padding:8px 10px;font-size:15px}.seg{border:1px solid var(--surface-line);border-radius:10px;display:flex;overflow:hidden}.seg button{min-height:38px;color:var(--ink);font:inherit;background:0 0;border:0;flex:1;font-size:14px}.seg button+button{border-left:1px solid var(--surface-line)}.seg button[aria-checked=true]{background:var(--accent);color:#fff}.seg button:disabled{color:var(--ink-soft);opacity:.5}.lab-slider{color:var(--ink-soft);grid-template-columns:1fr auto;gap:2px 8px;font-size:13px;display:grid}.lab-slider output{font-variant-numeric:tabular-nums;color:var(--ink)}.lab-slider input{width:100%;accent-color:var(--accent);grid-column:1/-1}.lab-actions{border-top:1px solid var(--surface-line);gap:8px;padding-top:12px;display:flex}.lab-actions button{border:1px solid var(--surface-line);min-height:40px;color:var(--ink);font:inherit;background:0 0;border-radius:10px;flex:1;font-size:14px}.lab-version{color:var(--ink-soft);margin:10px 0 0;font-size:12px}.on-map .touch{display:none}.map-ui{pointer-events:none;font-family:var(--font);color:var(--ink);position:fixed;inset:0}.map-world{top:max(14px, env(safe-area-inset-top));left:max(16px, env(safe-area-inset-left));background:var(--surface);border:1px solid var(--surface-line);border-radius:10px;margin:0;padding:8px 16px;font-size:clamp(16px,2.4vw,22px);font-weight:700;position:absolute;box-shadow:0 2px 10px #0000001f}.map-stop{cursor:pointer;pointer-events:auto;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:50%;width:64px;height:64px;position:absolute;top:0;left:0}.map-stop:disabled{cursor:default}.map-stop:focus-visible,.map-stop.chosen{outline:3px solid var(--accent);outline-offset:2px}.map-card{width:max-content;left:0;right:0;bottom:max(16px, env(safe-area-inset-bottom));background:var(--surface);border:1px solid var(--surface-line);pointer-events:auto;border-radius:14px;align-items:center;gap:16px;max-width:calc(100vw - 32px);margin:0 auto;padding:10px 12px 10px 18px;display:flex;position:absolute;box-shadow:0 4px 18px #00000029}.map-card-text{align-items:baseline;gap:10px;min-width:0;display:flex}.map-card-label{color:var(--accent);white-space:nowrap;flex-shrink:0;font-weight:800}.map-card-name{white-space:nowrap;text-overflow:ellipsis;font-size:18px;font-weight:700;overflow:hidden}.map-card-state{color:var(--ink-soft);white-space:nowrap;flex-shrink:0;font-size:14px}.map-play{background:var(--accent);color:#fff;min-height:48px;font:inherit;cursor:pointer;border:0;border-radius:10px;padding:0 22px;font-size:17px;font-weight:800}.map-play:disabled{opacity:.5;cursor:default}.map-play:focus-visible{outline:3px solid var(--ink);outline-offset:2px}.pause-button{top:max(12px, env(safe-area-inset-top));right:calc(max(12px, env(safe-area-inset-right)) + 54px);border:1px solid var(--surface-line);background:var(--surface);width:44px;height:44px;color:var(--ink);z-index:30;border-radius:12px;place-items:center;padding:0;display:none;position:fixed}.in-level .pause-button{display:grid}.pause-button svg{stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;fill:none;width:22px;height:22px}.pause{z-index:60;font-family:var(--font);background:#140e0861;place-items:center;display:grid;position:fixed;inset:0}.pause[hidden]{display:none}.pause-sheet{background:var(--surface);width:min(320px,100vw - 32px);color:var(--ink);border:1px solid var(--surface-line);border-radius:16px;gap:10px;padding:20px;display:grid;box-shadow:0 10px 40px #0000004d}.pause-sheet h2{margin:0 0 4px;font-size:22px}.pause-sheet button{border:1px solid var(--surface-line);min-height:48px;color:var(--ink);font:inherit;cursor:pointer;background:0 0;border-radius:10px;font-size:17px;font-weight:700}.pause-sheet button[data-act=resume]{background:var(--accent);color:#fff;border-color:#0000}.pause-sheet button[hidden]{display:none}.pause-sheet button:focus-visible,.pause-switches input:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.pause-switches{color:var(--ink-soft);justify-content:center;gap:18px;padding-top:6px;display:flex}.pause-switches label{align-items:center;gap:6px;min-height:44px;display:flex}.boot-new{cursor:pointer;opacity:.85;margin-top:.6em;transform:rotate(1.5deg)}
