:root{--red-deep:#7f2622;--red-light:#d65148;--cream-deep:#e6cf9f;--cream-light:#fffaf0;--curry-light:#ffe189;--curry-deep:#c98a1c;--orange-deep:#b9611f;--ink-soft:#292724ad;--scrim:46, 18, 12;--shadow-soft:0 14px 30px #4a1c0a4d;--line:3px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--spring:cubic-bezier(.34, 1.56, .64, 1);--out:cubic-bezier(.22, 1, .36, 1);--hud-height:112px;--bar-height:118px;--stage-left:0px;--stage-width:100vw;--play-top:calc(var(--safe-top) + var(--hud-height));--play-bottom:calc(100vh - var(--safe-bottom) - var(--bar-height))}@supports (height:100dvh){:root{--play-bottom:calc(100dvh - var(--safe-bottom) - var(--bar-height))}}*,:before,:after{box-sizing:border-box}html,body{overscroll-behavior:none;background:#74221e;height:100%;margin:0;overflow:hidden}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}html,body{touch-action:manipulation}body{font-family:var(--font-body);color:var(--charcoal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;font-weight:700;position:fixed;inset:0}#root{height:100dvh;position:fixed;inset:0;overflow:hidden}h1,h2,p,ul{margin:0;padding:0}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border:0;margin:0;padding:0}button:focus-visible{outline:3px solid var(--curry);outline-offset:4px}canvas{display:block}.stage-canvas{touch-action:none;width:100%;height:100%;position:fixed;inset:0}.screen{z-index:10;position:fixed;inset:0}.btn{--face:var(--cream);--edge:var(--cream-deep);--text:var(--charcoal);--lift:7px;border:var(--line) solid var(--charcoal);background:var(--face);min-height:52px;color:var(--text);font-family:var(--font-display);letter-spacing:.04em;white-space:nowrap;box-shadow:inset 0 3px 0 #ffffff73, 0 var(--lift) 0 calc(var(--line) * -1) var(--edge), 0 var(--lift) 0 0 var(--charcoal), 0 calc(var(--lift) + 8px) 18px #46190a52;transition:transform 90ms var(--out), box-shadow 90ms var(--out);border-radius:18px;justify-content:center;align-items:center;gap:8px;padding:0 24px;font-size:20px;font-weight:400;line-height:1;display:inline-flex;position:relative}.btn:active:not(:disabled){transform:translateY(calc(var(--lift) - var(--line)));box-shadow:inset 0 3px 0 #ffffff4d, 0 var(--line) 0 calc(var(--line) * -1) var(--edge), 0 var(--line) 0 0 var(--charcoal), 0 6px 10px #46190a4d}.btn:disabled{cursor:default;opacity:.72}.btn-primary{--face:linear-gradient(180deg, var(--red-light) 0%, var(--red) 58%, #a7322e 100%);--edge:var(--red-deep);--text:var(--cream);text-shadow:0 2px #3c0c0a59}.btn-curry{--face:linear-gradient(180deg, var(--curry-light) 0%, var(--curry) 62%, #eaa72b 100%);--edge:var(--curry-deep)}.btn-soft{--face:#fff4dcf0;--lift:5px;min-height:48px;font-size:17px}.btn-lg{--lift:8px;border-radius:20px;min-height:60px;font-size:24px}.btn-xl{--lift:9px;letter-spacing:.08em;border-radius:26px;min-height:74px;padding:0 44px;font-size:32px}.btn-link{min-height:48px;box-shadow:none;color:var(--cream);text-underline-offset:5px;background:0 0;border:0;border-radius:14px;padding:0 14px;font-size:16px;-webkit-text-decoration:underline #fff4dc73;text-decoration:underline #fff4dc73;text-decoration-thickness:2px}.btn-link:active:not(:disabled){box-shadow:none;opacity:.8;transform:translateY(1px)}.icon-btn{border:var(--line) solid var(--charcoal);background:var(--cream);width:46px;height:46px;color:var(--charcoal);box-shadow:0 4px 0 calc(var(--line) * -1) var(--cream-deep), 0 4px 0 0 var(--charcoal), 0 8px 14px #46190a47;transition:transform 90ms var(--out), box-shadow 90ms var(--out);border-radius:50%;place-items:center;display:inline-grid;position:relative}.icon-btn:after{content:"";border-radius:50%;position:absolute;inset:-6px}.icon-btn:active:not(:disabled){box-shadow:0 2px 0 calc(var(--line) * -1) var(--cream-deep), 0 2px 0 0 var(--charcoal), 0 4px 8px #46190a40;transform:translateY(2px)}.icon-btn.is-muted{color:var(--red)}.corner-mute{top:calc(var(--safe-top) + 12px);right:calc(var(--safe-right) + 14px);z-index:5;position:absolute}.card{border:var(--line) solid var(--charcoal);background:radial-gradient(120% 70% at 50% 0%, var(--cream-light) 0%, #fffaf000 70%), var(--cream);box-shadow:0 6px 0 var(--charcoal), var(--shadow-soft);border-radius:26px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.sticker{--sticker-face:var(--cream);--sticker-depth:var(--red);--sticker-stroke:.16em;--sticker-drop:.15em;white-space:nowrap;line-height:1.1;display:inline-block;position:relative}.sticker-text{color:#0000}.sticker-art{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0;overflow:visible}.sticker.has-halo .sticker-art{filter:drop-shadow(0 4px 6px #3c140852)}.sticker-art text{paint-order:stroke fill;stroke-linejoin:round;stroke-linecap:round}.sticker-halo{fill:var(--cream);stroke:var(--cream);stroke-width:calc(var(--sticker-stroke) * 2.6);transform:translateY(calc(var(--sticker-drop) * .5))}.sticker-depth{fill:var(--sticker-depth);stroke:var(--charcoal);stroke-width:var(--sticker-stroke);transform:translateY(var(--sticker-drop))}.sticker-line{fill:var(--charcoal);stroke:var(--charcoal);stroke-width:var(--sticker-stroke)}.sticker-stop-hi{stop-color:var(--sticker-face-hi,var(--sticker-face))}.sticker-stop-mid{stop-color:var(--sticker-face)}.sticker-stop-lo{stop-color:var(--sticker-face-lo,var(--sticker-face))}.food-icon{flex:none}.is-arming{pointer-events:none}.bump{animation:bump .26s var(--spring)}.toast-pill{left:50%;bottom:calc(var(--safe-bottom) + 22px);z-index:40;border:var(--line) solid var(--charcoal);background:var(--charcoal);max-width:calc(100% - 32px);color:var(--cream);white-space:nowrap;box-shadow:var(--shadow-soft);animation:toast-rise 2.2s var(--out) both;pointer-events:none;border-radius:999px;padding:12px 20px;font-size:15px;position:fixed;transform:translate(-50%)}@keyframes bump{0%{transform:scale(1)}40%{transform:scale(1.26)}to{transform:scale(1)}}@keyframes pop-in{0%{opacity:0;transform:scale(.5)}60%{opacity:1;transform:scale(1.14)}to{opacity:1;transform:scale(1)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes rise-in{0%{opacity:0;transform:translateY(36px)scale(.96)}to{opacity:1;transform:none}}@keyframes drop-in{0%{opacity:0;transform:translateY(-46px)scale(.7)}70%{opacity:1;transform:translateY(4px)scale(1.06)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes toast-rise{0%{opacity:0;transform:translate(-50%,16px)scale(.9)}10%{opacity:1;transform:translate(-50%)scale(1)}85%{opacity:1;transform:translate(-50%)scale(1)}to{opacity:0;transform:translate(-50%,-8px)scale(.98)}}@keyframes fade-out-hold{0%,80%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.bump{animation:none}.btn,.icon-btn{transition:none}.toast-pill{animation-name:fade-out-hold;transform:translate(-50%)}}.bar{top:var(--play-bottom);bottom:0;left:var(--stage-left);width:var(--stage-width);z-index:20;padding:6px 10px calc(var(--safe-bottom) + 8px);pointer-events:none;animation:bar-in .42s var(--out) both;flex-direction:column;gap:4px;display:flex;position:fixed}.bar button{pointer-events:auto}@keyframes bar-in{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}.bar-message{justify-content:center;align-items:center;min-width:0;height:30px;display:flex}.bar-hint{max-width:100%;height:28px;color:var(--cream);font-family:var(--font-display);letter-spacing:.04em;white-space:nowrap;text-overflow:ellipsis;background:#292724a8;border-radius:999px;align-items:center;padding:0 14px;font-size:16px;font-weight:400;transition:opacity .4s;display:inline-flex;overflow:hidden}.bar-hint.is-quiet{opacity:.7}.bar-hint.is-confirm{background:var(--charcoal);color:var(--curry-light);animation:pop-in .24s var(--spring) both}.bar-hint.is-critical{border:2.5px solid var(--charcoal);background:linear-gradient(180deg, var(--red-light), var(--red));color:var(--cream);box-shadow:0 3px 0 var(--charcoal);animation:pop-in .24s var(--spring) both, critical-pulse .64s .24s ease-in-out infinite}@keyframes critical-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.bar-row{flex:1;grid-template-columns:52px 1fr 52px;place-items:start center;min-height:0;display:grid}.cash{border-radius:20px;flex-direction:column;gap:3px;min-width:184px;min-height:62px;padding:0 22px;overflow:hidden}.cash-label{letter-spacing:.08em;font-size:26px;line-height:1}.cash-sub{font-family:var(--font-body);letter-spacing:.06em;opacity:.9;text-shadow:none;font-size:12px;font-weight:700;line-height:1}.cash.is-armed{animation:.64s ease-in-out infinite alternate cash-armed}.cash.is-armed .cash-label{letter-spacing:.04em;font-size:22px}.cash.is-pending{animation:none;transform:translateY(4px)}@keyframes cash-armed{0%{scale:1}to{scale:1.05}}.cash-timer{transform-origin:0;background:#29272473;border-radius:2px;height:3px;animation:linear both cash-timer;position:absolute;bottom:6px;left:18px;right:18px}@keyframes cash-timer{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.cash:disabled{opacity:.55;filter:saturate(.4)}.bar-mute{place-self:center end;width:44px;height:44px}.bar-mute svg{width:21px;height:21px}.charge{--charge-color:#d8cfbd;height:28px;color:var(--cream);white-space:nowrap;background:#292724c7;border-radius:999px;align-items:center;gap:8px;padding:0 12px;font-size:13px;display:inline-flex}.charge.is-good{--charge-color:#a8dc66}.charge.is-over{--charge-color:#ff6a55}.charge-track{border:2px solid var(--charcoal);background:#fff4dc1f;border-radius:7px;width:clamp(120px,40vw,200px);height:14px;position:relative;overflow:hidden}.charge-zone{position:absolute;top:0;bottom:0}.zone-weak{background:#fff4dc1a;left:0}.zone-good{background:#9bcb5c52}.zone-over{background:#ff6a5552}.charge-fill{border-right:3px solid var(--cream);background:var(--charge-color);position:absolute;top:0;bottom:0;left:0}.charge-zone-label{min-width:3.4em;color:var(--charge-color);font-size:14px;font-weight:900}@media (width<=349px){.cash{min-width:164px;padding:0 16px}.bar-hint{padding:0 12px;font-size:15px}}@media (prefers-reduced-motion:reduce){.bar{animation:.2s both fade-in}.cash.is-armed,.bar-hint.is-confirm,.bar-hint.is-critical{animation:none}}.hud{top:0;left:var(--stage-left);width:var(--stage-width);height:var(--play-top);z-index:20;padding:calc(var(--safe-top) + 4px) 10px 0;pointer-events:none;animation:hud-in .38s var(--out) both;flex-direction:column;gap:3px;display:flex;position:fixed}.hud button{pointer-events:auto}@keyframes hud-in{0%{opacity:0;transform:translateY(-24px)}to{opacity:1;transform:none}}.hud-top{grid-template-columns:minmax(44px,1fr) auto minmax(44px,1fr);align-items:center;height:38px;display:grid}.hud-side{min-width:0;display:flex}.hud-title{border:2.5px solid var(--charcoal);background:linear-gradient(180deg, var(--red-light), var(--red));color:var(--cream);font-family:var(--font-display);letter-spacing:.06em;white-space:nowrap;box-shadow:0 3px 0 var(--charcoal);border-radius:10px;justify-self:center;padding:3px 12px 4px;font-size:15px;font-weight:400;line-height:1.2;rotate:-2deg}.hud-pause{justify-self:end;width:40px;height:40px}.hud-pause svg{width:20px;height:20px}.hud-pause.is-hidden{visibility:hidden}.hud-count{justify-content:center;align-items:baseline;gap:5px;height:40px;line-height:1;display:flex}.hud-count-label,.hud-count-unit{color:var(--cream);font-family:var(--font-display);letter-spacing:.03em;text-shadow:0 2px 0 var(--charcoal), 2px 0 0 var(--charcoal), -2px 0 0 var(--charcoal), 0 -2px 0 var(--charcoal), 1.5px 1.5px 0 var(--charcoal), -1.5px 1.5px 0 var(--charcoal), 1.5px -1.5px 0 var(--charcoal), -1.5px -1.5px 0 var(--charcoal), 0 4px 0 var(--charcoal);font-size:19px;font-weight:400}.hud-count-num{--sticker-face:var(--cream);--sticker-face-hi:#fffaf0;--sticker-face-lo:var(--siu-mai);--sticker-depth:var(--red);font-family:var(--font-body);letter-spacing:-.02em;font-variant-numeric:tabular-nums;transform-origin:50% 80%;font-size:36px;font-weight:900}.hud-info{justify-content:center;align-items:center;gap:6px;height:24px;display:flex}.hud-pill{height:24px;color:var(--cream);white-space:nowrap;background:#292724a8;border:1.5px solid #fff4dc29;border-radius:999px;align-items:center;gap:6px;padding:0 9px;font-size:12.5px;font-weight:700;line-height:1;display:inline-flex}.hud-best.is-nudge{border-color:var(--charcoal);background:linear-gradient(180deg, var(--curry-light), var(--curry));color:var(--charcoal);font-weight:900;animation:1.4s ease-in-out infinite beat-glow}.hud-best.is-record{border-color:var(--charcoal);background:linear-gradient(180deg, var(--red-light), var(--red));color:var(--cream);font-family:var(--font-display);letter-spacing:.06em;animation:pop-in .32s var(--spring) both, beat-glow 1.4s .32s ease-in-out infinite;font-size:14px;font-weight:400}@keyframes beat-glow{0%,to{box-shadow:0 0 #ffd25a00}50%{box-shadow:0 0 14px #ffd25ad9}}.meter{--meter-color:#9bcb5c}.meter.stage-2{--meter-color:#d9d25a}.meter.stage-3{--meter-color:var(--curry)}.meter.stage-4{--meter-color:#f2913e;border-color:#f2913e99}.meter.stage-5,.meter.stage-6{--meter-color:#ff6a55;background:#6e1814db;border-color:#ff6a55bf}.meter.stage-5{animation:.42s linear infinite meter-shake}@keyframes meter-shake{0%,to{transform:translate(0)}25%{transform:translate(-1.5px,.5px)rotate(-1deg)}50%{transform:translate(1px,-.5px)}75%{transform:translate(1.5px,.5px)rotate(1deg)}}.meter-name{opacity:.8;font-size:11px}.meter-bar{gap:2px;display:flex}.meter-seg{background:#fff4dc2e;border-radius:3px;width:11px;height:10px;transition:background-color .2s}.meter-seg.is-lit{background:var(--meter-color);box-shadow:inset 0 -2px #0003}.meter-label{min-width:4.4em;color:var(--meter-color);animation:pop-in .26s var(--spring) both;font-weight:900}.integrity{--integrity-color:#9bcb5c;animation:pop-in .26s var(--spring) both;gap:5px;padding:0 8px}.integrity.is-worn{--integrity-color:var(--curry)}.integrity.is-low{--integrity-color:#ff6a55;background:#6e1814db;border-color:#ff6a55bf}.integrity-name{opacity:.8;font-size:11px}.integrity-value{color:var(--integrity-color);font-variant-numeric:tabular-nums;font-weight:900}@media (width<=359px){.meter-name{display:none}.integrity{gap:4px;padding:0 6px;font-size:11.5px}.integrity-name{font-size:10px}.hud{padding-left:8px;padding-right:8px}}@media (prefers-reduced-motion:reduce){.hud{animation:.2s both fade-in}.hud-best.is-nudge,.hud-best.is-record,.integrity,.meter.stage-5,.meter-label{animation:none}.meter-seg{transition:none}}.callout,.shout{--fit:calc((var(--stage-width) - 44px) / var(--chars,8) / 1.12)}.callouts{left:var(--stage-left);width:var(--stage-width);top:calc(var(--play-top) + (var(--play-bottom) - var(--play-top)) * .62);z-index:30;pointer-events:none;justify-content:center;display:flex;position:fixed;translate:0 -50%}.callout{--out-ms:.22s;font-family:var(--font-display);font-weight:400;font-size:min(34px, var(--fit));animation:fade-in .14s ease-out both, callout-out var(--out-ms) ease-in calc(var(--dur,1.1s) - var(--out-ms)) forwards}.callout-body{isolation:isolate;display:inline-block;position:relative}@keyframes callout-out{to{opacity:0}}.callouts.is-paused .callout,.callouts.is-paused .callout-body,.callouts.is-paused .callout-body:before{animation-play-state:paused}.anim-pop .callout-body{animation:callout-pop .32s var(--spring) both}.anim-bounce .callout-body{animation:.56s both callout-bounce}.anim-rise .callout-body{animation:callout-rise .52s var(--out) both, callout-float 1.2s .52s ease-in-out infinite alternate}.anim-shake .callout-body{animation:.48s ease-out both callout-shake}.anim-pulse .callout-body{animation:callout-pop .26s var(--spring) both, callout-pulse .46s .26s ease-in-out infinite}.anim-glow .callout-body{animation:callout-pop .34s var(--spring) both}.anim-glow .callout-body:before{content:"";z-index:-1;background:radial-gradient(closest-side,#ffd666cc,#ffd66600);border-radius:50%;animation:.7s ease-in-out infinite alternate callout-glow;position:absolute;inset:-40% -14%}.anim-slam .callout-body{animation:.42s both callout-slam}.anim-stamp .callout-body{animation:.38s both callout-stamp}@keyframes callout-pop{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes callout-bounce{0%{animation-timing-function:cubic-bezier(.2,.8,.3,1.2);transform:translateY(18px)scale(.4)}32%{animation-timing-function:ease-in-out;transform:translateY(-4px)scale(1.14)}56%{transform:translateY(0)scale(.96)}78%{transform:scale(1.02)}to{transform:scale(1)}}@keyframes callout-rise{0%{transform:translateY(34px)scale(.7)}60%{transform:translateY(-4px)scale(1.06)}to{transform:none}}@keyframes callout-float{to{transform:translateY(-4px)}}@keyframes callout-shake{0%{transform:scale(.6)}18%{transform:scale(1.08)rotate(-2deg)}32%{transform:translate(-6px)rotate(-3deg)}46%{transform:translate(5px)rotate(2deg)}60%{transform:translate(-3px)rotate(-1deg)}76%{transform:translate(2px)}to{transform:none}}@keyframes callout-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@keyframes callout-glow{0%{opacity:.35;transform:scale(.9)}to{opacity:1;transform:scale(1.08)}}@keyframes callout-slam{0%{opacity:0;animation-timing-function:cubic-bezier(.55,0,.9,.5);transform:scale(2.2)rotate(-8deg)}50%{opacity:1;animation-timing-function:ease-out;transform:scale(.9)rotate(3deg)}75%{transform:scale(1.05)rotate(-1deg)}to{transform:scale(1)rotate(-2deg)}}@keyframes callout-stamp{0%{opacity:0;animation-timing-function:cubic-bezier(.5,0,.9,.6);transform:scale(1.9)rotate(-6deg)}60%{opacity:1;animation-timing-function:ease-out;transform:scale(.92)rotate(-6deg)}to{transform:scale(1)rotate(-6deg)}}.callout.tone-hype .sticker,.callout.tone-cash .sticker{--sticker-face:var(--siu-mai);--sticker-face-hi:#fff3bf;--sticker-depth:var(--orange)}.callout.tone-warn .sticker{--sticker-face:#f6a957;--sticker-face-hi:#ffd08f;--sticker-face-lo:var(--orange);--sticker-depth:var(--charcoal)}.callout.tone-danger{font-size:min(38px, var(--fit))}.callout.tone-danger .sticker,.callout.tone-fail .sticker{--sticker-face:var(--red-light);--sticker-face-hi:#ff9a7e;--sticker-face-lo:var(--red);--sticker-depth:var(--charcoal)}.callout.tone-relief .sticker{--sticker-face:#fffaf0;--sticker-face-lo:#ffd9a8;--sticker-depth:var(--red-deep)}.callout.tone-record{font-size:min(38px, var(--fit))}.callout.tone-record .sticker{--sticker-face:var(--curry);--sticker-face-hi:#fff3bf;--sticker-face-lo:#f0a33a;--sticker-depth:var(--red)}.callout.tone-miss{font-size:min(28px, var(--fit))}.callout.tone-miss .sticker{--sticker-face:#f3e6cf;--sticker-face-lo:#d9c3a0;--sticker-depth:var(--orange-deep)}.callout.level-1 .sticker{--sticker-face:var(--cream);--sticker-face-hi:var(--cream);--sticker-depth:var(--orange)}.callout.level-2 .sticker{--sticker-face:var(--siu-mai);--sticker-depth:var(--orange)}.callout.level-3 .sticker{--sticker-face:var(--curry);--sticker-depth:var(--red)}.callout.level-4,.callout.level-5{font-size:min(38px, var(--fit))}.callout.level-4 .sticker{--sticker-face:#ffb64a;--sticker-depth:var(--red-deep)}.callout.level-5{filter:drop-shadow(0 0 14px #ffbe3cbf)}.callout.level-5 .sticker{--sticker-face:var(--red-light);--sticker-face-hi:#ff9a7e;--sticker-depth:var(--red-deep)}.finale{left:var(--stage-left);width:var(--stage-width);top:calc(var(--play-top) + (var(--play-bottom) - var(--play-top)) * .34);z-index:35;pointer-events:none;justify-content:center;display:flex;position:fixed;translate:0 -50%}.shout{font-family:var(--font-display);font-weight:400;font-size:min(54px, var(--fit));animation:.56s both shout-slam,.9s ease-in-out .56s infinite shout-shake}.shout .sticker{--sticker-face:var(--red-light);--sticker-face-hi:#ff9a7e;--sticker-face-lo:var(--red);--sticker-depth:var(--charcoal)}@keyframes shout-slam{0%{opacity:0;animation-timing-function:cubic-bezier(.55,0,.9,.5);transform:scale(2.6)rotate(-10deg)}45%{opacity:1;animation-timing-function:ease-out;transform:scale(.88)rotate(4deg)}70%{transform:scale(1.06)rotate(-2deg)}to{transform:scale(1)rotate(-3deg)}}.finale.is-topple .shout{animation:.56s both shout-slam,1.5s ease-in-out .56s both shout-tip}@keyframes shout-tip{0%{transform:rotate(-3deg)}to{transform:rotate(-9deg)translateY(8px)}}@keyframes shout-shake{0%,to{transform:rotate(-3deg)}50%{transform:rotate(-1deg)translateY(-3px)}}.stamp-wrap{flex-direction:column;align-items:center;gap:12px;display:flex;position:relative}.stamp{border:5px solid var(--red);color:var(--red);font-family:var(--font-display);letter-spacing:.06em;white-space:nowrap;box-shadow:0 0 0 4px var(--cream), 0 0 0 7px var(--charcoal), inset 0 0 0 3px #b83a3533, 0 14px 30px #32100680;background:#fff4dcf2;border-radius:20px;padding:10px 24px 14px;font-size:clamp(40px,12.5vw,58px);font-weight:400;line-height:1;animation:.42s both stamp-in;display:inline-block;rotate:-7deg}.stamp-tag{border:2.5px solid var(--charcoal);background:linear-gradient(180deg, var(--curry-light), var(--curry));color:var(--charcoal);font-family:var(--font-display);letter-spacing:.08em;box-shadow:0 3px 0 var(--charcoal);animation:pop-in .36s .36s var(--spring) both;border-radius:10px;padding:5px 14px 6px;font-size:20px;font-weight:400;rotate:4deg}@keyframes stamp-in{0%{opacity:0;animation-timing-function:cubic-bezier(.5,0,.9,.6);transform:scale(2.3)}55%{opacity:1;animation-timing-function:ease-out;transform:scale(.9)}78%{transform:scale(1.05)}to{transform:scale(1)}}.sparkles{pointer-events:none;position:absolute;inset:-12px -30px}.spark{fill:#fff4b8;animation:.52s ease-in-out infinite alternate both twinkle;position:absolute;translate:-50% -50%}@keyframes twinkle{0%{opacity:.25;transform:scale(.35)rotate(0)}to{opacity:1;transform:scale(1.1)rotate(45deg)}}.overlay{z-index:50;padding:calc(var(--safe-top) + 16px) 20px calc(var(--safe-bottom) + 16px);background:rgba(var(--scrim), .6);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);place-items:center;animation:.18s ease-out both fade-in;display:grid;position:fixed;inset:0}.pause-card{text-align:center;width:min(100%,320px);animation:card-in .4s var(--spring) both;flex-direction:column;align-items:stretch;gap:14px;padding:24px 22px 28px;display:flex}.pause-title{font-family:var(--font-display);font-size:46px;font-weight:400;line-height:1.1}.pause-title .sticker{--sticker-face:var(--curry)}.pause-note{color:var(--ink-soft);margin:-2px 0 6px;font-size:15px}.overlay.rotate{z-index:55}.rotate-title{font-size:34px}@keyframes card-in{0%{opacity:0;transform:translateY(28px)scale(.9)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.callout-body,.callout-body:before{animation:none}.shout,.finale.is-topple .shout,.stamp,.stamp-tag,.pause-card{animation:.2s both fade-in}.shout{rotate:-3deg}.spark{animation:none}}.result{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;overflow:hidden auto}.result-scrim{background:radial-gradient(130% 80% at 50% 28%, rgba(var(--scrim), .5) 0%, rgba(var(--scrim), .84) 100%);animation:.32s ease-out both fade-in;position:fixed;inset:0}.result-column{z-index:2;width:100%;max-width:420px;min-height:100%;padding:calc(var(--safe-top) + 14px) calc(var(--safe-right) + 16px) calc(var(--safe-bottom) + 18px) calc(var(--safe-left) + 16px);flex-direction:column;align-items:center;gap:12px;margin:0 auto;display:flex;position:relative}.result-column>:first-child{margin-top:auto}.result-column>:last-child{margin-bottom:auto}.result-brand{border:2px solid var(--charcoal);background:linear-gradient(180deg, var(--red-light), var(--red));color:var(--cream);font-family:var(--font-display);letter-spacing:.06em;white-space:nowrap;box-shadow:0 2px 0 var(--charcoal);border-radius:9px;padding:2px 10px 3px;font-size:13px;font-weight:400;line-height:1.2;animation:.32s ease-out both fade-in;rotate:-2deg}.result-title{font-family:var(--font-display);animation:drop-in .54s var(--spring) both;font-size:clamp(40px,12vw,54px);font-weight:400;line-height:1.1;position:relative}.result-title .sticker{--sticker-face:var(--curry);--sticker-face-hi:#fff3bf;--sticker-face-lo:#f0a33a;--sticker-depth:var(--red)}.is-collapsed .result-title .sticker{--sticker-face:var(--red-light);--sticker-face-hi:#ff9a7e;--sticker-face-lo:var(--red);--sticker-depth:var(--charcoal)}.is-collapsed .result-title{rotate:-4deg}.result-card{isolation:isolate;text-align:center;width:100%;animation:rise-in .56s 80ms var(--spring) both;flex-direction:column;align-items:center;padding:16px 16px 12px;display:flex;position:relative}.is-completed .result-card{box-shadow:0 0 0 4px #ffd6668c, 0 6px 0 var(--charcoal), 0 0 36px #ffc45073, var(--shadow-soft)}.new-best-badge{z-index:1;border:2.5px solid var(--charcoal);background:linear-gradient(180deg, var(--red-light), var(--red));color:var(--cream);font-family:var(--font-display);letter-spacing:.08em;white-space:nowrap;box-shadow:0 3px 0 var(--charcoal), 0 8px 16px #46190a4d;border-radius:10px;padding:6px 14px 7px;font-size:20px;font-weight:400;animation:.56s .42s both badge-stamp;position:absolute;top:-16px;right:-8px;rotate:8deg}@keyframes badge-stamp{0%{opacity:0;animation-timing-function:cubic-bezier(.5,0,.9,.6);transform:scale(2.2)}55%{opacity:1;animation-timing-function:ease-out;transform:scale(.9)}80%{transform:scale(1.06)}to{opacity:1;transform:scale(1)}}.result-score{flex-direction:column;align-items:center;gap:2px;display:flex;position:relative}.is-completed .result-score:before{content:"";z-index:-1;background:radial-gradient(closest-side,#ffd25a8c,#ffd25a00);position:absolute;inset:-6% -18%}.result-claim{font-family:var(--font-display);letter-spacing:.06em;font-size:21px;font-weight:400}.result-num-row{justify-content:center;align-items:baseline;gap:6px;line-height:1;display:flex}.result-num{--sticker-face:#f59b3c;--sticker-face-hi:#ffd768;--sticker-face-lo:#df5f2b;--sticker-depth:var(--red-deep);--sticker-drop:.12em;--sticker-stroke:.13em;font-family:var(--font-body);letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin-bottom:.22em;font-size:clamp(74px,24vw,104px);font-weight:900}.is-collapsed .result-num{--sticker-face:#f3e6cf;--sticker-face-hi:#fffaf0;--sticker-face-lo:#d9c3a0;--sticker-depth:var(--red)}.result-unit{color:var(--red);font-family:var(--font-display);white-space:nowrap;font-size:32px;font-weight:400}.result-fail-note{color:var(--ink-soft);margin-top:4px;font-size:12.5px}.result-quip{border:2.5px solid var(--charcoal);background:var(--cream-light);max-width:100%;font-family:var(--font-display);letter-spacing:.03em;box-shadow:0 3px 0 var(--charcoal);animation:pop-in .42s .36s var(--spring) both;border-radius:16px;margin-top:14px;padding:7px 16px 8px;font-size:19px;font-weight:400;line-height:1.3;position:relative;rotate:1.5deg}.result-quip:before{content:"";border-left:2.5px solid var(--charcoal);border-top:2.5px solid var(--charcoal);background:inherit;width:13px;height:13px;position:absolute;top:-8px;left:50%;transform:translate(-50%)rotate(45deg)}.is-completed .result-quip{background:var(--curry-light);rotate:-1.5deg}.why{background:#b83a3514;border:2px dashed #b83a3573;border-radius:14px;flex-direction:column;align-items:center;gap:3px;width:100%;margin-top:12px;padding:8px 12px 9px;display:flex}.why-title{color:var(--red);font-family:var(--font-display);letter-spacing:.02em;font-size:18px;font-weight:400;line-height:1.3}.why-tip{color:var(--ink-soft);font-size:13px;line-height:1.4}.rank{flex-direction:column;align-items:center;gap:5px;width:100%;margin-top:16px;display:flex}.rank-ribbon{border:var(--line) solid var(--charcoal);background:linear-gradient(180deg, var(--red-light), var(--red));min-width:70%;max-width:100%;color:var(--cream);outline-offset:-8px;box-shadow:0 4px 0 var(--charcoal);border-radius:14px;outline:2px dashed #fff4dc80;flex-direction:column;align-items:center;gap:2px;padding:8px 20px 10px;display:flex}.rank-label{letter-spacing:.24em;opacity:.85;font-size:11px;font-weight:700}.rank-title{font-family:var(--font-display);letter-spacing:.06em;text-wrap:balance;text-shadow:0 2px #3c0c0a66;font-size:clamp(20px,7vw,26px);font-weight:400;line-height:1.2}.rank-level{align-items:center;gap:9px;display:flex}.rank-pips{gap:7px;padding:0 2px;display:flex}.rank-pip{background:#29272414;border:2px solid #2927244d;border-radius:3px;width:11px;height:11px;rotate:45deg}.rank-pip.is-lit{border-color:var(--charcoal);background:linear-gradient(180deg, var(--curry-light), var(--curry))}.rank-level-text{color:var(--ink-soft);font-variant-numeric:tabular-nums;font-size:13px;font-weight:900}.rank-quip{color:var(--ink-soft);font-size:14px;font-weight:700}.rank-next{color:var(--orange-deep);font-size:13px;font-weight:900}.records{grid-template-columns:1fr 1fr;gap:8px;width:100%;margin:14px 0 0;display:grid}.record{background:#e9cf9657;border:2px solid #2927241f;border-radius:14px;flex-direction:column;align-items:center;gap:2px;min-width:0;padding:6px 6px 7px;display:flex}.record.is-new{background:#d651481f;border-color:#b83a358c}.record dd{margin:0}.record-label{color:var(--ink-soft);letter-spacing:.04em;font-size:12px}.record-value{font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:center;align-items:center;gap:2px 5px;font-size:19px;font-weight:900;line-height:1.2;display:flex}.record-tag{background:var(--red);color:var(--cream);white-space:nowrap;border-radius:7px;padding:2px 6px 3px;font-size:11px;font-weight:900;line-height:1.1}.record-hint{color:var(--orange-deep);font-size:11.5px}.food-row{gap:8px;width:100%;margin-top:8px;list-style:none;display:flex}.food-chip{white-space:nowrap;background:#e9cf9657;border:2px solid #2927241f;border-radius:14px;flex:1;justify-content:center;align-items:center;gap:6px;min-width:0;min-height:40px;padding:3px 10px 3px 6px;font-size:14.5px;display:flex}.food-chip b{font-variant-numeric:tabular-nums;font-size:18px;font-weight:900}.food-chip-icon{margin:-4px -1px}.details{width:100%;margin-top:8px}.details-summary{min-height:40px;color:var(--ink-soft);letter-spacing:.06em;text-align:center;cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:12px;font-size:14px;font-weight:900;line-height:40px;list-style:none;display:block}.details-summary::-webkit-details-marker{display:none}.details-summary:after{content:"";vertical-align:middle;width:7px;height:7px;transition:transform .16s var(--out);border-bottom:2.5px solid;border-right:2.5px solid;margin-left:8px;display:inline-block;transform:translateY(-2px)rotate(45deg)}.details[open] .details-summary:after{transform:translateY(2px)rotate(225deg)}.details-summary:focus-visible{outline:3px solid var(--curry);outline-offset:2px}.details-body{flex-direction:column;gap:7px;padding-bottom:4px;display:flex}.quality-row,.detail{background:#e9cf9657;border:2px solid #2927241f;border-radius:14px}.quality-row{justify-content:space-around;padding:5px 6px;display:flex}.quality{flex-direction:column;align-items:center;gap:1px;min-width:0;line-height:1.1;display:flex}.quality b{font-variant-numeric:tabular-nums;font-size:19px;font-weight:900}.quality-label{letter-spacing:.04em;font-size:11.5px}.quality.is-perfect .quality-label{color:#b5650f;font-weight:900}.quality.is-risky .quality-label{color:var(--orange-deep)}.quality.is-miss .quality-label{color:var(--red)}.details-list{grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:7px;margin:0;display:grid}.detail{flex-direction:column;justify-content:center;align-items:center;gap:1px;min-width:0;min-height:42px;padding:5px 6px;line-height:1.1;display:flex}.detail dt{color:var(--ink-soft);letter-spacing:.02em;font-size:11.5px}.detail dd{font-variant-numeric:tabular-nums;margin:0;font-size:18px;font-weight:900}.detail.is-hot dd{color:var(--red)}.result-actions{bottom:calc(var(--safe-bottom) + 6px);z-index:3;background:rgba(var(--scrim), .82);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);width:100%;max-width:380px;animation:rise-in .5s .2s var(--out) both;border-radius:24px;grid-template-columns:1fr 1.25fr;gap:8px 10px;padding:8px 8px 0;display:grid;position:sticky}.result-replay{color:var(--curry-light);font-family:var(--font-display);letter-spacing:.04em;text-align:center;text-shadow:0 2px #1e0a068c;grid-area:1/1/auto/-1;font-size:17px;font-weight:400;line-height:1.25}.result-actions .result-again{grid-area:2/2;padding:0 12px}.result-actions .result-share{grid-area:2/1;min-height:60px;padding:0 12px}.result-links{grid-area:3/1/auto/-1;justify-content:center;gap:18px;display:flex}.share-preview-column{max-width:100%;animation:card-in .4s var(--spring) both;flex-direction:column;align-items:center;gap:12px;display:flex}.share-preview-img{aspect-ratio:9/16;object-fit:contain;border:var(--line) solid var(--charcoal);background:var(--cream);max-width:100%;height:62dvh;box-shadow:0 6px 0 var(--charcoal), var(--shadow-soft);-webkit-touch-callout:default;-webkit-user-select:auto;user-select:auto;border-radius:18px;flex:none}.share-preview-hint{color:var(--cream);font-family:var(--font-display);letter-spacing:.04em;text-shadow:0 2px #1e0a068c;font-size:20px;font-weight:400}.share-preview-note{max-width:300px;color:var(--cream);text-align:center;opacity:.88;margin-top:-6px;font-size:14px}.share-preview-close{min-width:160px}.confetti{z-index:1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.confetti-piece{border:1.5px solid #2927248c;border-radius:2px;width:9px;height:16px;animation-name:confetti-fall;animation-timing-function:cubic-bezier(.3,.1,.6,1);animation-fill-mode:both;position:absolute;top:-24px}@keyframes confetti-fall{0%{transform:translate(0)rotate(0)}to{transform:translate(var(--drift), 112vh) rotate(var(--spin))}}@media (height<=760px){.result-column{padding-top:calc(var(--safe-top) + 8px);padding-bottom:calc(var(--safe-bottom) + 8px);gap:8px}.result-title{font-size:36px}.result-card{padding:10px 12px 6px}.new-best-badge,.result-claim{font-size:17px}.result-num{font-size:64px}.result-unit{font-size:26px}.result-quip{margin-top:11px;padding:5px 14px 6px;font-size:17px}.why{gap:1px;margin-top:8px;padding:6px 10px 7px}.why-title{font-size:16px}.why-tip{font-size:12.5px}.rank{gap:3px;margin-top:10px}.rank-ribbon{outline-offset:-6px;padding:4px 18px 6px}.rank-title{font-size:min(21px,6.4vw)}.rank-quip{font-size:13px}.rank-next{font-size:12px}.records{gap:6px;margin-top:10px}.record{padding:4px 6px 5px}.record-value{font-size:17px}.food-row{gap:6px;margin-top:6px}.food-chip{min-height:34px;font-size:13.5px}.food-chip b{font-size:16px}.details{margin-top:4px}.details-summary{min-height:36px;line-height:36px}.quality b{font-size:17px}.result-actions{gap:6px 10px;padding-top:6px}.result-replay{font-size:15px}.result-actions .result-again{--lift:6px;min-height:52px;font-size:21px}.result-actions .result-share{--lift:6px;min-height:52px;font-size:18px}.result-actions .btn-link{min-height:42px}}@media (height<=660px){.rank-quip{display:none}.result-num{font-size:56px}}@media (width<=349px){.food-chip{padding-right:6px;font-size:13px}.record-label,.quality-label,.detail dt{font-size:11px}.result-actions .result-again{font-size:19px}.result-actions .result-share{font-size:16px}}@media (prefers-reduced-motion:reduce){.result-title,.result-card,.result-quip,.result-actions,.new-best-badge,.share-preview-column{animation:.24s both fade-in}.details-summary:after{transition:none}}.start{padding:calc(var(--safe-top) + 12px) calc(var(--safe-right) + 16px) calc(var(--safe-bottom) + 14px) calc(var(--safe-left) + 16px);pointer-events:none;flex-direction:column;align-items:center;display:flex}.start button{pointer-events:auto}.start-scrim{background:radial-gradient(70% 34% at 50% 52%, #ffc46029 0%, #ffc46000 100%), linear-gradient(180deg, rgba(var(--scrim), .7) 0%, rgba(var(--scrim), .52) 28%, rgba(var(--scrim), .58) 60%, rgba(var(--scrim), .8) 82%, rgba(var(--scrim), .9) 100%);animation:.42s ease-out both fade-in;position:absolute;inset:0}.start-head{flex-direction:column;align-items:center;gap:4px;width:100%;display:flex;position:relative}.start-theme{border:2.5px solid var(--charcoal);background:linear-gradient(180deg, #3d3934, var(--charcoal));color:var(--curry-light);font-family:var(--font-display);letter-spacing:.18em;white-space:nowrap;outline-offset:-6px;animation:pop-in .42s .24s var(--spring) both;border-radius:8px;outline:1.5px dashed #ffe18973;padding:4px 14px 5px;font-size:clamp(14px,4.2vw,17px);font-weight:400;line-height:1.2;rotate:1.5deg;box-shadow:0 3px #1e0a068c}.start-title{font-family:var(--font-display);justify-items:center;font-size:clamp(56px,18vw,92px);font-weight:400;line-height:1;display:grid}.title-row{grid-area:1/1;gap:.02em;display:flex}.title-char{rotate:var(--tilt);animation:drop-in .62s var(--spring) both, title-wave 3.4s ease-in-out infinite;animation-delay:calc(var(--i) * 70ms), calc(1s + var(--i) * .16s)}.title-row .sticker.title-char{--sticker-face:var(--curry);--sticker-face-hi:#fff3bf;--sticker-face-lo:#f0a33a;--sticker-depth:var(--red)}.title-row .sticker.title-char:last-child{--sticker-face:var(--red-light);--sticker-face-hi:#ff8a72;--sticker-face-lo:var(--red);--sticker-depth:var(--red-deep)}.title-halo .sticker-halo{stroke-width:.42em;transform:translateY(.08em)}.title-halo .sticker.has-halo .sticker-art{filter:drop-shadow(0 5px 8px #32100666)}@keyframes title-wave{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.start-sub{border:var(--line) solid var(--charcoal);background:linear-gradient(180deg, var(--red-light), var(--red));color:var(--cream);font-family:var(--font-display);letter-spacing:.04em;white-space:nowrap;box-shadow:0 4px 0 var(--charcoal), 0 10px 18px #46190a4d;animation:pop-in .46s .38s var(--spring) both;border-radius:12px;margin-top:6px;padding:7px 16px 8px;font-size:clamp(16px,4.6vw,21px);font-weight:400;line-height:1.2;rotate:-2deg}.start-middle{flex:1;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center;gap:6px;width:100%;max-width:440px;min-height:0;margin:12px 0 10px;display:grid;position:relative}.hero{min-width:0;min-height:0;animation:pop-in .52s .48s var(--spring) both;align-self:stretch;position:relative}.hero-canvas{position:absolute;top:0;left:0}.howto{min-width:0;animation:rise-in .52s .42s var(--out) both;background:#29120c80;border:2px solid #fff4dc29;border-radius:20px;padding:14px 12px 14px 10px}.howto-steps{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex;position:relative}.howto-steps:before{content:"";border-left:2px dashed #ffe28c73;position:absolute;top:18px;bottom:18px;left:14px}.howto-step{align-items:flex-start;gap:9px;display:flex;position:relative}.howto-num{border:2.5px solid var(--charcoal);background:linear-gradient(180deg, var(--curry-light), var(--curry));width:30px;height:30px;color:var(--charcoal);font-family:var(--font-body);box-shadow:0 2px 0 var(--charcoal);border-radius:50%;flex:none;place-items:center;font-size:15px;font-weight:900;line-height:1;display:grid}.howto-step:last-child .howto-num{background:linear-gradient(180deg, var(--red-light), var(--red));color:var(--cream)}.howto-text{flex-direction:column;gap:2px;min-width:0;padding-top:1px;display:flex}.howto-title{color:var(--cream);font-family:var(--font-display);letter-spacing:.04em;text-shadow:0 2px #1e0a0699;font-size:19px;font-weight:400;line-height:1.15}.howto-caption{color:#fff4dcd6;font-size:13px;font-weight:700;line-height:1.35}.start-actions{width:100%;max-width:360px;animation:rise-in .54s .26s var(--out) both;flex-direction:column;align-items:center;gap:12px;display:flex;position:relative}.start-go{width:100%;max-width:320px;animation:2.4s ease-in-out 1.6s infinite go-breathe}@keyframes go-breathe{0%,to{scale:1}50%{scale:1.04}}.start-settings{justify-content:center;align-items:center;gap:14px;margin-top:4px;display:flex}.switch{min-height:48px;color:var(--cream);background:#29120c8c;border:2px solid #fff4dc38;border-radius:999px;align-items:center;gap:9px;padding:0 14px 0 8px;display:inline-flex}.switch:active{transform:translateY(1px)}.switch-track{border:2.5px solid var(--charcoal);width:42px;height:26px;transition:background-color .16s var(--out);background:#fff4dc4d;border-radius:999px;flex:none;position:relative}.switch-knob{border:2px solid var(--charcoal);background:var(--cream);width:17px;height:17px;transition:translate .2s var(--spring);border-radius:50%;position:absolute;top:2px;left:2px}.switch.is-on .switch-track{background:var(--curry)}.switch.is-on .switch-knob{translate:16px}.switch-label{font-family:var(--font-display);letter-spacing:.04em;white-space:nowrap;font-size:17px;font-weight:400}.switch-tag{color:#fff4dccc;letter-spacing:.08em;white-space:nowrap;background:#fff4dc29;border-radius:999px;padding:2px 7px 3px;font-size:11px;font-weight:700}.switch.is-on .switch-tag{background:var(--curry);color:var(--charcoal)}.start-mute{flex:none}.start-best{color:var(--cream);text-shadow:0 2px #1e0a068c;flex-wrap:wrap;justify-content:center;gap:2px 14px;font-size:14px;display:flex}.start-best>span{white-space:nowrap}.start-best strong{color:var(--curry);margin:0 1px;font-size:18px;font-weight:900}@media (width<=349px){.start-middle{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}.howto{padding:12px 8px}.howto-caption{font-size:12px}.start-best{font-size:13px}}@media (height<=700px){.start-title{font-size:clamp(50px,15vw,72px)}.start-go{--lift:8px;min-height:64px;font-size:29px}.howto-steps{gap:10px}}@media (height<=580px){.start-middle{grid-template-columns:minmax(0,300px);justify-content:center;margin:8px 0}.hero{display:none}.start-title{font-size:46px}}@media (height<=440px){.start-middle{visibility:hidden}.start-theme{display:none}.start-actions{gap:8px}}@media (prefers-reduced-motion:reduce){.title-char,.start-theme,.start-sub,.hero,.howto,.start-actions{animation:.26s ease-out both fade-in}.start-go{animation:none}.switch-knob,.switch-track{transition:none}}
