:root{--bg-canvas:#f7f5f0;--bg-surface:#fff;--bg-surface-hover:#f1e9e2;--text-primary:#111;--text-muted:#57534e;--accent-primary:#d62828;--accent-secondary:#882020;--border-subtle:#d4cfc5;--ease-kinetic:cubic-bezier(.16,1,.3,1);--shadow-elevation:0 12px 32px -4px rgba(0,0,0,.25);--glow-accent:0 0 24px -4px #d6282830;--glass-backdrop:blur(16px) saturate(180%)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg-canvas);color:var(--text-primary);font:17px/1.7 system-ui,"Segoe UI",Roboto,sans-serif;overflow-wrap:anywhere;hyphens:auto}h1,h2,h3{font-weight:800;letter-spacing:-.045em;line-height:1.12;text-wrap:balance}h1{font-size:clamp(2.5rem,6vw,5.7rem);max-width:17ch;margin:.25em 0 .5em}h2{font-size:clamp(1.65rem,3vw,2.55rem)}h3{font-size:1.25rem}p{margin:0 0 1.2em}a{color:var(--accent-secondary);text-underline-offset:4px}a:hover{color:var(--accent-primary)}button,input,textarea,select{font:inherit}button,a,input,textarea,select{touch-action:manipulation}:focus-visible{outline:3px solid var(--accent-primary);outline-offset:5px}button{cursor:pointer}img{display:block;width:100%;height:100%;object-fit:cover}figure{margin:0}figcaption{font-size:.8rem;color:var(--text-muted);padding-top:.65rem}.wrap{width:min(1200px,calc(100% - 48px));margin-inline:auto}.site-header{position:relative;z-index:5;margin:18px 18px 0;padding:18px 24px;border:1px solid var(--border-subtle);border-radius:44px;background:var(--bg-surface);display:flex;align-items:center;justify-content:space-between;gap:18px}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text-primary);font-size:1rem;font-weight:800;letter-spacing:-.035em;white-space:nowrap}.brand-mark{display:inline-grid;place-items:center;background:var(--accent-primary);color:white;width:30px;height:30px;border-radius:50%;font-size:18px}.site-nav{display:flex;gap:22px;align-items:center}.site-nav a{color:var(--text-primary);text-decoration:none;font-size:.85rem;font-weight:650}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--accent-primary)}.menu-toggle{display:none;background:none;border:0;font-size:2rem;line-height:1;padding:4px 12px}.skip{position:absolute;left:20px;top:-100px;background:white;padding:12px;z-index:20}.skip:focus{top:10px}.hero{padding:48px 0 28px;border-bottom:2px solid var(--text-primary)}.eyebrow{font-size:.73rem;text-transform:uppercase;letter-spacing:.16em;font-weight:800;color:var(--accent-secondary)}.hero .intro{max-width:65ch;font-size:1.1rem}.button,button.action{display:inline-block;background:var(--accent-primary);color:#fff;border:1px solid var(--text-primary);padding:11px 18px;font-weight:750;text-decoration:none;box-shadow:4px 4px 0 var(--text-primary);border-radius:0;transition:transform .2s var(--ease-kinetic),box-shadow .2s,background .2s}.button:hover,button.action:hover{color:white;transform:translate(4px,4px);box-shadow:0 0 0 var(--text-primary);background:var(--accent-secondary)}button.secondary{background:var(--bg-surface);color:var(--text-primary)}button.secondary:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.bento{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:0 32px}.tile{grid-column:span 6;padding:32px 0;border-bottom:1px solid var(--border-subtle);min-width:0;position:relative}.tile.wide{grid-column:span 8}.tile.narrow{grid-column:span 4}.tile.full{grid-column:1/-1}.tile-number{font-size:.75rem;letter-spacing:.12em;color:var(--accent-secondary);font-weight:800}.tile h2{margin:.55em 0}.lab-row{display:grid;grid-template-columns:32px 1fr;gap:14px;border-top:1px solid var(--border-subtle);padding:20px 0;transition:transform .25s var(--ease-kinetic),background .25s}.lab-row:hover{transform:translateY(-3px);background:#ffffff70}.lab-icon{width:28px;height:28px;display:grid;place-items:center;font-size:1rem;font-weight:800;color:var(--accent-primary);border:1px solid var(--accent-primary);border-radius:50%}.lab-row h3{margin:0 0 8px}.lab-row p{margin-bottom:.45em}.media-grid{aspect-ratio:4/3;background:#ede9df}.media-banner{aspect-ratio:16/9;background:#ede9df}.media-thumb{width:88px;aspect-ratio:1;background:#ede9df;flex-shrink:0}.photo-note{display:flex;gap:18px;align-items:center}.calibration,.roast-wash{background:radial-gradient(ellipse at 80% 40%,#d6282815,transparent 68%);background-size:200% 200%;animation:gradientShift 12s ease infinite}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:28px}.guide-header{padding:46px 0 30px;border-bottom:2px solid var(--text-primary)}.guide-header h1{font-size:clamp(2.4rem,5vw,4.6rem);max-width:21ch}.guide-header p{max-width:70ch}.guide-layout{display:grid;grid-template-columns:minmax(0,8fr) minmax(220px,4fr);gap:48px;padding:40px 0 60px}.prose{max-width:70ch;margin:0 auto;min-width:0}.prose h2{font-size:1.9rem;margin:1.4em 0 .6em}.prose h3{margin-top:1.6em}.prose ul,.prose ol{padding-left:1.3em}.bench-aside{border-top:4px solid var(--accent-primary);padding-top:20px;font-size:.92rem;align-self:start}.bench-aside h2{font-size:1.35rem}.bench-aside ul{padding-left:1.1em}.bench-aside figure{margin:24px 0}.table-scroll{overflow-x:auto;margin:28px 0;max-width:100%}table{border-collapse:collapse;width:100%;font-size:.9rem;min-width:520px}caption{text-align:left;font-weight:750;padding-bottom:12px}th,td{padding:13px 14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--border-subtle)}th{background:#eae5dc}details{border-top:1px solid var(--border-subtle);padding:18px 0}details:last-child{border-bottom:1px solid var(--border-subtle)}summary{font-weight:750;cursor:pointer;line-height:1.4}details p{margin:16px 0 0}.callout{border-left:4px solid var(--accent-primary);padding:10px 0 10px 20px;margin:26px 0}.page-content{padding:36px 0 65px}.page-content.narrow{max-width:72ch;margin-inline:auto}.worksheet{margin:24px 0;padding:24px 0;border-block:1px solid var(--border-subtle)}label{display:block;font-weight:700;margin:18px 0 7px}input,textarea,select{width:100%;max-width:100%;padding:12px;border:1px solid #8b8376;background:white;color:var(--text-primary);border-radius:0}textarea{resize:vertical}.actions{display:flex;flex-wrap:wrap;gap:16px;margin:22px 0}.preview{white-space:pre-wrap;background:white;border:1px solid var(--border-subtle);padding:20px;font:inherit;min-height:110px}.status{font-size:.9rem;color:var(--accent-secondary);min-height:1.6em}.meta{font-size:.85rem;color:var(--text-muted)}.site-footer{border-top:2px solid var(--text-primary);padding:30px 0;margin-top:20px}.footer-top{display:flex;justify-content:space-between;gap:25px;flex-wrap:wrap}.footer-links{display:flex;flex-wrap:wrap;gap:14px 22px}.site-footer p{font-size:.82rem;margin:12px 0 0;color:var(--text-muted)}.site-footer address{font-size:.82rem;font-style:normal;color:var(--text-muted)}.footer-brand{font-weight:800;color:var(--text-primary)}.js .reveal{opacity:0;transform:translateY(16px);transition:opacity .7s var(--ease-kinetic),transform .7s var(--ease-kinetic)}.js .reveal-visible{opacity:1;transform:translateY(0)}[hidden]{display:none!important}@keyframes gradientShift{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@media(min-width:1025px){.hero{display:grid;grid-template-columns:8fr 4fr;gap:40px;align-items:end}.hero h1{grid-column:1}.hero-side{padding-bottom:20px}.hero-side p{font-size:.95rem}}
@media(min-width:769px) and (max-width:1024px){.site-header{padding:16px 20px}.site-nav{gap:14px}.site-nav a{font-size:.78rem}.brand{font-size:.9rem}.guide-layout{gap:28px;grid-template-columns:minmax(0,7fr) minmax(200px,3fr)}.hero{padding-top:36px}}
@media(max-width:768px){.site-header{margin:12px 12px 0;padding:12px 17px}.menu-toggle{display:block}.site-nav{display:none;position:absolute;top:calc(100% + 8px);left:0;right:0;padding:20px;background:var(--bg-surface);border:1px solid var(--border-subtle);box-shadow:var(--shadow-elevation);flex-direction:column;align-items:stretch;gap:0}.site-nav.is-open{display:flex}.site-nav a{font-size:1rem;padding:11px 8px;border-bottom:1px solid var(--border-subtle)}.tile,.tile.wide,.tile.narrow{grid-column:1/-1}.guide-layout{grid-template-columns:1fr;gap:24px}.bench-aside{max-width:70ch;width:100%;margin:auto}.hero{padding-top:30px}.hero-side{margin-top:22px}.bento{gap:0}.guide-header{padding-top:30px}}
@media(min-width:481px) and (max-width:768px){.wrap{width:calc(100% - 40px)}.grid{gap:22px}.tile{padding:28px 0}}
@media(max-width:480px){body{font-size:16px}.wrap{width:calc(100% - 32px)}.brand{font-size:.88rem;gap:7px}.brand-mark{width:26px;height:26px}.tile{padding:25px 0}.hero h1{font-size:2.9rem}.guide-header h1{font-size:2.65rem}.actions{gap:14px}.button,button.action{padding:10px 13px}.footer-top{flex-direction:column}.worksheet{padding-top:8px}.photo-note{align-items:flex-start}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.js .reveal{opacity:1;transform:none}}