@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./fraunces-vietnamese-wght-normal-CnvboYUG.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./fraunces-latin-ext-wght-normal-Ca2vKHc0.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./fraunces-latin-wght-normal-ukD16Tqj.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(./fraunces-vietnamese-wght-italic-BicUS2cM.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(./fraunces-latin-ext-wght-italic-BfTTTDIL.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(./fraunces-latin-wght-italic-Py8at3oI.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #f3eadd;--bg-tint: #ecdfcd;--surface: #fffdf9;--surface-2: #f9f1e6;--ink: #2a1d14;--muted: #8a7563;--espresso: #3a2416;--espresso-deep: #21130b;--crema: #d8a85e;--gold: #c89351;--accent: #b06a1f;--accent-2: #d99a3e;--accent-soft: #f6e7cf;--accent-ink: #fffaf2;--good: #2f7d52;--good-soft: #e3f0e7;--bad: #b23b3b;--line: #e8dac6;--line-strong: #ddc9ad;--radius: 18px;--radius-sm: 12px;--radius-lg: 26px;--radius-pill: 999px;--maxw: 760px;--shadow-sm: 0 1px 2px rgba(58, 36, 22, .05), 0 2px 6px rgba(58, 36, 22, .05);--shadow: 0 2px 4px rgba(58, 36, 22, .05), 0 14px 30px -10px rgba(58, 36, 22, .16);--shadow-lg: 0 10px 20px -8px rgba(58, 36, 22, .12), 0 30px 60px -16px rgba(58, 36, 22, .22);--shadow-gold: 0 10px 28px -8px rgba(176, 106, 31, .45);--font-display: "Fraunces Variable", Georgia, "Times New Roman", serif;--font-sans: "Inter Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--ease: cubic-bezier(.22, 1, .36, 1)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;color:var(--ink);font:16px/1.6 var(--font-sans);font-feature-settings:"cv05" 1,"ss01" 1;letter-spacing:-.005em;background-color:var(--bg);background-image:radial-gradient(1100px 520px at 50% -8%,rgba(216,168,94,.22),transparent 62%),radial-gradient(900px 600px at 110% 0%,rgba(176,106,31,.1),transparent 55%),linear-gradient(180deg,var(--bg) 0%,var(--bg-tint) 100%);background-attachment:fixed;background-repeat:no-repeat;padding:env(safe-area-inset-top) 16px calc(env(safe-area-inset-bottom) + 36px);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:color-mix(in srgb,var(--accent) 25%,transparent);color:var(--espresso-deep)}.app{max-width:var(--maxw);margin:0 auto;display:flex;flex-direction:column;gap:18px}.hero{text-align:center;padding:clamp(34px,7vw,60px) 8px 12px}.eyebrow{display:inline-flex;align-items:center;gap:7px;padding:7px 15px 7px 13px;margin-bottom:18px;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--surface) 70%,transparent);border:1px solid var(--line-strong);box-shadow:var(--shadow-sm);backdrop-filter:blur(6px);font-size:.74rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}.hero h1{margin:0 0 14px;font-family:var(--font-display);font-optical-sizing:auto;font-weight:600;font-size:clamp(2.1rem,7vw,3.4rem);line-height:1.04;letter-spacing:-.02em;color:var(--espresso)}.hero h1 em{font-style:italic;font-weight:500;background:linear-gradient(100deg,var(--accent),var(--crema) 70%,var(--gold));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--accent)}.tagline{margin:0 auto;max-width:46ch;color:var(--muted);font-size:clamp(1rem,2.4vw,1.12rem);line-height:1.55}.card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:clamp(20px,4vw,28px);transition:box-shadow .35s var(--ease),transform .35s var(--ease),border-color .35s var(--ease)}.card h2{display:flex;align-items:center;gap:12px;margin:0 0 6px;font-family:var(--font-display);font-optical-sizing:auto;font-weight:600;font-size:clamp(1.25rem,3.4vw,1.5rem);letter-spacing:-.015em;color:var(--espresso)}.step-num{display:inline-grid;place-items:center;flex-shrink:0;width:34px;height:34px;border-radius:50%;font-family:var(--font-sans);font-size:.95rem;font-weight:700;color:var(--accent-ink);background:linear-gradient(145deg,var(--accent-2),var(--accent));box-shadow:0 4px 10px -2px #b06a1f80,inset 0 1px #fff6}.hint{margin:0 0 16px;color:var(--muted);font-size:.92rem;line-height:1.55}.hint strong{color:var(--accent);font-weight:600}.basket-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px;flex-wrap:wrap}.freq-toggle{display:inline-flex;border-radius:var(--radius-pill);border:1.5px solid var(--line-strong);overflow:hidden;background:var(--surface)}.freq-btn{border:none;background:transparent;padding:7px 15px;font:inherit;font-size:.82rem;font-weight:600;color:var(--muted);cursor:pointer;transition:background .18s var(--ease),color .18s var(--ease);white-space:nowrap}.freq-btn:hover:not([aria-pressed=true]){background:var(--accent-soft);color:var(--accent)}.freq-btn[aria-pressed=true]{background:linear-gradient(145deg,var(--accent-2),var(--accent));color:var(--accent-ink)}.ghost-btn{background:var(--surface);border:1px solid var(--line-strong);color:var(--accent);border-radius:var(--radius-pill);padding:8px 16px;font:inherit;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease),transform .08s var(--ease),box-shadow .2s var(--ease)}.ghost-btn:hover{background:var(--accent-soft);border-color:var(--accent);box-shadow:var(--shadow-sm)}.ghost-btn:active{transform:scale(.97)}.ghost-btn[aria-pressed=true]{background:linear-gradient(145deg,var(--accent-2),var(--accent));color:var(--accent-ink);border-color:transparent;box-shadow:var(--shadow-sm)}.tip-toggle{display:flex;flex-wrap:wrap;gap:8px}.tip-btn{flex:1 1 auto;min-width:64px;border:1.5px solid var(--line-strong);background:var(--surface);color:var(--muted);border-radius:var(--radius-pill);padding:9px 14px;font:inherit;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .18s var(--ease),color .18s var(--ease),border-color .18s var(--ease),transform .08s var(--ease)}.tip-btn:hover:not(.selected){background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.tip-btn:active{transform:scale(.96)}.tip-btn.selected{background:linear-gradient(145deg,var(--accent-2),var(--accent));color:var(--accent-ink);border-color:transparent;box-shadow:var(--shadow-sm)}.tip-readout{margin:14px 0 0;color:var(--accent);font-size:.9rem;font-weight:600;line-height:1.5}.habit-cost{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;padding:22px 18px;margin-bottom:18px;border-radius:var(--radius-sm);background:linear-gradient(135deg,var(--espresso) 0%,var(--espresso-deep) 100%);box-shadow:var(--shadow-lg)}.habit-cost:before{content:"";position:absolute;inset:0;background:radial-gradient(140% 120% at 0% 0%,rgba(216,168,94,.3),transparent 60%);pointer-events:none}.habit-cost>*{position:relative}.habit-cost-label{font-size:.74rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--crema)}.habit-cost-value{font-family:var(--font-display);font-weight:600;font-size:clamp(2.2rem,9vw,3rem);line-height:1.05;color:var(--surface)}.habit-cost-equiv{font-size:.95rem;font-weight:600;color:var(--accent-2)}.habit-cost-invested{margin-top:4px;font-size:.82rem;color:color-mix(in srgb,var(--surface) 78%,transparent)}.habit-cost-invested:empty,.habit-cost-equiv:empty{display:none}.anatomy{margin-bottom:18px;padding:16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm)}.anatomy-title{margin:0 0 12px;font-family:var(--font-display);font-size:1.05rem;font-weight:600;color:var(--espresso)}.anatomy-row{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:10px;margin-bottom:10px}.anatomy-row-label{font-size:.78rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.anatomy-bar{display:flex;height:22px;border-radius:var(--radius-pill);background:var(--surface-2);overflow:hidden}.anatomy-seg{height:100%;transition:width .5s var(--ease)}.anatomy-seg.seg-drink{background:var(--bad)}.anatomy-seg.seg-tip{background:color-mix(in srgb,var(--bad) 55%,var(--gold))}.anatomy-seg.seg-bean{background:var(--espresso)}.anatomy-seg.seg-milk{background:var(--crema)}.anatomy-total{font-family:var(--font-display);font-weight:600;font-size:.95rem;min-width:56px;text-align:right}.anatomy-total--shop{color:var(--bad)}.anatomy-total--home{color:var(--good)}.anatomy-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:4px;font-size:.76rem;color:var(--muted)}.anatomy-legend span{display:inline-flex;align-items:center;gap:5px}.anatomy-legend .dot{width:10px;height:10px;border-radius:3px}.anatomy-legend .dot.seg-drink{background:var(--bad)}.anatomy-legend .dot.seg-tip{background:color-mix(in srgb,var(--bad) 55%,var(--gold))}.anatomy-legend .dot.seg-bean{background:var(--espresso)}.anatomy-legend .dot.seg-milk{background:var(--crema)}.anatomy-verdict{margin:10px 0 0;font-size:.9rem;font-weight:600;color:var(--good)}.anatomy-verdict:empty{display:none}.machine-compare{margin:4px 0 18px;padding:16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm)}.machine-compare-title{margin:0 0 2px;font-family:var(--font-display);font-size:1.05rem;font-weight:600;color:var(--espresso)}.machine-compare-hint{margin:0 0 12px;font-size:.82rem;color:var(--muted)}.machine-compare-list{display:flex;flex-direction:column;gap:8px}.mc-row{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);transition:border-color .2s var(--ease),background .2s var(--ease)}.mc-row.selected{border-color:var(--accent);background:linear-gradient(160deg,var(--surface),var(--accent-soft))}.mc-pick{flex:1;display:flex;flex-direction:column;gap:2px;text-align:left;background:none;border:none;padding:4px;cursor:pointer;font:inherit}.mc-name{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-weight:700;color:var(--espresso)}.mc-badge{font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--accent-ink);background:linear-gradient(145deg,var(--accent-2),var(--accent));padding:2px 7px;border-radius:var(--radius-pill)}.mc-meta{font-size:.82rem;color:var(--muted)}.mc-buy{flex-shrink:0;font-size:.82rem;font-weight:700;color:var(--accent);text-decoration:none;padding:8px 12px;border:1.5px solid var(--line-strong);border-radius:var(--radius-pill);transition:background .2s var(--ease),border-color .2s var(--ease)}.mc-buy:hover{background:var(--accent-soft);border-color:var(--accent)}.accessory-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.accessory-card{display:flex;flex-direction:column;gap:3px;padding:14px;text-decoration:none;border:1.5px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);transition:border-color .2s var(--ease),box-shadow .25s var(--ease),transform .2s var(--ease)}.accessory-card:hover{transform:translateY(-3px);border-color:var(--accent);box-shadow:var(--shadow)}.accessory-img{width:64px;height:64px;border-radius:10px;object-fit:contain;background:var(--surface-2);margin-bottom:6px}.accessory-img-placeholder{width:64px;height:64px;border-radius:10px;background:linear-gradient(135deg,var(--surface-2) 0%,var(--line) 100%);margin-bottom:6px}.accessory-category{font-size:.66rem;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);font-weight:700}.accessory-name{font-weight:700;font-size:.98rem;color:var(--espresso)}.accessory-price{font-family:var(--font-display);font-weight:600;color:var(--ink)}.accessory-blurb{font-size:.8rem;color:var(--muted);line-height:1.45;margin:2px 0 6px}.accessory-cta{margin-top:auto;font-size:.8rem;font-weight:700;color:var(--accent)}.drink-list{display:flex;flex-direction:column}.drink-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px 12px;padding:15px 4px;border-top:1px solid var(--line);border-radius:10px;transition:background .2s var(--ease)}.drink-row:first-child{border-top:none}.drink-row:hover{background:color-mix(in srgb,var(--surface-2) 60%,transparent)}.drink-name-wrap{display:flex;flex-direction:column;gap:1px}.drink-name{font-weight:600;font-size:1.02rem;color:var(--espresso);line-height:1.3}.drink-shop-price{font-size:.76rem;font-weight:500;color:var(--muted)}.qty{display:inline-flex;flex-direction:column;align-items:center;gap:5px}.qty-label{font-size:.78rem;font-weight:500;color:var(--muted)}.qty input{width:68px}.drink-prices{grid-column:1 / -1;display:flex;gap:10px;flex-wrap:wrap;padding-top:4px}.drink-prices[hidden]{display:none}.price-field{display:inline-flex;align-items:center;gap:7px;font-size:.8rem;font-weight:500;color:var(--muted);background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:7px 11px}.price-field input{width:74px}.flavor-list{display:flex;flex-direction:column}.flavor-row{display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:12px;row-gap:8px;padding:15px 4px;border-top:1px solid var(--line);border-radius:10px;transition:background .2s var(--ease)}.flavor-row:first-child{border-top:none}.flavor-row:hover{background:color-mix(in srgb,var(--surface-2) 60%,transparent)}.flavor-info{grid-column:1;display:flex;flex-direction:column;gap:1px;min-width:0}.flavor-row .qty{grid-column:2}.flavor-name{font-weight:600;font-size:1.02rem;color:var(--espresso);line-height:1.3}.flavor-blurb{font-size:.78rem;color:var(--muted);line-height:1.35}.flavor-foot{grid-column:1 / -1;display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:2px 14px}.flavor-meta{font-size:.8rem;font-weight:600;color:var(--ink)}.flavor-buy{font-size:.8rem;font-weight:700;color:var(--accent);text-decoration:none;white-space:nowrap}.flavor-buy:hover{text-decoration:underline}.flavor-readout{margin:12px 0 0;font-family:var(--font-display);font-size:.95rem;font-weight:600;color:var(--accent)}.flavor-readout:empty{display:none}input[type=number]{font:inherit;font-weight:600;padding:9px 12px;border:1px solid var(--line-strong);border-radius:11px;background:var(--surface);color:var(--ink);text-align:right;transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}input[type=number]:hover{border-color:var(--accent)}input[type=number]:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent);outline:none}input[type=number]:focus-visible,.machine-card:focus-visible,.ghost-btn:focus-visible,.cta-btn:focus-visible,.reset-link:focus-visible,.stepper-btn:focus-visible,.onboarding-reopen:focus-visible,.onboarding-close:focus-visible,summary:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 45%,white);outline-offset:2px}.stepper{display:inline-flex;align-items:stretch}.stepper-btn{width:40px;min-height:40px;display:grid;place-items:center;font-size:1.3rem;font-weight:700;line-height:1;color:var(--accent);background:var(--surface);border:1px solid var(--line-strong);cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent;transition:background .15s var(--ease),border-color .15s var(--ease),transform .08s var(--ease)}.stepper-dec{border-radius:11px 0 0 11px}.stepper-inc{border-radius:0 11px 11px 0}.stepper-btn:hover{border-color:var(--accent);background:var(--accent-soft)}.stepper-btn:active{transform:scale(.94)}.stepper-btn:focus-visible{z-index:1}.stepper input[type=number]{width:54px;text-align:center;border-radius:0;border-left:none;border-right:none;padding-left:4px;padding-right:4px;-moz-appearance:textfield;appearance:textfield}.stepper input[type=number]::-webkit-outer-spin-button,.stepper input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.field-readout{margin-top:4px}.field-readout-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.field-readout-label{font-weight:500;font-size:.94rem}.field-readout-value{font-family:var(--font-display);font-weight:700;color:var(--accent);white-space:nowrap}.field-note{margin:5px 0 0;font-size:.78rem;color:var(--muted);line-height:1.45}.field-slider{margin-top:20px}.field-slider-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:9px}.field-slider-head label{font-weight:500;font-size:.94rem}input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:6px;margin:6px 0;border-radius:999px;background:var(--line-strong);cursor:pointer}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:22px;height:22px;border-radius:50%;background:var(--accent);border:3px solid var(--surface);box-shadow:0 1px 4px #00000040;cursor:pointer}input[type=range]::-moz-range-thumb{width:22px;height:22px;border:3px solid var(--surface);border-radius:50%;background:var(--accent);box-shadow:0 1px 4px #00000040;cursor:pointer}input[type=range]:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 45%,white);outline-offset:4px}.field.inline{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px}.field.inline label{font-size:.94rem;font-weight:500}.machine-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:12px}.machine-card{position:relative;display:flex;flex-direction:column;gap:4px;text-align:left;padding:16px;border:1.5px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;overflow:hidden;transition:border-color .2s var(--ease),box-shadow .25s var(--ease),transform .2s var(--ease),background .25s var(--ease)}.machine-card:hover{transform:translateY(-3px);border-color:var(--accent);box-shadow:var(--shadow)}.machine-card:active{transform:translateY(-1px) scale(.995)}.machine-card.selected{border-color:var(--accent);background:linear-gradient(160deg,var(--surface),var(--accent-soft));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 26%,transparent),var(--shadow)}.machine-card.selected:after{content:"✓";position:absolute;top:10px;right:10px;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;font-size:.72rem;font-weight:800;color:var(--accent-ink);background:linear-gradient(145deg,var(--accent-2),var(--accent));box-shadow:0 2px 6px -1px #b06a1f99}.machine-img{width:76px;height:76px;border-radius:10px;object-fit:contain;background:var(--surface-2);margin-bottom:6px}.machine-img-placeholder{width:76px;height:76px;border-radius:10px;background:linear-gradient(135deg,var(--surface-2) 0%,var(--line) 100%);margin-bottom:6px;flex-shrink:0}.machine-card.selected .machine-img-placeholder{background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 12%,var(--surface-2)),color-mix(in srgb,var(--accent) 26%,var(--line)))}.machine-tier{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);font-weight:700}.machine-name{font-weight:700;font-size:1.02rem;color:var(--espresso)}.machine-price{font-family:var(--font-display);font-weight:600;font-size:1.1rem;color:var(--espresso)}.machine-blurb{font-size:.82rem;line-height:1.45;color:var(--muted)}details summary{display:flex;align-items:center;gap:12px;cursor:pointer;font-family:var(--font-display);font-weight:600;color:var(--espresso);font-size:clamp(1.25rem,3.4vw,1.5rem);letter-spacing:-.015em;list-style:none}details summary::-webkit-details-marker{display:none}details summary:after{content:"";width:9px;height:9px;margin-left:auto;border-right:2.5px solid var(--accent);border-bottom:2.5px solid var(--accent);transform:rotate(45deg);transition:transform .25s var(--ease)}details[open] summary:after{transform:rotate(225deg)}.opt{font-family:var(--font-sans);font-size:.85rem;font-weight:500;color:var(--muted);letter-spacing:0}.results{background:radial-gradient(120% 100% at 50% 0%,rgba(216,168,94,.1),transparent 55%),linear-gradient(165deg,var(--surface),var(--surface-2));border-color:var(--line-strong);box-shadow:var(--shadow-lg)}.results h2{justify-content:center;margin-bottom:18px}.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px}.result{display:flex;flex-direction:column;gap:4px;padding:16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);transition:transform .25s var(--ease),box-shadow .25s var(--ease)}.result:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.result.highlight{grid-column:1 / -1;position:relative;overflow:hidden;background:linear-gradient(135deg,var(--espresso) 0%,var(--espresso-deep) 100%);border-color:transparent;box-shadow:var(--shadow-lg)}.result.highlight:before{content:"";position:absolute;inset:0;background:radial-gradient(140% 120% at 100% 0%,rgba(216,168,94,.32),transparent 60%);pointer-events:none}.result.highlight>*{position:relative}.result-label{font-size:.74rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.result.highlight .result-label{color:var(--crema)}.result-value{font-family:var(--font-display);font-optical-sizing:auto;font-size:clamp(1.5rem,5vw,1.85rem);font-weight:600;letter-spacing:-.02em;color:var(--espresso);font-variant-numeric:tabular-nums}.result.highlight .result-value{font-size:clamp(1.9rem,7vw,2.5rem);color:#fff}.result-sub{font-size:.78rem;color:var(--muted)}.chart-wrap{margin:8px 0 12px;padding:14px 14px 10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm)}.timeline-svg{display:block;width:100%;height:104px;overflow:visible}.chart-labels{display:flex;justify-content:space-between;font-size:.72rem;font-weight:500;color:var(--muted);margin-top:6px}.chart-label-right{font-weight:700;font-variant-numeric:tabular-nums}.chart-zero{stroke:var(--line-strong);stroke-width:1;stroke-dasharray:3 3}.chart-area{opacity:.14}.chart-area--pos{fill:var(--good)}.chart-area--neg{fill:var(--bad)}.chart-line{fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.chart-line--pos{stroke:var(--good)}.chart-line--neg{stroke:var(--bad)}.chart-be-dot{fill:var(--good);stroke:var(--surface);stroke-width:2.5}.cup-wrap{display:flex;flex-direction:column;align-items:center;gap:10px;padding:12px 0 24px}.coffee-cup-svg{overflow:visible;transform-box:fill-box;transform-origin:center;filter:drop-shadow(0 10px 14px rgba(58,36,22,.18))}.cup-label{margin:0;font-size:.76rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);transition:color .3s var(--ease)}.cup-label--reached{color:var(--good);font-weight:700}.cup-steam{opacity:0;transform-box:fill-box;transform-origin:50% 100%}.coffee-cup--full .cup-steam:nth-child(1){animation:steam-rise 2s 0s ease-in-out infinite}.coffee-cup--full .cup-steam:nth-child(2){animation:steam-rise 2s .65s ease-in-out infinite}.coffee-cup--full .cup-steam:nth-child(3){animation:steam-rise 2s 1.3s ease-in-out infinite}@keyframes steam-rise{0%{opacity:0;transform:translateY(0) scaleX(1)}20%{opacity:.55}to{opacity:0;transform:translateY(-14px) scaleX(1.5)}}.bean-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(144px,1fr));gap:10px;margin-top:4px}.bean-card{position:relative;display:flex;flex-direction:column;gap:4px;text-align:left;padding:12px 14px 13px;border:1.5px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;overflow:hidden;transition:border-color .2s var(--ease),box-shadow .25s var(--ease),transform .2s var(--ease),background .25s var(--ease)}.bean-card:hover{transform:translateY(-2px);border-color:var(--accent);box-shadow:var(--shadow)}.bean-card:active{transform:translateY(0)}.bean-card.selected{border-color:var(--accent);background:linear-gradient(160deg,var(--surface),var(--accent-soft));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 26%,transparent),var(--shadow)}.bean-card.selected:after{content:"✓";position:absolute;top:8px;right:8px;width:18px;height:18px;display:grid;place-items:center;border-radius:50%;font-size:.65rem;font-weight:800;color:var(--accent-ink);background:linear-gradient(145deg,var(--accent-2),var(--accent))}.organic-badge{display:inline-block;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--good);background:var(--good-soft);border-radius:4px;padding:2px 5px;margin-bottom:1px;align-self:flex-start}.bean-name{font-weight:700;font-size:.88rem;line-height:1.25;color:var(--espresso)}.bean-bag{font-size:.74rem;color:var(--muted);line-height:1.3}.bean-shot{font-family:var(--font-display);font-size:.94rem;font-weight:600;color:var(--accent);margin-top:2px}.bean-card--custom{border-style:dashed}.bean-custom{margin-top:14px;padding:14px 16px;border:1.5px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--accent-soft)}.bean-custom-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:6px 20px}.bean-custom-fields .field.inline{margin-top:8px}.bean-custom-fields input{max-width:110px}.bean-custom-readout{margin:12px 0 0;font-family:var(--font-display);font-size:.95rem;font-weight:600;color:var(--accent)}.milk-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(126px,1fr));gap:10px;margin-top:4px}.milk-card{position:relative;display:flex;flex-direction:column;gap:3px;text-align:left;padding:11px 13px 12px;border:1.5px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;overflow:hidden;transition:border-color .2s var(--ease),box-shadow .25s var(--ease),transform .2s var(--ease),background .25s var(--ease)}.milk-card:hover{transform:translateY(-2px);border-color:var(--accent);box-shadow:var(--shadow)}.milk-card:active{transform:translateY(0)}.milk-card.selected{border-color:var(--accent);background:linear-gradient(160deg,var(--surface),var(--accent-soft));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 26%,transparent),var(--shadow)}.milk-card.selected:after{content:"✓";position:absolute;top:7px;right:7px;width:17px;height:17px;display:grid;place-items:center;border-radius:50%;font-size:.62rem;font-weight:800;color:var(--accent-ink);background:linear-gradient(145deg,var(--accent-2),var(--accent))}.milk-name{font-weight:700;font-size:.86rem;line-height:1.25;color:var(--espresso)}.milk-detail{font-family:var(--font-display);font-size:.9rem;font-weight:600;color:var(--accent);margin-top:2px}.milk-serving{font-size:.72rem;color:var(--muted)}.milk-custom{margin-top:14px;padding:14px 16px;border:1.5px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--accent-soft)}.milk-custom-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:6px 20px}.milk-custom-fields .field.inline{margin-top:8px}.milk-custom-fields input{max-width:110px}.milk-custom-fields select{font:inherit;padding:6px 8px;border:1.5px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:inherit;cursor:pointer}.milk-custom-readout{margin:12px 0 0;font-family:var(--font-display);font-size:.95rem;font-weight:600;color:var(--accent)}.cta-btn{position:relative;display:block;text-align:center;text-decoration:none;background:linear-gradient(135deg,var(--accent-2) 0%,var(--accent) 100%);color:var(--accent-ink);font-weight:700;font-size:1.05rem;letter-spacing:.01em;padding:17px 22px;border-radius:var(--radius-sm);box-shadow:var(--shadow-gold);overflow:hidden;isolation:isolate;transition:transform .2s var(--ease),box-shadow .25s var(--ease),filter .2s var(--ease)}.cta-btn:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);transform:translate(-120%);transition:transform .7s var(--ease)}.cta-btn:hover{transform:translateY(-2px);filter:brightness(1.04);box-shadow:0 14px 34px -8px #b06a1f8c}.cta-btn:hover:before{transform:translate(120%)}.cta-btn:active{transform:translateY(0)}.bean-cta-btn{display:block;text-align:center;text-decoration:none;border:1.5px solid var(--line-strong);background:var(--surface);color:var(--accent);font-weight:600;font-size:.95rem;padding:12px 18px;border-radius:var(--radius-sm);margin-top:10px;transition:background .2s var(--ease),border-color .2s var(--ease),transform .2s var(--ease),box-shadow .2s var(--ease)}.bean-cta-btn:hover{background:var(--accent-soft);border-color:var(--accent);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.bean-cta-btn:active{transform:translateY(0)}.how-body{margin-top:16px;font-size:.92rem;color:var(--muted);line-height:1.6}.how-body>p{margin:0 0 14px}.formula-list{margin:0 0 14px;display:grid;grid-template-columns:auto 1fr;gap:10px 18px;padding:16px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm)}.formula-list dt{font-weight:700;color:var(--espresso);white-space:nowrap}.formula-list dd{margin:0}.how-note{font-size:.82rem;opacity:.85;margin:0}.share-wrap{text-align:center;margin-top:14px}.ghost-btn:disabled{opacity:.6;cursor:default}.reset-link{display:block;margin:12px auto 0;background:none;border:none;padding:0;font:inherit;color:var(--muted);font-size:.78rem;cursor:pointer;text-decoration:underline;text-underline-offset:3px;transition:color .2s var(--ease)}.reset-link:hover{color:var(--bad)}.disclosure{text-align:center;color:var(--muted);font-size:.82rem;padding:8px 8px 12px}.disclosure p{margin:5px 0}.disclosure .fine{font-size:.76rem;opacity:.85}@media (min-width: 560px){.result-grid{grid-template-columns:repeat(3,1fr)}}.site-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:22px;padding-bottom:14px;border-bottom:1px solid var(--line)}.site-brand{font-family:var(--font-display);font-weight:600;font-size:1.05rem;color:var(--espresso);text-decoration:none}.site-nav-links{display:flex;gap:8px;flex-wrap:wrap}.site-nav-links a{font-size:.88rem;font-weight:600;color:var(--accent);text-decoration:none;padding:6px 12px;border-radius:var(--radius-pill);transition:background .18s var(--ease),color .18s var(--ease)}.site-nav-links a:hover{background:var(--accent-soft)}.site-nav-links a[aria-current=page]{background:linear-gradient(145deg,var(--accent-2),var(--accent));color:var(--accent-ink)}.content-page{gap:18px}.article{line-height:1.7}.article h1{font-family:var(--font-display);font-weight:600;font-size:clamp(1.7rem,5vw,2.3rem);line-height:1.15;color:var(--espresso);margin:0 0 12px}.article h2{font-family:var(--font-display);font-weight:600;font-size:1.3rem;color:var(--espresso);margin:26px 0 8px}.article h3{font-size:1.05rem;font-weight:700;color:var(--accent);margin:18px 0 6px}.article p{margin:0 0 14px;color:var(--ink)}.article ul{margin:0 0 16px;padding-left:22px}.article li{margin-bottom:6px}.article-lede{font-size:1.08rem;color:var(--muted)}.breadcrumb{font-size:.8rem;color:var(--muted);margin-bottom:14px}.breadcrumb a{color:var(--accent);text-decoration:none}.breadcrumb span[aria-current]{color:var(--ink);font-weight:600}.review-cta{display:inline-block;margin:6px 0 18px;padding:13px 22px;font-weight:700;text-decoration:none;color:var(--accent-ink);background:linear-gradient(145deg,var(--accent-2),var(--accent));border-radius:var(--radius-pill);box-shadow:var(--shadow-gold);transition:transform .12s var(--ease),box-shadow .2s var(--ease)}.review-cta:hover{transform:translateY(-2px)}.review-cta--alt{color:var(--accent);background:var(--surface);border:1.5px solid var(--accent);box-shadow:var(--shadow-sm)}.site-footer{margin-top:8px;padding-top:18px;border-top:1px solid var(--line);text-align:center}.site-footer-cta{display:inline-block;margin-bottom:12px;font-weight:700;color:var(--accent);text-decoration:none}.site-footer-disclosure{font-size:.8rem;color:var(--muted);margin:0 0 6px}.site-footer-fine{font-size:.74rem;color:var(--muted);margin:0}.onboarding-reopen{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom) + 16px);transform:translate(-50%);z-index:900;display:inline-flex;align-items:center;gap:7px;padding:11px 20px;border:none;border-radius:var(--radius-pill);background:linear-gradient(135deg,var(--accent-2) 0%,var(--accent) 100%);color:var(--accent-ink);font:inherit;font-size:.9rem;font-weight:700;letter-spacing:.01em;cursor:pointer;box-shadow:var(--shadow-gold);transition:transform .14s var(--ease),box-shadow .2s var(--ease)}.onboarding-reopen:hover{transform:translate(-50%) translateY(-2px);box-shadow:0 14px 34px -8px #b06a1f8c}.onboarding-reopen:active{transform:translate(-50%) translateY(0)}body.onboarding-open{overflow:hidden}.onboarding-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:clamp(8px,3vw,28px);background:#21130b8c;backdrop-filter:blur(4px);animation:onboarding-fade .25s var(--ease)}.onboarding-overlay[hidden]{display:none}.onboarding-modal{display:flex;flex-direction:column;width:min(620px,100%);max-height:min(92dvh,860px);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden;animation:onboarding-pop .32s var(--ease)}.onboarding-head{flex:none;padding:16px clamp(20px,4vw,28px) 12px;border-bottom:1px solid var(--line);background:var(--surface)}.onboarding-progress{height:5px;border-radius:var(--radius-pill);background:var(--surface-2);overflow:hidden}.onboarding-progress-bar{display:block;height:100%;width:12.5%;border-radius:inherit;background:linear-gradient(90deg,var(--accent-2),var(--accent));transition:width .35s var(--ease)}.onboarding-head-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}.onboarding-step-count{margin:0;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.onboarding-close{flex:none;width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line-strong);border-radius:var(--radius-pill);background:var(--surface);color:var(--muted);font-size:1rem;line-height:1;cursor:pointer;transition:background .18s var(--ease),color .18s var(--ease),border-color .18s var(--ease)}.onboarding-close:hover{background:var(--surface-2);color:var(--ink);border-color:var(--line-strong)}.onboarding-body{flex:1 1 auto;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:4px 0}.onboarding-body>.card{margin:0;width:100%;border:none;border-radius:0;box-shadow:none;transform:none}.onboarding-body>.results{border:none;border-radius:0;box-shadow:none}.onboarding-body>.card>details>summary{cursor:default}.onboarding-foot{flex:none;display:flex;align-items:center;gap:12px;padding:14px clamp(20px,4vw,28px);border-top:1px solid var(--line);background:var(--surface)}.onboarding-foot-hint{flex:1 1 auto;text-align:center;font-size:.76rem;color:var(--muted)}.onboarding-back{flex:none}.onboarding-next{flex:none;display:inline-block;width:auto;padding:12px 24px;font-size:.95rem}@keyframes onboarding-fade{0%{opacity:0}to{opacity:1}}@keyframes onboarding-pop{0%{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width: 520px){.onboarding-modal{max-height:100dvh;height:100dvh;width:100%;border-radius:0;border:none}.onboarding-overlay{padding:0}.onboarding-foot-hint{display:none}.onboarding-next{flex:1 1 auto}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
