/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "PingFang TC", "Microsoft JhengHei", sans-serif;--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);--color-paper:#f8f5ee;--color-ink:#302c29;--color-muted:#71675e;--color-wine:#8f3338;--color-forest:#214936;--color-rule:#ded6c9;--font-editorial:"Songti TC", "Noto Serif TC", "PMingLiU", Georgia, serif}}@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,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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]){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;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:where(:not(iframe)){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{.static{position:static}.flex{display:flex}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-3{gap:calc(var(--spacing) * 3)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-7{gap:calc(var(--spacing) * 7)}}:root{color-scheme:light;background:var(--color-paper);color:var(--color-ink);font-family:var(--font-sans)}*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;margin:0;font-size:1rem;line-height:1.7}a{color:inherit;text-decoration:none}button,summary,a{touch-action:manipulation}:focus-visible{outline-offset:5px;outline:3px solid #a96b24}::selection{color:#302c29;background:#e5cfba}[id]{scroll-margin-top:30px}.shell{width:min(1120px,100% - 80px);margin-inline:auto}.skip-link{z-index:5;background:#fff;padding:12px;position:absolute;top:-100px;left:12px}.skip-link:focus{top:12px}.site-header{border-bottom:1px solid var(--color-rule);justify-content:space-between;align-items:center;gap:20px;min-height:106px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand img{border-radius:11px}.brand span,.wordmark{letter-spacing:-1.2px;font-family:Georgia,serif;font-size:1.8rem}.nav-link{padding-block:12px;font-size:.875rem}.nav-link:hover{color:var(--color-wine)}.header-cta{border-bottom:1px solid var(--color-ink);padding-block:8px;font-size:.875rem}.header-cta span{margin-left:12px}.hero{grid-template-columns:1.03fr 1fr;align-items:center;gap:60px;padding-block:76px 86px;display:grid}.eyebrow{letter-spacing:.13em;color:var(--color-muted);margin:0 0 24px;font-size:.875rem}.hero .eyebrow{align-items:center;gap:10px;display:flex}.status-dot{background:var(--color-wine);border-radius:50%;width:6px;height:6px;display:inline-block}h1,h2,h3,p,figure{margin:0}h1,h2{font-family:var(--font-editorial);font-weight:500}h1{letter-spacing:-.045em;font-size:clamp(2.5rem,4.7vw,4.05rem);line-height:1.46}h1 span{color:var(--color-wine)}.hero-description{color:var(--color-muted);margin-top:25px;font-size:1.0625rem;line-height:2}.hero-actions{margin-top:34px}.button{background:var(--color-wine);color:#fff8ef;border-radius:10px;justify-content:space-between;align-items:center;gap:32px;min-height:54px;padding:12px 23px;font-size:.9375rem;transition:background .18s;display:inline-flex}.button:hover{background:#72282d}.availability{color:var(--color-muted);font-size:.8125rem}.hero-footnote{color:var(--color-muted);margin-top:52px;font-size:.8125rem;line-height:1.9}.hero-visual{background:#eee8dc;border-radius:48% 48% 5px 5px;justify-content:center;align-items:center;padding:20px 20px 0;display:flex}.recipe-figure{width:100%;max-width:330px;padding-top:8px}.recipe-preview{background:#fcfaf5;border:1px solid #d9d0c4;border-radius:25px;overflow:hidden;box-shadow:0 16px 35px #302c2910}.preview-nav{height:52px;color:var(--color-muted);justify-content:space-between;align-items:center;padding-inline:20px;font-size:.75rem;display:flex}.preview-nav .wordmark{letter-spacing:-.5px;color:var(--color-ink);font-size:1.1rem}.preview-hero{background:var(--color-wine);color:#fff3df;padding:22px 24px}.preview-label{letter-spacing:.08em;margin-bottom:8px;font-size:.75rem}.preview-hero h2{letter-spacing:.02em;font-size:1.4rem}.preview-title{justify-content:space-between;align-items:center;gap:10px;display:flex}.preview-title>span{letter-spacing:-6px;font-family:Georgia,serif;font-size:5.8rem;line-height:1.2}.preview-title p{text-align:right;font-size:.6875rem;line-height:1.9}.proportion{gap:4px;height:13px;margin-top:12px;display:flex}.proportion span{background:#f2d5b2}.proportion .pale{background:#c78078}.proportion-label{justify-content:space-between;margin-top:8px;font-size:.625rem;display:flex}.preview-body{padding:20px 24px 22px}.preview-recipe{align-items:baseline;gap:16px;display:flex}.preview-recipe strong{white-space:nowrap;font-family:Georgia,serif;font-size:1.9rem;font-weight:400}.preview-recipe small{font-size:.75rem;font-family:var(--font-sans);color:var(--color-muted);margin-left:5px}.preview-recipe>span{color:#b9ae9e}.preview-meta{color:var(--color-muted);margin:6px 0 21px;font-size:.6875rem}.preview-heading{border-top:1px solid var(--color-rule);justify-content:space-between;padding-top:15px;font-size:.8125rem;display:flex}.preview-heading span:last-child{color:var(--color-forest);font-family:Georgia,serif;font-size:1.1rem}.preview-pours{grid-template-columns:repeat(5,1fr);align-items:end;gap:9px;margin:17px 0 0;padding:0;list-style:none;display:grid}.preview-pours li{flex-direction:column;align-items:center;gap:6px;font-family:Georgia,serif;font-size:.8125rem;display:flex}.preview-pours time{font-family:var(--font-sans);color:var(--color-muted);font-size:.625rem}.pour-mark{background:#8eaaa0;border-radius:10px 10px 1px 1px;width:17px;display:block}.preview-pours li:nth-child(-n+2) .pour-mark{background:#b97673}.preview-pours small{font-size:.55rem}.preview-finish{color:var(--color-muted);padding:13px 0 16px;font-size:.625rem}.preview-action{background:var(--color-wine);color:#fff8ef;border-radius:9px;justify-content:space-between;align-items:center;padding:11px 15px;font-size:.8125rem;display:flex}.recipe-figure>figcaption{color:var(--color-muted);text-align:center;padding:17px 0 18px;font-size:.75rem}.section-space{padding-block:91px}.section-heading{justify-content:space-between;align-items:end;gap:40px;display:flex}h2{letter-spacing:-.025em;font-size:clamp(2rem,3.3vw,2.85rem);line-height:1.5}.section-description{color:var(--color-muted);padding-bottom:4px;font-size:1rem;line-height:2}.rhythm-section{border-top:1px solid var(--color-rule)}.rhythm-meta{border-top:1px solid var(--color-rule);margin-top:47px;padding-top:22px;font-size:.875rem}.rhythm-meta p:last-child{color:var(--color-muted)}.rhythm-meta span{color:#bdb1a0;margin-inline:7px}.rhythm-grid{grid-template-columns:repeat(5,1fr);gap:26px;margin:28px 0 0;padding:0;list-style:none;display:grid}.rhythm-grid li{border-bottom:1px solid var(--color-rule);padding-bottom:21px}.rhythm-time{justify-content:space-between;font-family:Georgia,serif;font-size:1.3rem;display:flex}.pour-index{color:var(--color-muted);font-size:.75rem}.rhythm-bar-area{align-items:end;height:140px;padding-bottom:12px;display:flex}.rhythm-bar{background:var(--color-wine);border-radius:3px 3px 0 0;width:100%;display:block}.rhythm-bar.green{background:#587761}.rhythm-value{font-family:Georgia,serif;font-size:2.6rem;line-height:1.5}.rhythm-value span{font-family:var(--font-sans);color:var(--color-muted);margin-left:8px;font-size:.875rem}.rhythm-grid li>p{color:var(--color-muted);font-size:.8125rem}.rhythm-end{color:var(--color-muted);justify-content:space-between;gap:20px;margin-top:22px;font-size:.8125rem;display:flex}.rhythm-end>span{color:var(--color-forest)}.inner-section{background:var(--color-forest);color:#f5f1e6;padding-block:88px}.inner-grid{grid-template-columns:1.3fr 1fr;align-items:center;gap:80px;display:grid}.inner-copy .eyebrow{color:#c0cfbd}.inner-copy h2{font-size:clamp(2rem,3.3vw,2.6rem)}.inner-copy>p:not(.eyebrow){color:#d0d8cb;margin-top:25px;font-size:1rem;line-height:2}.text-link{border-bottom:1px solid #abbda3;align-items:center;gap:45px;margin-top:24px;padding:12px 0;font-size:.875rem;display:inline-flex}.inner-practice{border-left:1px solid #63816a;padding-left:35px}.practice-label{color:#c0cfbd;letter-spacing:.15em;font-size:.75rem}.inner-practice ol{gap:25px;margin:27px 0 0;padding:0;list-style:none;display:grid}.inner-practice li{gap:22px;display:flex}.inner-practice li>span{color:#bdcbb3;font-family:Georgia,serif;font-size:1rem}.inner-practice h3{font-size:1rem;font-weight:400}.inner-practice li p{color:#ccd5c5;margin-top:5px;font-size:.8125rem}.inner-limit{color:#c0cfbd;margin-top:30px;font-size:.75rem;line-height:1.8}.review-section{grid-template-columns:1fr 1fr;align-items:center;gap:90px;display:grid}.review-copy>p:not(.eyebrow){color:var(--color-muted);margin-top:24px;font-size:1rem;line-height:2}.journal{border-top:3px solid var(--color-wine);background:#efe9dd;padding:28px 32px 22px}.journal-top{color:var(--color-muted);justify-content:space-between;font-size:.8125rem;display:flex}.journal blockquote{font-family:var(--font-editorial);margin:30px 0;font-size:clamp(1.6rem,2.8vw,2.2rem);line-height:1.8}.journal-bottom{border-top:1px solid #d6cbbb;justify-content:space-between;gap:20px;padding-top:18px;display:flex}.journal-bottom div{flex-direction:column;gap:5px;font-size:.75rem;display:flex}.journal-bottom span{color:var(--color-muted)}.journal-bottom strong{font-weight:400}.journal figcaption{color:var(--color-muted);margin-top:22px;font-size:.75rem}.faq-section{border-top:1px solid var(--color-rule);grid-template-columns:1fr 1.3fr;gap:60px;display:grid}.faq-section h2{font-size:2.15rem}.faq-list details{border-bottom:1px solid var(--color-rule)}.faq-list details:first-child{border-top:1px solid var(--color-rule)}.faq-list summary{cursor:pointer;justify-content:space-between;align-items:center;gap:20px;padding-block:20px;font-size:1rem;list-style:none;display:flex}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary span{color:var(--color-wine);font-size:1.4rem}.faq-list details[open] summary span{transform:rotate(45deg)}.faq-list details p{color:var(--color-muted);padding:0 25px 23px 0;font-size:.9375rem;line-height:1.9}.closing{text-align:center;padding:38px 0 83px}.closing h2{margin-bottom:26px}.closing .eyebrow{margin-bottom:15px}.site-footer{border-top:1px solid var(--color-rule);justify-content:space-between;align-items:center;gap:20px;padding-block:28px;display:flex}.site-footer p{color:var(--color-muted);letter-spacing:.13em;font-size:.8125rem}.site-footer>span{color:var(--color-muted);font-size:.75rem}.mobile-only{display:none}@media (width>=1000px){.hero-copy{padding-bottom:25px}}@media (width<=900px){.shell{width:calc(100% - 48px)}.hero{gap:32px}.hero-visual{padding-inline:15px}.hero h1{font-size:2.85rem}.inner-grid,.review-section{gap:40px}.rhythm-grid{gap:18px}.faq-section{gap:30px}}@media (width<=680px){.shell{width:calc(100% - 40px)}.site-header{min-height:85px}.site-header nav{gap:18px}.header-cta{display:none}.brand span{font-size:1.55rem}.brand img{border-radius:9px;width:32px;height:32px}.brand{gap:8px}.nav-link{font-size:.8125rem}.hero{grid-template-columns:1fr;gap:33px;padding-block:45px 50px}.hero h1{font-size:clamp(2.25rem,7.9vw,3.25rem)}.hero-description{margin-top:18px;font-size:1rem}.hero .eyebrow{margin-bottom:18px}.hero-actions{gap:18px;margin-top:25px}.hero-footnote{margin-top:22px}.hero-visual{margin-inline:0;padding:18px 15px 0}.recipe-figure{max-width:330px}.section-space{padding-block:54px}.section-heading{display:block}.section-description{margin-top:20px;font-size:.9375rem}.eyebrow{margin-bottom:15px}.rhythm-meta{margin-top:28px;font-size:.8125rem}.rhythm-meta span{margin-inline:3px}.rhythm-grid{gap:10px;margin-top:24px}.rhythm-time{font-size:1rem}.pour-index{display:none}.rhythm-bar-area{height:116px}.rhythm-value{font-size:1.8rem}.rhythm-value span{margin:0;font-size:.75rem;line-height:1.3;display:block}.rhythm-grid li>p{margin-top:8px;font-size:.75rem}.rhythm-end{display:block}.rhythm-end p{margin-top:9px}.mobile-only{display:block}.inner-section{padding-block:53px}.inner-grid,.review-section,.faq-section{grid-template-columns:1fr;gap:32px}.inner-practice{padding-left:23px}.inner-copy>p:not(.eyebrow),.review-copy>p:not(.eyebrow){font-size:.9375rem}.journal{padding:23px}.journal blockquote{font-size:1.8rem}.journal-bottom{gap:14px}.faq-section h2{font-size:2rem}.faq-list summary{font-size:.9375rem}.closing{padding-block:18px 54px}.closing h2{font-size:1.9rem}.site-footer{flex-wrap:wrap;gap:12px;padding-block:23px}.site-footer>span{width:100%}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}.nav-link[aria-current=page]{color:var(--color-wine);border-bottom:1px solid}.devlog-main{padding-block:72px 80px}.devlog-intro{margin-bottom:65px}.devlog-intro h1{font-size:clamp(2.5rem,5vw,4.3rem)}.devlog-intro>p:last-child{color:var(--color-muted);margin-top:24px;line-height:2}.post-row{border-top:1px solid var(--color-rule);grid-template-columns:220px 1fr;gap:40px;padding-block:35px;display:grid}.post-meta{color:var(--color-muted);flex-wrap:wrap;align-items:baseline;gap:12px;font-size:.8125rem;display:flex}.post-row>.post-meta{flex-direction:column;gap:8px}.post-meta span{color:var(--color-wine)}.post-row h2{font-size:clamp(1.5rem,2.6vw,2rem);line-height:1.6}.post-row h2 a{justify-content:space-between;gap:20px;display:flex}.post-row h2 a:hover{color:var(--color-wine)}.post-row h2 a>span{font-family:var(--font-sans);flex-shrink:0;font-size:1.1rem}.post-row p{max-width:60ch;color:var(--color-muted);margin-top:12px;font-size:1rem;line-height:1.9}.devlog-end{border-top:1px solid var(--color-rule);color:var(--color-muted);margin-top:15px;padding-top:30px;font-size:.875rem}.article-main{max-width:760px;padding-block:40px 75px}.back-link,.article-back{color:var(--color-wine);padding-block:12px;font-size:.875rem;display:inline-block}.article-header{border-bottom:1px solid var(--color-rule);margin-bottom:35px;padding-block:40px 35px}.article-header h1{overflow-wrap:anywhere;margin-top:19px;font-size:clamp(2rem,4vw,3.25rem);line-height:1.5}.article-header>p{color:var(--color-muted);margin-top:20px;font-size:1.0625rem;line-height:1.9}.article-header .updated{font-size:.8125rem}.article-prose{overflow-wrap:anywhere;font-size:1.0625rem;line-height:2}.article-prose p,.article-prose ul,.article-prose ol,.article-prose blockquote{margin:1.35em 0}.article-prose h2{margin:2em 0 .7em;font-size:1.65rem;line-height:1.6}.article-prose h3{margin:1.8em 0 .6em;font-size:1.2rem}.article-prose ul{padding-left:1.5em;list-style:outside}.article-prose ol{padding-left:1.5em;list-style:decimal}.article-prose li{margin-block:.5em}.article-prose a{color:var(--color-wine);text-underline-offset:4px;text-decoration:underline}.article-prose code{background:#eee7dd;border-radius:3px;padding:.1em .3em;font-size:.9em}.article-prose pre{border-radius:6px;padding:20px;font-size:.875rem;line-height:1.7;overflow-x:auto}.article-prose pre code{background:0 0;padding:0}.article-prose blockquote{border-left:3px solid var(--color-wine);color:var(--color-muted);padding-left:22px}.article-prose img{max-width:100%;height:auto}.article-back{border-top:1px solid var(--color-rule);width:100%;margin-top:36px;padding-top:24px}@media (width<=680px){.nav-faq{display:none}.devlog-main{padding-block:43px 50px}.devlog-intro{margin-bottom:38px}.post-row{grid-template-columns:1fr;gap:12px;padding-block:27px}.post-row>.post-meta{flex-direction:row;gap:15px}.article-header{padding-top:24px}.article-main{padding-block:23px 48px}.article-prose{font-size:1rem}.article-prose h2{font-size:1.5rem}.site-header{flex-wrap:wrap;gap:8px;padding-block:16px}.site-header nav{flex-wrap:wrap;justify-content:flex-start;gap:4px 22px;width:100%}.site-header .nav-faq{display:inline-block}.site-header .nav-link{align-items:center;min-height:44px;font-size:.875rem;display:inline-flex}}.article-prose .architecture-diagram{max-width:440px;margin:28px auto}.article-prose .architecture-diagram img{width:100%;height:auto;display:block}.article-prose .architecture-diagram figcaption{color:var(--color-muted);margin-top:12px;font-size:.875rem;line-height:1.8}
