:root{color-scheme:light;font-family:Inter,Pretendard,Noto Sans KR,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#1b2c27;background:#f4f0e8;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #172a24;--muted: #68756f;--paper: #f7f3eb;--cream: #eee7da;--line: rgba(23, 42, 36, .16);--green: #1f4b3d;--green-bright: #b6d7a8;--orange: #ed6d45;--yellow: #e6c66a;--white: #fffdf8;--shadow: 0 24px 70px rgba(29, 47, 41, .1)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 95% 5%,rgba(230,198,106,.2),transparent 26rem),var(--paper)}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button,a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(237,109,69,.45);outline-offset:3px}.app-shell{min-height:100vh}.site-header{height:76px;padding:0 clamp(20px,5vw,72px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#f7f3ebdb;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);position:sticky;top:0;z-index:40}.brand{display:flex;gap:12px;align-items:center;text-decoration:none}.brand-mark{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:var(--white);font-family:Georgia,serif;font-size:21px;font-style:italic}.brand strong{display:block;font-family:Georgia,Times New Roman,serif;font-size:19px;letter-spacing:-.02em}.brand small{display:block;margin-top:1px;color:var(--muted);font-size:9px;letter-spacing:.16em;text-transform:uppercase}.desktop-nav{display:flex;gap:6px}.desktop-nav a{padding:10px 15px;border-radius:999px;text-decoration:none;color:var(--muted);font-size:14px;font-weight:650}.desktop-nav a.active{background:var(--ink);color:var(--white)}.main-content{min-height:calc(100vh - 76px)}.page{width:min(100%,1440px);margin:0 auto;padding:clamp(36px,6vw,82px) clamp(20px,6vw,88px) 110px}.eyebrow{margin:0 0 14px;color:var(--orange);font-size:11px;font-weight:800;letter-spacing:.18em;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1,h2{font-family:Georgia,Times New Roman,serif;font-weight:500;letter-spacing:-.045em}h1{font-size:clamp(48px,7vw,92px);line-height:.97}h2{font-size:clamp(34px,4.6vw,60px);line-height:1}h3{letter-spacing:-.02em}.button{min-height:46px;padding:0 20px;border:1px solid transparent;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;text-decoration:none;font-weight:750;transition:transform .18s ease,background .18s ease,border-color .18s ease}.button:hover{transform:translateY(-2px)}.button.primary{background:var(--ink);color:var(--white)}.button.secondary{background:transparent;border-color:var(--ink)}.button.tertiary{background:var(--cream);border-color:var(--line)}.button.small{min-height:40px;padding:0 15px;font-size:13px}.button.full{width:100%;margin-top:8px}.section-heading{margin-bottom:40px;display:flex;justify-content:space-between;gap:30px;align-items:end}.section-heading h2,.section-heading h3{margin:0}.section-heading>p{max-width:430px;margin:0;color:var(--muted);line-height:1.7}.section-heading.compact{margin-bottom:20px;align-items:center}.section-heading.compact h3{font-size:24px}.section-heading.compact a{color:var(--orange);font-size:13px;font-weight:750}.page-intro{margin-bottom:60px;display:grid;grid-template-columns:1.2fr .8fr;gap:50px;align-items:end}.page-intro h1{margin:0;font-size:clamp(48px,7vw,84px)}.page-intro>p{max-width:470px;margin:0 0 8px;color:var(--muted);line-height:1.75}.split-page{padding-top:0;display:grid;grid-template-columns:minmax(320px,.8fr) minmax(0,1.2fr);gap:7vw}.catalog-sidebar{padding-top:clamp(50px,7vw,100px)}.catalog-sidebar h1{font-size:clamp(44px,5.5vw,72px)}.catalog-list{margin-top:60px;border-top:1px solid var(--line)}.catalog-item{width:100%;min-height:82px;padding:15px 0;background:transparent;border:0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:40px 1fr 24px;align-items:center;text-align:left;cursor:pointer}.catalog-item>span:first-child{font-family:Georgia,serif;font-style:italic;color:var(--muted)}.catalog-item strong,.catalog-item small{display:block}.catalog-item strong{font-size:17px}.catalog-item small{margin-top:4px;color:var(--muted)}.catalog-item i{font-style:normal;opacity:0;transform:translate(-8px);transition:.2s ease}.catalog-item.active i{opacity:1;transform:none}.catalog-item.active strong{color:var(--orange)}.dripper-detail{min-width:0;margin-right:calc(clamp(20px,6vw,88px)*-1);padding:clamp(50px,7vw,100px) clamp(20px,6vw,80px);background:#e7eddf}.dripper-illustration{height:280px;max-width:520px;margin:0 auto 30px;display:grid;place-items:center}.dripper-illustration svg{width:100%;height:100%;overflow:visible}.illustration-body,.illustration-rim,.illustration-base,.illustration-handle,.illustration-detail,.illustration-tie{fill:none;stroke:var(--ink);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.illustration-holder{fill:none;stroke:var(--ink);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.illustration-rim,.illustration-detail{stroke-width:1.4;opacity:.58}.illustration-base{fill:#ffffff2e}.illustration-ceramic{fill:#ffffff75}.illustration-accent{fill:#c7a36a;stroke:var(--ink);stroke-width:2;stroke-linejoin:round}.illustration-hole{fill:var(--ink);opacity:.72}.illustration-folds{opacity:.38}.illustration-heavy{stroke-width:5}.detail-tags{display:flex;gap:7px;flex-wrap:wrap}.detail-title{position:relative}.detail-title p{margin-bottom:4px;color:var(--orange);font-weight:800;text-transform:uppercase;letter-spacing:.12em;font-size:11px}.detail-title h2{margin:0;font-size:clamp(42px,4.5vw,66px);line-height:.98;word-break:keep-all;overflow-wrap:break-word}.tag{display:inline-block;margin-top:15px;padding:7px 11px;border:1px solid var(--ink);border-radius:999px;font-size:12px}.lead{margin:28px 0 38px;max-width:720px;font-size:19px;line-height:1.75}.spec-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.spec-grid>div{padding:20px 14px}.spec-grid>div+div{border-left:1px solid var(--line)}.spec-grid span,.spec-grid strong{display:block}.spec-grid span{margin-bottom:8px;font-size:9px;font-weight:900;letter-spacing:.16em;color:var(--muted)}.spec-grid strong{font-size:13px;line-height:1.45}.detail-columns{display:grid;grid-template-columns:1fr 1fr;gap:40px;padding:38px 0}.compatible-filters{padding:34px 0;border-top:1px solid var(--line)}.filter-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.filter-card{padding:18px;background:#ffffff7a;border:1px solid var(--line)}.filter-card>span,.reference-card>span{color:var(--orange);font-size:10px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.filter-card h4{margin:8px 0;font-size:16px}.filter-card p,.filter-card li{color:var(--muted);font-size:12px;line-height:1.5}.filter-card ul{margin:10px 0;padding-left:18px}.filter-card a,.reference-card a{color:var(--orange);font-size:11px;font-weight:800}.detail-columns h3{margin-bottom:18px}.clean-list{margin:0;padding:0;list-style:none}.clean-list li{padding:9px 0 9px 18px;position:relative;color:#3e4c47;line-height:1.5}.clean-list li:before{content:"";position:absolute;left:0;top:17px;width:6px;height:6px;border-radius:50%;background:var(--orange)}.related-recipes{margin-top:20px;padding-top:32px;border-top:1px solid var(--line)}.mini-recipe{padding:18px 0;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px}.mini-recipe strong,.mini-recipe small{display:block}.mini-recipe small{color:var(--muted);margin-top:3px}.mini-recipe>span{font-family:Georgia,serif;font-style:italic}.empty-copy{color:var(--muted);line-height:1.6}.notice{margin:-35px 0 30px;padding:14px 18px;background:#dcebd4;display:flex;justify-content:space-between;align-items:center;font-size:14px}.notice button{border:0;background:transparent;font-size:20px;cursor:pointer}.brew-workflow-grid{display:grid;grid-template-columns:minmax(340px,.85fr) minmax(460px,1.15fr);grid-template-areas:"recipe recipe" "prepare guide" "followup guide" "adjust adjust";gap:24px;align-items:start}.recipe-start{grid-area:recipe;padding:clamp(26px,4vw,48px)}.brew-preparation{grid-area:prepare;padding:clamp(24px,4vw,42px)}.brew-followup{grid-area:followup;padding:clamp(24px,4vw,36px);background:#e7eddf}.recipe-adjustments{grid-area:adjust;padding:clamp(26px,4vw,48px)}.workflow-heading{display:flex;gap:20px;align-items:flex-start}.workflow-heading>span{width:38px;height:38px;border:1px solid var(--ink);border-radius:50%;display:grid;place-items:center;flex:0 0 auto;font-family:Georgia,serif;font-style:italic}.workflow-heading h2{margin:0 0 10px;font-size:clamp(30px,4vw,48px)}.workflow-heading p:not(.eyebrow){max-width:680px;margin:0;color:var(--muted);line-height:1.65}.workflow-heading.compact{gap:15px}.workflow-heading.compact>span{width:32px;height:32px}.workflow-heading.compact h2{font-family:inherit;font-size:21px;font-weight:800;letter-spacing:-.02em}.workflow-heading.inverse>span{border-color:#ffffff7a}.workflow-heading.inverse p:not(.eyebrow){color:#ffffff9e}.recipe-start-grid{margin-top:32px;display:grid;grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr);gap:24px;align-items:stretch}.recipe-select{margin:0;padding:24px;background:var(--cream)}.recipe-select select{background:var(--white)}.recipe-select small{display:block;margin-top:12px;color:var(--muted);line-height:1.5}.recipe-brief{min-width:0;padding:26px;border:1px solid var(--line);display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.8fr);gap:18px 28px}.recipe-status{color:var(--orange);font-size:10px;font-weight:850;letter-spacing:.14em}.recipe-brief h3{margin:9px 0 10px;font-family:Georgia,serif;font-size:30px;font-weight:500}.recipe-brief p{margin:0;color:var(--muted);line-height:1.6}.recipe-brief>a,.recipe-brief>.source-warning{align-self:end;color:var(--orange);font-size:12px;font-weight:750}.recipe-tips{padding:18px;background:#eef0e5}.recipe-tips strong{font-size:12px}.recipe-tips ul{margin:10px 0 0;padding-left:18px}.recipe-tips li{margin-top:6px;color:#44514c;font-size:12px;line-height:1.55}.recipe-tips p{margin-top:10px;font-size:12px}.recipe-brief .data-warning{grid-column:1 / -1;margin:0}.unit-compact{position:relative}.unit-compact i{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--orange);font-family:Georgia,serif;font-style:italic}.unit-compact input{padding-right:35px}.followup-actions{margin-top:25px;display:flex;gap:8px;flex-wrap:wrap}.button.disabled{opacity:.58}.adjustment-grid{margin-top:28px;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(260px,.55fr);gap:28px;align-items:end}.adjustment-summary{padding:24px;background:var(--ink);color:var(--white)}.adjustment-summary>span,.adjustment-summary>strong{display:block}.adjustment-summary>span{color:var(--green-bright);font-size:10px;font-weight:800;letter-spacing:.12em}.adjustment-summary>strong{margin-top:12px;font-family:Georgia,serif;font-size:32px;font-weight:500}.adjustment-summary>p{margin:8px 0 18px;color:#ffffffa6;font-size:12px}.planner-grid{display:grid;grid-template-columns:minmax(340px,.85fr) minmax(460px,1.15fr);gap:24px;align-items:start}.panel{background:var(--white);border:1px solid var(--line)}.planner-controls{padding:clamp(24px,4vw,42px)}.panel-heading{display:flex;gap:16px;align-items:flex-start}.panel-heading>span{width:31px;height:31px;border:1px solid var(--ink);border-radius:50%;display:grid;place-items:center;flex:0 0 auto;font-family:Georgia,serif;font-style:italic}.panel-heading h2{margin:0 0 4px;font-family:inherit;font-size:19px;font-weight:800;letter-spacing:-.02em}.panel-heading p{margin:0;color:var(--muted);font-size:13px}.panel-divider{height:1px;margin:32px 0;background:var(--line)}.field-row,.two-fields label,.three-fields label,.calculator-fields label,.form-topline label{display:block}.field-row>span,.two-fields label>span,.three-fields label>span,.calculator-fields label>span,.form-topline label>span{display:block;margin-bottom:8px;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.06em}input,select,textarea{width:100%;min-height:46px;padding:10px 12px;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:3px}textarea{resize:vertical}input:disabled,select:disabled{opacity:.55;cursor:not-allowed}.action-field{margin-top:20px;display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}.selection-note{margin:10px 0 0;color:var(--muted);font-size:13px}.inline-form{margin-top:14px;padding:20px;background:var(--cream);display:grid;gap:14px}.two-fields,.three-fields{display:grid;gap:12px;margin:18px 0}.two-fields{grid-template-columns:1fr 1fr}.three-fields{grid-template-columns:repeat(3,1fr)}.recipe-origin{margin-top:14px;padding:14px;background:var(--paper);font-size:13px}.recipe-origin p{margin-bottom:8px;color:var(--muted);line-height:1.55}.recipe-origin a{color:var(--orange);font-weight:750}.source-warning{color:#9b4d36;font-weight:750}.data-warning{margin-top:12px;padding:12px;border-left:3px solid #b9603e;background:#f7e6dc}.data-warning strong,.data-warning small{display:block}.data-warning small{margin-top:5px;line-height:1.45}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:2px;margin:18px 0;padding:3px;border:1px solid var(--line);background:var(--cream)}.segmented button{min-height:42px;padding:8px;background:transparent;border:0;cursor:pointer;font-size:13px;font-weight:750}.segmented button.active{background:var(--white);box-shadow:0 3px 12px #172a2414}.segmented button:disabled{opacity:.4;cursor:not-allowed}.brew-guide-slot{grid-area:guide;min-width:0;align-self:stretch}.brew-sheet{padding:clamp(28px,5vw,56px);background:var(--ink);color:var(--white);position:sticky;top:100px}.brew-sheet-header{display:flex;justify-content:space-between;align-items:start;gap:20px}.brew-sheet-header h2{margin:0;max-width:580px;font-size:clamp(34px,4.5vw,58px)}.recipe-chip{padding:7px 10px;border:1px solid rgba(255,255,255,.32);border-radius:999px;font-size:11px;white-space:nowrap}.recipe-scale-notice{margin-top:24px;padding:14px 16px;border-left:3px solid #e8cf73;background:#e8cf731a;color:#f4e9b3;font-size:12px;line-height:1.65}.metrics-row{margin:36px 0 44px;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(255,255,255,.2);border-bottom:1px solid rgba(255,255,255,.2)}.metrics-row.has-ice{grid-template-columns:repeat(5,1fr)}.metric{min-width:0;padding:18px 12px}.metric+.metric{border-left:1px solid rgba(255,255,255,.2)}.metric span,.metric strong,.metric small{display:block}.metric span{font-size:9px;letter-spacing:.15em;opacity:.55}.metric strong{margin-top:6px;font-family:Georgia,serif;font-size:clamp(21px,2.5vw,32px);font-weight:500}.metric small{margin-top:5px;opacity:.65}.timeline-step{display:grid;grid-template-columns:70px 1fr;gap:22px;min-height:138px}.time-mark{position:relative;color:#e8cf73;font-family:Georgia,serif;font-style:italic}.time-mark i{position:absolute;left:24px;top:30px;bottom:0;width:1px;background:#ffffff38}.time-mark i:before{content:"";position:absolute;left:-3px;top:0;width:7px;height:7px;border-radius:50%;background:var(--orange)}.timeline-step:last-child .time-mark i{bottom:55px}.step-content{padding-bottom:28px}.step-type{font-size:9px;font-weight:850;letter-spacing:.16em;color:var(--green-bright)}.step-content h3{margin:10px 0 9px;display:flex;align-items:baseline;gap:12px}.step-content h3 strong{font-family:Georgia,serif;font-size:34px;font-weight:500}.step-content h3 span{font-size:12px;opacity:.6}.step-duration{display:block;margin:-4px 0 8px;color:#e8cf73;font-size:10px}.step-content p{margin:0;max-width:520px;opacity:.7;font-size:13px;line-height:1.55}.plan-advice{padding:18px;border:1px solid rgba(255,255,255,.2);background:#ffffff0a}.plan-advice strong{color:#e8cf73;font-size:12px}.plan-advice p{margin:7px 0 0;opacity:.7;font-size:12px;line-height:1.6}.plan-advice small{display:block;margin-top:10px;color:#e8cf73;line-height:1.5}.calculator-shell{display:grid;grid-template-columns:1fr 1fr;min-height:500px;border:1px solid var(--line);box-shadow:var(--shadow)}.calculator-controls{padding:clamp(24px,5vw,58px);background:var(--white)}.calculator-tabs{margin-bottom:40px;display:flex;gap:22px;border-bottom:1px solid var(--line)}.calculator-tabs button{padding:0 0 13px;background:transparent;border:0;border-bottom:3px solid transparent;color:var(--muted);cursor:pointer;font-size:13px;font-weight:800}.calculator-tabs button.active{border-color:var(--orange);color:var(--ink)}.calculator-fields{display:grid;gap:22px}.unit-input{display:flex;align-items:center;border-bottom:1px solid var(--ink)}.unit-input input{min-width:0;height:70px;padding:0;border:0;background:transparent;font-family:Georgia,serif;font-size:42px}.unit-input i{font-family:Georgia,serif;font-size:22px;font-style:italic;color:var(--orange)}.ratio-input i{margin-right:12px;color:var(--ink)}.calculator-result{padding:clamp(35px,6vw,72px);background:#e6c65f;display:flex;flex-direction:column;justify-content:center}.calculator-result .eyebrow{color:var(--ink);opacity:.65}.result-label{margin-top:25px;font-weight:700}.giant-result{margin:15px 0;font-family:Georgia,serif;font-size:clamp(75px,10vw,140px);font-weight:500;line-height:.9;letter-spacing:-.07em}.giant-result i{margin-left:9px;font-size:28px;color:var(--orange)}.calculator-result>p{margin:18px 0 0;max-width:460px;line-height:1.6;opacity:.68}.result-submetrics{max-width:420px;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid rgba(23,42,36,.25);border-bottom:1px solid rgba(23,42,36,.25)}.result-submetrics .metric+.metric{border-left-color:#172a2440}.formula-notes{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-top:0}.formula-notes article{padding:30px}.formula-notes article+article{border-left:1px solid var(--line)}.formula-notes article>span{color:var(--orange);font-family:Georgia,serif;font-style:italic}.formula-notes h3{margin:24px 0 10px}.formula-notes p{margin:0;color:var(--muted);font-size:13px;line-height:1.65}.journal-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:48px;align-items:start}.evaluation-form{min-width:0}.form-topline{padding:24px;background:var(--ink);color:var(--white);display:grid;grid-template-columns:minmax(170px,1fr) minmax(170px,1fr) auto;gap:14px;align-items:end}.form-topline select{background:#ffffff1a;border-color:#ffffff40;color:var(--white)}.form-topline select option{color:var(--ink)}.compact-segment{min-width:280px;margin:0;border-color:#ffffff38;background:#ffffff0f}.compact-segment button{color:#ffffffb3}.compact-segment button.active{color:var(--ink)}.evaluation-section{padding:46px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:50px minmax(0,1fr);gap:25px}.section-number{width:38px;height:38px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font-family:Georgia,serif;font-style:italic}.evaluation-heading{margin-bottom:25px;display:flex;justify-content:space-between;align-items:start;gap:20px}.evaluation-heading h2{margin:0 0 7px;font-family:inherit;font-size:24px;font-weight:800}.evaluation-heading p{margin:0;color:var(--muted)}.help-badge{padding:7px 10px;background:var(--cream);border-radius:999px;font-size:10px;color:var(--muted)}.mode-cards{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mode-card{min-height:110px;padding:20px;background:var(--white);border:1px solid var(--line);text-align:left;cursor:pointer}.mode-card.active{border:2px solid var(--ink);background:#e9eddf}.mode-card strong,.mode-card span{display:block}.mode-card span{margin-top:8px;color:var(--muted);font-size:12px}.flavor-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.flavor-card{min-height:145px;padding:15px;background:var(--white);border:1px solid var(--line);text-align:left;cursor:pointer}.flavor-card.active{border:2px solid var(--ink);transform:translateY(-2px)}.flavor-card strong,.flavor-card small{display:block}.flavor-card strong{margin:12px 0 7px}.flavor-card small{color:var(--muted);line-height:1.45}.flavor-dot{width:18px;height:18px;border-radius:50%;display:block;background:var(--orange)}.flavor-fruity{background:#d95447}.flavor-floral{background:#b86ca5}.flavor-sweet{background:#d79f4f}.flavor-nut-cocoa{background:#835b42}.flavor-spice{background:#aa493e}.flavor-roasted{background:#4f4640}.flavor-green{background:#7f9c58}.flavor-fermented{background:#8b5676}.flavor-other{background:#6f6a63}.flavor-detail{margin-top:14px;padding:22px;background:var(--cream)}.flavor-detail>p{margin-bottom:15px}.flavor-guidance{margin:-5px 0 16px;padding:12px;background:#ffffffa6;color:var(--muted);font-size:12px;line-height:1.55}.custom-flavor{margin-top:16px}.chip-group{display:flex;flex-wrap:wrap;gap:7px}.chip{min-height:38px;padding:7px 12px;border:1px solid var(--line);border-radius:999px;background:var(--white);cursor:pointer;font-size:12px}.chip.active{background:var(--ink);color:var(--white)}.observation-list{margin-top:14px;display:flex;flex-wrap:wrap;gap:7px}.observation-list button{padding:8px 11px;border:0;border-radius:999px;background:var(--green);color:var(--white);cursor:pointer;font-size:12px}.observation-list span{margin-left:8px;opacity:.65}.ranges-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px 34px}.range-field{display:block}.field-heading{display:flex;justify-content:space-between;font-weight:750}.field-heading strong{color:var(--orange)}.range-field input{min-height:32px;padding:0;accent-color:var(--orange)}.range-labels{display:flex;justify-content:space-between;color:var(--muted)}.final-evaluation .field-row{margin-top:28px}.form-actions{margin-top:22px;display:flex;justify-content:flex-end;gap:8px}.saved-message{margin:14px 0 0;color:var(--green);text-align:right;font-weight:700}.journal-history{min-width:0}.history-sticky{position:sticky;top:110px;padding:30px;background:#e7eddf}.history-sticky h2{font-size:34px}.seller-notes{margin-bottom:25px}.seller-notes>span{display:block;margin-bottom:8px;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.12em}.seller-notes i{display:inline-block;margin:0 5px 5px 0;padding:5px 8px;background:#ffffff8c;font-size:11px;font-style:normal}.history-list{display:grid;gap:10px}.history-card{padding:18px;background:var(--white);border:1px solid var(--line)}.history-card>div:first-child{display:flex;justify-content:space-between;color:var(--muted);font-size:10px;letter-spacing:.1em}.history-card>strong{display:block;margin-top:16px}.history-recipe{display:block;margin-top:6px;color:var(--muted);font-size:11px}.history-card>p{margin:7px 0;color:var(--orange);font-size:12px}.history-card blockquote{margin:12px 0 0;padding-left:12px;border-left:2px solid var(--yellow);color:var(--muted);font-size:12px;line-height:1.6}.history-actions{margin-top:15px;display:flex;gap:12px}.history-actions button,.history-actions a{padding:0;border:0;border-bottom:1px solid;background:transparent;color:inherit;cursor:pointer;font-size:11px;text-decoration:none}.selected-recipe-note{margin:-20px 0 22px;color:var(--orange);font-size:12px;font-weight:700}.license-note{margin:22px 0 0;color:var(--muted);font-size:10px;line-height:1.6}.empty-state{min-height:430px;padding:70px 20px;border:1px solid var(--line);display:grid;place-items:center;text-align:center}.empty-mark{width:65px;height:65px;border:1px solid var(--ink);border-radius:50%;display:grid;place-items:center;font-size:32px}.empty-state h2{margin:15px 0 5px;font-size:38px}.empty-state p{max-width:500px;color:var(--muted)}.reference-search{margin-bottom:65px;padding:24px;display:grid;grid-template-columns:1fr auto;gap:20px;align-items:end}.reference-search label>span{display:block;margin-bottom:8px;color:var(--muted);font-size:11px;font-weight:800}.reference-search strong{padding-bottom:14px;color:var(--orange)}.reference-section{padding:45px 0;border-top:1px solid var(--line)}.glossary-grid,.reference-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.reference-card{min-width:0;padding:22px;background:var(--white);border:1px solid var(--line)}.reference-card h3{margin:10px 0;font-family:inherit;font-size:20px}.reference-card h3 small{display:block;margin-top:4px;color:var(--muted);font-size:11px;font-weight:500}.reference-card p{color:#3e4c47;line-height:1.6}.reference-card aside{margin:14px 0;padding:12px;background:var(--cream);color:var(--muted);font-size:12px;line-height:1.55}.two-reference-columns{display:grid;grid-template-columns:1fr 1fr;gap:32px}.stacked-reference-list{display:grid;gap:10px}.status-screen{min-height:100vh;padding:40px;display:grid;place-items:center;align-content:center;text-align:center}.status-screen h1{font-size:48px}.loader{width:42px;height:42px;border:2px solid var(--line);border-top-color:var(--orange);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.mobile-nav{display:none}@media(max-width:1023px){.page{padding-top:55px}.planner-grid{grid-template-columns:1fr}.brew-workflow-grid{grid-template-columns:1fr;grid-template-areas:"recipe" "prepare" "guide" "followup" "adjust"}.recipe-start-grid{grid-template-columns:1fr}.form-topline{grid-template-columns:1fr 1fr}.compact-segment{grid-column:1 / -1}.brew-sheet{position:static}.journal-grid{grid-template-columns:1fr}.history-sticky{position:static}.flavor-grid{grid-template-columns:repeat(3,1fr)}.glossary-grid,.reference-grid{grid-template-columns:repeat(2,1fr)}.two-reference-columns{grid-template-columns:1fr}}@media(max-width:767px){body{padding-bottom:74px}.site-header{height:64px;padding:0 18px}.brand-mark{width:34px;height:34px}.brand small,.desktop-nav{display:none}.main-content{min-height:calc(100vh - 64px)}.page{padding:38px 18px 70px}.mobile-nav{height:68px;padding:6px 7px max(6px,env(safe-area-inset-bottom));position:fixed;left:0;right:0;bottom:0;z-index:60;display:grid;grid-template-columns:repeat(5,1fr);background:#f7f3ebf2;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.mobile-nav a{min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--muted);text-decoration:none;font-size:10px;font-weight:750}.mobile-nav a span{font-size:19px;line-height:1}.mobile-nav a.active{color:var(--orange)}h1{font-size:49px}.section-heading,.page-intro{display:block}.section-heading>p,.page-intro>p{margin-top:18px}.page-intro{margin-bottom:40px}.page-intro h1{font-size:48px}.split-page{padding-top:0;display:block}.catalog-sidebar{padding-top:45px}.catalog-sidebar h1{font-size:46px}.catalog-list{margin:35px 0;display:flex;gap:8px;overflow-x:auto;border:0;scroll-snap-type:x mandatory}.catalog-item{min-width:220px;padding:15px;border:1px solid var(--line);scroll-snap-align:start;grid-template-columns:30px 1fr}.catalog-item i{display:none}.dripper-detail{margin:0 -18px;padding:44px 18px 60px}.dripper-illustration{height:200px}.spec-grid{grid-template-columns:1fr}.spec-grid>div+div{border-left:0;border-top:1px solid var(--line)}.detail-columns{grid-template-columns:1fr;gap:25px}.filter-grid,.glossary-grid,.reference-grid{grid-template-columns:1fr}.reference-search{grid-template-columns:1fr;margin-bottom:40px}.planner-grid{margin:0 -8px}.brew-workflow-grid{margin:0 -8px;gap:14px}.recipe-start,.brew-preparation,.recipe-adjustments,.brew-followup{padding:26px 18px}.recipe-brief{grid-template-columns:1fr;padding:20px}.workflow-heading{gap:13px}.workflow-heading h2{font-size:30px}.workflow-heading>span{width:32px;height:32px}.adjustment-grid{grid-template-columns:1fr}.followup-actions{display:grid}.panel{border-left:0;border-right:0}.planner-controls,.brew-sheet{padding:26px 18px}.two-fields,.three-fields,.action-field{grid-template-columns:1fr}.metrics-row,.metrics-row.has-ice{grid-template-columns:1fr 1fr}.metric:nth-child(n+3){border-top:1px solid rgba(255,255,255,.2)}.metric:nth-child(odd){border-left:0}.brew-sheet-header{display:block}.recipe-chip{display:inline-block;margin-top:14px}.timeline-step{grid-template-columns:58px 1fr;gap:12px}.calculator-shell{grid-template-columns:1fr}.calculator-controls,.calculator-result{padding:28px 20px}.calculator-tabs{gap:15px;overflow-x:auto}.calculator-tabs button{flex:0 0 auto}.calculator-result{min-height:390px}.formula-notes{grid-template-columns:1fr}.formula-notes article+article{border-left:0;border-top:1px solid var(--line)}.form-topline{grid-template-columns:1fr}.compact-segment{min-width:0}.evaluation-section{grid-template-columns:1fr;padding:36px 0;gap:16px}.evaluation-heading{display:block}.help-badge{display:inline-block;margin-top:12px}.mode-cards{grid-template-columns:1fr}.flavor-grid{grid-template-columns:1fr 1fr}.flavor-card{min-height:130px}.ranges-grid{grid-template-columns:1fr}.journal-grid{gap:30px}.history-sticky{margin:0 -18px;padding:28px 18px}}@media(max-width:390px){h1,.page-intro h1{font-size:43px}.flavor-grid{grid-template-columns:1fr}.timeline-step{grid-template-columns:50px 1fr}.step-content h3{display:block}.step-content h3 span{display:block;margin-top:4px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}.workspace-page{max-width:1440px}.workspace-page h1{overflow-wrap:anywhere;line-height:1.12}.workspace-page h2{font-family:inherit;font-size:clamp(23px,2.4vw,34px);line-height:1.3;letter-spacing:-.04em}.workspace-page h3{font-size:21px;line-height:1.4;overflow-wrap:anywhere}.workspace-page p,.workspace-page li{line-height:1.75}.workspace-page label{display:flex;flex-direction:column;gap:8px;min-width:0;font-size:13px;font-weight:650}.workspace-page input,.workspace-page select,.workspace-page textarea{width:100%;min-width:0;min-height:46px;border:1px solid var(--line);border-radius:5px;background:var(--white);color:var(--ink);padding:11px 12px}.workspace-page textarea{min-height:100px;resize:vertical}.workspace-page input[type=checkbox]{width:18px;min-height:18px;accent-color:var(--green);flex-shrink:0}.workspace-page .check-field{display:inline-flex;flex-direction:row;align-items:center;gap:8px}.workspace-page small{color:var(--muted);line-height:1.6}.workspace-page details{padding:14px 0;border-top:1px solid var(--line)}.workspace-page details>summary{cursor:pointer;font-weight:750;padding:8px 0;line-height:1.6}.workspace-page details[open]>summary{margin-bottom:16px}.workspace-page .two-fields,.workspace-page .three-fields{align-items:start}.field-stack{display:grid;gap:18px}.toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:flex-start;margin-bottom:22px}.toolbar h2,.toolbar h3{margin:0}.toolbar>:last-child:not(:first-child){margin-left:auto}.toolbar .toolbar{margin:0}.toolbar>a:not(.button){font-size:13px;text-underline-offset:4px}.work-card{padding:clamp(20px,3vw,34px);background:var(--white);border:1px solid var(--line);border-radius:8px;min-width:0;margin-bottom:24px}.work-card .work-card{padding:18px}.card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.card-grid>.work-card{margin:0}.card-grid+.work-card{margin-top:24px}.prep-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:24px}.prep-grid>*{min-width:0}.action-notice{margin:22px 0;padding:16px 20px;border:1px solid var(--line);background:#e7eddf;border-radius:6px;overflow-wrap:anywhere}.guide-warning{background:#fff1d4;border-left:3px solid #b78a23;padding:14px 18px;font-size:13px;line-height:1.75}.guide-cue{background:#edf2e8;border-radius:5px;padding:14px 18px;font-size:13px;line-height:1.75}.guide-cue p:last-child{margin-bottom:0}.source-line{color:var(--muted);font-size:11px;line-height:1.8;overflow-wrap:anywhere}.context-guides details{border-top:1px solid var(--line)}.equipment-guide h3{font-size:22px}.guide-steps{list-style:none;padding:0;margin:24px 0}.guide-steps>li{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(0,1.2fr);align-items:center;gap:22px;border-bottom:1px solid var(--line);padding:20px 0}.guide-steps h4{margin:5px 0 10px;font-size:18px}.guide-steps .eyebrow{font-size:10px}.guide-art{width:100%;max-width:420px;height:auto;color:var(--ink);background:#f3f0e7;border-radius:8px;margin:auto;display:block}.art-path{stroke:var(--orange);stroke-width:3}.art-fill{fill:var(--orange);stroke:var(--orange)}.art-label{fill:var(--ink);stroke:none;font-family:inherit;font-size:12px}.art-dots{stroke-dasharray:1 9;stroke-width:4}.guide-art-animated .art-path{stroke-dasharray:14 6;animation:guide-path 2s linear infinite}@keyframes guide-path{to{stroke-dashoffset:-40}}.tool-browser{display:grid;grid-template-columns:minmax(220px,.6fr) minmax(0,1.4fr);align-items:start;gap:24px;margin-bottom:28px}.tool-list{display:grid;gap:8px;max-height:780px;overflow:auto;padding:4px}.tool-list button{min-width:0;background:transparent;text-align:left;padding:16px;border:1px solid var(--line);border-radius:5px;cursor:pointer}.tool-list button.active{background:var(--green);color:var(--white)}.tool-list button.active small{color:#dbe7dc}.tool-list strong,.tool-list small{display:block}.tool-list strong{margin-top:6px;overflow-wrap:anywhere}.tab-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:25px}.tab-row button,.tab-row a{padding:11px 16px;text-decoration:none;border-radius:999px;border:1px solid var(--line);background:transparent;cursor:pointer;font-size:13px}.tab-row button.active{background:var(--ink);color:var(--white)}.search-field{margin:20px 0 25px;max-width:700px}.record-facts{display:grid;grid-template-columns:minmax(90px,.4fr) minmax(0,1fr);gap:12px;font-size:13px;line-height:1.8}.record-facts dt{color:var(--muted)}.record-facts dd{margin:0;overflow-wrap:anywhere}.practice-clock{padding:26px;margin:24px 0;background:var(--green);color:var(--white);display:grid;gap:14px;border-radius:8px;text-align:center}.practice-clock strong{font-variant-numeric:tabular-nums;font-family:Georgia,serif;font-size:70px;font-weight:400}.practice-clock small{color:#dbe7dc}.practice-clock progress{width:100%;accent-color:var(--orange)}.step-editor-list{display:grid;gap:20px;margin:24px 0}.step-editor{padding:22px;border:1px solid var(--line);background:var(--paper);border-radius:5px;display:grid;gap:16px}.step-editor .toolbar{margin-bottom:0}.step-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.recipe-context{border-left:3px solid var(--orange);padding-left:18px}.recipe-context p{font-size:13px}.recipe-context h3{margin-bottom:8px}.logbook-hero{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr);gap:40px;align-items:center;margin:0 0 65px}.logbook-hero h1{margin-bottom:24px;font-size:clamp(44px,6.5vw,80px)}.logbook-hero>div>p:not(.eyebrow){color:var(--muted);margin-bottom:30px}.logbook-stat{background:var(--green);color:var(--white);padding:40px;border-radius:140px 140px 8px 8px;text-align:center}.logbook-stat>span{font-size:9px;letter-spacing:.16em}.logbook-stat strong{display:block;margin:10px 0 5px;font:100px Georgia,serif}.logbook-stat a{font-size:13px}.logbook-hero .logbook-stat>p{color:#dbe7dc}.active-coffees{margin:0 0 60px}.active-coffees .card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.coffee-mini{border-top:2px solid var(--orange);padding:22px;background:var(--cream);min-width:0}.coffee-mini .eyebrow{font-size:10px}.coffee-mini h3{font-size:20px}.coffee-mini p{font-size:13px}.logbook-records{margin-bottom:55px}.filter-bar{display:grid;grid-template-columns:2fr 1fr 1fr;gap:16px;align-items:end;margin-bottom:28px}.log-card{background:var(--white);border:1px solid var(--line);padding:26px;border-radius:8px;min-width:0}.log-card .toolbar{margin-bottom:18px}.log-card time{font-size:11px;color:var(--muted)}.log-card h3 a{text-decoration:none}.log-card h3 a:hover{text-decoration:underline}.log-card p{color:var(--muted);font-size:13px}.log-card .toolbar:last-child{margin-top:24px;margin-bottom:0}.status-pill{border:1px solid var(--line);font-size:11px;border-radius:20px;padding:5px 10px;white-space:nowrap}.log-metrics{display:flex;flex-wrap:wrap;gap:10px 16px;border-block:1px solid var(--line);padding:16px 0;margin:16px 0;font-weight:750;font-size:13px}.log-excerpt{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.log-empty{background:#e7eddf;padding:40px}.table-scroll{overflow:auto}.table-scroll table{border-collapse:collapse;width:100%;min-width:520px;font-size:13px;table-layout:fixed}.table-scroll td,.table-scroll th{border-bottom:1px solid var(--line);padding:14px;text-align:left;vertical-align:top;overflow-wrap:anywhere}.table-scroll .changed{background:#fff1d4}.file-field input{padding:8px 0;border:0;background:transparent}.brew-clock{margin:26px 0;padding:24px;display:grid;place-items:center;background:var(--green);color:var(--white);border-radius:8px}.brew-clock span{font-size:10px;letter-spacing:.2em}.brew-clock strong{font-size:72px;font-family:Georgia,serif;font-weight:400;font-variant-numeric:tabular-nums}.brew-clock p{margin:12px 0 0;font-size:12px}.brew-step{display:grid;grid-template-columns:1.2fr .8fr;gap:32px;padding:28px 0;border-bottom:1px solid var(--line)}.brew-step h3{font-size:25px}.brew-step .guide-art{max-width:280px}.share-preview{white-space:pre-wrap;overflow-wrap:anywhere;font-family:inherit;line-height:1.8;font-size:13px;background:var(--paper);padding:22px}button:disabled{opacity:.5;cursor:not-allowed;transform:none!important}@media(max-width:1100px){.prep-grid{grid-template-columns:1fr}.guide-steps>li{grid-template-columns:minmax(140px,.65fr) minmax(0,1.35fr)}.tool-browser{grid-template-columns:minmax(200px,.55fr) minmax(0,1.45fr)}.active-coffees .card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:767px){.workspace-page h1{font-size:41px}.workspace-page .page-intro{gap:20px}.workspace-page .page-intro>p{margin-top:18px}.workspace-page .two-fields,.workspace-page .three-fields{grid-template-columns:1fr}.toolbar>:last-child:not(:first-child){margin-left:0}.toolbar .button{flex-grow:1}.logbook-hero{grid-template-columns:1fr;gap:22px;margin-bottom:42px}.logbook-hero h1{font-size:43px}.logbook-stat{border-radius:8px;padding:24px;display:grid;grid-template-columns:1fr 1fr;align-items:center}.logbook-stat>span{grid-column:1 / -1}.logbook-stat strong{font-size:66px;grid-row:2 / 4}.logbook-stat p{margin:12px 0 0}.logbook-stat a{font-size:11px}.card-grid,.active-coffees .card-grid{grid-template-columns:1fr}.filter-bar{grid-template-columns:1fr 1fr}.filter-bar>label:first-child{grid-column:1 / -1}.work-card{padding:22px 18px}.guide-steps>li{grid-template-columns:1fr;gap:20px}.guide-art{max-width:320px}.tool-browser{grid-template-columns:1fr}.tool-list{max-height:300px}.tool-detail h2{font-size:27px}.step-editor{padding:16px 12px}.step-fields{grid-template-columns:1fr 1fr}.step-fields .button{padding:0 10px}.brew-step{grid-template-columns:1fr;gap:18px}.log-card{padding:22px 18px}.log-empty{padding:28px 20px}}@media print{.site-header,.mobile-nav,.no-print,.log-detail>form,.log-detail .toolbar{display:none!important}body{background:#fff;padding:0}.page{width:100%;padding:0}.prep-grid{grid-template-columns:1fr}.work-card,.brew-step{break-inside:avoid}.work-card{margin-bottom:15px}}:root .date-input-wrap{display:flex;align-items:center;gap:.6rem}:root .date-input-wrap input{min-width:0;flex:1}:root .date-input-wrap small{white-space:nowrap;font-weight:400}.date-time-field{grid-column:1 / -1}.field-help{font-size:.85rem;line-height:1.6;color:var(--muted)}.purchased-bean-form>section{padding-top:1.2rem;border-top:1px solid var(--line)}.timer-controls{justify-content:center;flex-wrap:wrap;gap:12px}.brew-clock [role=timer]{display:grid;justify-items:center}.brew-clock>.timer-controls{margin-top:18px}.brew-clock .button.primary{background:var(--white);color:var(--green);border-color:var(--white)}.brew-clock .button.secondary{color:var(--white);border-color:var(--white)}.timer-controls .button{min-height:48px}.brew-clock .timer-note{font-size:12px;max-width:620px;margin:16px auto 0}.timer-confirm{margin:20px auto 0;padding:16px;max-width:640px;border:1px solid var(--line);border-radius:6px}.timer-date-field{border:0;padding:0;margin:0;min-width:0;grid-column:1 / -1}
