:root{--spruce-50:#EFF6F3;--spruce-100:#D8EAE2;--spruce-200:#B0D5C6;--spruce-300:#7FBAA5;--spruce-400:#4C9B82;--spruce-500:#2A7D66;--spruce-600:#1D6653;--spruce-700:#175344;--spruce-800:#123F34;--spruce-900:#0C2A24;--spruce-950:#071B17;--ember-300:#F2A57F;--ember-400:#E8834F;--ember-500:#DE6B33;--ember-600:#C2531F;--brass-300:#E8CC7A;--brass-400:#D9B54A;--brass-500:#C9A227;--stone-0:#FCFBF8;--stone-50:#F7F6F2;--stone-100:#EFEDE6;--stone-200:#E3E0D5;--stone-300:#CFCBBD;--stone-400:#A8A496;--stone-500:#7E7B6F;--stone-600:#5C5A50;--stone-700:#44423A;--stone-800:#2B2A24;--stone-900:#1B1B17;--stone-950:#121210;--page:var(--stone-0);--card:#FFFFFF;--surface:var(--card);--well:var(--stone-50);--hover:var(--stone-100);--border:var(--stone-200);--border-strong:var(--stone-300);--text:var(--stone-900);--text-2:var(--stone-600);--text-3:var(--stone-500);--heading:var(--stone-950);--primary:var(--spruce-600);--primary-hover:var(--spruce-700);--primary-active:var(--spruce-800);--primary-tint:var(--spruce-50);--primary-tint-2:var(--spruce-100);--on-primary:var(--stone-0);--ember:var(--ember-500);--brass:var(--brass-500);--success:#1E8A55;--success-bg:#EDF7F1;--warning:#B7791F;--warning-bg:#FBF4E6;--danger:#C63A32;--danger-bg:#FBEFEE;--info:#2E6FD8;--pay:var(--spruce-900);--brand-dark:var(--spruce-900);--glass:rgba(252,251,248,.72);--glass-border:rgba(18,18,16,.06);--scrim:rgba(18,18,16,.40);--shadow-1:0 1px 2px rgba(18,18,16,.05);--shadow-2:0 1px 2px rgba(18,18,16,.05),0 4px 12px rgba(18,18,16,.06);--shadow-3:0 2px 4px rgba(18,18,16,.05),0 12px 32px rgba(18,18,16,.10);--shadow-4:0 4px 8px rgba(18,18,16,.06),0 24px 64px rgba(18,18,16,.16);--shadow-ember:0 8px 32px rgba(222,107,51,.25);--r-xs:6px;--r-sm:8px;--r-md:10px;--r-lg:16px;--r-xl:24px;--r-pill:999px;--ease:cubic-bezier(.32,.72,0,1);--ease-exit:cubic-bezier(.4,0,1,1);--ease-spring:cubic-bezier(.34,1.56,.64,1);--ease-tap:cubic-bezier(.2,0,0,1);--t-micro:120ms;--t-std:200ms;--t-struct:320ms;--motion-fast:120ms;--motion-base:200ms;--motion-slow:320ms;--motion-celebrate:480ms;--stagger:40ms;--font-ui:"Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-display:"Bricolage Grotesque","Fraunces",Georgia,serif;--font-mono:"JetBrains Mono",ui-monospace,monospace}[data-theme=dark]{--page:#121410;--card:#1A1C18;--surface:var(--card);--well:#171915;--hover:#22241F;--border:rgba(252,251,248,.08);--border-strong:rgba(252,251,248,.14);--text:#F4F3EE;--text-2:#B9B7AB;--text-3:#8F8D82;--heading:#F4F3EE;--primary:var(--spruce-400);--primary-hover:#5BAA91;--primary-active:#3D8A72;--primary-tint:#1C2620;--primary-tint-2:#233129;--on-primary:#0B1410;--ember:var(--ember-400);--success:#4CC38A;--success-bg:#15241C;--warning:#E2B203;--warning-bg:#272013;--danger:#EB6A5F;--danger-bg:#2A1715;--pay:var(--spruce-800);--brand-dark:var(--spruce-950);--glass:rgba(18,20,16,.64);--glass-border:rgba(252,251,248,.08);--scrim:rgba(0,0,0,.55);--shadow-1:none;--shadow-2:none;--shadow-3:0 12px 32px rgba(0,0,0,.4);--shadow-4:0 24px 64px rgba(0,0,0,.5)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-ui);font-size:16px;line-height:1.5;font-weight:450;color:var(--text);background:var(--page);-webkit-font-smoothing:antialiased;font-feature-settings:"ss01","cv11"}img{max-width:100%;display:block}button{background:none;border:none;cursor:pointer}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--primary);text-decoration:none}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px}::placeholder{color:var(--text-3)}.tnum{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.mono{font-family:var(--font-mono);font-size:13px}h1,h2,h3,h4{color:var(--heading);line-height:1.25}.display{font-family:var(--font-display);font-weight:540;letter-spacing:-.015em}.heading-xl{font-size:30px;line-height:38px;font-weight:640}.heading-lg{font-size:24px;line-height:32px;font-weight:620}.heading-md{font-size:20px;line-height:28px;font-weight:600}.heading-sm{font-size:16px;line-height:24px;font-weight:600}.body-lg{font-size:18px;line-height:28px}.body-sm{font-size:14px;line-height:20px}.caption{font-size:13px;line-height:18px;font-weight:480}.micro{font-size:12px;line-height:16px;font-weight:520;letter-spacing:.02em}.overline{font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:560;color:var(--text-3)}.money-lg{font-size:30px;line-height:36px;font-weight:640;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.text-2{color:var(--text-2)}.text-3{color:var(--text-3)}.btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 16px;border-radius:var(--r-md);font-size:14px;font-weight:560;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background var(--motion-fast) var(--ease-tap),border-color var(--motion-fast) var(--ease-tap),color var(--motion-fast) var(--ease-tap),transform var(--motion-fast) var(--ease-tap),box-shadow var(--motion-base) var(--ease)}.btn:not(:disabled):active{transform:scale(.965);transition-duration:60ms}.btn:disabled{opacity:.4;cursor:default}.btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.btn-lg{height:48px;padding:0 20px;font-size:15px}.btn-xl{height:56px;padding:0 24px;font-size:16px}.btn-primary{background:var(--primary);color:var(--on-primary);box-shadow:0 1px 2px rgba(18,18,16,.06)}.btn-primary:not(:disabled):hover{background:var(--primary-hover);box-shadow:0 2px 6px rgba(18,18,16,.08),0 0 0 4px var(--primary-tint);transform:translateY(-1px)}.btn-primary:not(:disabled):active{box-shadow:0 0 0 3px var(--primary-tint)}.btn-secondary{background:var(--card);color:var(--text);border:1px solid var(--border)}.btn-secondary:not(:disabled):hover{border-color:var(--border-strong);background:var(--well);transform:translateY(-1px)}.btn-ghost{color:var(--primary)}.btn-ghost:not(:disabled):hover{background:var(--primary-tint)}.btn-pay{background:var(--pay);color:var(--stone-0);box-shadow:var(--shadow-ember);width:100%}.btn-pay:not(:disabled):hover{box-shadow:0 10px 44px rgba(222,107,51,.42);transform:translateY(-2px)}.btn-pay:not(:disabled):active{transform:scale(.985);box-shadow:0 4px 16px rgba(222,107,51,.3)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:not(:disabled):hover{filter:brightness(1.06);box-shadow:0 2px 8px rgba(235,106,95,.3)}.btn-block{width:100%}.btn-working{pointer-events:none}.btn-working .btn-label{opacity:.35}.btn-spin{position:absolute;width:15px;height:15px;border-radius:50%;border:2px solid;border-top:2px solid transparent;animation:spin .62s linear infinite}.btn-label{gap:8px;transition:opacity var(--motion-fast) var(--ease)}.btn-label,.chip{display:inline-flex;align-items:center}.chip{gap:6px;height:40px;padding:0 16px;border-radius:var(--r-pill);font-size:14px;font-weight:560;background:var(--card);border:1px solid var(--border);color:var(--text);transition:all var(--t-micro) var(--ease);white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background var(--motion-fast) var(--ease-tap),border-color var(--motion-fast) var(--ease-tap),color var(--motion-fast) var(--ease-tap),transform var(--motion-fast) var(--ease-tap)}.chip:not(:disabled):hover{border-color:var(--border-strong);transform:translateY(-1px)}.chip:not(:disabled):active{transform:scale(.96);transition-duration:60ms}.chip.active,.chip.on{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.chip.active:before,.chip.on:before{content:"✓";font-size:11px;width:0;overflow:hidden;animation:chip-tick var(--motion-base) var(--ease-spring) forwards}@keyframes chip-tick{0%{width:0;opacity:0}to{width:11px;opacity:1}}.chip-sm{height:28px;padding:0 10px;font-size:12px;font-weight:520}.tag{height:20px;padding:0 7px;gap:4px;border-radius:var(--r-xs);background:var(--hover);color:var(--text-2);font-size:11px;letter-spacing:.02em}.pill,.tag{display:inline-flex;align-items:center;font-weight:560}.pill{gap:6px;height:24px;padding:0 10px;border-radius:var(--r-pill);font-size:12px}.pill .dot{width:6px;height:6px;border-radius:50%;background:currentColor}.pill-success{background:var(--success-bg);color:var(--success)}.pill-warning{background:var(--warning-bg);color:var(--warning)}.pill-danger{background:var(--danger-bg);color:var(--danger)}.pill-neutral{background:var(--hover);color:var(--text-2)}.pill-ember{background:rgba(222,107,51,.12);color:var(--ember)}.pill-info{background:rgba(46,111,216,.12);color:var(--info)}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-1);padding:20px}.card-hover{transition:box-shadow var(--t-std) var(--ease),transform var(--t-std) var(--ease)}.card-hover:hover{box-shadow:var(--shadow-2);transform:translateY(-1px)}.callout{background:var(--primary-tint);border:1px solid transparent;border-radius:var(--r-lg);padding:16px}.input{width:100%;height:40px;padding:0 12px;border-radius:var(--r-md);background:var(--card);border:1px solid var(--border);color:var(--text);transition:border-color var(--t-micro) var(--ease)}.input:hover{border-color:var(--border-strong)}.input:focus{border-color:var(--primary);outline:2px solid var(--primary);outline-offset:0}.input-lg{height:48px;padding:0 16px}.field-label{display:block;font-size:13px;font-weight:520;margin-bottom:6px;color:var(--text)}textarea.input{height:auto;min-height:72px;padding:10px 12px;resize:none}.stepper{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:var(--r-md);height:44px;background:var(--card);overflow:hidden}.stepper button{width:44px;height:100%;font-size:18px;color:var(--text-2);transition:background var(--t-micro)}.stepper button:hover{background:var(--hover)}.stepper .count{min-width:36px;text-align:center;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.opt-row{gap:12px;min-height:48px;padding:4px 0;width:100%;text-align:left;border-radius:var(--r-sm)}.opt-row,.opt-row .ctrl{display:flex;align-items:center}.opt-row .ctrl{width:22px;height:22px;flex:none;border:1.5px solid var(--border-strong);justify-content:center;transition:all var(--t-micro) var(--ease);color:transparent}.opt-row .ctrl.radio{border-radius:50%}.opt-row .ctrl.check{border-radius:var(--r-xs)}.opt-row.selected .ctrl{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.opt-row .opt-name{flex:1 1}.opt-row .opt-price{color:var(--text-2);font-size:14px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.opt-row.disabled{opacity:.4;pointer-events:none}.glass{background:var(--glass);-webkit-backdrop-filter:blur(20px) saturate(160%);backdrop-filter:blur(20px) saturate(160%);border:1px solid var(--glass-border)}.sheet-backdrop{position:fixed;inset:0;background:var(--scrim);z-index:80;opacity:0;pointer-events:none;transition:opacity var(--t-struct) var(--ease)}.sheet-backdrop.open{opacity:1;pointer-events:auto}.sheet{position:fixed;left:50%;bottom:0;transform:translate(-50%,105%);width:100%;max-width:640px;max-height:92dvh;z-index:90;background:var(--card);border-radius:var(--r-xl) var(--r-xl) 0 0;box-shadow:var(--shadow-4);display:flex;flex-direction:column;transition:transform var(--t-struct) var(--ease);overflow:hidden}.sheet.open{transform:translate(-50%)}.grabber{width:36px;height:4px;border-radius:2px;background:var(--border-strong);margin:10px auto 0;flex:none}.sheet-body{overflow-y:auto;overscroll-behavior:contain;flex:1 1}.sheet-footer{flex:none;padding:12px 20px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--card)}.snackbar{position:fixed;left:50%;bottom:24px;transform:translate(-50%,calc(100% + 40px));z-index:120;background:var(--stone-950);color:var(--stone-0);padding:12px 16px;border-radius:12px;box-shadow:var(--shadow-3);display:flex;align-items:center;gap:16px;font-size:13px;max-width:min(92vw,480px);transition:transform var(--t-struct) var(--ease)}.snackbar.show{transform:translate(-50%)}.snackbar button{color:var(--ember-300);font-weight:600;font-size:13px}[data-theme=dark] .snackbar{background:var(--stone-100);color:var(--stone-950)}[data-theme=dark] .snackbar button{color:var(--ember-600)}.skeleton{background:var(--hover);border-radius:var(--r-sm);animation:shimmer 1.6s ease-in-out infinite}.hearthmark{display:inline-block}.hearthmark circle.ring{fill:none;stroke:currentColor}@keyframes ringdraw{0%{stroke-dashoffset:var(--ring-len,251)}to{stroke-dashoffset:0}}.spinner{animation:spin 1s linear infinite}.between,.row{display:flex;align-items:center}.between{justify-content:space-between}.hairline{border:none;border-top:1px solid var(--border)}.hide{display:none!important}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes pop{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}@keyframes slide-up{0%{transform:translateY(100%)}to{transform:none}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes shimmer{to{background-position:200% 0}}@keyframes draw{to{stroke-dashoffset:0}}.rise{animation:rise var(--motion-slow) var(--ease-spring) both}.pop{animation:pop var(--motion-base) var(--ease-spring) both}.fade{animation:fade var(--motion-base) var(--ease) both}.stagger>*{animation:rise var(--motion-slow) var(--ease-spring) both}.stagger>:first-child{animation-delay:0s}.stagger>:nth-child(2){animation-delay:calc(var(--stagger) * 1)}.stagger>:nth-child(3){animation-delay:calc(var(--stagger) * 2)}.stagger>:nth-child(4){animation-delay:calc(var(--stagger) * 3)}.stagger>:nth-child(5){animation-delay:calc(var(--stagger) * 4)}.stagger>:nth-child(6){animation-delay:calc(var(--stagger) * 5)}.stagger>:nth-child(7){animation-delay:calc(var(--stagger) * 6)}.stagger>:nth-child(8){animation-delay:calc(var(--stagger) * 7)}.stagger>:nth-child(n+9){animation-delay:calc(var(--stagger) * 8)}.skel{border-radius:var(--r-sm);background:linear-gradient(90deg,var(--well) 0,var(--hover) 40%,var(--well) 80%);background-size:200% 100%;animation:shimmer 1.4s linear infinite}.skel-line{height:12px;margin:8px 0}.skel-line.w-40{width:40%}.skel-line.w-60{width:60%}.skel-line.w-80{width:80%}.skel-block{height:76px;border-radius:var(--r-md)}.skel-card{padding:16px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--card)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow!important;transition-duration:80ms!important;transform:none!important}.btn-spin,.diag-spin{animation:spin 1.4s linear infinite!important}.skel{animation:none!important;background:var(--well)!important}::view-transition-group(*),::view-transition-new(*),::view-transition-old(*){animation:none!important}}