@font-face{font-family:Fredoka;src:url(../fonts/Fredoka-VariableFont_wdth,wght.woff2) format("woff2-variations");font-weight:300 700;font-style:normal;font-display:swap}:root{--ui-scale: 1;--cream-50: #F5EBD1;--cream-100: #EFE1BF;--cream-200: #E5CFA2;--gold-400: #F6C94B;--gold-500: #E8A833;--orange-500: #E2713C;--red-400: #E85B41;--red-700: #8A1F10;--gold-200: #FFE9A8;--gold-300: #FFD94D;--gold-600: #B7791F;--gold-700: #8A5A10;--sage-400: #6FBF52;--sage-600: #4F9A37;--sage-800: #2F6B1E;--cocoa-700: #6B3A1F;--cocoa-800: #4F2915;--cocoa-900: #321809;--sage-500: #6FA053;--red-500: #D8452F;--sky-400: #6CC4DE;--bark-900: #2C2116;--bark-600: #59402E;--bark-soft: rgba(109, 76, 54, .5);--bark-tile: rgba(89, 64, 46, .5);--row-cream: #FCEFC9;--leaf-300: #A2BF79;--leaf-700: #317244;--leaf-300d: #7C905F;--leaf-800d: #2D5037;--butter-400: #FECB58;--butter-700: #CE791D;--amber-400: #EFB256;--amber-500: #E59031;--wood-300: #D7A67D;--wood-400: #C8966D;--wood-500: #B78359;--white: #FFFFFF;--wheel-cream: #F4ECD0;--wheel-mustard: #D9BE2D;--wheel-orange: #DC8A37;--wheel-teal: #8AC7CF;--black: #000000;--debug-bg: #111111;--debug-surface: #1E1E1E;--debug-stroke: #333333;--debug-muted: #555555;--debug-accent: #0EC3C9;--debug-text-on-dark: #FFFFFF;--bg-panel: var(--cream-100);--bg-pill: var(--cream-50);--fg-ink: var(--cocoa-900);--fg-on-dark: var(--cream-50);--stroke-dark: var(--cocoa-800);--stroke-soft: var(--cocoa-700);--accent-warn: var(--orange-500);--accent-ok: var(--sage-500);--accent-coin: var(--gold-400);--fg-coin: var(--gold-700);--fg-muted: var(--cocoa-700);--bg-cutscene-dialog: color-mix(in srgb, var(--black) 72%, transparent);--stroke-cutscene-dialog: color-mix(in srgb, var(--cream-50) 22%, transparent);--scrim-onboarding: color-mix(in srgb, var(--cocoa-900) 62%, transparent);--r-sm: calc(6px * var(--ui-scale));--r-md: calc(10px * var(--ui-scale));--r-lg: calc(16px * var(--ui-scale));--r-pill: 999px;--sw-thin: calc(1px * var(--ui-scale));--sw-mid: calc(2px * var(--ui-scale));--sw-bold: calc(3px * var(--ui-scale));--sh-card: 0 6px 0 0 var(--cocoa-800), 0 10px 18px -6px rgba(0, 0, 0, .25);--sh-btn: 0 3px 0 0 var(--cocoa-800), 0 6px 10px -4px rgba(0, 0, 0, .22);--sh-inset: inset 0 2px 0 0 rgba(255, 255, 255, .4), inset 0 -2px 0 0 rgba(0, 0, 0, .12);--sp-1: calc(4px * var(--ui-scale));--sp-2: calc(8px * var(--ui-scale));--sp-3: calc(12px * var(--ui-scale));--sp-4: calc(16px * var(--ui-scale));--sp-5: calc(20px * var(--ui-scale));--sp-6: calc(24px * var(--ui-scale));--sp-7: calc(32px * var(--ui-scale));--sp-8: calc(40px * var(--ui-scale));--sp-9: calc(48px * var(--ui-scale));--sp-10: calc(64px * var(--ui-scale));--app-vw: var(--viewport-width, 100vw);--app-vh: var(--viewport-height, 100dvh);--overlay-body-max-height: calc( var(--app-vh) - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 2 * var(--sp-7) );--fs-xs: clamp(calc(10px * var(--ui-scale)), calc((.55vw + 8px) * var(--ui-scale)), calc(12px * var(--ui-scale)));--fs-sm: clamp(calc(12px * var(--ui-scale)), calc((.65vw + 9px) * var(--ui-scale)), calc(14px * var(--ui-scale)));--fs-md: clamp(calc(14px * var(--ui-scale)), calc((.8vw + 10px) * var(--ui-scale)), calc(16px * var(--ui-scale)));--fs-lg: clamp(calc(16px * var(--ui-scale)), calc((1.1vw + 11px) * var(--ui-scale)), calc(20px * var(--ui-scale)));--fs-xl: clamp(calc(20px * var(--ui-scale)), calc((1.6vw + 13px) * var(--ui-scale)), calc(28px * var(--ui-scale)));--fs-2xl: clamp(calc(26px * var(--ui-scale)), calc((2.4vw + 16px) * var(--ui-scale)), calc(40px * var(--ui-scale)));--ease-pop: cubic-bezier(.34, 1.56, .64, 1);--ease-out: cubic-bezier(.22, 1, .36, 1);--dur-fast: .12s;--dur-med: .22s;--dur-slow: .36s;--z-hud: 100;--z-clear-flash: 150;--z-panel: 200;--z-modal: 300;--z-transaction-fx: 350;--z-onboarding: 400;--z-toast: 500;--z-loading: 550;--z-cutscene: 600}@media (max-height: 500px){:root{--ui-scale: .82}}@media (prefers-reduced-motion: reduce){:root{--dur-fast: 0ms;--dur-med: 0ms;--dur-slow: 0ms}}body{margin:0;padding:0;overflow:hidden;touch-action:manipulation;color:var(--fg-ink);background-color:var(--black);font-family:Fredoka,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{width:100%;height:100vh;height:100dvh;overflow:hidden;position:relative}.ui-icon{display:inline-block;flex-shrink:0;vertical-align:middle;line-height:0}.ui-icon--ink{color:var(--fg-ink)}.ui-icon--muted{color:var(--stroke-soft)}.ui-icon--warn{color:var(--accent-warn)}.ui-icon--ok{color:var(--accent-ok)}.ui-icon--coin{color:var(--accent-coin)}.ui-badge{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;font-family:inherit;font-weight:700;line-height:1;-webkit-user-select:none;user-select:none;pointer-events:none;animation:ui-badge-pop var(--dur-med) var(--ease-pop);transform-origin:center}.ui-badge--num{min-width:18px;height:18px;padding:0 5px;border-radius:var(--r-pill);background:var(--red-500);color:var(--fg-on-dark);border:var(--sw-mid) solid var(--stroke-dark);font-size:10px}.ui-badge--dot{width:10px;height:10px;padding:0;border-radius:var(--r-pill);background:var(--red-500);border:var(--sw-thin) solid var(--stroke-dark)}.ui-badge--new{min-width:32px;height:18px;padding:0 var(--sp-2);border-radius:var(--r-pill);background:var(--bg-pill);color:var(--fg-ink);border:var(--sw-mid) solid var(--stroke-dark);font-size:10px;letter-spacing:.05em}.ui-badge--tone-warn{background:var(--accent-warn)}.ui-badge--tone-ok{background:var(--accent-ok)}.ui-badge--tone-coin{background:var(--accent-coin);color:var(--fg-ink)}@keyframes ui-badge-pop{0%{transform:scale(0)}60%{transform:scale(1.15)}to{transform:scale(1)}}@media (prefers-reduced-motion: reduce){.ui-badge{animation:none}}.ui-iconbtn{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0;padding:0;cursor:pointer;-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;border:var(--sw-mid) solid var(--stroke-dark);border-radius:var(--r-md);box-shadow:var(--sh-btn),var(--sh-inset);transition:transform var(--dur-fast) var(--ease-pop),box-shadow var(--dur-fast) var(--ease-pop),filter var(--dur-fast) var(--ease-out)}.ui-iconbtn:focus{outline:none}.ui-iconbtn:focus-visible,.ui-iconbtn[data-force-state=focus]{outline:none;box-shadow:0 0 0 3px var(--gold-400),var(--sh-btn),var(--sh-inset)}.ui-iconbtn:active:not(:disabled),.ui-iconbtn[data-force-state=active]:not(:disabled){transform:translateY(1px);box-shadow:0 1px 0 0 var(--cocoa-800),0 2px 6px -2px #00000040,var(--sh-inset)}.ui-iconbtn--sm{width:calc(36px * var(--ui-scale));height:calc(36px * var(--ui-scale));border-radius:var(--r-sm)}.ui-iconbtn--md{width:calc(44px * var(--ui-scale));height:calc(44px * var(--ui-scale))}.ui-iconbtn--lg{width:calc(52px * var(--ui-scale));height:calc(52px * var(--ui-scale))}.ui-iconbtn--sm:before{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px}.ui-iconbtn--primary{background:linear-gradient(180deg,var(--gold-400) 0%,var(--orange-500) 100%);color:var(--fg-on-dark)}.ui-iconbtn--ghost{background:transparent;color:var(--fg-ink);border-color:var(--stroke-soft);box-shadow:none}.ui-iconbtn--ghost:active:not(:disabled),.ui-iconbtn--ghost[data-force-state=active]:not(:disabled){box-shadow:inset 0 2px 4px #0000001f}.ui-iconbtn--cream{background:var(--bg-pill);color:var(--fg-ink);border-color:var(--stroke-dark)}.ui-iconbtn:disabled{cursor:not-allowed;filter:saturate(.4) brightness(.92);opacity:.7}.ui-iconbtn__badge{position:absolute;top:-6px;right:-6px}.ui-iconbtn__icon{line-height:0}.ui-progress{display:flex;flex-direction:column;gap:var(--sp-1);width:100%;box-sizing:border-box}.ui-progress__track{position:relative;width:100%;background:var(--cocoa-900);border:var(--sw-mid) solid var(--stroke-dark);border-radius:var(--r-pill);box-shadow:inset 0 2px 4px #00000073,inset 0 -1px #ffffff0f;overflow:hidden;box-sizing:border-box}.ui-progress--sm .ui-progress__track{height:calc(12px * var(--ui-scale))}.ui-progress--md .ui-progress__track{height:calc(18px * var(--ui-scale))}.ui-progress--lg .ui-progress__track{height:calc(26px * var(--ui-scale))}.ui-progress__fill{height:100%;min-width:0;border-radius:var(--r-pill);transition:width .3s var(--ease-out);background-size:28px 28px;animation:ui-progress-stripe 1.2s linear infinite;background-repeat:repeat}.ui-progress.is-idle .ui-progress__fill{animation-play-state:paused}.ui-progress--solid .ui-progress__fill{animation:none;background-size:auto}.ui-progress--tone-gold.ui-progress--stripe .ui-progress__fill{background-image:repeating-linear-gradient(45deg,var(--gold-400) 0 10px,var(--gold-500) 10px 20px)}.ui-progress--tone-gold.ui-progress--solid .ui-progress__fill{background-image:linear-gradient(180deg,var(--gold-400) 0%,var(--gold-500) 100%)}.ui-progress--tone-sage.ui-progress--stripe .ui-progress__fill{background-image:repeating-linear-gradient(45deg,var(--sage-500) 0 10px,var(--cocoa-700) 10px 20px)}.ui-progress--tone-sage.ui-progress--solid .ui-progress__fill{background-image:linear-gradient(180deg,var(--sage-500) 0%,var(--cocoa-700) 140%)}.ui-progress--tone-sky.ui-progress--stripe .ui-progress__fill{background-image:repeating-linear-gradient(45deg,var(--sky-400) 0 10px,var(--cocoa-700) 10px 20px)}.ui-progress--tone-sky.ui-progress--solid .ui-progress__fill{background-image:linear-gradient(180deg,var(--sky-400) 0%,var(--cocoa-700) 140%)}@keyframes ui-progress-stripe{0%{background-position:0 0}to{background-position:28px 0}}.ui-progress__label{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-2);font-size:var(--fs-sm);font-weight:700;color:var(--fg-ink)}.ui-progress__label-text{flex:1}.ui-progress__percent{font-variant-numeric:tabular-nums;color:var(--stroke-soft)}@media (prefers-reduced-motion: reduce){.ui-progress__fill{animation:none!important}}.ui-gauge{display:inline-flex;align-items:center;gap:var(--sp-3);width:100%;box-sizing:border-box;padding:var(--sp-2);background:var(--cocoa-800);border:var(--sw-mid) solid var(--stroke-dark);border-radius:var(--r-pill);box-shadow:var(--sh-btn);color:var(--fg-on-dark)}.ui-gauge__icon{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;background:var(--bg-pill);color:var(--fg-ink);border-radius:var(--r-pill);border:var(--sw-mid) solid var(--stroke-dark)}.ui-gauge--sm .ui-gauge__icon{width:calc(24px * var(--ui-scale));height:calc(24px * var(--ui-scale))}.ui-gauge--md .ui-gauge__icon{width:calc(32px * var(--ui-scale));height:calc(32px * var(--ui-scale))}.ui-gauge--lg .ui-gauge__icon{width:calc(40px * var(--ui-scale));height:calc(40px * var(--ui-scale))}.ui-gauge__bar{flex:1 1 auto;min-width:0}.ui-gauge .ui-progress__label{color:var(--fg-on-dark)}.ui-gauge .ui-progress__percent{color:var(--cream-100)}.hud-progress{pointer-events:auto;position:relative;width:100%;min-width:calc(140px * var(--ui-scale))}.hud-progress__toggle .ui-gauge{gap:var(--sp-2);padding:var(--sp-1) var(--sp-2)}.hud-progress__toggle .ui-gauge--sm .ui-gauge__icon{width:calc(20px * var(--ui-scale));height:calc(20px * var(--ui-scale))}.hud-progress__toggle .ui-progress{flex-direction:row;align-items:center;gap:var(--sp-2)}.hud-progress__toggle .ui-progress__track{flex:1 1 auto;min-width:0}.hud-progress__toggle .ui-progress--sm .ui-progress__track{height:calc(10px * var(--ui-scale))}.hud-progress__toggle .ui-progress__label{flex:0 0 auto;font-size:var(--fs-xs);line-height:1}.hud-progress__toggle{display:block;width:100%;padding:0;border:none;background:none;cursor:pointer;border-radius:var(--r-pill)}.hud-progress__toggle:focus-visible{outline:var(--sw-mid) solid var(--stroke-dark);outline-offset:2px}.hud-progress__breakdown{position:absolute;top:calc(100% + var(--sp-2));left:0;right:0;display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);background:var(--bg-pill);border:var(--sw-mid) solid var(--stroke-dark);border-radius:var(--r-lg);box-shadow:var(--sh-card);z-index:1;transform-origin:top center;animation:hud-progress-breakdown-in var(--dur-med) var(--ease-pop) both}.hud-progress__breakdown--closing{animation:hud-progress-breakdown-out var(--dur-med) var(--ease-out) both;pointer-events:none}@keyframes hud-progress-breakdown-in{0%{opacity:0;transform:translateY(-6px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes hud-progress-breakdown-out{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-6px) scale(.96)}}.ui-toast{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--row-cream);color:var(--fg-ink);border:var(--sw-mid) solid var(--bark-900);border-radius:var(--r-md);box-shadow:var(--sh-btn);min-width:calc(260px * var(--ui-scale));max-width:calc(420px * var(--ui-scale));box-sizing:border-box}.ui-toast__icon-tile{flex:0 0 auto;width:calc(36px * var(--ui-scale));height:calc(36px * var(--ui-scale));display:inline-flex;align-items:center;justify-content:center;border:var(--sw-mid) solid var(--bark-900);border-radius:var(--r-sm);color:var(--fg-on-dark);background:var(--stroke-soft)}.ui-toast--tone-info .ui-toast__icon-tile{background:var(--sky-400)}.ui-toast--tone-success .ui-toast__icon-tile{background:var(--sage-500)}.ui-toast--tone-warn .ui-toast__icon-tile{background:var(--accent-warn)}.ui-toast--tone-error .ui-toast__icon-tile{background:var(--red-500)}.ui-toast__content{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:var(--sp-1)}.ui-toast__title{font-weight:700;color:var(--fg-ink);font-size:var(--fs-md);line-height:1.2}.ui-toast__body{font-size:var(--fs-sm);color:var(--stroke-soft);line-height:1.4}.ui-toast__dismiss{flex:0 0 auto;align-self:flex-start}.toast-container{position:fixed;top:var(--sp-4);left:50%;transform:translate(-50%);z-index:var(--z-toast);display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);pointer-events:none}.toast-slot{pointer-events:auto;animation:toast-slot-in var(--dur-med) var(--ease-out) both;transition:opacity var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out)}.toast-slot--exiting{opacity:0;transform:translateY(-8px);pointer-events:none}@keyframes toast-slot-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.toast-slot{animation:none;transition:none}.toast-slot--exiting{transform:none}}.ui-itemicon{position:relative;display:inline-block;flex-shrink:0;line-height:0;vertical-align:middle}.ui-itemicon__img{display:block;width:100%;height:100%;object-fit:contain}.ui-itemicon__qty{position:absolute;bottom:-4px;right:-4px}.tf-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-transaction-fx);pointer-events:none;overflow:hidden}.tf-node{position:absolute;transform:translate(-50%,-50%);will-change:transform,opacity}.tf-node--float{animation:tf-float var(--tf-duration) var(--ease-out) forwards}.tf-float-text{display:inline-block;font-size:var(--tf-font-size);font-weight:800;color:var(--tf-color);text-shadow:calc(var(--tf-stroke-width) * -1) 0 0 var(--tf-stroke-color),var(--tf-stroke-width) 0 0 var(--tf-stroke-color),0 calc(var(--tf-stroke-width) * -1) 0 var(--tf-stroke-color),0 var(--tf-stroke-width) 0 var(--tf-stroke-color);font-variant-numeric:tabular-nums;white-space:nowrap;letter-spacing:.01em;-webkit-user-select:none;user-select:none}@keyframes tf-float{0%{transform:translate(-50%,-50%) scale(var(--tf-start-scale));opacity:0}15%{transform:translate(-50%,-50%) scale(1);opacity:1}65%{transform:translate(calc(-50% + var(--tf-drift-x) * .65),calc(-50% + var(--tf-drift-y) * .65)) scale(1);opacity:1}to{transform:translate(calc(-50% + var(--tf-drift-x)),calc(-50% + var(--tf-drift-y))) scale(1);opacity:0}}.tf-node--fail{animation:tf-fail-pulse var(--tf-duration) var(--ease-pop) forwards}.tf-fail-glyph{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--tf-color, transparent);color:#fff8e3;font-weight:800;font-size:16px;line-height:1;background:var(--tf-color);-webkit-user-select:none;user-select:none}@keyframes tf-fail-pulse{0%{transform:translate(-50%,-50%) scale(.5);opacity:0}40%{transform:translate(-50%,-50%) scale(1.15);opacity:.9}to{transform:translate(-50%,-50%) scale(1);opacity:0}}.tf-node--item-fly{animation:tf-item-fly var(--tf-duration) var(--tf-ease) forwards}@keyframes tf-item-fly{0%{transform:translate(-50%,-50%) scale(var(--tf-start-scale));opacity:1}to{transform:translate(calc(-50% + var(--tf-end-x)),calc(-50% + var(--tf-end-y))) scale(var(--tf-end-scale));opacity:.2}}@media (prefers-reduced-motion: reduce){.tf-node--float,.tf-node--fail{animation-duration:1ms!important}.tf-node--item-fly{animation-name:tf-item-fly-rm!important;animation-duration:1ms!important}}@keyframes tf-item-fly-rm{0%,to{transform:translate(calc(-50% + var(--tf-end-x)),calc(-50% + var(--tf-end-y))) scale(var(--tf-end-scale));opacity:.2}}.hud{position:absolute;top:0;right:0;bottom:0;left:0;z-index:var(--z-hud);pointer-events:none;display:flex;justify-content:space-between;align-items:flex-start;padding-top:max(var(--sp-3),env(safe-area-inset-top));padding-right:max(var(--sp-3),env(safe-area-inset-right));padding-bottom:max(var(--sp-3),env(safe-area-inset-bottom));padding-left:max(var(--sp-3),env(safe-area-inset-left));gap:var(--sp-3)}.hud-left{display:flex;flex-direction:column;gap:var(--sp-2);max-width:calc(240px * var(--ui-scale));min-width:0;padding-left:var(--sp-7)}.hud-coin{pointer-events:auto;display:inline-block;position:relative;background:var(--bg-pill);border:var(--sw-mid) solid var(--stroke-dark);border-radius:var(--r-pill);padding:var(--sp-1) var(--sp-4) var(--sp-1) calc(34px * var(--ui-scale));margin-top:calc(6px * var(--ui-scale));box-shadow:var(--sh-btn);color:var(--fg-ink);font-weight:700;font-size:var(--fs-xl);font-variant-numeric:tabular-nums;line-height:1;transform-origin:left center}.hud-coin-icon{position:absolute;left:calc(-26px * var(--ui-scale));top:50%;transform:translateY(-50%);z-index:1}.hud-coin-value{font-feature-settings:"tnum";letter-spacing:.01em}.hud-coin.is-flashing--gain{animation:hud-coin-flash-gain var(--hud-coin-pulse-duration) var(--ease-pop)}.hud-coin.is-flashing--spend{animation:hud-coin-flash-spend var(--hud-coin-pulse-duration) var(--ease-pop)}@keyframes hud-coin-flash-gain{0%{transform:scale(1);box-shadow:var(--sh-btn)}50%{transform:scale(1.06);box-shadow:0 0 0 3px var(--hud-coin-pulse-gain-tint),var(--sh-btn)}to{transform:scale(1);box-shadow:var(--sh-btn)}}@keyframes hud-coin-flash-spend{0%{transform:scale(1);box-shadow:var(--sh-btn)}50%{transform:scale(1.06);box-shadow:0 0 0 3px var(--hud-coin-pulse-spend-tint),var(--sh-btn)}to{transform:scale(1);box-shadow:var(--sh-btn)}}.hud-coin.is-microshake{animation:hud-coin-microshake var(--hud-coin-microshake-duration) cubic-bezier(.36,.07,.19,.97)}@keyframes hud-coin-microshake{0%,to{transform:translate(0)}20%{transform:translate(calc(var(--hud-coin-microshake-amp) * -1))}40%{transform:translate(var(--hud-coin-microshake-amp))}60%{transform:translate(calc(var(--hud-coin-microshake-amp) * -.6))}80%{transform:translate(calc(var(--hud-coin-microshake-amp) * .4))}}.hud-buttons{pointer-events:auto;display:flex;gap:var(--sp-2);align-items:flex-start}.hud-buttons .ui-iconbtn--cream .ui-iconbtn__icon{width:calc(32px * var(--ui-scale))!important;height:calc(32px * var(--ui-scale))!important}@media (prefers-reduced-motion: reduce){.hud-coin.is-flashing--gain,.hud-coin.is-flashing--spend,.hud-coin.is-microshake{animation-duration:1ms!important}}.progress-flash{position:fixed;left:50%;bottom:var(--progress-flash-bottom);z-index:var(--z-clear-flash);width:var(--progress-flash-width-percent);max-width:var(--progress-flash-max-width);pointer-events:none;opacity:0;transform:translate(-50%,8px);transition:opacity var(--progress-flash-hide-ms) cubic-bezier(.4,0,1,1),transform var(--progress-flash-hide-ms) cubic-bezier(.4,0,1,1)}.progress-flash.is-visible{opacity:1;transform:translate(-50%);transition:opacity var(--progress-flash-show-ms) cubic-bezier(.22,1,.36,1),transform var(--progress-flash-show-ms) cubic-bezier(.22,1,.36,1)}.progress-flash__pill{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);background:var(--bg-pill);border:var(--sw-bold) solid var(--stroke-dark);border-radius:var(--r-lg);box-shadow:var(--sh-card);box-sizing:border-box}.progress-flash .progress-flash__bar .ui-progress__fill{transition:width var(--progress-flash-fill-ms) cubic-bezier(.22,1,.36,1)}.progress-flash .progress-flash__bar .ui-progress__percent{font-size:var(--fs-xl);color:var(--fg-ink);font-variant-numeric:tabular-nums}@media (max-height: 500px),(max-width: 480px){.progress-flash{max-width:min(var(--progress-flash-max-width),300px)}.progress-flash__pill{gap:var(--sp-1);padding:var(--sp-2) var(--sp-3)}.progress-flash .progress-flash__bar .ui-progress__track{height:calc(18px * var(--ui-scale))}.progress-flash .progress-flash__bar .ui-progress__percent{font-size:var(--fs-lg)}}@media (prefers-reduced-motion: reduce){.progress-flash,.progress-flash.is-visible,.progress-flash .progress-flash__bar .ui-progress__fill{transition:none}}.ui-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0;font-family:inherit;font-weight:700;cursor:pointer;-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);box-sizing:border-box;text-align:center;text-decoration:none;white-space:nowrap;border:var(--sw-mid) solid var(--stroke-dark);border-radius:var(--r-md);box-shadow:var(--sh-btn),var(--sh-inset);transition:transform var(--dur-fast) var(--ease-pop),box-shadow var(--dur-fast) var(--ease-pop),filter var(--dur-fast) var(--ease-out)}.ui-btn.ui-holdable{touch-action:manipulation}.ui-btn:focus{outline:none}.ui-btn:focus-visible,.ui-btn[data-force-state=focus]{outline:none;box-shadow:0 0 0 3px var(--gold-400),var(--sh-btn),var(--sh-inset)}.ui-btn:active:not(:disabled),.ui-btn[data-force-state=active]:not(:disabled){transform:translateY(1px);box-shadow:0 1px 0 0 var(--cocoa-800),0 2px 6px -2px #00000040,var(--sh-inset)}.ui-btn--sm{min-height:calc(32px * var(--ui-scale));padding:0 var(--sp-3);font-size:var(--fs-sm);border-radius:var(--r-sm)}.ui-btn--sm:before{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px}.ui-btn--md{min-height:calc(44px * var(--ui-scale));padding:0 var(--sp-4);font-size:var(--fs-md)}.ui-btn--lg{min-height:calc(52px * var(--ui-scale));padding:0 var(--sp-5);font-size:var(--fs-lg)}.ui-btn--primary{background:var(--leaf-300);border-color:var(--leaf-700);color:var(--white);font-weight:600;text-shadow:1px 0 var(--leaf-700),-1px 0 var(--leaf-700),0 1px var(--leaf-700),0 -1px var(--leaf-700),1px 1px var(--leaf-700),-1px -1px var(--leaf-700),1px -1px var(--leaf-700),-1px 1px var(--leaf-700);box-shadow:0 2px 0 0 var(--leaf-700)}.ui-btn--primary:active:not(:disabled),.ui-btn--primary[data-force-state=active]:not(:disabled){transform:translateY(2px);box-shadow:0 0 0 0 var(--leaf-700)}.ui-btn--primary:focus-visible,.ui-btn--primary[data-force-state=focus]{box-shadow:0 0 0 3px var(--gold-400),0 2px 0 0 var(--leaf-700)}.ui-btn--primary:disabled{background:var(--leaf-300d);border-color:var(--leaf-800d);color:var(--leaf-800d);text-shadow:none;box-shadow:0 2px 0 0 var(--leaf-800d);filter:none;opacity:1}.ui-btn--secondary{background:var(--butter-400);border-color:var(--butter-700);color:var(--white);font-weight:600;text-shadow:1px 0 var(--butter-700),-1px 0 var(--butter-700),0 1px var(--butter-700),0 -1px var(--butter-700),1px 1px var(--butter-700),-1px -1px var(--butter-700),1px -1px var(--butter-700),-1px 1px var(--butter-700);box-shadow:0 2px 0 0 var(--butter-700)}.ui-btn--secondary:active:not(:disabled),.ui-btn--secondary[data-force-state=active]:not(:disabled){transform:translateY(2px);box-shadow:0 0 0 0 var(--butter-700)}.ui-btn--secondary:focus-visible,.ui-btn--secondary[data-force-state=focus]{box-shadow:0 0 0 3px var(--gold-400),0 2px 0 0 var(--butter-700)}.ui-btn--ghost{background:transparent;color:var(--fg-ink);border-color:var(--stroke-soft);box-shadow:none}.ui-btn--ghost:active:not(:disabled),.ui-btn--ghost[data-force-state=active]:not(:disabled){box-shadow:inset 0 2px 4px #0000001f}.ui-btn--danger{background:linear-gradient(180deg,var(--red-500) 0%,var(--cocoa-800) 140%);color:var(--fg-on-dark)}.ui-btn:disabled{cursor:not-allowed;filter:saturate(.4) brightness(.92);opacity:.7}.ui-btn.is-locked{filter:saturate(.25) brightness(.9)}.ui-btn__lock{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--fg-on-dark);pointer-events:none;background:#32180947;border-radius:inherit}.ui-btn.is-loading .ui-btn__label{visibility:hidden}.ui-btn__spinner{position:absolute;top:50%;left:50%;width:18px;height:18px;margin:-9px 0 0 -9px;border:var(--sw-mid) solid currentColor;border-top-color:transparent;border-radius:var(--r-pill);animation:ui-btn-spin .72s linear infinite}@keyframes ui-btn-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.ui-btn__spinner{animation:none}}.ui-btn__icon{line-height:0}.ui-btn__label{display:inline-flex;align-items:center;justify-content:center}.ui-card{position:relative;display:flex;flex-direction:column;gap:var(--sp-3);box-sizing:border-box;background:var(--bg-panel);color:var(--fg-ink);border:var(--sw-mid) solid var(--stroke-dark);border-radius:var(--r-lg);box-shadow:var(--sh-card);padding:var(--sp-5)}.ui-card--info{background:var(--bg-pill);padding:var(--sp-4);gap:var(--sp-2)}.ui-card--stat{padding:var(--sp-3) var(--sp-4);gap:var(--sp-1);border-radius:var(--r-md);box-shadow:var(--sh-btn)}.ui-card--panel.ui-card--with-title{padding-top:calc(var(--sp-5) + var(--sp-4))}.ui-card--info.ui-card--with-title{padding-top:calc(var(--sp-4) + var(--sp-4))}.ui-card--stat.ui-card--with-title{padding-top:calc(var(--sp-3) + var(--sp-4))}.ui-card__title-pill{position:absolute;top:calc(-1 * var(--sp-4));left:50%;transform:translate(-50%);background:var(--cocoa-800);color:var(--fg-on-dark);border:var(--sw-mid) solid var(--stroke-dark);border-radius:var(--r-pill);padding:var(--sp-1) var(--sp-4);font-size:var(--fs-md);font-weight:700;letter-spacing:.02em;white-space:nowrap}.ui-card__body{display:flex;flex-direction:column;gap:var(--sp-3)}.ui-stepper{display:inline-flex;align-items:center;gap:var(--sp-2)}.ui-stepper .ui-holdable{touch-action:manipulation;-webkit-user-select:none;user-select:none}.ui-stepper .ui-iconbtn--primary{background:var(--wood-300);border-color:var(--bark-900);color:var(--white);border-radius:var(--r-md);box-shadow:0 2px 0 0 var(--bark-900)}.ui-stepper .ui-iconbtn--primary:active:not(:disabled),.ui-stepper .ui-iconbtn--primary[data-force-state=active]:not(:disabled){transform:translateY(2px);box-shadow:0 0 0 0 var(--bark-900)}.ui-stepper .ui-iconbtn--primary:disabled{background:var(--wood-500);border-color:var(--bark-900);color:color-mix(in srgb,var(--white) 55%,transparent);box-shadow:0 2px 0 0 var(--bark-900);filter:none;opacity:1}.ui-stepper__value{min-width:calc(48px * var(--ui-scale));height:calc(36px * var(--ui-scale));padding:0 var(--sp-3);display:inline-flex;align-items:center;justify-content:center;background:var(--bg-pill);color:var(--fg-ink);border:var(--sw-mid) solid var(--bark-600);border-radius:var(--r-md);font-family:inherit;font-weight:600;font-size:var(--fs-md);font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none}.ui-panel.stall-panel{display:flex;flex-direction:column;max-width:min(560px,calc(100vw - 32px));max-height:calc(100% - var(--app-vh) * .12);margin:calc(var(--app-vh) * .12) auto auto;user-select:none;-webkit-user-select:none}.stall-panel img{-webkit-user-drag:none}@media (max-height: 500px){.ui-panel.stall-panel{margin-top:0;max-height:100%;max-width:min(440px,calc(100vw - 32px))}}.stall-panel__sign{position:relative;z-index:3;flex:0 0 auto;display:block;width:46.4%;margin:0 auto -5.9%;pointer-events:none;container-type:inline-size}.stall-panel__sign img{display:block;width:100%}.stall-panel__sign-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding-bottom:3%;font-size:13cqw;font-weight:700;letter-spacing:.09em;text-transform:uppercase;white-space:nowrap;color:var(--cocoa-800)}.stall-panel__awning{position:relative;z-index:2;flex:0 0 auto;aspect-ratio:576 / 87;margin-bottom:-1.9%}.stall-panel__awning img{position:absolute;display:block}.stall-panel__awning-shingles{left:3.75%;top:0;width:92.5%;height:100%}.stall-panel__awning-trim{left:4.25%;top:68.4%;width:91.5%;height:20.2%}.stall-panel__awning-bar{left:4.25%;top:0;width:91.5%;height:36.8%}.stall-panel__close{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:absolute;z-index:3;top:42%;right:1%;transform:translateY(-50%);width:calc(44px * var(--ui-scale));height:calc(50px * var(--ui-scale));padding:0;border:none;background:url(../assets/ui/stall/exit-btn.svg) center / contain no-repeat;cursor:pointer;transition:transform var(--dur-fast) var(--ease-pop)}.stall-panel__close:active{transform:translateY(calc(-50% + 2px))}.stall-panel__close:focus{outline:none}.stall-panel__close:focus-visible{outline:none;border-radius:var(--r-md);box-shadow:0 0 0 3px var(--gold-400)}.stall-panel__body{position:relative;display:flex;flex-direction:column;flex:1 1 auto;min-height:0;padding:0 6.4%}.stall-panel__body:before,.stall-panel__body:after{content:"";position:absolute;z-index:1;top:calc(-2px * var(--ui-scale));bottom:0;width:4.7%;box-sizing:border-box;background:var(--wood-300);border:var(--sw-mid) solid var(--bark-900);pointer-events:none}.stall-panel__body:before{left:4.2%}.stall-panel__body:after{right:4.2%}.stall-panel__interior{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;background:var(--wood-500);border:var(--sw-mid) solid var(--bark-900);border-top:none;padding:0 var(--sp-3) var(--sp-3)}.stall-panel__base{position:relative;z-index:2;flex:0 0 auto;height:calc(28px * var(--ui-scale));margin:calc(-2px * var(--ui-scale)) 2.4% 0;box-sizing:border-box;background:var(--wood-300);border:var(--sw-mid) solid var(--bark-900)}.stall-tabs{position:sticky;top:0;z-index:1;flex:0 0 auto;display:flex;justify-content:center;margin:0 calc(-1 * var(--sp-3));padding:var(--sp-3) var(--sp-2) var(--sp-2);background:var(--wood-400);border-bottom:var(--sw-mid) solid var(--bark-900)}.stall-tabs .ui-tabs{background:none;border:none;border-radius:0;box-shadow:none;padding:0;gap:var(--sp-2);width:100%;justify-content:center}.stall-tabs .ui-tab{flex:1 1 0;min-width:0;justify-content:center;min-height:calc(48px * var(--ui-scale));padding:0 var(--sp-2);background:url(../assets/ui/stall/tab-plank-inactive.svg) center / 100% 100% no-repeat;border:none;border-radius:var(--r-sm);color:var(--bark-900);font-weight:600;transition:transform var(--dur-fast) var(--ease-pop)}.stall-tabs .ui-tab.is-active{background:url(../assets/ui/stall/tab-plank-active.svg) center / 100% 100% no-repeat;color:var(--bark-900);transform:translateY(1px)}.donation-panel__body{display:flex;flex-direction:column;gap:var(--sp-3);padding-top:var(--sp-3);flex:1 1 auto;min-height:0}.donation-hero{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);background:var(--row-cream);border-color:var(--bark-soft);border-radius:var(--r-md);box-shadow:none;flex:0 0 auto}.donation-hero__bar{position:relative;padding-block:var(--sp-1)}.donation-hero__check{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--r-pill);background:var(--cream-50);color:var(--accent-ok);border:var(--sw-mid) solid var(--stroke-dark);box-shadow:var(--sh-btn);animation:donation-check-pop var(--dur-med) var(--ease-pop)}@keyframes donation-check-pop{0%{opacity:0;transform:translate(-50%,-50%) scale(.6)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@media (prefers-reduced-motion: reduce){.donation-hero__check{animation:none}}.donation-list{display:flex;flex-direction:column;gap:var(--sp-3);max-height:calc(var(--app-vh) * .38);flex:1 1 auto;min-height:0;overflow-y:auto;padding:var(--sp-2) var(--sp-1)}.donation-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--sp-3);padding:var(--sp-3);background:var(--row-cream);border:var(--sw-mid) solid var(--bark-soft);border-radius:var(--r-md)}.donation-row.is-done{background:var(--cream-200)}.donation-row__icon{flex:0 0 auto}.donation-row__coin{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--r-pill);background:var(--bg-pill);border:var(--sw-mid) solid var(--bark-tile)}.donation-row__main{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0}.donation-row__name{margin:0;font-size:var(--fs-md);font-weight:700;color:var(--fg-ink)}.donation-row__meta{margin:0;display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-3);font-size:var(--fs-sm);color:var(--stroke-soft);font-variant-numeric:tabular-nums}.donation-row__progress{color:var(--fg-ink);font-weight:700}.donation-row__actions{display:flex;flex-direction:column;align-items:flex-end;gap:var(--sp-2)}.donation-row__done{display:inline-flex;align-items:center;gap:var(--sp-1);color:var(--accent-ok);font-weight:700;font-size:var(--fs-sm);white-space:nowrap}.donation-row__done-text{letter-spacing:.02em}@media (max-width: 480px){.donation-row{grid-template-columns:auto 1fr}.donation-row__actions{grid-column:1 / -1;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between}}.donation-invite{align-self:stretch;flex:0 0 auto}.donation-complete-block{display:flex;flex-direction:column;gap:var(--sp-2);flex:0 0 auto}.donation-complete{text-align:center;flex:0 0 auto;background:var(--row-cream);border-color:var(--bark-soft);border-radius:var(--r-md);box-shadow:none}.donation-complete__text{margin:0;font-size:var(--fs-md);font-weight:700;color:var(--accent-ok)}.ui-panel-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;padding:max(var(--sp-7),calc(env(safe-area-inset-top) + var(--sp-4))) max(var(--sp-4),env(safe-area-inset-right)) max(var(--sp-4),env(safe-area-inset-bottom)) max(var(--sp-4),env(safe-area-inset-left));box-sizing:border-box;background:#32180959;z-index:var(--z-panel);pointer-events:auto;overflow-y:auto;-webkit-overflow-scrolling:touch;animation:ui-panel-fade var(--dur-med) var(--ease-out)}.ui-panel{position:relative;width:100%;max-width:100%;margin:auto;flex-shrink:0;box-sizing:border-box;animation:ui-panel-slide var(--dur-med) var(--ease-pop)}.ui-panel--inline{animation:none}.ui-panel--sm{max-width:min(320px,calc(100vw - 32px))}.ui-panel--md{max-width:min(480px,calc(100vw - 32px))}.ui-panel--lg{max-width:min(720px,calc(100vw - 32px))}.ui-panel--sm,.ui-panel--md,.ui-panel--lg{max-height:100%}.ui-panel--sm>.ui-card,.ui-panel--md>.ui-card,.ui-panel--lg>.ui-card{display:flex;flex-direction:column;max-height:100%;overflow:visible}.ui-panel--sm>.ui-card>.ui-card__body,.ui-panel--md>.ui-card>.ui-card__body,.ui-panel--lg>.ui-card>.ui-card__body{overflow-x:hidden;overflow-y:auto;min-height:0;-webkit-overflow-scrolling:touch}.ui-panel__close{position:absolute;top:calc(-1 * var(--sp-3));right:calc(-1 * var(--sp-3));z-index:1}@keyframes ui-panel-fade{0%{opacity:0}to{opacity:1}}@keyframes ui-panel-slide{0%{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@media (prefers-reduced-motion: reduce){.ui-panel-backdrop,.ui-panel{animation:none}}@media (max-height: 500px){.ui-panel-backdrop{padding:max(var(--sp-3),calc(env(safe-area-inset-top) + var(--sp-4))) max(var(--sp-3),env(safe-area-inset-right)) max(var(--sp-3),env(safe-area-inset-bottom)) max(var(--sp-3),env(safe-area-inset-left))}}.ui-modal{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;padding:max(var(--sp-7),calc(env(safe-area-inset-top) + var(--sp-4))) max(var(--sp-4),env(safe-area-inset-right)) max(var(--sp-4),env(safe-area-inset-bottom)) max(var(--sp-4),env(safe-area-inset-left));box-sizing:border-box;background:#32180959;z-index:var(--z-modal);overflow-y:auto;-webkit-overflow-scrolling:touch;animation:ui-modal-fade var(--dur-med) var(--ease-out)}.ui-modal__panel{margin:auto;flex-shrink:0;width:100%;animation:ui-modal-pop var(--dur-med) var(--ease-pop)}.ui-modal__panel .ui-card{display:flex;flex-direction:column;max-height:var(--overlay-body-max-height);overflow:visible}.ui-modal__panel .ui-card__body{overflow-x:hidden;overflow-y:auto;min-height:0;-webkit-overflow-scrolling:touch}.ui-modal--inline{position:relative;inset:auto;padding:var(--sp-5);min-height:220px}.ui-board{position:relative;display:flex;flex-direction:column;max-height:var(--overlay-body-max-height);background:var(--bg-panel);border:calc(12px * var(--ui-scale)) solid var(--wood-300);border-radius:var(--r-md);box-shadow:0 0 0 var(--sw-mid) var(--bark-900),var(--sh-card),inset 0 0 0 var(--sw-mid) var(--bark-900);user-select:none;-webkit-user-select:none}.ui-board img{-webkit-user-drag:none}.ui-board__sign{position:absolute;top:0;left:50%;transform:translate(-50%,-52%);width:clamp(150px,52%,230px);z-index:2;pointer-events:none;container-type:inline-size}.ui-board__sign img{display:block;width:100%}.ui-board__sign-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding-bottom:3%;font-size:11.5cqw;font-weight:700;letter-spacing:.02em;white-space:nowrap;color:var(--cocoa-800)}.ui-board:focus,.ui-board:focus-visible{outline:none}.ui-board__close{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:absolute;z-index:3;top:0;right:0;transform:translate(35%,-45%);width:calc(40px * var(--ui-scale));height:calc(46px * var(--ui-scale));padding:0;border:none;background:url(../assets/ui/stall/exit-btn.svg) center / contain no-repeat;cursor:pointer;transition:transform var(--dur-fast) var(--ease-pop)}.ui-board__close:active{transform:translate(35%,calc(-45% + 2px))}.ui-board__close:focus{outline:none}.ui-board__close:focus-visible{outline:none;border-radius:var(--r-md);box-shadow:0 0 0 3px var(--gold-400)}.ui-board__body{display:flex;flex-direction:column;gap:var(--sp-3);min-height:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:var(--sp-7) var(--sp-4) var(--sp-4)}@keyframes ui-modal-fade{0%{opacity:0}to{opacity:1}}@keyframes ui-modal-pop{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion: reduce){.ui-modal,.ui-modal__panel{animation:none}}@media (max-height: 500px){.ui-modal{padding:max(var(--sp-3),calc(env(safe-area-inset-top) + var(--sp-4))) max(var(--sp-3),env(safe-area-inset-right)) max(var(--sp-3),env(safe-area-inset-bottom)) max(var(--sp-3),env(safe-area-inset-left))}}.ui-timer{display:inline-block;font-family:inherit;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.02em;color:var(--fg-ink)}.ui-timer--tone-ink{color:var(--fg-ink)}.ui-timer--tone-warn{color:var(--accent-warn)}.hearthstone-panel{display:flex;flex-direction:column;gap:var(--sp-2)}.hearthstone-panel__header{display:flex;align-items:center;gap:var(--sp-3)}.hearthstone-panel__sparkle{color:var(--accent-coin);flex:0 0 auto}.hearthstone-panel__title{margin:0;font-size:var(--fs-md);font-weight:700;color:var(--fg-ink)}.hearthstone-panel__sub{margin:0;font-size:var(--fs-sm);color:var(--stroke-soft)}.hearthstone-panel__timer-row{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--stroke-soft)}.hearthstone-panel__timer{font-size:var(--fs-md)}.hearthstone-panel__actions{display:flex;flex-direction:column;gap:var(--sp-2)}.ui-tabs{display:inline-flex;align-items:stretch;gap:var(--sp-1);padding:var(--sp-1);background:var(--cocoa-800);border:var(--sw-mid) solid var(--stroke-dark);border-radius:var(--r-pill);box-shadow:var(--sh-inset)}.ui-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:relative;display:inline-flex;align-items:center;gap:var(--sp-2);min-height:calc(44px * var(--ui-scale));padding:0 var(--sp-4);background:var(--bg-pill);color:var(--fg-ink);border:var(--sw-thin) solid transparent;border-radius:var(--r-pill);font-family:inherit;font-weight:700;font-size:var(--fs-sm);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.ui-tab:focus{outline:none}.ui-tab:focus-visible{outline:none;box-shadow:0 0 0 3px var(--gold-400)}.ui-tab.is-active{background:linear-gradient(180deg,var(--gold-400) 0%,var(--orange-500) 100%);color:var(--cocoa-900);border-color:var(--stroke-dark)}.ui-tab__label{display:inline-block;white-space:nowrap}.ui-tab__badge{position:static;transform:none}.inventory-panel__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:var(--sp-3);max-height:calc(var(--app-vh) * .45);flex:1 1 auto;min-height:0;overflow-y:auto;padding:var(--sp-3) var(--sp-2) var(--sp-2)}.inventory-tile{align-items:center;padding:var(--sp-3) var(--sp-2);gap:var(--sp-1);background:var(--row-cream);border-color:var(--bark-tile);border-radius:var(--r-md);box-shadow:none}.inventory-tile .ui-card__body{display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);width:100%}.inventory-tile .ui-badge--num{background:var(--amber-500);color:var(--fg-ink);border-color:var(--bark-900)}.inventory-tile__label{display:block;width:100%;font-size:var(--fs-xs);color:var(--fg-ink);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inventory-panel__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-3);padding:var(--sp-7) var(--sp-4);text-align:center}.inventory-panel__empty-text{margin:0;font-size:var(--fs-md);color:var(--cream-50)}.settings-section{display:flex;flex-direction:column;gap:var(--sp-3)}.settings-section__title{margin:0;font-size:var(--fs-md);font-weight:700;color:var(--fg-ink)}.settings-row{display:grid;grid-template-columns:5.5rem 1fr 3rem;align-items:center;gap:var(--sp-2)}.settings-row--toggle{grid-template-columns:5.5rem 1fr}.settings-row__label{font-size:var(--fs-sm);color:var(--fg-ink)}.settings-row__slider{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:100%;height:calc(22px * var(--ui-scale));background:transparent;margin:0;cursor:pointer}.settings-row__slider::-webkit-slider-runnable-track{width:100%;height:calc(10px * var(--ui-scale));background:var(--cocoa-900);border:var(--sw-mid) solid var(--stroke-dark);border-radius:var(--r-pill);box-shadow:inset 0 2px 4px #00000073,inset 0 -1px #ffffff0f}.settings-row__slider::-moz-range-track{width:100%;height:calc(10px * var(--ui-scale));background:var(--cocoa-900);border:var(--sw-mid) solid var(--stroke-dark);border-radius:var(--r-pill);box-shadow:inset 0 2px 4px #00000073,inset 0 -1px #ffffff0f}.settings-row__slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:calc(22px * var(--ui-scale));height:calc(22px * var(--ui-scale));margin-top:calc(-6px * var(--ui-scale));border-radius:var(--r-pill);background:linear-gradient(180deg,var(--gold-400) 0%,var(--gold-500) 100%);border:var(--sw-mid) solid var(--stroke-dark);box-shadow:var(--sh-btn);cursor:pointer}.settings-row__slider::-moz-range-thumb{width:calc(22px * var(--ui-scale));height:calc(22px * var(--ui-scale));box-sizing:border-box;border-radius:var(--r-pill);background:linear-gradient(180deg,var(--gold-400) 0%,var(--gold-500) 100%);border:var(--sw-mid) solid var(--stroke-dark);box-shadow:var(--sh-btn);cursor:pointer}.settings-row__slider:focus{outline:none}.settings-row__slider:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 3px var(--accent-ok),var(--sh-btn)}.settings-row__slider:focus-visible::-moz-range-thumb{box-shadow:0 0 0 3px var(--accent-ok),var(--sh-btn)}.settings-row__slider:disabled{opacity:.4;cursor:not-allowed}.settings-row__slider:disabled::-webkit-slider-thumb,.settings-row__slider:disabled::-webkit-slider-runnable-track{cursor:not-allowed}.settings-row__slider:disabled::-moz-range-thumb,.settings-row__slider:disabled::-moz-range-track{cursor:not-allowed}.settings-row--toggle input[type=checkbox]{width:calc(20px * var(--ui-scale));height:calc(20px * var(--ui-scale));accent-color:var(--accent-ok);cursor:pointer}.settings-row--toggle input[type=checkbox]:focus{outline:none}.settings-row--toggle input[type=checkbox]:focus-visible{outline:var(--sw-bold) solid var(--gold-400);outline-offset:2px}.settings-row__value{text-align:right;font-variant-numeric:tabular-nums;font-size:var(--fs-sm);color:var(--stroke-soft)}.ui-statrow{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-2) 0;border-bottom:var(--sw-thin) solid var(--stroke-soft);font-size:var(--fs-md)}.ui-statrow:last-child{border-bottom:none}.ui-statrow__label{color:var(--fg-ink);font-weight:600}.ui-statrow__value{display:inline-flex;align-items:center;gap:var(--sp-1);font-weight:700;font-variant-numeric:tabular-nums;text-align:right}.ui-statrow__icon{line-height:0}.ui-statrow--tone-ink .ui-statrow__value{color:var(--fg-ink)}.ui-statrow--tone-warn .ui-statrow__value{color:var(--accent-warn)}.ui-statrow--tone-ok .ui-statrow__value{color:var(--accent-ok)}.ui-statrow--tone-coin .ui-statrow__value{color:var(--fg-coin)}.shipping-panel{display:flex;flex-direction:column;gap:var(--sp-3)}.shipping-federation{display:flex;flex-direction:column;gap:var(--sp-2)}.shipping-federation__head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.shipping-federation__title{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:var(--fs-sm);font-weight:700;color:var(--fg-ink)}.shipping-federation__timer{font-size:var(--fs-md)}.shipping-federation__wants{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.shipping-zone{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);background:var(--cream-50);border:var(--sw-thin) solid var(--stroke-soft);border-radius:var(--r-md)}.shipping-zone--box{background:var(--cream-200);border-style:dashed}.shipping-zone__heading{margin:0;font-size:var(--fs-md);font-weight:700;color:var(--fg-ink)}.shipping-zone__grid{display:flex;flex-wrap:wrap;gap:var(--sp-2);max-height:calc(var(--app-vh) * .25);overflow-y:auto}.shipping-zone__empty{margin:0;padding:var(--sp-2) 0;font-size:var(--fs-sm);color:var(--fg-muted);text-align:center}.shipping-zone__hint{margin:0;font-size:var(--fs-xs);color:var(--fg-muted);text-align:center}.shipping-chip{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);padding:var(--sp-2);background:var(--bg-pill);border:var(--sw-mid) solid var(--stroke-dark);border-radius:var(--r-md);box-shadow:var(--sh-btn);cursor:pointer;font:inherit;transition:transform var(--dur-fast) var(--ease-pop)}.shipping-chip:hover{transform:translateY(-2px)}.shipping-chip:active{transform:translateY(1px)}.shipping-chip:focus-visible{outline:none;box-shadow:var(--sh-btn),0 0 0 3px var(--gold-400)}.shipping-chip__star{position:absolute;top:calc(-1 * var(--sp-1));right:calc(-1 * var(--sp-1));font-size:var(--fs-sm);line-height:1}.shipping-chip__name{font-size:var(--fs-xs);font-weight:600;color:var(--fg-ink);max-width:72px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shipping-status{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);padding-block:var(--sp-5);text-align:center}.shipping-status__title{margin:0;font-size:var(--fs-lg);font-weight:700;color:var(--fg-ink)}.shipping-status__hint{margin:0;font-size:var(--fs-md);color:var(--fg-muted)}.shipping-status__timer{font-size:var(--fs-2xl)}.shipping-waiting{margin:0;padding:var(--sp-2) var(--sp-3);background:var(--cream-50);border:var(--sw-thin) solid var(--stroke-soft);border-radius:var(--r-sm);font-size:var(--fs-sm);color:var(--fg-muted)}.shipping-waiting__timer{font-weight:700}.shipping-waiting__debug{display:inline-block;margin-left:var(--sp-2);padding:2px var(--sp-2);border:var(--sw-thin) solid var(--stroke-soft);border-radius:var(--r-sm);background:var(--bg-pill);color:var(--fg-ink);font-family:monospace;font-size:var(--fs-xs);cursor:pointer}.shipping-footer{display:flex;flex-direction:column;gap:var(--sp-2)}.shipping-preview{padding-block:var(--sp-2)}.shipping-ship{align-self:stretch}.shipping-footer__eta{margin:0;font-size:var(--fs-xs);color:var(--fg-muted);text-align:center}.ui-levelpips{display:inline-flex;align-items:center;gap:calc(6px * var(--ui-scale))}.ui-levelpips__pip{width:calc(10px * var(--ui-scale));height:calc(10px * var(--ui-scale));border-radius:var(--r-pill);background:var(--bg-pill);border:var(--sw-thin) solid var(--bark-600)}.ui-levelpips__pip--filled{background:var(--amber-400);border-color:var(--bark-600)}.shop-stall__sign{display:block;width:100%}.shop-panel__content{display:flex;flex-direction:column;gap:var(--sp-3);max-height:calc(var(--app-vh) * .45);flex:1 1 auto;min-height:0;overflow-y:auto;padding:var(--sp-3) var(--sp-1) var(--sp-3)}.shop-panel__empty{margin:0;padding:var(--sp-6) var(--sp-4);text-align:center;color:var(--cream-50);font-size:var(--fs-md)}.shop-panel__fx-host .ui-btn--sm{min-height:calc(36px * var(--ui-scale));border-radius:var(--r-md);font-size:var(--fs-md)}.shop-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--sp-3);padding:var(--sp-3);background:var(--row-cream);border:var(--sw-mid) solid var(--bark-soft);border-radius:var(--r-md)}.shop-row__icon{flex:0 0 auto;display:inline-flex;padding:var(--sp-2);background:var(--bg-pill);border:var(--sw-mid) solid var(--bark-tile);border-radius:var(--r-md)}.shop-row .ui-badge--num{background:var(--amber-500);color:var(--fg-ink);border-color:var(--bark-900)}.shop-row__main{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0}.shop-row__name{margin:0;font-size:var(--fs-md);font-weight:600;color:var(--fg-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shop-row__price{position:relative;align-self:flex-start;display:inline-flex;align-items:center;gap:var(--sp-1);min-height:calc(24px * var(--ui-scale));padding:0 var(--sp-2) 0 calc(16px * var(--ui-scale));background:var(--bg-pill);border:var(--sw-mid) solid var(--bark-600);border-radius:var(--r-md);font-size:var(--fs-sm);color:var(--fg-ink);font-variant-numeric:tabular-nums}.shop-row__price-value{font-weight:600}.shop-row__price-suffix{color:var(--fg-muted);font-weight:500}.shop-row__price-icon{position:absolute;left:calc(-10px * var(--ui-scale));top:50%;transform:translateY(-50%);color:var(--accent-coin)}.shop-row__actions{display:flex;flex-direction:column;align-items:flex-end;gap:var(--sp-2)}.shop-row__sell-all{align-self:stretch}@media (max-width: 480px){.shop-row{grid-template-columns:auto 1fr}.shop-row__actions{grid-column:1 / -1;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between}.shop-row__sell-all{align-self:auto}}.shop-upgrade{background:var(--row-cream);border-color:var(--bark-soft);border-radius:var(--r-md);box-shadow:none}.shop-upgrade__body{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3)}.shop-upgrade__icon{flex:0 0 auto;align-self:center;box-sizing:content-box;width:52px;height:52px;padding:var(--sp-2);background:var(--bg-pill);border:var(--sw-mid) solid var(--bark-tile);border-radius:var(--r-md)}.shop-upgrade__copy{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0;flex:1 1 auto}.shop-upgrade__title{margin:0;font-size:var(--fs-md);font-weight:600;color:var(--fg-ink)}.shop-upgrade__desc{margin:0;font-size:var(--fs-xs);color:var(--fg-ink)}.shop-upgrade__cost{position:relative;align-self:flex-start;display:inline-flex;align-items:center;gap:var(--sp-1);min-height:calc(24px * var(--ui-scale));margin-left:calc(10px * var(--ui-scale));padding:0 var(--sp-2) 0 calc(16px * var(--ui-scale));background:var(--bg-pill);border:var(--sw-mid) solid var(--bark-600);border-radius:var(--r-md);font-size:var(--fs-sm);color:var(--fg-ink);font-variant-numeric:tabular-nums;font-weight:600}.shop-upgrade__cost-icon{position:absolute;left:calc(-10px * var(--ui-scale));top:50%;transform:translateY(-50%);color:var(--accent-coin)}.shop-upgrade__cost--owned{color:var(--accent-ok);margin-left:0;padding-left:var(--sp-2)}.shop-panel__fx-host{display:contents}.ui-btn.is-popping{animation:shop-btn-pop var(--shop-tf-pop-duration) var(--ease-pop);transform-origin:center}@keyframes shop-btn-pop{0%{transform:scale(1)}50%{transform:scale(var(--shop-tf-pop-scale))}to{transform:scale(1)}}.ui-btn.is-shaking{animation:shop-btn-shake var(--shop-tf-shake-duration) cubic-bezier(.36,.07,.19,.97);transform-origin:center}@keyframes shop-btn-shake{0%,to{transform:translate(0)}10%{transform:translate(calc(var(--shop-tf-shake-amp) * -1))}30%{transform:translate(var(--shop-tf-shake-amp))}50%{transform:translate(calc(var(--shop-tf-shake-amp) * -.6))}70%{transform:translate(calc(var(--shop-tf-shake-amp) * .6))}90%{transform:translate(calc(var(--shop-tf-shake-amp) * -.2))}}.shop-row.is-fail-flash{animation:shop-row-fail-flash var(--shop-tf-fail-duration) ease-out}@keyframes shop-row-fail-flash{0%{background:var(--row-cream)}35%{background:var(--shop-tf-fail-color);box-shadow:0 0 0 2px var(--shop-tf-fail-color)}to{background:var(--row-cream)}}@media (prefers-reduced-motion: reduce){.ui-btn.is-popping,.ui-btn.is-shaking,.shop-row.is-fail-flash{animation-duration:1ms!important}}.lucky-spin{position:absolute;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;padding:max(var(--sp-4),calc(env(safe-area-inset-top) + var(--sp-4))) max(var(--sp-4),env(safe-area-inset-right)) max(var(--sp-4),env(safe-area-inset-bottom)) max(var(--sp-4),env(safe-area-inset-left));box-sizing:border-box;overflow-y:auto;-webkit-overflow-scrolling:touch;background:repeating-conic-gradient(from 0deg at 50% 46%,color-mix(in srgb,var(--cream-50) 7%,transparent) 0deg 9deg,transparent 9deg 18deg),radial-gradient(circle at 50% 46%,color-mix(in srgb,var(--cocoa-700) 40%,transparent),color-mix(in srgb,var(--cocoa-900) 62%,transparent) 72%);animation:lucky-spin-fade var(--dur-med) var(--ease-out);--wheel-size: min(calc(var(--app-vh) * .52), 92vw)}@keyframes lucky-spin-fade{0%{opacity:0}to{opacity:1}}.lucky-spin__panel{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);margin:auto;flex-shrink:0}.lucky-spin__banner{position:relative;display:flex;align-items:center;justify-content:center;padding:var(--sp-2) var(--sp-8);border-radius:var(--r-lg);background:linear-gradient(var(--red-400),var(--red-500));border:var(--sw-bold) solid var(--red-700);box-shadow:0 4px 0 0 var(--red-700),0 8px 16px -4px #00000059,inset 0 2px #ffffff40}.lucky-spin__title{font-family:Fredoka,system-ui,sans-serif;font-weight:700;font-size:clamp(calc(20px * var(--ui-scale)),min(calc(6.5vw * var(--ui-scale)),calc(var(--app-vh) * .08 * var(--ui-scale))),calc(42px * var(--ui-scale)));letter-spacing:.04em;color:var(--fg-on-dark);text-shadow:-2px 0 var(--red-700),2px 0 var(--red-700),0 -2px var(--red-700),0 2px var(--red-700),2px 2px var(--red-700),-2px 2px var(--red-700),0 4px 0 var(--red-700);pointer-events:none;white-space:nowrap}.lucky-spin__close{position:absolute;top:calc(-14px * var(--ui-scale));right:calc(-18px * var(--ui-scale));width:calc(44px * var(--ui-scale));height:calc(44px * var(--ui-scale));padding:calc(9px * var(--ui-scale));border-radius:var(--r-pill);border:var(--sw-bold) solid var(--red-700);background:linear-gradient(var(--red-400),var(--red-500));color:var(--fg-on-dark);cursor:pointer;box-shadow:0 3px 0 0 var(--red-700),0 6px 10px -4px #0000004d;transition:transform var(--dur-fast) var(--ease-out)}.lucky-spin__close:hover{transform:scale(1.08)}.lucky-spin__close:active{transform:scale(.96)}.lucky-spin__close svg{width:100%;height:100%;display:block}.lucky-spin__wheel{position:relative;width:var(--wheel-size);height:var(--wheel-size);margin-top:clamp(12px,calc(var(--app-vh) * .05),44px);transition:filter var(--dur-med) var(--ease-out)}.lucky-spin__wheel--cooling{filter:saturate(.75) brightness(.9)}.lucky-spin__wheel--cooling .lucky-spin__bulbs{opacity:.45}.lucky-spin__rim{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--r-pill);background:radial-gradient(circle at 50% 32%,var(--gold-200),var(--gold-500) 55%,var(--gold-600) 92%);border:var(--sw-bold) solid var(--cocoa-700);box-shadow:0 14px 30px -6px #00000073,inset 0 -5px #0000002e,inset 0 4px #ffffff73;pointer-events:none}.lucky-spin__disc{position:absolute;top:8%;left:8%;width:84%;height:84%;box-sizing:border-box;border-radius:var(--r-pill);border:var(--sw-bold) solid var(--cocoa-700);overflow:hidden;transition:none}.lucky-spin__disc:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--r-pill);background:var(--wheel-divider-bg, none);pointer-events:none}.lucky-spin__disc.wheel-spinning{animation:wheel-spin var(--spin-duration, 3s) cubic-bezier(.2,.8,.3,1) forwards}@keyframes wheel-spin{0%{transform:rotate(0)}to{transform:rotate(var(--spin-target, 1800deg))}}.lucky-spin__slot{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;pointer-events:none}.lucky-spin__slot-img{display:block;width:calc(var(--wheel-size) * .11);height:auto;filter:drop-shadow(0 1px 2px rgba(0,0,0,.28))}.lucky-spin__slot--special .lucky-spin__slot-img{width:calc(var(--wheel-size) * .065)}.lucky-spin__cap{position:absolute;top:50%;left:50%;width:20%;height:20%;transform:translate(-50%,-50%);border-radius:var(--r-pill);background:radial-gradient(circle at 40% 32%,var(--gold-200),var(--gold-400) 55%,var(--gold-600));border:var(--sw-bold) solid var(--cocoa-700);box-shadow:0 3px 8px #00000059;display:grid;place-items:center}.lucky-spin__cap:after{content:"★";color:var(--gold-700);font-size:calc(var(--wheel-size) * .075);line-height:1;text-shadow:0 1px 0 rgba(255,255,255,.35)}.lucky-spin__bulbs{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;transition:opacity var(--dur-med) var(--ease-out)}.lucky-spin__bulbs span{position:absolute;top:50%;left:50%;width:calc(var(--wheel-size) * .047);height:calc(var(--wheel-size) * .047);border-radius:var(--r-pill);transform:translate(-50%,-50%) rotate(var(--bulb-angle, 0deg)) translateY(calc(var(--wheel-size) * -.46));background:radial-gradient(circle at 35% 30%,var(--cream-50),var(--gold-300) 60%,var(--gold-600));border:var(--sw-thin) solid var(--gold-700);box-shadow:0 0 calc(var(--wheel-size) * .02) color-mix(in srgb,var(--gold-300) 90%,transparent)}.lucky-spin__pointer{position:absolute;top:-5%;left:50%;width:16%;height:auto;transform:translate(-50%);z-index:3;filter:drop-shadow(0 3px 3px rgba(0,0,0,.35));pointer-events:none}.lucky-spin__wheel-fx{position:absolute;top:50%;left:50%;width:150%;height:150%;transform:translate(-50%,-50%);pointer-events:none}.lucky-spin__footer{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);min-width:min(80vw,320px)}.lucky-spin__action{font-family:Fredoka,system-ui,sans-serif;font-weight:700;font-size:var(--fs-xl);letter-spacing:.06em;text-transform:uppercase;color:var(--fg-on-dark);padding:var(--sp-3) var(--sp-10);border:none;border-radius:var(--r-pill);background:linear-gradient(var(--sage-400),var(--sage-600));box-shadow:0 5px 0 0 var(--sage-800),0 10px 16px -6px #00000059,inset 0 2px #ffffff4d;text-shadow:0 2px 0 var(--sage-800);cursor:pointer;transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.lucky-spin__action:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 7px 0 0 var(--sage-800),0 12px 18px -6px #00000059,inset 0 2px #ffffff4d}.lucky-spin__action:active:not(:disabled){transform:translateY(3px);box-shadow:0 2px 0 0 var(--sage-800),0 6px 10px -6px #00000059,inset 0 2px #ffffff4d}.lucky-spin__action:disabled{cursor:default;filter:grayscale(.4);opacity:.7}.lucky-spin__cooldown{display:flex;flex-direction:column;align-items:stretch;gap:var(--sp-2);width:min(80vw,340px);box-sizing:border-box;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-lg);background:color-mix(in srgb,var(--cocoa-900) 60%,transparent);border:var(--sw-mid) solid var(--gold-600);box-shadow:inset 0 2px #ffffff14,0 6px 14px -4px #00000059}.lucky-spin__cooldown-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-2)}.lucky-spin__cooldown-label{font-weight:700;font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--cream-200)}.lucky-spin__cooldown .lucky-spin__cooldown-timer{font-size:var(--fs-lg);font-weight:700;color:var(--gold-300);font-variant-numeric:tabular-nums}.lucky-spin__cooldown-bar{height:12px;border-radius:var(--r-pill);overflow:hidden;background:var(--cocoa-900);border:var(--sw-thin) solid var(--cocoa-700)}.lucky-spin__cooldown-fill{height:100%;border-radius:var(--r-pill);background:linear-gradient(var(--gold-200),var(--gold-500));transition:width 1s linear}.lucky-spin__skip{font-family:Fredoka,system-ui,sans-serif;font-weight:700;font-size:var(--fs-sm);letter-spacing:.05em;text-transform:uppercase;color:var(--cocoa-800);padding:var(--sp-2) var(--sp-5);border:none;border-radius:var(--r-pill);background:linear-gradient(var(--gold-200),var(--gold-400));box-shadow:0 3px 0 0 var(--gold-600),0 6px 10px -4px #00000040;cursor:pointer;transition:transform var(--dur-fast) var(--ease-out)}.lucky-spin__skip:hover{transform:translateY(-1px)}.lucky-spin__skip:active{transform:translateY(1px)}.lucky-spin__reveal{position:relative;width:var(--wheel-size);height:var(--wheel-size);display:flex;align-items:center;justify-content:center}.lucky-spin__glow{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:repeating-conic-gradient(color-mix(in srgb,var(--gold-200) 16%,transparent) 0deg 10deg,transparent 10deg 20deg),radial-gradient(circle,color-mix(in srgb,var(--gold-300) 55%,transparent) 0%,color-mix(in srgb,var(--gold-300) 18%,transparent) 38%,transparent 66%);-webkit-mask-image:radial-gradient(circle,#000 30%,transparent 70%);mask-image:radial-gradient(circle,#000 30%,transparent 70%)}.lucky-spin__reveal-fx{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.lucky-spin__prize{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);animation:lucky-prize-pop var(--dur-med) var(--ease-pop)}.lucky-spin__prize--fx{animation:lucky-prize-reveal-pop .4s cubic-bezier(.34,1.56,.64,1) .35s both,lucky-prize-float 2.4s ease-in-out .75s infinite}.lucky-spin__prize-img{display:block;width:calc(var(--wheel-size) * .34);height:auto;filter:drop-shadow(0 3px 3px rgba(0,0,0,.28))}.lucky-spin__prize-text{display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);margin-top:var(--sp-2)}.lucky-spin__prize-qty{font-family:Fredoka,system-ui,sans-serif;font-weight:700;font-size:clamp(32px,calc(var(--app-vh) * .08),56px);color:var(--gold-300);text-shadow:-2px 0 var(--red-700),2px 0 var(--red-700),0 -2px var(--red-700),0 2px var(--red-700),2px 2px var(--red-700),-2px 2px var(--red-700),0 4px 0 var(--red-700);font-variant-numeric:tabular-nums;line-height:1}.lucky-spin__prize-name{font-family:Fredoka,system-ui,sans-serif;font-weight:700;font-size:var(--fs-md);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-on-dark);text-shadow:0 2px 3px rgba(0,0,0,.4)}.lucky-spin__help{position:absolute;top:calc(-14px * var(--ui-scale));left:calc(-18px * var(--ui-scale));width:calc(44px * var(--ui-scale));height:calc(44px * var(--ui-scale));border-radius:var(--r-pill);border:var(--sw-bold) solid var(--gold-700);background:linear-gradient(var(--gold-200),var(--gold-400));color:var(--cocoa-900);font-family:Fredoka,system-ui,sans-serif;font-weight:700;font-size:var(--fs-lg);line-height:1;cursor:pointer;box-shadow:0 3px 0 0 var(--gold-700),0 6px 10px -4px #0000004d;transition:transform var(--dur-fast) var(--ease-out)}.lucky-spin__help:hover{transform:scale(1.08)}.lucky-spin__help:active{transform:scale(.96)}.lucky-spin__prizes{width:min(92vw,460px);max-height:calc(var(--app-vh) * .6);overflow-y:auto;box-sizing:border-box;margin-top:clamp(12px,calc(var(--app-vh) * .05),44px);padding:var(--sp-4);background:color-mix(in srgb,var(--cocoa-900) 60%,transparent);border:var(--sw-mid) solid var(--gold-600);border-radius:var(--r-lg);box-shadow:inset 0 2px #ffffff14,0 6px 14px -4px #00000059}.lucky-spin__prizes-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2)}.lucky-spin__prizes-item{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2);background:var(--cream-50);border:var(--sw-mid) solid var(--cocoa-700);border-radius:var(--r-md)}.lucky-spin__prizes-item--special{background:linear-gradient(var(--gold-200),var(--gold-400));border-color:var(--gold-700)}.lucky-spin__prizes-icon{flex:0 0 auto;width:calc(34px * var(--ui-scale));height:auto}.lucky-spin__prizes-label{font-family:Fredoka,system-ui,sans-serif;font-weight:700;font-size:var(--fs-sm);color:var(--fg-ink)}@keyframes lucky-prize-pop{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes lucky-prize-reveal-pop{0%{opacity:0;transform:scale(0) rotate(-6deg)}to{opacity:1;transform:scale(1) rotate(0)}}@keyframes lucky-prize-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@media (prefers-reduced-motion: reduce){.lucky-spin,.lucky-spin__prize{animation:none}}@media (max-height: 500px){.lucky-spin{--wheel-size: min(calc(var(--app-vh) * .48), 62vw)}.lucky-spin__wheel{margin-top:4px}.lucky-spin__banner{padding:var(--sp-1) var(--sp-6)}.lucky-spin__title{font-size:clamp(calc(16px * var(--ui-scale)),min(calc(5vw * var(--ui-scale)),calc(var(--app-vh) * .06 * var(--ui-scale))),calc(28px * var(--ui-scale)))}.lucky-spin__action{font-size:var(--fs-md);padding:var(--sp-2) var(--sp-8)}.lucky-spin__prizes{max-height:calc(var(--app-vh) * .45);margin-top:var(--sp-2)}}.seed-selector__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-2)}.seed-selector__row{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);background:var(--row-cream);border:var(--sw-mid) solid var(--bark-soft);border-radius:var(--r-md)}.seed-selector__label{font-size:var(--fs-md);font-weight:600;text-align:left}.seed-selector__qty{font-size:var(--fs-sm);font-variant-numeric:tabular-nums;opacity:.85}.seed-selector__empty,.confirmation-modal__message{margin:0;text-align:center;font-size:var(--fs-md)}.confirmation-modal__cost{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);align-self:center;min-height:calc(28px * var(--ui-scale));padding:var(--sp-1) var(--sp-3);background:var(--bg-pill);border:var(--sw-mid) solid var(--bark-600);border-radius:var(--r-md)}.confirmation-modal__cost-value{font-size:var(--fs-lg);font-weight:700;font-variant-numeric:tabular-nums;color:var(--fg-ink)}.confirmation-modal__actions{display:flex;justify-content:center;gap:var(--sp-3)}.confirmation-modal__cost--short .confirmation-modal__cost-value{color:var(--red-500)}.confirmation-modal__shortfall{margin:0;text-align:center;font-size:var(--fs-sm);font-weight:600;color:var(--red-500)}.confirmation-details{display:flex;flex-direction:column;gap:var(--sp-3)}.confirmation-details__hero{display:flex;align-items:center;justify-content:center;gap:var(--sp-3)}.confirmation-details__hero img{display:block;object-fit:contain}.confirmation-details__hero-copy{display:flex;flex-direction:column;gap:2px;text-align:left;min-width:0}.confirmation-details__hero-heading{margin:0;font-size:var(--fs-md);font-weight:700;color:var(--fg-ink)}.confirmation-details__hero-subtext{margin:0;font-size:var(--fs-sm);color:var(--fg-muted)}.confirmation-details__levelup{display:flex;align-items:center;justify-content:center;gap:var(--sp-2)}.confirmation-details__levelup-label{font-size:var(--fs-sm);font-weight:600;color:var(--fg-muted)}.confirmation-details__arrow{color:var(--fg-muted);flex:0 0 auto}.confirmation-details__stat{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-2);background:var(--bg-pill);border:var(--sw-thin) solid var(--stroke-soft);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);font-size:var(--fs-sm)}.confirmation-details__stat-label{color:var(--fg-muted);font-weight:600}.confirmation-details__stat-values{display:inline-flex;flex-wrap:wrap;justify-content:flex-end;margin-left:auto;min-width:0;align-items:center;gap:var(--sp-1);font-variant-numeric:tabular-nums}.confirmation-details__stat-before{color:var(--fg-muted);white-space:nowrap}.confirmation-details__stat-after{font-weight:700;color:var(--fg-ink);white-space:nowrap}.confirmation-details__stat-after--improved{color:var(--accent-ok)}.confirmation-details__callout{display:flex;align-items:center;gap:var(--sp-2);background:linear-gradient(180deg,var(--gold-200) 0%,var(--gold-300) 100%);border:var(--sw-thin) solid var(--gold-600);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);font-size:var(--fs-sm);font-weight:700;color:var(--gold-700);text-align:left}.confirmation-details__callout>:first-child{flex:0 0 auto}.confirmation-details__features{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--sp-2)}.confirmation-details__feature{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--fg-ink);text-align:left}.confirmation-details__feature>:first-child{flex:0 0 auto}.confirmation-details__prizes{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--sp-2)}.confirmation-details__prize{display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);width:76px;padding:var(--sp-2);background:var(--bg-pill);border:var(--sw-thin) solid var(--stroke-soft);border-radius:var(--r-md)}.confirmation-details__prize--special{background:linear-gradient(180deg,var(--gold-200) 0%,var(--gold-300) 100%);border-color:var(--gold-600)}.confirmation-details__prize-art{width:32px;height:32px;object-fit:contain}.confirmation-details__prize-qty{font-size:var(--fs-sm);font-weight:700;font-variant-numeric:tabular-nums;color:var(--fg-ink)}.confirmation-details__prize-label{font-size:var(--fs-sm);color:var(--fg-muted)}.df-root{width:100%;min-height:100vh;background:var(--debug-bg);display:flex;flex-direction:column;align-items:center;padding:24px 16px;gap:20px;font-family:Arial,Helvetica,sans-serif;box-sizing:border-box}.df-toolbar{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.df-group-label{width:100%;text-align:center;font-size:11px;color:var(--debug-muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:-4px}.df-btn{background:var(--debug-surface);color:#ffffffb3;border:1px solid var(--debug-stroke);border-radius:6px;padding:6px 14px;cursor:pointer;font-size:12px;font-family:inherit;transition:border-color .15s,color .15s}.df-btn:hover{border-color:var(--debug-accent);color:var(--debug-accent)}.df-btn.active{border-color:var(--debug-accent);color:var(--debug-accent);background:#0ec3c91a}.df-btn:focus{outline:none}.df-btn:focus-visible{outline:none;box-shadow:0 0 0 2px var(--debug-accent)}.df-size-label{color:var(--debug-muted);font-size:12px;letter-spacing:.04em}.df-frame{display:block;border:1px solid var(--debug-stroke);flex-shrink:0}.dbg-stats{position:absolute;bottom:8px;left:8px;display:flex;flex-direction:column;gap:2px;pointer-events:none;z-index:100}.dbg-stats span{font-size:11px;font-family:monospace;color:var(--debug-text-on-dark);background:#000000b3;padding:1px 5px;border-radius:2px}.cutscene-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:var(--z-cutscene);pointer-events:none}.cutscene-overlay__text-wrap{position:absolute;left:0;right:0;bottom:8%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-2);background:transparent;border:0;padding:0;margin:0;font:inherit;color:inherit;pointer-events:auto;cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;text-align:center}.cutscene-overlay__text-wrap:focus{outline:none}.cutscene-overlay__text-wrap:focus-visible{outline:none}.cutscene-overlay__text-wrap:focus-visible .cutscene-overlay__text{box-shadow:0 0 0 3px var(--gold-400),0 8px 24px -10px color-mix(in srgb,var(--black) 70%,transparent)}.cutscene-overlay__text{margin:0;padding:var(--sp-3) var(--sp-5);width:min(90vw,54rem);max-width:calc(100vw - 10%);box-sizing:border-box;background:var(--bg-cutscene-dialog);color:var(--fg-on-dark);border:var(--sw-thin) solid var(--stroke-cutscene-dialog);border-radius:var(--r-pill);box-shadow:0 8px 24px -10px color-mix(in srgb,var(--black) 70%,transparent);backdrop-filter:blur(8px) saturate(1.1);-webkit-backdrop-filter:blur(8px) saturate(1.1);font-family:Fredoka,system-ui,sans-serif;font-weight:500;font-size:var(--fs-lg);line-height:1.45;text-align:center;text-shadow:0 1px 2px color-mix(in srgb,var(--black) 50%,transparent);animation:cutscene-text-in var(--dur-slow) var(--ease-out) both;transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out)}.cutscene-overlay__text-wrap:hover .cutscene-overlay__text{background:color-mix(in srgb,var(--black) 78%,transparent)}.cutscene-overlay__text-wrap:active .cutscene-overlay__text{transform:translateY(1px);box-shadow:0 4px 14px -8px color-mix(in srgb,var(--black) 70%,transparent)}.cutscene-overlay__tap{position:relative;display:inline-flex;align-items:center;gap:var(--sp-1);margin:0;min-height:24px;padding:var(--sp-1) var(--sp-3);background:transparent;border:0;border-radius:var(--r-sm);color:var(--fg-on-dark);font-family:Fredoka,system-ui,sans-serif;font-weight:600;font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;text-shadow:0 1px 4px color-mix(in srgb,var(--black) 70%,transparent);animation:cutscene-tap-pulse 1.6s ease-in-out infinite;pointer-events:none}.cutscene-overlay__tap-icon{animation:cutscene-tap-bounce 1.4s ease-in-out infinite}@keyframes cutscene-tap-pulse{0%,to{opacity:.65}50%{opacity:1}}@keyframes cutscene-tap-bounce{0%,to{transform:translate(0)}50%{transform:translate(3px)}}@keyframes cutscene-text-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.cutscene-overlay__text{animation:none;transition:none}.cutscene-overlay__tap,.cutscene-overlay__tap-icon{animation:none}}@media (max-aspect-ratio: 1/1){.cutscene-overlay__text{width:min(90vw,40rem);max-width:calc(100vw - 10%);font-size:var(--fs-md)}}@media (max-height: 500px){.cutscene-overlay__text-wrap{bottom:var(--sp-3);gap:var(--sp-1)}.cutscene-overlay__text{padding:var(--sp-2) var(--sp-4);font-size:var(--fs-md);line-height:1.3}.cutscene-overlay__tap{min-height:0;padding:0 var(--sp-2)}}.onboarding-spotlight{position:absolute;top:0;right:0;bottom:0;left:0;z-index:var(--z-onboarding);pointer-events:none;animation:onboarding-spotlight-in var(--dur-med) var(--ease-out) both}@keyframes onboarding-spotlight-in{0%{opacity:0}to{opacity:1}}.onboarding-spotlight__scrim{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.onboarding-spotlight__scrim-fill{fill:var(--scrim-onboarding)}.onboarding-spotlight__cutout{transition:x var(--dur-fast) var(--ease-out),y var(--dur-fast) var(--ease-out),width var(--dur-fast) var(--ease-out),height var(--dur-fast) var(--ease-out)}.onboarding-spotlight__rim{position:absolute;box-sizing:border-box;border:var(--sw-bold) solid var(--gold-400);border-radius:var(--r-md);transition:left var(--dur-fast) var(--ease-out),top var(--dur-fast) var(--ease-out),width var(--dur-fast) var(--ease-out),height var(--dur-fast) var(--ease-out)}.onboarding-spotlight__glow{position:absolute;box-sizing:border-box;border:var(--sw-bold) solid var(--gold-400);border-radius:var(--r-md);filter:drop-shadow(0 0 clamp(12px,1vw,20px) var(--gold-400));animation:onboarding-spotlight-pulse 1.2s ease-in-out infinite;transition:left var(--dur-fast) var(--ease-out),top var(--dur-fast) var(--ease-out),width var(--dur-fast) var(--ease-out),height var(--dur-fast) var(--ease-out)}@keyframes onboarding-spotlight-pulse{0%,to{opacity:.6}50%{opacity:1}}.onboarding-spotlight[data-instant] .onboarding-spotlight__cutout,.onboarding-spotlight[data-instant] .onboarding-spotlight__rim,.onboarding-spotlight[data-instant] .onboarding-spotlight__glow{transition:none}@media (prefers-reduced-motion: reduce){.onboarding-spotlight{animation:none}.onboarding-spotlight__glow{animation:none;opacity:1}}.onboarding-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:var(--z-onboarding);pointer-events:none}.onboarding-layer.is-blocking{pointer-events:auto}.onboarding-hint{position:absolute;pointer-events:none}.onboarding-hint[data-side=below]{transform:none}.onboarding-hint[data-side=above]{transform:translateY(-100%)}.onboarding-hint[data-side=right]{transform:translateY(-50%)}.onboarding-hint[data-side=left]{transform:translate(-100%,-50%)}.onboarding-hint--bottom{left:50%;bottom:max(var(--sp-7),env(safe-area-inset-bottom));top:auto;width:clamp(280px,28vw,440px);transform:translate(-50%)}.onboarding-hint__card{padding-block:var(--sp-3)}.onboarding-hint__text{margin:0;font-family:Fredoka,system-ui,sans-serif;font-weight:400;font-size:var(--fs-lg);line-height:1.4;text-align:center;color:var(--fg-ink)}.onboarding-hint__tail{position:absolute;width:0;height:0}.onboarding-hint__tail:after{content:"";position:absolute;width:0;height:0}.onboarding-hint[data-side=below] .onboarding-hint__tail,.onboarding-hint--bottom .onboarding-hint__tail{left:50%;top:calc(-1 * var(--sp-2));transform:translate(-50%);border-left:12px solid transparent;border-right:12px solid transparent;border-bottom:12px solid var(--stroke-dark)}.onboarding-hint[data-side=below] .onboarding-hint__tail:after,.onboarding-hint--bottom .onboarding-hint__tail:after{left:50%;top:calc(var(--sw-mid));transform:translate(-50%);border-left:10px solid transparent;border-right:10px solid transparent;border-bottom:10px solid var(--bg-pill)}.onboarding-hint[data-side=above] .onboarding-hint__tail{left:50%;bottom:calc(-1 * var(--sp-2));transform:translate(-50%);border-left:12px solid transparent;border-right:12px solid transparent;border-top:12px solid var(--stroke-dark)}.onboarding-hint[data-side=above] .onboarding-hint__tail:after{left:50%;top:calc(-1 * (12px + var(--sw-mid)));transform:translate(-50%);border-left:10px solid transparent;border-right:10px solid transparent;border-top:10px solid var(--bg-pill)}.onboarding-hint[data-side=right] .onboarding-hint__tail{top:50%;left:calc(-1 * var(--sp-2));transform:translateY(-50%);border-top:12px solid transparent;border-bottom:12px solid transparent;border-right:12px solid var(--stroke-dark)}.onboarding-hint[data-side=right] .onboarding-hint__tail:after{top:50%;left:calc(var(--sw-mid));transform:translateY(-50%);border-top:10px solid transparent;border-bottom:10px solid transparent;border-right:10px solid var(--bg-pill)}.onboarding-hint[data-side=left] .onboarding-hint__tail{top:50%;right:calc(-1 * var(--sp-2));transform:translateY(-50%);border-top:12px solid transparent;border-bottom:12px solid transparent;border-left:12px solid var(--stroke-dark)}.onboarding-hint[data-side=left] .onboarding-hint__tail:after{top:50%;right:calc(var(--sw-mid));transform:translateY(-50%);border-top:10px solid transparent;border-bottom:10px solid transparent;border-left:10px solid var(--bg-pill)}.onboarding-modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-end;justify-content:center;padding:var(--sp-5);padding-bottom:max(var(--sp-5),env(safe-area-inset-bottom));background:var(--scrim-onboarding)}.onboarding-modal{display:grid;grid-template-columns:auto 1fr;gap:var(--sp-4);align-items:center;width:clamp(360px,40vw,640px);max-width:calc(100vw - var(--sp-7));padding:var(--sp-4) var(--sp-5);background:var(--bg-panel);color:var(--fg-ink);border:var(--sw-mid) solid var(--stroke-dark);border-radius:var(--r-lg);box-shadow:var(--sh-card);text-align:left;cursor:pointer;font:inherit;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;animation:onboarding-modal-in var(--dur-med) var(--ease-pop) both}.onboarding-modal:focus-visible{outline:none;box-shadow:0 0 0 3px var(--gold-400),var(--sh-card)}@keyframes onboarding-modal-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media (prefers-reduced-motion: reduce){.onboarding-modal{animation:none}}.onboarding-modal__portrait{flex:0 0 auto;width:120px;height:144px;border-radius:var(--r-md);background:var(--bg-pill);border:var(--sw-mid) solid var(--stroke-dark);display:inline-flex;align-items:center;justify-content:center;overflow:hidden}.onboarding-modal__portrait-img{display:block;width:100%;height:100%;object-fit:contain}.onboarding-modal__column{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0}.onboarding-modal__title{margin:0;font-family:Fredoka,system-ui,sans-serif;font-weight:600;font-size:var(--fs-xl);color:var(--fg-ink)}.onboarding-modal__text{margin:0;font-family:Fredoka,system-ui,sans-serif;font-weight:400;font-size:var(--fs-lg);line-height:1.45;color:var(--fg-ink)}.onboarding-modal__hint{display:inline-flex;align-items:center;gap:var(--sp-1);margin-top:var(--sp-2);font-family:Fredoka,system-ui,sans-serif;font-weight:600;font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--stroke-soft)}.onboarding-modal__hint-icon{animation:onboarding-hint-bounce 1.4s ease-in-out infinite}@keyframes onboarding-hint-bounce{0%,to{transform:translate(0)}50%{transform:translate(3px)}}@media (prefers-reduced-motion: reduce){.onboarding-modal__hint-icon{animation:none}}@media (max-width: 640px){.onboarding-modal-backdrop{padding:var(--sp-3);padding-bottom:max(var(--sp-3),env(safe-area-inset-bottom))}.onboarding-modal{width:calc(100vw - var(--sp-6));padding:var(--sp-3) var(--sp-4);gap:var(--sp-3)}.onboarding-modal__portrait{width:92px;height:110px}}@media (max-height: 500px){.onboarding-modal-backdrop{padding:var(--sp-3);padding-bottom:max(var(--sp-3),env(safe-area-inset-bottom))}.onboarding-modal{width:min(560px,calc(100vw - var(--sp-6)));padding:var(--sp-2) var(--sp-4);gap:var(--sp-3)}.onboarding-modal__portrait{width:64px;height:76px}.onboarding-modal__title{font-size:var(--fs-md)}.onboarding-modal__text{font-size:var(--fs-sm);line-height:1.35}.onboarding-modal__hint{margin-top:var(--sp-1)}}.shipping-tally{position:absolute;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;padding:max(var(--sp-7),calc(env(safe-area-inset-top) + var(--sp-4))) max(var(--sp-4),env(safe-area-inset-right)) max(var(--sp-4),env(safe-area-inset-bottom)) max(var(--sp-4),env(safe-area-inset-left));box-sizing:border-box;overflow-y:auto;-webkit-overflow-scrolling:touch;background:#32180999;cursor:pointer;-webkit-user-select:none;user-select:none;animation:shipping-tally-fade var(--dur-med) var(--ease-out)}.shipping-tally:focus{outline:none}.shipping-tally:focus-visible{outline:none;box-shadow:inset 0 0 0 3px var(--gold-400)}.shipping-tally__card{width:100%;max-width:480px;margin:auto;flex-shrink:0;cursor:default;animation:shipping-tally-pop var(--dur-med) var(--ease-pop)}.shipping-tally__rows{display:flex;flex-direction:column}@keyframes shipping-tally-fade{0%{opacity:0}to{opacity:1}}@keyframes shipping-tally-pop{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.shipping-tally__row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-2) 0;border-bottom:var(--sw-thin) solid var(--stroke-soft);font-size:var(--fs-md);color:var(--fg-ink);opacity:0;transform:translateY(8px);transition:opacity var(--dur-med) var(--ease-out),transform var(--dur-med) var(--ease-out)}.shipping-tally__row:last-child{border-bottom:none}.shipping-tally__row.is-visible{opacity:1;transform:translateY(0)}.shipping-tally__row-label{display:inline-flex;align-items:center;gap:var(--sp-2);font-weight:600;min-width:0}.shipping-tally__row-icon{flex:0 0 auto}.shipping-tally__row-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shipping-tally__row-qty{color:var(--fg-muted);font-weight:600;font-variant-numeric:tabular-nums;flex:0 0 auto}.shipping-tally__row-bonus{flex:0 0 auto;padding:1px var(--sp-2);border-radius:var(--r-pill);background:var(--gold-400);border:var(--sw-thin) solid var(--gold-600);color:var(--cocoa-900);font-size:var(--fs-xs);font-weight:700;white-space:nowrap}.shipping-tally__row-value{display:inline-flex;align-items:baseline;gap:var(--sp-1);font-weight:700;font-variant-numeric:tabular-nums}.shipping-tally__row-num{min-width:2ch;text-align:right}.shipping-tally__row-suffix{color:var(--fg-muted);font-size:var(--fs-sm);font-weight:600}.shipping-tally__row--total{margin-top:var(--sp-2);padding-top:var(--sp-3);border-top:var(--sw-thin) solid var(--stroke-dark);border-bottom:none;font-size:var(--fs-lg)}.shipping-tally__row--total .shipping-tally__row-value{color:var(--fg-coin)}.shipping-tally__row--total .shipping-tally__row-num{font-size:var(--fs-xl)}.shipping-tally__row--total .shipping-tally__row-suffix{color:var(--fg-coin);font-weight:700}.shipping-tally__row--total.is-glow .shipping-tally__row-num{text-shadow:0 0 4px rgba(232,168,51,.45),0 1px 0 rgba(50,24,9,.3);transition:text-shadow var(--dur-med) var(--ease-out)}.shipping-tally__continue{align-self:stretch;margin-top:var(--sp-2)}@media (prefers-reduced-motion: reduce){.shipping-tally,.shipping-tally__card{animation:none}.shipping-tally__row{transition:none;opacity:1;transform:none}}.loading-screen{position:absolute;top:0;right:0;bottom:0;left:0;z-index:var(--z-loading);display:flex;align-items:center;justify-content:center;padding:max(var(--sp-4),env(safe-area-inset-top)) max(var(--sp-4),env(safe-area-inset-right)) max(var(--sp-4),env(safe-area-inset-bottom)) max(var(--sp-4),env(safe-area-inset-left));box-sizing:border-box;pointer-events:auto;background:radial-gradient(ellipse 120% 80% at 50% 20%,color-mix(in srgb,var(--gold-400) 18%,transparent),transparent 55%),linear-gradient(165deg,var(--cocoa-900) 0%,color-mix(in srgb,var(--cocoa-800) 88%,var(--black)) 45%,var(--black) 100%);animation:loading-screen-in var(--dur-med) var(--ease-out)}.loading-screen.is-exiting{animation:loading-screen-out var(--dur-fast) var(--ease-out) forwards;pointer-events:none}.loading-screen__content{display:flex;flex-direction:column;align-items:center;gap:var(--sp-4);width:min(90vw,28rem);text-align:center}.loading-screen__title{margin:0;font-family:Fredoka,system-ui,sans-serif;font-weight:600;font-size:clamp(2rem,6vw,3rem);line-height:1.05;letter-spacing:.01em;color:var(--cream-50);text-shadow:0 2px 0 color-mix(in srgb,var(--cocoa-900) 70%,transparent),0 8px 24px color-mix(in srgb,var(--black) 55%,transparent)}.loading-screen__subtitle{margin:0;font-family:Fredoka,system-ui,sans-serif;font-weight:500;font-size:var(--fs-md);color:color-mix(in srgb,var(--cream-100) 82%,transparent);letter-spacing:.04em}.loading-screen__bar{width:100%;margin-top:var(--sp-2)}.loading-screen__bar .ui-progress__label{color:var(--fg-on-dark)}.loading-screen__bar .ui-progress__percent{color:var(--cream-100)}@keyframes loading-screen-in{0%{opacity:0}to{opacity:1}}@keyframes loading-screen-out{0%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion: reduce){.loading-screen,.loading-screen.is-exiting{animation:none}}.ui-lab{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;padding:var(--sp-7) var(--sp-4);box-sizing:border-box;background:var(--cream-50);color:var(--fg-ink);font-family:inherit}.ui-lab__header{max-width:960px;margin:0 auto var(--sp-7);text-align:left}.ui-lab__title{margin:0 0 var(--sp-2);font-size:var(--fs-2xl);font-weight:700}.ui-lab__subtitle{margin:0;font-size:var(--fs-md);color:var(--stroke-soft)}.ui-lab__section{max-width:960px;margin:0 auto var(--sp-9);padding:var(--sp-5);background:var(--bg-panel);border:var(--sw-mid) solid var(--stroke-dark);border-radius:var(--r-lg);box-shadow:var(--sh-card)}.ui-lab__heading{margin:0 0 var(--sp-4);font-size:var(--fs-xl);font-weight:700;color:var(--fg-ink)}.ui-lab__subheading{margin:var(--sp-4) 0 var(--sp-2);font-size:var(--fs-sm);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--stroke-soft)}.ui-lab__section-body{display:flex;flex-direction:column;gap:var(--sp-4)}.ui-lab__group{display:flex;flex-direction:column;gap:var(--sp-2)}.ui-lab__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--sp-4);align-items:start}.ui-lab__swatch{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);padding:var(--sp-3);background:var(--cream-50);border:var(--sw-thin) dashed var(--stroke-soft);border-radius:var(--r-md);min-height:96px;box-sizing:border-box}.ui-lab__swatch-stage{display:flex;align-items:center;justify-content:center;flex-grow:1;width:100%;min-height:56px;position:relative}.ui-lab__swatch-label{font-size:var(--fs-xs);color:var(--stroke-soft);text-transform:lowercase;letter-spacing:.04em;text-align:center}.ui-lab__counter{margin-top:var(--sp-4);font-size:var(--fs-xs);color:var(--stroke-soft)}
