:root{--sky:#2454ed;--ink:#fff;--control:#173da7;--focus:#eaa35b;color-scheme:light}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--sky)}
body{font-family:system-ui,-apple-system,"PingFang SC",sans-serif;color:var(--ink)}
#experience,#scene{position:fixed;inset:0}#scene>canvas{display:block;touch-action:none;opacity:0;transition:opacity 450ms ease-out}
#scene>canvas.is-ready{opacity:1}canvas[data-cursor="paper"]{cursor:url("./cursor-paper.svg") 12 12,default}canvas[data-cursor="hand"]{cursor:url("./cursor-hand.svg") 15 16,grab}canvas[data-cursor="hold"]{cursor:url("./cursor-hold.svg") 15 16,grabbing}
button{font:inherit;min-width:44px;min-height:44px;cursor:pointer}button:focus-visible{outline:3px solid var(--focus);outline-offset:4px}
.load-state{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:28px;text-align:center;font-size:15px;letter-spacing:.03em}
.load-state p{margin:0;line-height:1.7;max-width:26em}progress{width:100px;height:3px;border:0;accent-color:white;background:#ffffff40;border-radius:2px}progress::-webkit-progress-bar{background:#ffffff40}progress::-webkit-progress-value{background:white}
#retry{border:1px solid #ffffffa0;border-radius:6px;color:#fff;background:#173da7;padding:8px 18px}
.interaction-hint{position:fixed;left:20px;right:20px;bottom:max(24px,env(safe-area-inset-bottom));margin:0;text-align:center;color:#324d70;font-size:13px;letter-spacing:.08em;line-height:1.6;pointer-events:none;opacity:1;transition:opacity 500ms ease}
.interaction-hint.is-dismissed{opacity:0}
.snowman-control{position:fixed;z-index:1;padding:0;border:0;background:transparent;pointer-events:none;border-radius:45%}
.snowman-control:focus-visible{outline:2px dashed #b46a28;outline-offset:8px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.no-script{position:fixed;inset:40% 20px auto;text-align:center;font-size:16px}
[hidden]{display:none!important}::selection{background:#f2bd80;color:#14357d}
@media(hover:none){canvas[data-cursor]{cursor:auto}.interaction-hint{font-size:12px}}
@media(prefers-reduced-motion:reduce){#scene>canvas,.interaction-hint{transition:none}}
@media(forced-colors:active){#retry{border:1px solid ButtonText}.snowman-control:focus-visible{outline-color:Highlight}}

#scene>canvas{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
#scene>canvas[data-snowball="held"]{cursor:grabbing}
.keyboard-snowball{position:fixed;left:16px;bottom:max(16px,env(safe-area-inset-bottom));clip-path:inset(50%);width:1px;height:1px;overflow:hidden;border:1px solid #abbdd1;background:#fff;color:#28476d;border-radius:6px}
.keyboard-snowball:focus-visible{clip-path:none;width:auto;height:auto;padding:9px 14px;z-index:3}
