.game-stage{aspect-ratio:1;isolation:isolate;background:radial-gradient(ellipse at 50% 68%,color-mix(in srgb,var(--soft) 80%,transparent),transparent 68%);border-radius:26px;width:100%;margin:10px 0;position:relative;overflow:hidden}.game-stage-canvas,.game-stage-fallback{position:absolute;inset:0}.game-stage-canvas canvas{pointer-events:none;width:100%;height:100%;display:block}.game-stage-fallback{flex-wrap:wrap;justify-content:center;align-items:center;gap:20px;padding:25px;display:flex}.game-stage-fallback .die-cube{width:65px;height:65px}.game-stage[data-renderer=webgl]+.stage-touch{background:0 0}.stage-touch{border-radius:26px;padding:0;position:absolute;inset:0;background:0 0!important;border:0!important}.stage-touch:focus-visible{outline:3px solid var(--primary);outline-offset:-4px}.wheel-wrap,.yut-wrap{position:relative}.wheel-hub{width:16%;height:16%;min-height:44px;top:42%;left:42%}.wheel-hub:focus-visible{outline-offset:6px}.wheel-standby{border:12px solid #e7bd69;border-radius:50%;width:90%;height:90%;position:relative;box-shadow:0 8px #a57c40,0 14px 16px #0002}.wheel-standby svg{border-radius:50%;width:100%;height:100%}.wheel-standby:after{content:"";border-top:30px solid #dc6374;border-left:12px solid #0000;border-right:12px solid #0000;position:absolute;top:-8%;left:46%}.wheel-center-fallback{background:radial-gradient(circle at 30% 20%,#ffa1aa,#d65a70);border-radius:50%;width:18%;height:18%;position:absolute;top:41%;left:41%;box-shadow:0 3px #99504c}.yut-result{text-align:center;min-height:29px;margin:-6px 0 14px;font-size:19px;font-weight:600;display:block}.claw-3d{aspect-ratio:1}.toy-result-emoji{pointer-events:none;font-size:32px;animation:.6s ease-out both claw-prize;position:absolute;bottom:12%;left:12%}.toy-cabinet .owned{animation:none}.toy-cabinet .just-won{animation:.45s ease-out prize-pop}.claw-short-controls{align-items:center;gap:8px;display:flex}.claw-short-controls .claw-control{flex:1;margin:6px 0}.claw-short-controls>button{flex:none;min-height:44px}.yut-fallback{gap:15px;display:flex}.yut-fallback i{color:#875e38;background:linear-gradient(90deg,#c49355,#f3d9ac,#d0a363);border-radius:16px;place-content:center;width:27px;height:140px;font-style:normal;display:grid;box-shadow:3px 6px 5px #0002}.yut-fallback .flat{background:#edd3a5;border-radius:8px}.yut-wrap .game-stage,.dice-stage .game-stage{aspect-ratio:1.12}.dice-sr{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}@keyframes claw-prize{0%{opacity:0;transform:translateY(-70px)rotate(-15deg)scale(.65)}60%{opacity:1;transform:translateY(5px)rotate(10deg)scale(1.1)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.toy-result-emoji,.toy-cabinet .just-won{animation:none}}.game-stage-fallback .toy-glass{height:100%}.game-stage-fallback .toy-glass.phase-1 .toy-arm,.game-stage-fallback .toy-glass.phase-2 .toy-arm{top:215px;left:var(--grab-x)}.game-stage-fallback .toy-glass.phase-3 .toy-arm{top:18px;left:var(--grab-x)}.game-stage-fallback .toy-glass.phase-4 .toy-arm,.game-stage-fallback .toy-glass.phase-5 .toy-arm{top:18px;left:8%}.game-stage-fallback .phase-5 .held-toy{animation:.5s ease-in both toy-release}@keyframes toy-release{to{transform:translateY(230px)rotate(15deg)}}@media (prefers-reduced-motion:reduce){.game-stage-fallback .phase-5 .held-toy{animation:none}}.game-stage:not([data-renderer=webgl]) .game-stage-canvas{visibility:hidden}.stage-loading{place-content:center;display:grid;position:absolute;inset:0}.stage-spinner{border:3px solid var(--line);border-top-color:var(--primary);border-radius:50%;width:28px;height:28px;animation:.7s linear infinite stage-wait;display:block}.revolver-stage{aspect-ratio:1.15}.revolver-turn{justify-content:center;align-items:center;gap:12px;height:80px;margin:-10px 0 12px;display:flex}.revolver-turn>span{font-size:45px;line-height:1}.revolver-turn strong{font-size:19px;animation:.28s ease-out revolver-reveal}.revolver-turn.is-hit>span{animation:.45s ease-out revolver-reveal}.revolver-fallback{font-size:120px}@keyframes stage-wait{to{transform:rotate(360deg)}}@keyframes revolver-reveal{0%{opacity:0;transform:scale(.5)rotate(-8deg)}65%{transform:scale(1.15)rotate(4deg)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.stage-spinner,.revolver-turn strong,.revolver-turn.is-hit>span{animation:none}}.revolver-roster{flex-wrap:wrap;place-content:center;gap:4px;width:min(100%,280px);height:80px;margin:-10px auto 12px;display:flex}.revolver-roster>span{text-align:center;flex:0 0 calc(16.6667% - 4px);font-size:30px;line-height:1.12}.revolver-turn{isolation:isolate;position:relative}.revolver-turn strong{font-size:18px;font-weight:600}.revolver-turn .revolver-sparkles{pointer-events:none;font-size:22px;position:absolute;inset:0}.revolver-sparkles i{opacity:0;font-style:normal;position:absolute;top:35%;left:48%}@media (prefers-reduced-motion:no-preference){.revolver-turn.phase-ready .revolver-actor{animation:.3s ease-out revolver-arrive}.revolver-turn.phase-pulling .revolver-actor{animation:.5s ease-in-out revolver-hold}.revolver-turn.phase-safe .revolver-actor{animation:.6s ease-out revolver-safe}.revolver-turn.phase-hit .revolver-actor{animation:.75s cubic-bezier(.2,.8,.2,1) revolver-win}.revolver-sparkles i{animation:.9s ease-out both revolver-spark;animation-delay:calc(var(--i)*40ms)}}@keyframes revolver-arrive{0%{opacity:0;transform:translate(28px)scale(.8)}to{opacity:1;transform:none}}@keyframes revolver-hold{35%{transform:translateY(5px)scale(.9,1.05)}70%{transform:rotate(-7deg)scale(.94)}to{transform:none}}@keyframes revolver-safe{40%{transform:translateY(-14px)rotate(12deg)}to{transform:none}}@keyframes revolver-win{0%{transform:scale(.7)}35%{transform:translateY(-28px)rotate(-12deg)scale(1.3)}65%{transform:translateY(3px)rotate(8deg)}to{transform:none}}@keyframes revolver-spark{0%{opacity:0;transform:translate(0)scale(.2)}25%{opacity:1}to{opacity:0;transform:translate(calc((var(--i) - 1.5)*65px),calc(-45px + var(--i)*12px)) rotate(calc(var(--i)*70deg)) scale(1)}}.coffee-app{width:100%;max-width:480px;margin-inline:auto}.race-settings{justify-content:space-between;gap:8px;margin:0 0 12px;display:flex}.race-stepper{align-items:center;gap:4px;font-size:13px;display:flex}.race-stepper>span{color:var(--muted);margin-right:2px}.race-stepper button{width:44px;height:44px;padding:0;font-size:18px}.race-stepper output{text-align:center;font-variant-numeric:tabular-nums;min-width:36px;font-weight:600}.race-stage{border:1px solid var(--line);background:linear-gradient(150deg,var(--surface),var(--soft));isolation:isolate;border-radius:20px;position:relative;overflow:hidden}.race-stage-top{color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;padding:14px 16px;font-size:13px;display:flex}.race-lanes{flex-direction:column;margin:0 10px;padding-block:4px;display:flex;position:relative}.race-lane{z-index:1;border-bottom:1px solid color-mix(in srgb,var(--line) 40%,transparent);min-height:24px;position:relative}.race-lane-number{color:var(--muted);font-size:10px;position:absolute;top:50%;left:2px;transform:translateY(-50%)}.race-course{position:absolute;inset:0 66px 0 24px}.race-runner{width:44px;height:40px;transition:left 90ms linear;position:absolute;top:50%;transform:translateY(-50%)}.race-emoji{text-align:center;filter:drop-shadow(0 3px 2px #0002);font-size:30px;line-height:40px;display:block}.race-finish{opacity:.35;background:repeating-conic-gradient(var(--muted) 0% 25%,transparent 0% 50%) 0 0/6px 12px;width:6px;position:absolute;top:0;bottom:0;right:35px}.race-rank{color:var(--text);font-size:13px;font-weight:700;line-height:20px;position:absolute;top:11px;left:-18px}.winner .race-emoji{filter:drop-shadow(0 0 5px #edb943)}.loser .race-rank{color:var(--danger)}.race-stage-hint,.race-loser{text-align:center;min-height:44px;margin:0;padding:12px 14px;font-size:13px}.race-loser{color:var(--danger);background:var(--surface);font-weight:600}.race-speed-lines{pointer-events:none;position:absolute;inset:0;overflow:hidden}.race-speed-lines i{opacity:0;background:linear-gradient(90deg,transparent,var(--primary),transparent);width:80px;height:2px;position:absolute;right:-90px}.running .race-speed-lines i{opacity:.14;animation:.9s linear infinite race-scenery}.running .race-emoji{animation:.19s ease-in-out infinite alternate race-stride}.race-actions{gap:8px;margin:12px 0;display:flex}.race-actions .full{flex:1}.race-standings{border:1px solid var(--line);background:var(--surface);border-radius:14px;margin:12px 0;padding:0;list-style:none;overflow:hidden}.race-standings li{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:10px 14px;font-size:13px;display:flex}.race-standings li:last-child{border:0}.race-standings li>span:first-child{min-width:30px;color:var(--muted)}.race-standings strong{color:var(--danger);margin-left:auto;font-size:12px}.race-standings .last{background:var(--danger-bg)}.snack-burst{pointer-events:none;z-index:3;position:absolute;top:24px;left:0}.snack-burst>span{opacity:0;font-size:22px;line-height:1;animation:1.3s cubic-bezier(.2,.6,.3,1) both snack-eject;position:absolute}.coffee-app button:active{transform:scale(.97)}@keyframes race-stride{0%{transform:translateY(2px)rotate(-5deg)}to{transform:translateY(-3px)rotate(5deg)}}@keyframes race-scenery{0%{transform:translate(0)}to{transform:translate(-560px)}}@keyframes snack-eject{0%{opacity:0;transform:translate(0)scale(.3)}12%{opacity:1}65%{opacity:1;transform:translate(var(--fly-x),var(--fly-y)) rotate(-160deg) scale(1)}to{opacity:0;transform:translate(calc(var(--fly-x) - 24px),110px) rotate(-260deg) scale(.6)}}@media (width<=359px){.race-stepper{gap:0;font-size:12px}.race-stepper output{min-width:30px}.race-stepper>span{margin:0}.race-settings{gap:2px}}@media (prefers-reduced-motion:reduce){.race-runner{transition:none}.running .race-speed-lines i,.running .race-emoji,.snack-burst>span{animation:none}.snack-burst{display:none}}.race-motion-option{color:var(--muted);margin:4px 0}.race-stage .race-lanes{margin-top:18px;margin-bottom:18px}.race-stage .race-course{left:12px}.tap-arena{aspect-ratio:.95;background:radial-gradient(circle at 50% 45%,#f3d1a4,var(--soft) 72%);color:#35243f;touch-action:manipulation;-webkit-user-select:none;user-select:none;border:0;border-radius:28px;flex-direction:column;justify-content:center;align-items:center;gap:16px;width:100%;min-height:320px;margin:12px 0;display:flex;position:relative;overflow:hidden}.tap-arena:disabled{opacity:1}.tap-call{font-size:25px;font-weight:700;animation:.3s ease-out tap-call}.tap-character{filter:none;font-size:95px;line-height:1.2}.tap-playing{background:radial-gradient(circle at 50% 48%,#f5d087,var(--soft) 75%)}.tap-playing .tap-character{animation:.14s ease-out tap-press}.tap-count{font-variant-numeric:tabular-nums;font-size:46px;font-weight:700;line-height:1}.tap-count small{margin-left:6px;font-size:16px}.tap-rate{color:#6b5a75;font-size:13px}.tap-done .tap-character{animation:.6s ease-out tap-finish}.tap-done{background:radial-gradient(circle at 50% 45%,#d7eab5,var(--soft) 75%)}.tap-countdown .tap-call{font-size:70px}.tap-countdown .tap-character{font-size:60px}.tap-burst{pointer-events:none;position:absolute;top:50%;left:50%}.tap-burst i{color:var(--primary);rotate:calc(var(--spark)*45deg);font-size:29px;font-style:normal;animation:.3s ease-out both tap-spark;position:absolute}.tap-reset{min-height:44px;margin:10px auto 16px;display:block}@keyframes tap-spark{0%{opacity:1;transform:translateY(-35px)}to{opacity:0;transform:translateY(-130px)scale(.3)}}@keyframes tap-press{0%{transform:translateY(9px)scale(.85)}to{transform:none}}@keyframes tap-call{0%{opacity:0;transform:scale(.6)}70%{transform:scale(1.08)}to{opacity:1;transform:none}}@keyframes tap-finish{0%{transform:translateY(40px)rotate(-20deg)scale(.5)}60%{transform:translateY(-10px)rotate(12deg)scale(1.1)}to{transform:none}}@media (prefers-reduced-motion:reduce){.tap-call,.tap-playing .tap-character,.tap-done .tap-character,.tap-burst i{animation:none}.tap-burst{display:none}}.team-modes{background:var(--surface-soft);border:1px solid var(--line);border-radius:15px;grid-template-columns:1fr 1fr;gap:4px;margin:0 0 16px;padding:4px;display:grid}.team-modes button{background:0 0;border-color:#0000}.team-modes [aria-pressed=true]{background:var(--surface);color:var(--primary);box-shadow:0 2px 5px #0000000c}.team-arena{background:radial-gradient(ellipse at top,var(--soft),transparent 68%);isolation:isolate;border-radius:22px;margin:16px 0;transition:height .4s;position:relative}.team-pod{border:1px solid color-mix(in srgb,hsl(var(--team-hue) 60% 65%) 45%,var(--line));background:linear-gradient(135deg,color-mix(in srgb,hsl(var(--team-hue) 70% 75%) 12%,var(--surface)),var(--surface));width:calc(50% - 6px);height:112px;box-shadow:0 5px 0 color-mix(in srgb,hsl(var(--team-hue) 60% 65%) 20%,var(--bg));pointer-events:none;border-radius:22px;transition:top .4s;position:absolute}.team-pod:nth-child(2n){margin-left:6px}.team-pod h2{color:var(--text);margin:10px 14px;font-size:12px;font-weight:600}.team-token{text-align:center;z-index:2;filter:drop-shadow(0 3px 2px #0002);width:34px;height:34px;font-size:28px;line-height:34px;transition:left .7s cubic-bezier(.22,.75,.25,1),top .7s cubic-bezier(.22,.75,.25,1);position:absolute;transform:translate(-50%)}.team-token>span{display:block}.team-token.hopping>span{animation:team-hop .7s var(--hop-delay) both}@keyframes team-hop{0%,to{transform:translateY(0)rotate(0)}25%{transform:translateY(-24px)rotate(-14deg)scale(1.15)}65%{transform:translateY(-12px)rotate(10deg)}88%{transform:translateY(2px)scale(1.1,.85)}}.team-arena.done .team-token{transition-duration:.4s}.team-arena.idle .team-pod{background:var(--surface);border-style:dashed}@media (prefers-reduced-motion:reduce){.team-arena,.team-pod,.team-token{transition:none}.team-token.hopping>span{animation:none}}.team-arena.idle .team-token{transition:none}.ladder-app{max-width:480px;margin:auto}.ladder-controls{justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.ladder-controls .game-modes{margin:0}.ladder-board-scroll{border:1px solid var(--line);background:linear-gradient(150deg,var(--surface),var(--soft));border-radius:20px;padding:10px 8px;overflow-x:auto}.ladder-entrants,.ladder-outcomes{gap:0;display:grid}.ladder-entrants button{background:0 0;border:0;flex-direction:column;gap:0;min-width:0;min-height:54px;padding:0}.ladder-entrants span{font-size:24px}.ladder-entrants small{color:var(--muted);font-size:10px}.ladder-canvas{width:100%;height:360px;display:block;overflow:visible}.ladder-outcomes>span{text-align:center;min-height:38px;color:var(--muted);justify-content:center;align-items:center;font-size:12px;display:flex}.ladder-outcomes .hit{background:var(--danger-bg);color:var(--danger);border-radius:10px;font-weight:700}.ladder-trail{transition:none}.ladder-status{text-align:center;min-height:24px;color:var(--primary);margin:8px 0;font-size:13px}.ladder-preview{border:1px solid var(--line);background:var(--surface);text-align:center;border-radius:20px;padding:48px 24px;font-size:64px}.ladder-preview>span{overflow-wrap:anywhere;font-size:26px;line-height:2;display:block}@media (prefers-reduced-motion:no-preference){.ladder-traveller{animation:.24s ease-in-out infinite alternate ladder-hop}.ladder-entrants button:hover span{transition:transform .16s;transform:translateY(-3px)}}@keyframes ladder-hop{0%{transform:rotate(-7deg)scale(.94)}to{transform:rotate(7deg)scale(1.07)}}.ladder-map{height:360px;position:relative}.ladder-token{background:var(--surface);pointer-events:none;border:2px solid;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:23px;line-height:1;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 3px 7px #0002}.ladder-token>span{display:block}@media (prefers-reduced-motion:no-preference){.travelling>span{animation:.24s ease-in-out infinite alternate ladder-hop}}.ladder-rails{stroke:color-mix(in srgb,var(--muted) 36%,var(--line))}.wheel-wrap .wheel-hub{z-index:2;border:0;border-radius:50%;width:16%;height:16%;min-height:44px;padding:0;position:absolute;top:42%;left:42%;background:0 0!important}.wheel-hub:disabled{opacity:1}.wheel-answer{text-align:center;overflow-wrap:anywhere;min-height:50px;margin:8px 0 15px;font-size:18px;font-weight:600;animation:.35s ease-out wheel-answer}.wheel-answer span{font-size:50px;line-height:1.2}.wheel-entry{border:1px solid var(--line);background:var(--surface);width:100%;color:var(--text);font:inherit;resize:vertical;border-radius:13px;padding:12px;line-height:1.6;display:block}.wheel-mode{margin-top:4px}.wheel-standby svg{transition:transform 3s cubic-bezier(.12,.68,.12,1)}.wheel-wrap:not(.is-spinning) .wheel-standby svg{transition:none}@keyframes wheel-answer{0%{opacity:0;transform:translateY(-8px)scale(.8)}70%{transform:scale(1.08)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.wheel-answer{animation:none}.wheel-standby svg{transition:none}}.draw-controls{gap:8px;margin:12px 0;display:grid}.draw-scene{background:radial-gradient(ellipse at 50% 70%,var(--soft),transparent 65%);border-radius:24px;flex-wrap:wrap;justify-content:center;align-items:center;gap:18px;min-height:260px;margin:16px 0;padding:25px 10px;display:flex}.draw-dice{perspective:400px;gap:22px}.draw-dice .die-cube{width:72px;height:72px}.dice-total{text-align:center;margin:14px 0;font-size:16px;font-weight:600}.draw-idle{opacity:.7;font-size:75px}.draw-cloud{flex-wrap:wrap;justify-content:center;gap:12px;max-width:100%;display:flex}.draw-cloud>span{font-size:38px;display:inline-block}.drawing .draw-cloud>span{animation:.35s ease-in-out infinite alternate draw-hop;animation-delay:calc(var(--draw-i)*-.08s)}.draw-results{flex-wrap:wrap;justify-content:center;gap:8px;max-width:100%;display:flex}.draw-results>span{overflow-wrap:anywhere;background:var(--surface);border:1px solid var(--line);animation:.35s ease-out both draw-land;animation-delay:calc(min(var(--draw-i),10)*25ms);border-radius:17px;padding:12px;font-size:25px;font-weight:600}.draw-random .draw-results>span{font-size:38px}.draw-places{flex-direction:column;gap:22px}.travel-globe{font-size:110px;display:block}.drawing .travel-globe{animation:.7s linear travel-spin}.travel-destination{overflow-wrap:anywhere;text-align:center;font-size:18px;animation:.3s ease-out draw-land}.direction-scene{aspect-ratio:1;place-content:center;width:100%;margin:14px 0;display:grid;position:relative}.direction-ring{border:1px solid var(--line);background:repeating-conic-gradient(from -1deg,var(--line) 0deg 2deg,transparent 2deg 30deg);border-radius:50%;position:absolute;inset:10%;mask:radial-gradient(#0000 66%,#000 67%)}.direction-arrow{color:var(--primary);filter:drop-shadow(0 6px 3px #0002);font-size:180px;line-height:1;transition:transform 1.05s cubic-bezier(.15,.7,.2,1);display:block;rotate:-90deg}.quiet-option{justify-self:end;font-size:12px}@keyframes draw-hop{to{transform:translateY(-25px)rotate(12deg)}}@keyframes draw-land{0%{opacity:0;transform:translateY(-25px)scale(.7)}70%{transform:translateY(3px)scale(1.06)}to{opacity:1;transform:none}}@keyframes travel-spin{to{transform:rotateY(360deg)}}@media (prefers-reduced-motion:reduce){.drawing .draw-cloud>span,.draw-results>span,.drawing .travel-globe,.travel-destination{animation:none}.direction-arrow{transition:none}}.travel-scene{background:radial-gradient(ellipse,var(--soft),transparent 72%);border-radius:26px;flex-direction:column;justify-content:center;align-items:center;gap:18px;width:100%;min-height:320px;margin:16px 0;padding:20px 12px;display:flex}.travel-flag{font-family:Apple Color Emoji,Segoe UI Emoji,sans-serif;font-size:88px;line-height:1.3}.travel-drawing .travel-flag{animation:.22s ease-in-out infinite alternate travel-hop}.travel-card{text-align:center;overflow-wrap:anywhere;flex-direction:column;gap:6px;max-width:100%;animation:.35s ease-out draw-land;display:flex}.travel-card strong{font-size:24px;font-weight:600}.travel-card>span{color:var(--muted);font-size:13px}.travel-source{text-align:center;color:var(--muted);margin:15px 0;font-size:10px;line-height:1.6}.travel-source a{color:inherit}.travel-modes{margin-top:10px}@keyframes travel-hop{to{transform:translateY(-7px)rotate(5deg)}}@media (prefers-reduced-motion:reduce){.travel-drawing .travel-flag,.travel-card{animation:none}}.travel-flag img{object-fit:contain;border-radius:5px;width:112px;height:84px;display:block}
