.cup-page{padding-block:clamp(24px,4vw,52px) 60px;color:var(--ink)}.cup-title{display:flex;align-items:center;justify-content:space-between;gap:22px;margin:24px 0}.cup-title h1{font-size:clamp(28px,4.2vw,54px);line-height:1.18;text-wrap:balance;margin:0}.cup-brew,.cup-note,.cup-result p,.cup-title p{line-height:1.65}.cup-title p{margin:12px 0 0}.cup-title img{display:block;width:clamp(160px,24vw,290px);height:120px;object-fit:cover;border-radius:18px}.cup-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(260px,.85fr);align-items:start;gap:clamp(22px,4vw,70px)}.cup-config,.cup-result{min-width:0}.cup-jump{display:none}.cup-result{scroll-margin-top:100px}.cup-field>small{display:block;margin:4px 0}.cup-input:has([aria-invalid=true]){border-color:#a12b22}@media(max-width:860px){.cup-jump{display:inline-flex;align-items:center;min-height:44px;margin-top:8px;text-decoration:underline}}.cup-menu legend,.cup-page h2{font-weight:750;font-size:clamp(19px,2.2vw,24px);margin:0 0 12px}.cup-menu{margin:0;padding:0;border:0;min-width:0}.cup-menu>div{display:flex;flex-wrap:wrap;gap:7px}.cup-menu button{border:1px solid var(--line);border-radius:999px;background:white;color:var(--ink);min-height:44px;padding:8px 14px;font:inherit;font-weight:650}.cup-menu [aria-pressed=true]{background:var(--brand-accent,#ffb62e);border-color:transparent}.cup-section{padding:22px 0;border-bottom:1px solid var(--line)}.cup-field,.cup-field>span:first-child{display:block}.cup-field>span:first-child{font-size:.86rem;margin-bottom:5px;font-weight:650}.cup-input,.cup-page select{border:1px solid #bbbec1;border-radius:10px;min-height:46px;width:100%;background:white;color:var(--ink);font:inherit}.cup-page select{padding:8px 12px}.cup-input{display:flex;align-items:center;gap:4px;padding:0 10px}.cup-input input{width:100%;min-width:0;border:0;background:transparent;color:inherit;font:inherit;min-height:44px}.cup-input:focus-within{outline:2px solid var(--ink);outline-offset:1px}.cup-input input:focus{outline:none}.cup-input small,.cup-note{color:#545659}.cup-ingredient-fields,.cup-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.cup-pack-note,.cup-result dl>div,.cup-row summary{display:flex;justify-content:space-between;gap:12px;align-items:center}.cup-pack-note{margin:8px 0 16px}.cup-page a{text-underline-offset:3px}.cup-pack-note a,.cup-sources a{text-decoration:underline}.cup-note{font-size:.88rem;margin:8px 0}.cup-row{border-bottom:1px solid var(--line)}.cup-row summary,.cup-sources summary{cursor:pointer;min-height:48px;padding-block:12px}.cup-row summary{position:relative;padding-right:18px}.cup-row summary:after{content:"+";position:absolute;right:0}.cup-row[open] summary:after{content:"−"}.cup-ingredient-fields{grid-template-columns:repeat(3,minmax(0,1fr));padding:4px 0 16px}.cup-brew{margin:16px 0 0}.cup-result{border:1px solid var(--line);border-top:4px solid var(--brand-accent,#ffb62e);border-radius:16px;padding:clamp(18px,2.3vw,30px);background:white}.cup-result h2{margin:0 0 4px}.cup-total{font-size:clamp(34px,4.2vw,58px);font-variant-numeric:tabular-nums;line-height:1.28}.cup-result p{margin:5px 0 12px}.cup-result dl{margin:12px 0;padding:10px 0;border-block:1px solid var(--line)}.cup-result dl>div{padding:4px 0}.cup-result dd{margin:0;font-variant-numeric:tabular-nums}.cup-subtotals{font-weight:700}.cup-error{color:#a12b22}.cup-error button{text-decoration:underline;background:transparent;border:0}.cup-sources{margin-top:20px;font-size:.88rem}.cup-sources p{margin:4px 0}@media(min-width:861px){.cup-result{position:sticky;top:110px}}@media(max-width:860px){.cup-title img{display:none}.cup-grid{grid-template-columns:1fr}.cup-config{display:contents}.cup-menu{order:0}.cup-section{order:3;padding:12px 0 18px}.cup-config>.cup-section:first-of-type{order:1}.cup-result{order:2}.cup-grid{gap:16px}.cup-result dl:not(.cup-subtotals){display:grid;grid-template-columns:1fr 1fr;column-gap:18px;font-size:.87rem}}@media(max-width:460px){.cup-ingredient-fields{grid-template-columns:1fr 1fr}.cup-title{margin:18px 0}.cup-pack-note{font-size:.9rem}.cup-menu button{padding-inline:11px}}