@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.relative{position:relative}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}}:root{--ink:#31251d;--muted:#746960;--paper:#f4ede2;--card:#fffaf2;--line:#d8cbbd;--green:#31483a;--green-soft:#4c6354;--lime:#e4a069;--clay:#bd6546;--espresso:#39291f;--sage:#a9b5a3;--serif:Georgia, "Times New Roman", serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background-color:var(--paper);color:var(--ink);background-image:radial-gradient(circle at 15% 20%,#bd65460e 0 1px,#0000 1.5px),radial-gradient(circle at 80% 60%,#31251d0b 0 1px,#0000 1.5px);background-size:24px 24px,31px 31px;margin:0;font-family:Arial,Helvetica,sans-serif}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline-offset:3px;outline:3px solid #7aa94b}.app-shell{min-height:100vh;overflow-x:hidden}.topbar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:20;background:#f4ede2cc;border-bottom:1px solid #31251d24;grid-template-columns:1fr auto 1fr;align-items:center;height:82px;padding:0 clamp(24px,5vw,76px);display:grid;position:relative}.brand{width:max-content;color:var(--ink);letter-spacing:-.6px;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:0;font-size:21px;font-weight:750;display:inline-flex}.brand-mark{background:var(--espresso);color:#fff4e6;border:1px solid #49382d;border-radius:11px;place-items:center;width:40px;height:40px;transition:transform .25s,box-shadow .25s;display:grid;position:relative;box-shadow:inset 0 0 0 2px #fff4e614,3px 3px #d9a276}.brand-mark strong{height:21px;font:400 19px/.9 var(--serif);letter-spacing:-5px;align-items:baseline;display:flex;transform:translate(-1px,-3px)}.brand-mark strong span:last-child{transform:translateY(2px)}.brand-mark i{background:#e9a76e;border-radius:65% 35% 55% 45%;width:6px;height:8px;margin-left:-3px;position:absolute;bottom:4px;left:50%;transform:rotate(18deg)}.brand:hover .brand-mark{transform:translateY(-2px)rotate(-2deg);box-shadow:5px 5px #d9a276}.nav{align-items:center;gap:38px;height:100%;display:flex}.nav a{color:#555d56;place-items:center;height:100%;font-size:13px;font-weight:650;text-decoration:none;display:grid;position:relative}.nav a.nav-active{color:var(--ink)}.nav a.nav-active:after{content:"";background:var(--ink);width:100%;height:2px;position:absolute;bottom:0}.top-actions{justify-self:end;align-items:center;gap:22px;display:flex}.music-button{color:#6f6258;cursor:pointer;background:#fffaf299;border:1px solid #c8b9aa;border-radius:30px;align-items:center;gap:7px;height:35px;padding:0 12px;transition:background .2s,border-color .2s;display:inline-flex}.music-button>span{width:15px;font-size:13px}.music-button em{text-transform:uppercase;letter-spacing:.7px;font-size:9px;font-style:normal;font-weight:750}.music-button:hover,.music-button.playing{border-color:var(--clay);color:var(--clay);background:#f6e4d4}.quiet-button{cursor:pointer;background:0 0;border:0;padding:9px 0;font-size:13px;font-weight:650}.quiet-button span{margin-left:8px}.quiet-button b{background:var(--green);color:#fff;border-radius:20px;place-items:center;min-width:19px;height:19px;margin-left:5px;font-size:9px;display:inline-grid}.flow-label{color:#6a726b;letter-spacing:1.4px;text-transform:uppercase;margin:0;font-size:11px;font-weight:750}.hero{grid-template-columns:1.3fr .7fr;align-items:end;gap:50px;max-width:1400px;margin:0 auto;padding:72px clamp(24px,5vw,76px) 54px;display:grid;position:relative}.hero>div:first-child{animation:.75s cubic-bezier(.2,.7,.2,1) both rise-in}.eyebrow{color:#626a63;text-transform:uppercase;letter-spacing:1.8px;align-items:center;gap:10px;margin:0 0 20px;font-size:11px;font-weight:750;display:flex}.eyebrow span{background:currentColor;width:21px;height:1px}h1{max-width:850px;font-family:var(--serif);letter-spacing:-4px;margin:0;font-size:clamp(48px,6.2vw,88px);font-weight:400;line-height:.92}h1 em,h2 em{color:var(--clay);font-weight:400}.hero-side{justify-self:end;width:min(100%,390px);animation:.8s cubic-bezier(.2,.7,.2,1) .12s both rise-in}.hero-copy{color:#6f645b;max-width:390px;font-family:var(--serif);margin:0 0 25px;font-size:18px;line-height:1.55}.coffee-scene{border-top:1px solid #cdbfae;height:118px;margin-left:auto;position:relative}.coffee-cup{border:2px solid var(--espresso);background:linear-gradient(100deg,#fbf3e6 0 62%,#ead9c8 63% 100%);border-top:0;border-radius:7px 7px 42px 42px;width:112px;height:54px;position:absolute;bottom:17px;left:42px;box-shadow:inset 0 -9px 15px #53382614}.coffee-cup:before{content:"";border:2px solid var(--espresso);background:#604130;border-radius:50%;width:112px;height:12px;position:absolute;top:-5px;left:-2px}.coffee-cup:after{content:"";border:2px solid var(--espresso);border-left:0;border-radius:0 18px 18px 0;width:32px;height:28px;position:absolute;top:11px;right:-31px}.coffee-cup span{z-index:2;opacity:.55;border:1px solid #b99172;border-radius:50%;width:31px;height:19px;position:absolute;top:18px;left:40px}.saucer{border:2px solid var(--espresso);background:#eadbc9;border-radius:50%;width:164px;height:17px;position:absolute;bottom:8px;left:16px}.steam{border-left:2px solid #6e503c8c;border-radius:50%;width:20px;height:42px;animation:2.7s ease-in-out infinite steam-up;position:absolute;bottom:76px}.steam-one{left:72px}.steam-two{height:34px;animation-delay:-.8s;left:99px}.steam-three{height:29px;animation-delay:-1.5s;left:125px}.cafe-stamp{color:#897a6e;letter-spacing:1.3px;text-align:right;text-transform:uppercase;max-width:120px;font-size:8px;line-height:1.5;position:absolute;bottom:20px;right:0;transform:rotate(-3deg)}.bean{border:1.5px solid #76513c;border-radius:50%;width:14px;height:21px;position:absolute;top:17px;right:28px;transform:rotate(35deg)}.bean:after{content:"";background:#76513c;width:1px;height:15px;position:absolute;top:2px;left:6px;transform:rotate(12deg)}.bean-two{top:25px;right:5px;transform:rotate(68deg)scale(.8)}.calculator{grid-template-columns:1.35fr .65fr;align-items:stretch;max-width:1400px;margin:0 auto;padding:0 clamp(24px,5vw,76px) 82px;animation:.8s cubic-bezier(.2,.7,.2,1) .22s both rise-in;display:grid}.setup-panel,.recipe-card{border:1px solid var(--line)}.setup-panel{background:#fffaf2d6;padding:clamp(28px,4vw,54px);box-shadow:inset 0 0 70px #97724f09}.recipe-card{background-color:var(--espresso);color:#fbf5ea;background-image:radial-gradient(circle at 18% 24%,#ffffff0b 0 1px,#0000 1.5px);background-size:21px 21px;flex-direction:column;margin-left:-1px;padding:clamp(28px,3.4vw,46px);display:flex;position:relative;overflow:hidden}.recipe-card:before{content:"DRIPCALC / 01";color:#ffffff09;letter-spacing:2px;pointer-events:none;font:700 42px Arial,sans-serif;position:absolute;top:92px;right:-40px;transform:rotate(90deg)}.section-heading{align-items:flex-start;gap:20px;margin-bottom:38px;display:flex}.step-number{width:38px;height:38px;font-family:var(--serif);background:#e8b17f;border-radius:50%;flex:0 0 38px;place-items:center;font-size:13px;display:grid;box-shadow:0 5px 12px #824e2e24}.section-kicker{color:#777e77;text-transform:uppercase;letter-spacing:1.5px;margin:1px 0 4px;font-size:10px;font-weight:750}h2{font-family:var(--serif);letter-spacing:-.7px;margin:0;font-size:31px;font-weight:400}.field-label{text-transform:uppercase;letter-spacing:1.2px;margin-bottom:10px;font-size:10px;font-weight:800;display:block}.bean-picker{margin-bottom:28px}.bean-picker-row{grid-template-columns:1fr 52px;gap:8px;display:grid}.selected-bean{text-align:left;cursor:pointer;background:#faf3e9;border:1px dashed #baa999;grid-template-columns:45px 1fr auto;align-items:center;gap:13px;min-height:74px;padding:11px 14px;transition:border-color .2s,transform .2s,background .2s;display:grid}.selected-bean:hover{border-color:var(--clay);background:#fff8ee;transform:translateY(-2px)}.selected-bean.has-bean{background:#f8eadd;border-style:solid;border-color:#ac8069}.bean-symbol,.bean-library-symbol{background:var(--espresso);color:#efb47c;width:41px;height:48px;font:19px var(--serif);border-radius:52% 48% 49% 51%/60% 58% 42% 40%;place-items:center;display:grid;transform:rotate(-4deg)}.selected-bean-copy small,.selected-bean-copy strong,.selected-bean-copy em{display:block}.selected-bean-copy small{color:#8c6d5b;text-transform:uppercase;letter-spacing:1px;margin-bottom:3px;font-size:8px;font-weight:800}.selected-bean-copy strong{font:400 18px var(--serif)}.selected-bean-copy em{color:#83776d;margin-top:4px;font-size:9px;font-style:normal}.change-bean{color:#816a5c;text-transform:uppercase;letter-spacing:.8px;font-size:9px;font-weight:750}.add-bean-shortcut{border:1px solid var(--line);color:var(--clay);font:27px var(--serif);cursor:pointer;background:#fffaf2;transition:background .2s,color .2s,transform .2s}.add-bean-shortcut:hover{background:var(--clay);color:#fff;transform:translateY(-2px)}.method-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.method-card{border:1px solid var(--line);text-align:left;cursor:pointer;background:0 0;grid-template-rows:auto auto;grid-template-columns:38px 1fr;column-gap:11px;min-height:125px;padding:18px;transition:border-color .2s,background .2s,transform .2s;display:grid}.method-card:hover{border-color:#9d806c;transform:translateY(-3px);box-shadow:0 7px 18px #50382712}.method-card.selected{border:2px solid var(--clay);background:#f9eee2;padding:17px}.method-card.selected .method-icon{background:var(--clay);border-color:var(--clay);color:#fff;animation:.35s both soft-pop}.method-icon{width:36px;height:42px;font-family:var(--serif);border:1px solid #aeb4ad;border-radius:5px 5px 15px 15px;grid-row:1/3;place-items:center;font-size:15px;display:grid}.method-card strong{font-family:var(--serif);align-self:end;font-size:20px;font-weight:400}.method-card small{color:#7c837d;align-self:start;margin-top:4px;font-size:10px}.field-row,.advanced-fields{grid-template-columns:1fr 1fr;gap:14px;margin-top:28px;display:grid}.number-field,select{border:1px solid var(--line);background:#fff;width:100%;height:52px}.number-field{grid-template-columns:44px 1fr 28px 44px;align-items:center;display:grid}.number-field button{cursor:pointer;background:0 0;border:0;height:100%;font-size:18px}.number-field button:hover{background:#f4f3ee}.number-field input{text-align:right;appearance:textfield;background:0 0;border:0;outline:0;min-width:0;font-weight:700}.number-field input::-webkit-inner-spin-button{display:none}.number-field span{color:#7c837d;font-size:12px}select{color:var(--ink);cursor:pointer;border-radius:0;padding:0 15px}.advanced-fields{border-top:1px solid var(--line);padding-top:26px}.calculation-choice{border-top:1px solid var(--line);margin-top:28px;padding-top:24px}.amount-mode{grid-template-columns:1fr 1fr;width:min(100%,330px)}.amount-mode button{text-transform:uppercase;letter-spacing:.6px;font-size:9px}.conversion-hint{color:#85796f;margin:8px 0 0;font-size:9px}.conversion-hint strong{color:var(--clay);font-weight:750}.label-line{justify-content:space-between;align-items:start;display:flex}.label-line strong{font-family:var(--serif);font-size:16px}.ratio-control input{width:100%;height:4px;accent-color:var(--green);cursor:pointer;margin:12px 0 8px}.range-labels{color:#838a84;justify-content:space-between;font-size:9px;display:flex}.segmented{border:1px solid var(--line);background:#fff;grid-template-columns:repeat(3,1fr);height:47px;padding:3px;display:grid}.segmented button{color:#737b74;cursor:pointer;background:0 0;border:0;font-size:9px}.segmented button.active{background:var(--espresso);color:#fff}.recipe-topline{color:#b7c4bb;text-transform:uppercase;letter-spacing:1.3px;justify-content:space-between;align-items:center;font-size:10px;display:flex}.status{color:#efb47c}.status i{background:var(--lime);border-radius:50%;width:5px;height:5px;margin:0 5px 2px 0;display:inline-block}.ratio-display{margin:35px 0 30px}.ratio-display span{color:#aab8ae;font-family:var(--serif);margin-bottom:4px;font-size:14px;display:block}.ratio-display strong{font-family:var(--serif);letter-spacing:-4px;font-size:clamp(58px,6vw,82px);font-weight:400;line-height:1}.ratio-display em{color:#efb47c;font-weight:400}.recipe-stats{border-top:1px solid #ffffff29;border-left:1px solid #ffffff29;grid-template-columns:1fr 1fr;display:grid}.recipe-stats div{border-bottom:1px solid #ffffff29;border-right:1px solid #ffffff29;min-height:86px;padding:17px 19px}.recipe-stats span{color:#9faf9f;text-transform:uppercase;letter-spacing:1.1px;margin-bottom:6px;font-size:9px;display:block}.recipe-stats strong{font-family:var(--serif);font-size:27px;font-weight:400}.recipe-stats small{color:#a8b5ab;font:11px Arial,sans-serif}.recipe-bean{border-bottom:1px solid #ffffff1f;align-items:center;gap:11px;margin:20px 0 0;padding:12px 0;display:flex}.recipe-bean>span{color:#35251c;width:31px;height:37px;font:14px var(--serif);background:#e9a76e;border-radius:52% 48% 49% 51%/60% 58% 42% 40%;flex:0 0 31px;place-items:center;display:grid;transform:rotate(-4deg)}.recipe-bean p{min-width:0;margin:0}.recipe-bean small{color:#a5988d;text-transform:uppercase;letter-spacing:1px;margin-bottom:3px;font-size:8px;display:block}.recipe-bean strong{color:#f6ede2;font:400 13px var(--serif);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.grind-note{border-top:1px solid #ffffff1f;border-bottom:1px solid #ffffff1f;align-items:center;gap:12px;margin:25px 0 32px;padding:15px 0;display:flex}.recipe-bean+.grind-note{border-top:0;margin-top:0}.grind-note>span{color:#efb47c;font-size:17px;animation:2.6s ease-in-out infinite twinkle}.grind-note p{margin:0}.grind-note small{color:#91a197;text-transform:uppercase;letter-spacing:1.1px;margin-bottom:3px;font-size:8px;display:block}.grind-note strong{font-family:var(--serif);font-size:15px;font-weight:400}.primary-button,.save-button{color:#34241b;text-transform:uppercase;letter-spacing:.8px;cursor:pointer;background:#e5a06a;border:0;width:100%;min-height:58px;margin-top:auto;font-size:11px;font-weight:800;transition:transform .25s,background .25s,box-shadow .25s}.primary-button:hover,.save-button:hover{background:#efb47c;transform:translateY(-2px);box-shadow:0 8px 20px #1b120c2e}.primary-button:hover span,.save-button:hover span{display:inline-block;transform:translate(4px)}.primary-button span,.save-button span{margin-left:16px;font-size:18px;transition:transform .25s}.recipe-note{text-align:center;color:#93a398;margin:13px 0 0;font-size:10px}.how-it-works{background-color:#e7ddcf;background-image:linear-gradient(90deg,#573b2a06 1px,#0000 1px),linear-gradient(#573b2a06 1px,#0000 1px);background-size:32px 32px;padding:92px max(6vw,50vw - 624px) 110px}.how-heading{max-width:680px}.how-heading h2{letter-spacing:-2px;font-size:clamp(42px,5vw,68px);line-height:1}.how-grid{border-top:1px solid #c7c5bd;border-left:1px solid #c7c5bd;grid-template-columns:repeat(3,1fr);margin-top:66px;display:grid}.how-grid article{border-bottom:1px solid #c7b8a8;border-right:1px solid #c7b8a8;min-height:245px;padding:30px;transition:background .25s,transform .25s}.how-grid article:hover{background:#fffaf27a;transform:translateY(-4px)}.how-grid article>span{color:#7b827c;font:12px var(--serif)}.how-grid h3{font:400 24px var(--serif);margin:65px 0 11px}.how-grid p{color:#697169;max-width:300px;margin:0;font-size:13px;line-height:1.55}.view-brew{color:#f8f6ee;background-color:#2e3d32;background-image:radial-gradient(circle at 15% 20%,#ffffff09 0 1px,#0000 1.5px);background-size:25px 25px}.view-brew .topbar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#2e3d32d6;border-color:#ffffff21}.view-brew .brand,.view-brew .quiet-button{color:#f8f6ee}.view-brew .brand-mark{color:var(--espresso);background:#f8f1e5;border-color:#8c796b}.view-brew .music-button{color:#d9dfda;background:#ffffff0f;border-color:#fff3}.view-brew .music-button.playing{color:#e9a76e;border-color:#e9a76e}.view-brew .flow-label{color:#9eafa3}.view-brew .quiet-button b{background:var(--lime);color:var(--green)}.brew-screen{grid-template-columns:minmax(0,1fr) minmax(330px,.42fr);min-height:calc(100vh - 82px);display:grid}.brew-main{text-align:center;flex-direction:column;align-items:center;padding:48px clamp(28px,6vw,100px) 44px;display:flex}.brew-meta{color:#a8b7ad;text-transform:uppercase;letter-spacing:1.2px;align-items:center;gap:12px;font-size:10px;display:flex}.brew-meta i{background:#718579;border-radius:50%;width:3px;height:3px}.timer-ring{--progress:0deg;aspect-ratio:1;background:conic-gradient(#e9a76e var(--progress), #ffffff21 0deg);border-radius:50%;width:clamp(190px,22vw,270px);margin:27px 0 17px;padding:8px;transform:rotate(-90deg);box-shadow:0 0 0 1px #ffffff14,0 22px 50px #08100a38}.timer-inner{background:#2e3d32;border-radius:50%;place-content:center;width:100%;height:100%;display:grid;transform:rotate(90deg)}.timer-inner span{color:#92a398;text-transform:uppercase;letter-spacing:1.3px;font-size:8px}.timer-inner strong{font:400 clamp(48px, 5vw, 64px) var(--serif);letter-spacing:-3px;margin:5px 0 -2px}.timer-inner small{color:#74877a;font-size:10px}.flow-guide{background:#ffffff09;border:1px solid #ffffff24;place-content:center;min-width:270px;min-height:88px;margin:0 auto 18px;padding:13px 22px;display:grid}.flow-guide>span{color:#9caca1;letter-spacing:1.2px;text-transform:uppercase;margin-bottom:2px;font-size:8px;font-weight:800}.flow-guide>strong{color:#efb47c;font:400 37px/1 var(--serif);letter-spacing:-1px}.flow-guide>strong small{color:#d8d4ca;letter-spacing:.5px;font:10px Arial,sans-serif}.flow-guide p{color:#9caaa1;margin:7px 0 0;font-size:9px}.flow-guide .action-text{color:#f0e8dd;letter-spacing:-.3px;max-width:290px;font-size:21px}.stage-count{color:#efb47c;text-transform:uppercase;letter-spacing:1.5px;margin:0 0 8px;font-size:9px;font-weight:800}.brew-title{letter-spacing:-2px;max-width:780px;font-size:clamp(38px,4.4vw,62px);line-height:1}.brew-title,.brew-instruction{animation:.42s cubic-bezier(.2,.8,.2,1) both stage-in}.brew-instruction{color:#afbbb3;max-width:580px;min-height:45px;font:16px/1.5 var(--serif);margin:15px auto 20px;animation-delay:50ms}.stage-progress{background:#ffffff1f;width:min(430px,75vw);height:2px;margin:0 auto 23px;overflow:hidden}.stage-progress span{background:#e9a76e;height:100%;transition:width .4s linear;display:block}.brew-controls{justify-content:center;align-items:center;gap:13px;display:flex}.round-control{color:#fff;cursor:pointer;background:0 0;border:1px solid #ffffff3b;border-radius:50%;width:46px;height:46px}.round-control:hover{border-color:var(--lime);color:var(--lime)}.pause-button{color:#35251c;text-transform:uppercase;letter-spacing:1px;cursor:pointer;background:#e9a76e;border:0;min-width:155px;height:50px;font-size:10px;font-weight:800;transition:transform .2s,background .2s}.pause-button:hover{background:#f0b985;transform:translateY(-2px)}.pause-button span{margin-right:8px}.finish-early{color:#899c90;text-transform:uppercase;letter-spacing:.9px;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #ffffff40;margin-top:17px;font-size:9px}.timeline-panel{color:var(--ink);background:#f1e9dd;padding:65px clamp(28px,4vw,58px);animation:.6s cubic-bezier(.2,.7,.2,1) both slide-left}.timeline-kicker{color:#7a827b;text-transform:uppercase;letter-spacing:1.5px;margin:0 0 5px;font-size:9px}.timeline-panel h2{font-size:34px}.timeline{margin-top:45px}.timeline button{text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:34px 1fr;align-items:start;gap:14px;width:100%;min-height:78px;padding:0 0 0 2px;display:grid;position:relative}.timeline button:not(:last-child):before{content:"";background:#cdd0c9;width:1px;position:absolute;top:31px;bottom:-1px;left:16px}.timeline-dot{color:#8d7e72;width:31px;height:31px;font:12px var(--serif);z-index:1;background:#f1e9dd;border:1px solid #c7b9aa;border-radius:50%;place-items:center;transition:all .3s;display:grid;position:relative}.timeline-copy{padding-top:2px}.timeline-copy strong{font:400 17px var(--serif);margin-bottom:5px;display:block}.timeline-copy small{color:#8a918a;font-size:9px}.timeline button.active .timeline-dot{border-color:var(--clay);background:var(--clay);color:#fff7ec;animation:1.7s ease-in-out infinite active-dot;box-shadow:0 0 0 5px #e7d7c7}.timeline button.active .timeline-copy strong{color:var(--green)}.timeline button.done .timeline-dot{color:#fff;background:#8fa08c;border-color:#8fa08c}.brew-tip{border:1px solid #d4d3cb;gap:12px;margin-top:38px;padding:17px;display:flex}.brew-tip>span{width:22px;height:22px;font:italic 13px var(--serif);background:#e9a76e;border-radius:50%;flex:0 0 22px;place-items:center;display:grid}.brew-tip p{color:#727a72;margin:0;font-size:10px;line-height:1.45}.brew-tip strong{color:var(--ink);text-transform:uppercase;letter-spacing:.7px;margin-bottom:3px;font-size:9px;display:block}.rating-screen{grid-template-columns:.9fr 1.1fr;align-items:center;gap:clamp(40px,8vw,110px);min-height:calc(100vh - 82px);padding:clamp(45px,7vw,95px) max(5vw,50vw - 610px);animation:.6s both fade-up;display:grid}.rating-intro h1{font-size:clamp(54px,6vw,82px)}.rating-intro>p:not(.eyebrow){color:#69716a;max-width:470px;font:17px/1.55 var(--serif);margin:28px 0 0}.result-summary{border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:0;margin-top:48px;display:flex}.result-summary div{flex:1;padding:18px 18px 18px 0}.result-summary div+div{border-left:1px solid var(--line);padding-left:18px}.result-summary span{color:#7c847d;text-transform:uppercase;letter-spacing:1px;margin-bottom:6px;font-size:8px;display:block}.result-summary strong{font:400 16px var(--serif)}.rating-card{background:var(--card);border:1px solid var(--line);min-height:570px;padding:clamp(28px,4vw,54px);box-shadow:16px 16px #dfd1c1}.rating-section+.rating-section{border-top:1px solid var(--line);margin-top:30px;padding-top:27px}.stars{gap:7px;display:flex}.stars button{border:1px solid var(--line);color:#c3c3ba;cursor:pointer;background:0 0;width:45px;height:45px;padding:0;font-size:24px;transition:transform .2s,color .2s,background .2s}.stars button:hover{transform:translateY(-3px)rotate(-4deg)}.stars button.active{color:#c6744f;background:#f8e6d6;border-color:#bd7656}.taste-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.taste-grid button{border:1px solid var(--line);text-align:left;cursor:pointer;background:#fff;align-items:center;gap:9px;min-height:47px;padding:9px 13px;font-size:11px;transition:transform .2s,border-color .2s,background .2s;display:flex}.taste-grid button:hover{border-color:#a98b76;transform:translateY(-2px)}.taste-grid button:last-child{grid-column:1/-1}.taste-grid button>span{background:#ecebe5;border-radius:50%;place-items:center;width:22px;height:22px;font-size:11px;display:grid}.taste-grid button.active{border-color:var(--clay);box-shadow:inset 0 0 0 1px var(--clay);background:#faeee3}.taste-grid button.active>span{background:var(--clay);color:#fff7ec}.advice-box{opacity:.65;background:#eceae2;gap:14px;min-height:110px;margin-top:25px;padding:18px;transition:opacity .2s,background .2s;display:flex}.advice-box.visible{opacity:1;background:#f2e8dc;animation:.32s both soft-pop}.advice-icon{color:#35251c;background:#e9a76e;border-radius:50%;flex:0 0 31px;place-items:center;width:31px;height:31px;display:grid}.advice-box small{color:#7b837b;text-transform:uppercase;letter-spacing:1px;margin-bottom:4px;font-size:8px;display:block}.advice-box strong{font:400 16px var(--serif);display:block}.advice-box p{color:#6c746c;margin:5px 0 0;font-size:10px;line-height:1.4}.save-button{background:var(--espresso);color:#fff;margin-top:20px}.save-button:hover{background:#50372a}.save-button:disabled{opacity:.32;cursor:not-allowed;transform:none}.required-note{color:#8c918c;text-align:center;margin:9px 0 0;font-size:9px}.brew-save-error{margin-top:18px}.saved-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:465px;display:flex}.saved-check{background:var(--espresso);color:#efb47c;border-radius:50%;place-items:center;width:74px;height:74px;margin-bottom:25px;font-size:29px;animation:.55s cubic-bezier(.2,1.5,.4,1) both check-in;display:grid}.saved-state h2{font-size:37px}.saved-state>p:not(.section-kicker){color:#6c746c;max-width:420px;font:15px/1.5 var(--serif)}.saved-state .save-button{margin-top:26px}.text-button{color:#626a63;text-transform:uppercase;letter-spacing:.8px;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #8a918a;margin-top:16px;padding:6px;font-size:10px}.drawer-backdrop{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0e181185;justify-content:flex-end;animation:.2s fade-in;display:flex;position:fixed;inset:0}.history-drawer{width:min(520px,100%);height:100%;color:var(--ink);background:#f5f2ea;flex-direction:column;padding:42px clamp(24px,4vw,48px) 28px;animation:.28s slide-in;display:flex;overflow-y:auto;box-shadow:-15px 0 50px #08140c38}.bean-drawer{background:#f4ede2;width:min(620px,100%)}.drawer-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:start;padding-bottom:25px;display:flex}.drawer-header h2{font-size:37px}.drawer-header button{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:50%;width:39px;height:39px;font-size:24px;line-height:1}.bean-drawer-actions{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:15px;min-height:69px;display:flex}.bean-drawer-actions p{color:#81756b;margin:0;font-size:10px}.bean-drawer-actions button{background:var(--espresso);color:#fff;text-transform:uppercase;letter-spacing:.8px;cursor:pointer;border:0;padding:10px 13px;font-size:9px;font-weight:750}.bean-form{background:#fff9f0;border:1px solid #d2c1b0;margin:18px 0 5px;padding:24px;animation:.25s both soft-pop}.bean-form-heading{border-bottom:1px solid #e2d6ca;justify-content:space-between;align-items:baseline;margin-bottom:22px;padding-bottom:13px;display:flex}.bean-form-heading span{color:#8d7d70;text-transform:uppercase;letter-spacing:1.2px;font-size:8px}.bean-form-heading strong{font:400 21px var(--serif)}.bean-form label{display:block}.bean-form label+label{margin-top:15px}.bean-form label>span{color:#71665d;text-transform:uppercase;letter-spacing:.9px;margin-bottom:7px;font-size:8px;font-weight:800;display:block}.bean-form input,.bean-form select{width:100%;height:47px;color:var(--ink);background:#fff;border:1px solid #d8cbbd;border-radius:0;padding:0 13px;font-size:11px}.bean-form input::placeholder{color:#aaa098}.bean-form-row{grid-template-columns:1fr 1fr;gap:12px;margin-top:15px;display:grid}.bean-form-row label+label{margin-top:0}.save-bean-button{background:var(--clay);color:#fff;text-transform:uppercase;letter-spacing:.9px;cursor:pointer;border:0;width:100%;min-height:51px;margin-top:21px;font-size:9px;font-weight:800}.save-bean-button span{margin-left:12px;font-size:16px}.save-bean-button:disabled{opacity:.5;cursor:wait}.bean-error{color:#873f2e;background:#f8dfd5;margin:14px 0 0;padding:10px 12px;font-size:10px;line-height:1.4}.drawer-error{margin-bottom:0}.bean-library{margin-top:8px}.bean-library-card{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;align-items:center;gap:10px;padding:15px 0;display:grid}.bean-library-card.selected{position:relative}.bean-library-card.selected:before{content:"";background:var(--clay);width:3px;position:absolute;top:15px;bottom:15px;left:-48px}.bean-library-select{text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:46px 1fr auto;align-items:center;gap:13px;min-width:0;padding:0;display:grid}.bean-library-symbol{width:38px;height:45px;font-size:16px}.bean-library-copy{min-width:0}.bean-library-copy small,.bean-library-copy strong,.bean-library-copy em,.bean-library-copy b{display:block}.bean-library-copy small{color:#98715d;text-transform:uppercase;letter-spacing:1px;margin-bottom:2px;font-size:8px;font-weight:800}.bean-library-copy strong{font:400 18px var(--serif);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.bean-library-copy em{color:#7a7067;text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:9px;font-style:normal;overflow:hidden}.bean-library-copy b{color:#978b82;margin-top:5px;font-size:8px;font-weight:400}.bean-selected-mark{background:var(--clay);color:#fff;border-radius:50%;place-items:center;width:25px;height:25px;font-size:11px;display:grid}.delete-bean{color:#95887e;text-transform:uppercase;letter-spacing:.6px;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #b9aca0;padding:6px 2px;font-size:8px}.delete-bean:hover{color:#a84f3b;border-color:#a84f3b}.empty-add-button{background:var(--espresso);color:#fff;text-transform:uppercase;letter-spacing:.8px;cursor:pointer;border:0;margin-top:20px;padding:11px 15px;font-size:9px;font-weight:750}.empty-history{text-align:center;max-width:300px;margin:auto}.empty-history>span{color:#869087;width:70px;height:70px;font:34px var(--serif);border:1px solid #b9beb8;border-radius:50%;place-items:center;margin:0 auto 20px;display:grid}.empty-history h3{font:400 25px var(--serif);margin:0 0 8px}.empty-history p{color:#727a73;font:14px/1.5 var(--serif);margin:0}.history-list{margin-top:8px}.history-list article{border-bottom:1px solid var(--line);grid-template-columns:48px 1fr auto;gap:15px;padding:21px 0;display:grid}.history-date span,.history-date small{display:block}.history-date span{font:15px var(--serif);text-transform:lowercase}.history-date small{color:#8a918a;margin-top:5px;font-size:9px}.history-copy strong,.history-copy span,.history-copy small{display:block}.history-copy strong{font:400 17px var(--serif);margin-bottom:5px}.history-copy span{color:#737b74;font-size:9px}.history-copy small{color:#536254;text-transform:uppercase;letter-spacing:.5px;background:#e3e7dc;width:max-content;margin-top:8px;padding:4px 7px;font-size:8px}.history-rating{font:22px var(--serif)}.history-rating span{color:#71924e;margin-left:3px;font-size:12px}.storage-note{color:#8a918a;text-align:center;margin:auto 0 0;padding-top:24px;font-size:9px}.creator-footer{background:var(--espresso);border-top:1px solid #ffffff1a;justify-content:center;padding:24px clamp(24px,5vw,76px);display:flex}.creator-footer a{color:#e8ded2;border:1px solid #ffffff26;border-radius:16px;align-items:center;gap:16px;min-height:76px;padding:6px 8px 6px 20px;text-decoration:none;transition:border-color .2s,background .2s,transform .2s;display:inline-flex}.creator-footer a:hover{background:#ffffff0b;border-color:#e9a76ebf;transform:translateY(-2px)}.creator-footer span{font:400 14px/1.25 var(--serif)}.creator-footer strong{color:#fff8ee;font-weight:400}.creator-footer img{object-fit:contain;width:64px;height:64px}@keyframes fade-in{0%{opacity:0}}@keyframes slide-in{0%{opacity:0;transform:translate(50px)}}@keyframes rise-in{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-left{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@keyframes steam-up{0%,to{opacity:0;transform:translateY(9px)translate(0)scaleY(.82)}30%{opacity:.75}70%{opacity:.28;transform:translateY(-8px)translate(6px)scaleY(1.12)}}@keyframes active-dot{0%,to{box-shadow:0 0 0 5px #e7d7c7}50%{box-shadow:0 0 0 9px #bd654624}}@keyframes stage-in{0%{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}@keyframes soft-pop{0%{opacity:.5;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes twinkle{0%,to{opacity:.75;transform:rotate(0)scale(1)}50%{opacity:1;transform:rotate(18deg)scale(1.12)}}@keyframes check-in{0%{opacity:0;transform:scale(.6)rotate(-15deg)}to{opacity:1;transform:scale(1)rotate(0)}}@media (max-width:980px){.topbar{grid-template-columns:1fr auto}.nav,.flow-label{display:none}.hero{grid-template-columns:1fr;padding-top:52px}.hero-side{justify-self:start;width:min(100%,520px)}.hero-copy{max-width:520px}.calculator{grid-template-columns:1fr}.recipe-card{min-height:560px;margin:-1px 0 0}.how-grid{grid-template-columns:1fr}.how-grid article{min-height:170px}.how-grid h3{margin-top:35px}.brew-screen{grid-template-columns:1fr}.brew-main{min-height:calc(100vh - 82px)}.timeline-panel{padding-bottom:80px}.rating-screen{grid-template-columns:1fr}}@media (max-width:640px){.topbar{height:68px}.top-actions{gap:10px}.music-button{justify-content:center;width:35px;padding:0}.music-button em{display:none}.quiet-button{font-size:0}.quiet-button b{font-size:9px}.quiet-button span{font-size:20px}.hero{padding-top:42px;padding-bottom:40px}h1{letter-spacing:-2.6px;font-size:50px}.hero-copy{font-size:16px}.coffee-scene{transform-origin:0 100%;height:105px;transform:scale(.9)}.cafe-stamp{display:none}.setup-panel,.recipe-card{padding:27px 22px}.method-grid{grid-template-columns:1fr}.selected-bean{grid-template-columns:42px 1fr}.change-bean{display:none}.method-card{min-height:82px}.field-row,.advanced-fields{grid-template-columns:1fr}.segmented button{font-size:8px}.how-it-works{padding:70px 24px}.how-heading h2{font-size:43px}.how-grid{margin-top:44px}.brew-main{min-height:calc(100vh - 68px);padding:34px 20px}.brew-meta{gap:7px;font-size:8px}.timer-ring{width:190px;margin:27px 0 25px}.brew-title{font-size:39px}.timeline-panel{padding:50px 24px 70px}.rating-screen{gap:35px;padding:48px 20px 70px}.rating-intro h1{font-size:50px}.result-summary{grid-template-columns:1fr 1fr;display:grid}.result-summary div:last-child{display:none}.rating-card{min-height:0;padding:27px 20px;box-shadow:8px 8px #e4e0d7}.taste-grid{grid-template-columns:1fr}.taste-grid button:last-child{grid-column:auto}.stars button{width:42px}.bean-form{padding:20px 15px}.bean-form-row{grid-template-columns:1fr}.bean-form-row label+label{margin-top:15px}.bean-library-card.selected:before{left:-24px}.creator-footer{padding-top:18px;padding-bottom:18px}.creator-footer a{gap:12px;min-height:64px;padding-left:16px}.creator-footer img{width:52px;height:52px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
