:root{--color-bg: #fdfcfa;--color-bg-alt: #f7f5f2;--color-surface: #ffffff;--color-surface-raised: #ffffff;--color-text: #1c1917;--color-text-secondary: #44403c;--color-text-muted: #78716c;--color-accent: #92400e;--color-accent-hover: #78350f;--color-accent-light: #fef3c7;--color-border: #e7e5e4;--color-border-strong: #d6d3d1;--color-muted: var(--color-text-muted);--font-heading: "Playfair Display", Georgia, "Times New Roman", serif;--font-body: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", ui-monospace, monospace;--font-sans: var(--font-body);--text-xs: clamp(.75rem, .7rem + .25vw, .8125rem);--text-sm: clamp(.875rem, .825rem + .25vw, .9375rem);--text-base: clamp(1rem, .95rem + .25vw, 1.0625rem);--text-lg: clamp(1.125rem, 1.05rem + .375vw, 1.25rem);--text-xl: clamp(1.25rem, 1.15rem + .5vw, 1.5rem);--text-2xl: clamp(1.5rem, 1.35rem + .75vw, 1.875rem);--text-3xl: clamp(1.875rem, 1.65rem + 1.125vw, 2.5rem);--text-4xl: clamp(2.25rem, 1.9rem + 1.75vw, 3.25rem);--leading-tight: 1.2;--leading-snug: 1.35;--leading-normal: 1.6;--leading-relaxed: 1.75;--tracking-tight: -.025em;--tracking-normal: 0;--tracking-wide: .025em;--tracking-wider: .05em;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem;--space-4xl: 6rem;--container-sm: 640px;--container-md: 768px;--container-lg: 960px;--container-xl: 1120px;--content-width: 65ch;--radius: 8px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-full: 9999px;--shadow: 0 1px 3px rgba(28, 25, 23, .04);--shadow-sm: 0 1px 2px rgba(28, 25, 23, .04);--shadow-md: 0 2px 8px rgba(28, 25, 23, .06), 0 1px 2px rgba(28, 25, 23, .04);--shadow-lg: 0 4px 16px rgba(28, 25, 23, .08), 0 2px 4px rgba(28, 25, 23, .04);--shadow-xl: 0 8px 32px rgba(28, 25, 23, .1), 0 4px 8px rgba(28, 25, 23, .05);--duration-fast: .15s;--duration-normal: .25s;--duration-slow: .4s;--ease-out: cubic-bezier(.33, 1, .68, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1)}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{font-size:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;scroll-behavior:smooth}body{font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text);background:var(--color-bg);min-height:100vh;display:flex;flex-direction:column}img,picture,video,canvas,svg{display:block;max-width:100%;height:auto}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:600;line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);color:var(--color-text)}h1{font-size:var(--text-3xl);font-weight:700}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl)}h4{font-size:var(--text-lg)}a{color:var(--color-accent);text-decoration:none;transition:color var(--duration-fast) var(--ease-out)}a:hover{color:var(--color-accent-hover)}a:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-sm)}.container{width:100%;max-width:var(--container-md);margin-inline:auto;padding-inline:var(--space-md)}.container--narrow{max-width:var(--container-sm)}.container--wide{max-width:var(--container-lg)}.container--xl{max-width:var(--container-xl)}.prose{max-width:var(--content-width)}.skip-link{position:absolute;top:-3rem;left:var(--space-md);z-index:1000;padding:var(--space-sm) var(--space-md);background:var(--color-text);color:var(--color-bg);font-size:var(--text-sm);font-weight:500;border-radius:var(--radius-md);transition:top var(--duration-normal) var(--ease-out)}.skip-link:focus{top:var(--space-md);outline:none;box-shadow:0 0 0 3px var(--color-accent-light);color:var(--color-bg)}.site-header{position:sticky;top:0;z-index:100;background:#fdfcfaeb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border)}.site-header .container{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding-block:var(--space-md);max-width:var(--container-xl)}.logo{display:flex;align-items:center;transition:opacity var(--duration-fast) var(--ease-out)}.logo:hover{opacity:.8;text-decoration:none}.logo-img{height:32px;width:auto}.nav-links{display:flex;align-items:center;gap:var(--space-xs);list-style:none;padding:0;margin:0}.nav-links li{display:flex}.nav-links a{display:block;padding:var(--space-sm) var(--space-md);font-size:var(--text-sm);font-weight:500;color:var(--color-text-secondary);border-radius:var(--radius-md);transition:all var(--duration-fast) var(--ease-out)}.nav-links a:hover{color:var(--color-text);background:var(--color-bg-alt);text-decoration:none}.nav-links a[aria-current=page]{color:var(--color-accent);background:var(--color-accent-light)}.nav-instagram{display:flex;align-items:center;justify-content:center;padding:var(--space-sm);color:var(--color-text-muted)}.nav-instagram:hover{color:var(--color-accent)}.nav-instagram svg{display:block}@media(max-width:768px){.site-header .container{flex-wrap:wrap}.nav-links{width:100%;justify-content:flex-start;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin-inline:calc(-1 * var(--space-md));padding-inline:var(--space-md);gap:0}.nav-links::-webkit-scrollbar{display:none}.nav-links a{white-space:nowrap;padding:var(--space-xs) var(--space-sm)}}.main{flex:1}.main>.container:first-child,.main>section:first-child+.container{padding-top:var(--space-2xl)}@media(min-width:768px){.main>.container:first-child,.main>section:first-child+.container{padding-top:var(--space-3xl)}}.site-footer{margin-top:auto;padding-block:var(--space-2xl);background:var(--color-bg-alt);border-top:1px solid var(--color-border)}.site-footer .container{max-width:var(--container-xl)}.footer-content{display:flex;flex-direction:column;gap:var(--space-xl)}@media(min-width:768px){.footer-content{flex-direction:row;justify-content:space-between;align-items:flex-start}}.footer-brand{display:flex;flex-direction:column;gap:var(--space-md)}.footer-logo{display:inline-flex}.footer-logo-img{height:28px;width:auto}.footer-brand p{font-size:var(--text-sm);color:var(--color-text-muted);max-width:32ch;line-height:var(--leading-relaxed)}.footer-nav{display:flex;flex-wrap:wrap;gap:var(--space-sm) var(--space-lg)}.site-footer a{font-size:var(--text-sm);color:var(--color-text-secondary);transition:color var(--duration-fast) var(--ease-out)}.site-footer a:hover{color:var(--color-accent)}.footer-social{display:flex;gap:var(--space-md)}.social-link{display:inline-flex;align-items:center;gap:var(--space-sm);font-size:var(--text-sm);font-weight:500;color:var(--color-text-secondary);padding:var(--space-sm) var(--space-md);background:var(--color-surface);border-radius:var(--radius-md);transition:all var(--duration-fast) var(--ease-out)}.social-link:hover{background:var(--color-accent-light);color:var(--color-accent);text-decoration:none}.social-link svg{flex-shrink:0}.site-footer p{font-size:var(--text-sm);color:var(--color-text-muted);max-width:40ch;line-height:var(--leading-relaxed)}.card{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);transition:all var(--duration-normal) var(--ease-out)}.card:hover{box-shadow:var(--shadow-md);border-color:var(--color-border-strong)}.card h2,.card h3{margin-top:0;font-family:var(--font-heading)}.card-link{display:block;color:inherit;text-decoration:none}.card-link:hover{text-decoration:none}.card-link:hover .card,.card-link:hover.card{box-shadow:var(--shadow-lg);border-color:var(--color-border-strong);transform:translateY(-2px)}.card-link:focus-visible{outline:none}.card-link:focus-visible .card,.card-link:focus-visible.card{outline:2px solid var(--color-accent);outline-offset:2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);min-height:2.75rem;padding:var(--space-sm) var(--space-lg);font-size:var(--text-sm);font-weight:600;line-height:1.25;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);text-decoration:none}.btn:hover{background:var(--color-bg-alt);border-color:var(--color-text-muted);text-decoration:none}.btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.btn:active{transform:translateY(1px)}.btn--primary{color:var(--color-bg);background:var(--color-accent);border-color:var(--color-accent)}.btn--primary:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.btn--ghost{background:transparent;border-color:transparent}.btn--ghost:hover{background:var(--color-bg-alt);border-color:transparent}.btn--sm{min-height:2.25rem;padding:var(--space-xs) var(--space-md);font-size:var(--text-xs)}.btn--lg{min-height:3.25rem;padding:var(--space-md) var(--space-xl);font-size:var(--text-base)}label{display:block;font-size:var(--text-sm);font-weight:500;color:var(--color-text-secondary);margin-bottom:var(--space-xs)}input,select,textarea{width:100%;min-height:2.75rem;padding:var(--space-sm) var(--space-md);font-size:var(--text-base);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);transition:all var(--duration-fast) var(--ease-out)}input:hover,select:hover,textarea:hover{border-color:var(--color-text-muted)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-light)}input::placeholder{color:var(--color-text-muted)}select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2378716c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-md) center;padding-right:calc(var(--space-md) * 2 + 16px)}.form-group{margin-bottom:var(--space-lg)}.badge{display:inline-flex;align-items:center;padding:var(--space-xs) var(--space-sm);font-size:var(--text-xs);font-weight:600;letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-bg);background:var(--color-accent);border-radius:var(--radius-sm)}.tag{display:inline-flex;align-items:center;padding:var(--space-xs) var(--space-sm);font-size:var(--text-xs);font-weight:500;color:var(--color-text-secondary);background:var(--color-bg-alt);border-radius:var(--radius-full);transition:all var(--duration-fast) var(--ease-out)}.tag:hover{background:var(--color-border)}.tags{display:flex;flex-wrap:wrap;gap:var(--space-xs);list-style:none;padding:0;margin:0}.tags li{display:flex}.content{max-width:var(--content-width)}.content>*+*{margin-top:var(--space-lg)}.content h1{font-size:var(--text-3xl);margin-top:0;margin-bottom:var(--space-lg)}.content h2{font-size:var(--text-2xl);margin-top:var(--space-2xl);margin-bottom:var(--space-md)}.content h3{font-size:var(--text-xl);margin-top:var(--space-xl);margin-bottom:var(--space-sm)}.content p{line-height:var(--leading-relaxed)}.content ul,.content ol{padding-left:var(--space-lg)}.content li{margin-bottom:var(--space-sm)}.content li::marker{color:var(--color-accent)}.content blockquote{padding-left:var(--space-lg);border-left:3px solid var(--color-accent);color:var(--color-text-secondary);font-style:italic}.content code{font-family:var(--font-mono);font-size:.9em;padding:.125em .375em;background:var(--color-bg-alt);border-radius:var(--radius-sm)}.content pre{padding:var(--space-lg);background:var(--color-text);color:var(--color-bg);border-radius:var(--radius-lg);overflow-x:auto}.content pre code{background:transparent;padding:0}.content a{text-decoration:underline;text-decoration-color:var(--color-accent-light);text-underline-offset:2px;transition:text-decoration-color var(--duration-fast) var(--ease-out)}.content a:hover{text-decoration-color:var(--color-accent)}.ratio-calculator{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-xl)}.ratio-calculator .form-group{margin-bottom:var(--space-lg)}.ratio-calculator .form-group:last-of-type{margin-bottom:var(--space-md)}.ratio-calculator label{font-size:var(--text-sm);font-weight:600;color:var(--color-text);margin-bottom:var(--space-sm)}.ratio-calculator input,.ratio-calculator select{font-size:var(--text-lg);font-family:var(--font-mono);padding:var(--space-md);min-height:3.25rem}.ratio-calculator input:focus,.ratio-calculator select:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-light)}.ratio-calculator .muted.small{font-size:var(--text-xs);color:var(--color-text-muted);line-height:var(--leading-relaxed);padding-top:var(--space-md);border-top:1px solid var(--color-border);margin-top:var(--space-md)}.brew-timer{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-xl)}.timer-display{text-align:center;padding:var(--space-xl) 0}.timer-step{display:block;font-size:var(--text-sm);font-weight:500;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:var(--tracking-wider);margin-bottom:var(--space-sm)}.timer-time{display:block;font-family:var(--font-mono);font-size:var(--text-4xl);font-weight:700;letter-spacing:var(--tracking-tight);color:var(--color-text)}.timer-progress{height:8px;background:var(--color-bg-alt);border-radius:var(--radius-full);overflow:hidden;margin-bottom:var(--space-xl)}.timer-progress-bar{height:100%;background:linear-gradient(90deg,var(--color-accent),var(--color-accent-hover));border-radius:var(--radius-full);transition:width 1s linear}.timer-actions{display:flex;justify-content:center;gap:var(--space-sm);margin-bottom:var(--space-xl)}.timer-steps-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--color-border)}.timer-steps-list li{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md);font-size:var(--text-sm);color:var(--color-text-muted);border-bottom:1px solid var(--color-border);transition:all var(--duration-fast) var(--ease-out)}.timer-steps-list li strong{font-weight:500;color:var(--color-text-secondary)}.timer-steps-list li.current{background:var(--color-accent-light);color:var(--color-accent)}.timer-steps-list li.current strong{color:var(--color-accent);font-weight:600}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.muted{color:var(--color-text-muted)}.small{font-size:var(--text-sm);color:var(--color-text-muted)}.text-center{text-align:center}.text-balance{text-wrap:balance}.back{display:inline-flex;align-items:center;gap:var(--space-xs);font-size:var(--text-sm);font-weight:500;color:var(--color-text-muted);margin-bottom:var(--space-lg);transition:color var(--duration-fast) var(--ease-out)}.back:hover{color:var(--color-accent);text-decoration:none}.cross-links{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-bottom:var(--space-xl)}.cross-links a{display:inline-flex;align-items:center;padding:var(--space-xs) var(--space-md);font-size:var(--text-sm);font-weight:500;color:var(--color-text-secondary);background:var(--color-bg-alt);border-radius:var(--radius-full);transition:all var(--duration-fast) var(--ease-out)}.cross-links a:hover{background:var(--color-accent-light);color:var(--color-accent);text-decoration:none}.link-list{list-style:none;padding:0;margin:0}.link-list li{margin-bottom:var(--space-sm)}.link-list a{font-weight:500}.breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-xs);font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--space-lg)}.breadcrumb a{color:var(--color-text-muted);transition:color var(--duration-fast) var(--ease-out)}.breadcrumb a:hover{color:var(--color-accent)}.breadcrumb span[aria-hidden]{color:var(--color-border-strong)}.section{margin-bottom:var(--space-3xl)}.section:last-child{margin-bottom:0}.grid{display:grid;gap:var(--space-md)}.grid--2{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.grid--3{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.details{display:grid;grid-template-columns:auto 1fr;gap:var(--space-sm) var(--space-lg)}.details dt{font-size:var(--text-sm);font-weight:600;color:var(--color-text-muted)}.details dd{margin:0}
