:root{--paper:#f6f3ec;--ink:#302c26;--muted:#766d61;--line:#dcd6c9;--coffee:#654732;--sage:#747d64}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--coffee);outline-offset:5px}img{display:block;width:100%;object-fit:cover}h1,h2,h3,p{margin:0}h1,h2,h3,blockquote{font-family:Georgia,"Songti SC","Noto Serif CJK SC",serif;font-weight:400}p{line-height:1.95;color:var(--muted)}.header{max-width:1600px;margin:auto;min-height:116px;padding:28px 5%;display:flex;align-items:center;gap:48px;border-bottom:1px solid var(--line)}.brand{font-family:Georgia,serif;font-size:33px;letter-spacing:-1.5px;line-height:1.05}.brand span{font-family:sans-serif;display:block;font-size:10px;letter-spacing:3px;margin-top:12px;color:var(--muted)}nav{display:flex;gap:31px;margin-left:auto;font-size:13px}nav a{padding:10px 0;border-bottom:1px solid transparent}nav a:hover{border-color:var(--coffee)}.header-note{font-size:9px;letter-spacing:1.2px;color:var(--muted);margin-left:30px}.hero{max-width:1600px;margin:auto;display:grid;grid-template-columns:1fr 1fr;min-height:640px}.hero-copy{padding:85px 10% 32px;display:flex;flex-direction:column;align-items:flex-start}.eyebrow{font-size:10px;letter-spacing:2px;line-height:1.8;font-weight:500}.hero .eyebrow{display:flex;align-items:center;gap:12px}.eyebrow>span:empty{width:24px;height:1px;background:var(--coffee)}h1{font-size:clamp(35px,3.25vw,58px);line-height:1.55;letter-spacing:1px}.hero h1{margin:32px 0 22px}.italic{color:var(--coffee);display:inline}.hero p{font-size:14px}.button{display:inline-flex;align-items:center;gap:48px;background:var(--coffee);color:#fffaf1;padding:19px 25px;font-size:12px;letter-spacing:1px;transition:background .2s,transform .2s}.button:hover{background:#433023;transform:translateY(-2px)}.hero .button{margin-top:33px}.button span{font-size:20px;line-height:14px}.hero-bottom{margin-top:auto;padding-top:49px;display:flex;justify-content:space-between;width:100%;font-size:10px;letter-spacing:1px;color:var(--muted)}.hero-photo{position:relative;overflow:hidden;min-height:640px}.hero-photo>img{height:100%;position:absolute;inset:0;filter:brightness(.86);object-position:center}.photo-label{position:absolute;bottom:40px;left:38px;color:#fff;font-size:10px;letter-spacing:3px}.photo-label span{display:block;margin-top:12px;font-family:Georgia,"Songti SC",serif;font-size:20px;letter-spacing:1px}.vertical{writing-mode:vertical-rl;position:absolute;right:23px;top:30px;color:white;font-size:9px;letter-spacing:3px}.strip{max-width:1600px;margin:auto;padding:25px 9%;border-bottom:1px solid var(--line);border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;font-family:"Songti SC",serif;font-size:14px;letter-spacing:3px}.strip i{font-size:19px;font-style:normal;color:var(--sage)}.section{max-width:1400px;margin:auto;padding:90px 6%}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:42px}h2{font-size:34px;line-height:1.6}.section-heading h2{margin-top:12px}.section-heading em{font-style:normal;color:var(--muted)}.text-link{display:inline-flex;align-items:center;gap:20px;font-size:12px;border-bottom:1px solid #b8ac9a;padding-bottom:7px;white-space:nowrap}.text-link:hover{color:#987449}.stories{display:grid;grid-template-columns:repeat(3,1fr);gap:45px 30px}.story[hidden]{display:none}.story-image{display:block;aspect-ratio:1.25;position:relative;overflow:hidden;background:#ddd3c5}.story-image img{height:100%;transition:transform .5s}.story-image:hover img{transform:scale(1.04)}.story-image>span{position:absolute;bottom:12px;left:15px;color:#fff;font-family:Georgia,serif;font-size:18px}.meta{font-size:9px;letter-spacing:1.3px;color:var(--coffee);margin:24px 0 11px}.meta span{color:var(--muted)}.story h3{font-size:25px;line-height:1.5;margin-bottom:12px}.story p{font-size:12px;min-height:48px;line-height:1.9}.story .text-link{margin-top:21px}.feature{display:grid;grid-template-columns:1fr 1fr;max-width:1400px;margin:10px auto 0;padding:0 6%}.feature>img{height:480px}.feature>div{background:#6d735f;color:#faf6e9;padding:57px 48px;display:flex;flex-direction:column;align-items:flex-start}.feature h2{margin:25px 0 17px;font-size:32px}.feature p{color:#e5e5d8;font-size:13px}.light{color:#fffaf1;background:transparent;border:1px solid #c6c8b5;margin-top:26px}.light:hover{background:#565e49}.feature-number{margin-top:auto;padding-top:30px;font-size:9px;letter-spacing:2px;color:#d4d8c5}.brew-teaser{display:grid;grid-template-columns:1.2fr 1fr;gap:50px;align-items:center}.brew-teaser h2{margin:15px 0}.brew-teaser p{font-size:13px;margin-bottom:25px}.ratio-art{border:1px solid #cdc5b7;aspect-ratio:1.35;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#eee8dc;position:relative}.ratio-art:before{content:"";position:absolute;inset:12px;border:1px solid #d7cdbc}.ratio-art strong{font-family:Georgia,serif;font-size:100px;font-weight:400;color:var(--coffee);margin:14px}.ratio-art i{font-size:65px;font-weight:400;font-style:normal;color:#a99b84}.ratio-art>span{font-size:10px;letter-spacing:3px;color:var(--muted)}.quote{text-align:center;padding:65px 20px 75px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.quote>span{font-size:9px;letter-spacing:3px;color:var(--muted)}blockquote{font-size:30px;letter-spacing:2px;margin:25px 0}.quote>a{font-size:12px;color:var(--muted)}footer{max-width:1400px;padding:55px 6% 22px;margin:auto}.footer-top{display:flex;align-items:center;gap:40px;padding-bottom:40px}.footer-top .brand{font-size:29px}.footer-top p{font-size:12px;margin:auto}.top{font-size:11px}.footer-bottom{border-top:1px solid var(--line);padding-top:23px;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:9px;color:var(--muted);letter-spacing:.4px}.footer-bottom div{display:flex;gap:20px}.footer-bottom a:hover{text-decoration:underline}.page-intro{text-align:center;padding:70px 20px 60px;border-bottom:1px solid var(--line)}.page-intro h1{margin:14px 0}.page-intro p{font-size:14px}.journal-section{padding-top:30px}.filters{display:flex;gap:10px;align-items:center;margin-bottom:40px;flex-wrap:wrap}.filters button{background:transparent;border:1px solid var(--line);color:var(--muted);padding:11px 20px;font-size:12px;cursor:pointer}.filters button.active{background:var(--coffee);color:white;border-color:var(--coffee)}.filters>span{margin-left:auto;font-size:11px;color:var(--muted)}.article-intro{max-width:1060px;margin:auto;padding:42px 40px 40px;text-align:center}.breadcrumb{font-size:11px;color:var(--muted);display:block;text-align:left;margin-bottom:40px}.article-intro h1{font-size:46px;margin:16px 0}.dek{font-size:15px}.article-meta{display:flex;justify-content:center;gap:25px;font-size:10px;color:var(--muted);margin-top:28px}.article-cover{max-width:1120px;margin:auto;padding:0 30px}.article-cover img{height:460px}.article-layout{max-width:1050px;margin:65px auto 85px;padding:0 30px;display:grid;grid-template-columns:220px 1fr;gap:60px}.article-layout aside{align-self:start;position:sticky;top:30px}.article-layout aside a{font-size:11px;display:flex;gap:10px;padding:15px 0;border-bottom:1px solid var(--line);line-height:1.6;color:var(--muted)}.article-layout aside span{font-family:Georgia,serif;color:#a39177}.prose h2{font-size:25px;margin-bottom:18px}.prose p{font-size:15px;line-height:2.2;margin-bottom:30px;color:#5c554a}.prose section{margin-bottom:40px}.end-note{padding:24px;border-left:2px solid var(--coffee);background:#eee8dc;font-size:13px;line-height:1.9;color:var(--coffee)}.next-story{display:block;border-top:1px solid var(--line);margin-top:45px;padding-top:25px}.next-story small{display:block;color:var(--muted);font-size:10px;margin-bottom:12px}.next-story strong{font-family:"Songti SC",serif;font-weight:400;font-size:25px}.about-hero{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center;max-width:1250px;margin:65px auto;padding:0 40px}.about-hero h1{margin:22px 0}.about-hero p{font-size:14px}.about-hero img{height:450px}.about-body,.legal{max-width:760px;margin:70px auto;padding:0 30px}.legal a{text-decoration:underline}.calculator{max-width:950px;margin:60px auto;display:grid;grid-template-columns:1fr 1fr;gap:55px;padding:0 30px}.calculator label{display:block;font-size:13px;margin:25px 0 12px}.calculator label span{float:right;color:var(--muted);font-size:11px}.calculator input,.calculator select{border:1px solid #b8ac9a;border-radius:0;background:#fffdf7;width:100%;padding:15px;color:var(--ink)}.hint{font-size:12px;line-height:1.9;margin-top:20px}.result{display:flex;align-items:center;justify-content:center;flex-direction:column;background:#e9e3d6;padding:35px 20px;min-height:310px}.result>span{font-size:12px;color:var(--coffee);letter-spacing:2px}.result strong{font-family:Georgia,serif;font-size:80px;font-weight:400;margin:20px 0}.result small{font-size:24px}.result p{font-size:12px;text-align:center}.result .result-note{font-size:10px;margin-top:28px;color:var(--muted);letter-spacing:0}.brew-guide{max-width:700px;text-align:center;margin:70px auto;padding:0 25px}.brew-guide h2{margin:16px 0}.brew-guide p{font-size:14px;margin-bottom:20px}.not-found{text-align:center;padding:110px 20px}.not-found h1{margin:22px 0}.not-found p{margin-bottom:30px}.skip{position:absolute;top:-100px;left:15px;background:white;padding:12px;z-index:100}.skip:focus{top:15px}.mobile-only{display:none}@media(min-width:1600px){.hero{border-left:1px solid var(--line);border-right:1px solid var(--line)}}@media(max-width:1100px){.header-note{display:none}.hero-copy{padding-top:65px}.hero,.hero-photo{min-height:570px}.hero h1{font-size:36px}.hero-copy{padding-left:10%;padding-right:7%}.feature>div{padding:35px 30px}.feature h2{font-size:28px}.feature>img{height:450px}.section{padding:65px 6%}.article-layout{gap:35px;grid-template-columns:180px 1fr}}@media(max-width:700px){.header{padding:24px 6% 17px;gap:22px;flex-wrap:wrap}.brand{font-size:30px}.header .brand span{font-size:9px}.header nav{width:100%;justify-content:space-between;gap:12px;margin:0;font-size:12px}.hero{grid-template-columns:1fr}.hero-copy{padding:44px 7% 27px;min-height:410px}.hero h1{font-size:34px;margin:25px 0 17px;letter-spacing:0}.hero p{font-size:13px}.hero .button{margin-top:25px}.hero-bottom{padding-top:35px;font-size:9px}.hero-photo{min-height:380px}.photo-label{left:26px;bottom:28px}.photo-label span{font-size:18px}.strip{padding:21px 6%;font-size:11px;letter-spacing:1px;gap:12px}.strip>span:last-child,.strip>i:last-of-type{display:none}.strip i{font-size:16px}.section{padding:55px 6%}.section-heading{align-items:flex-start;flex-direction:column;margin-bottom:28px;gap:22px}.section-heading h2{font-size:27px}.section-heading em{display:block}.stories{grid-template-columns:1fr;gap:40px}.story-image{aspect-ratio:1.4}.story h3{font-size:25px}.story p{min-height:0;font-size:13px}.meta{margin-top:20px}.story .text-link{margin-top:16px}.feature{grid-template-columns:1fr;padding:0 6%}.feature>img{height:290px}.feature>div{padding:35px 28px}.feature h2{font-size:28px;margin-top:18px}.feature p{font-size:12px}.brew-teaser{grid-template-columns:1fr;gap:30px}.brew-teaser h2{font-size:28px}.ratio-art{aspect-ratio:1.6}.ratio-art strong{font-size:85px}.quote{padding:45px 20px}.quote blockquote{font-size:25px;line-height:1.8}.mobile-only{display:block}.footer-top{flex-wrap:wrap;gap:23px;padding-bottom:30px}.footer-top p{order:3;width:100%;margin:0;font-size:11px}.top{margin-left:auto}.footer-bottom{flex-wrap:wrap;gap:20px;line-height:1.7}.footer-bottom>span:last-child{display:none}.footer-bottom>div{width:100%}.page-intro{padding:45px 24px}.page-intro h1{font-size:32px}.page-intro p{font-size:13px}.filters{gap:8px}.filters button{padding:10px 13px;font-size:11px}.filters>span{width:100%;margin-top:10px}.article-intro{padding:28px 24px}.breadcrumb{margin-bottom:28px}.article-intro h1{font-size:32px;line-height:1.55}.dek{font-size:13px}.article-meta{gap:12px;flex-wrap:wrap;font-size:9px;line-height:1.8}.article-cover{padding:0 24px}.article-cover img{height:260px}.article-layout{display:block;margin:35px auto 55px;padding:0 25px}.article-layout aside{position:static;margin-bottom:35px}.article-layout aside a{padding:10px 0}.prose h2{font-size:24px}.prose p{font-size:14px}.about-hero{grid-template-columns:1fr;gap:30px;padding:0 25px;margin:40px auto}.about-hero h1{font-size:34px}.about-hero img{height:300px}.about-body,.legal{margin:40px auto;padding:0 25px}.calculator{grid-template-columns:1fr;gap:30px;margin:40px auto;padding:0 25px}.result{min-height:270px}.not-found{padding:75px 24px}.not-found h1{font-size:30px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}
/* Coffee library */
[hidden]{display:none!important}.library-actions,.search-row{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.library-actions{margin-top:30px}.library-intro h1{line-height:1.2}.learning-path,.library-grid,.recipe-sheet{max-width:1280px;margin:0 auto;padding:40px 64px 70px}.learning-path{background:#ede7db}.path-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:28px}.path-grid a{display:flex;flex-direction:column;gap:14px;padding-top:20px;border-top:1px solid #b9aa98}.path-grid small{color:#776b60}.path-grid strong{font-size:19px;font-weight:500}.library-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;padding-top:70px}.library-group h2{font-size:32px;margin:12px 0 25px}.library-entry{display:flex;justify-content:space-between;gap:20px;padding:20px 0;border-top:1px solid #d9d0c4;font-size:19px}.library-entry small{display:block;font-size:14px;line-height:1.8;color:#766b60;margin-top:8px}.library-entry b{font-weight:400}.library-entry:hover{color:#9a583b}.search-row{margin-bottom:28px}.search-row label{font-size:14px}.search-row input{flex:1;min-width:200px;padding:15px;border:1px solid #b9aa98;background:#fffdf9;font:inherit;color:inherit}.search-row button{border:0;background:transparent;text-decoration:underline;color:inherit;padding:14px;cursor:pointer}.filters{flex-wrap:wrap}.sources{border-top:1px solid #d9d0c4;margin-top:50px;padding-top:20px}.sources p,.sources li{font-size:14px!important}.sources a{text-decoration:underline;text-underline-offset:4px}.table-wrap{overflow-x:auto;margin:30px 0}.table-wrap table{border-collapse:collapse;width:100%;min-width:650px;text-align:left}.table-wrap td,.table-wrap th{padding:20px 15px;border-bottom:1px solid #d9d0c4;line-height:1.7}.table-wrap thead{background:#e9e0d2}.table-wrap tbody th{font-weight:500}.recipe-sheet p{line-height:1.9;color:#6d6055}.recipe-principles{margin:50px 0;padding:25px 0;border-top:1px solid #d9d0c4}.library-teaser{background:#ede7db}.library-teaser .text-link{margin-left:28px}.library-teaser p{margin-bottom:28px}.library-teaser h2{font-size:40px}.library-teaser em{font-weight:400}a:focus-visible,button:focus-visible,input:focus-visible,.table-wrap:focus-visible{outline:2px solid #916447;outline-offset:5px}@media(max-width:1100px){.header-note{display:none}.header nav{gap:18px}}@media(max-width:700px){.learning-path,.library-grid,.recipe-sheet{padding:30px 22px 45px}.library-grid,.path-grid{grid-template-columns:1fr;gap:32px}.library-entry{font-size:17px}.library-actions{gap:20px}.search-row{gap:10px}.search-row label{width:100%}.search-row input{min-width:0;width:100%}.header nav{flex-wrap:wrap;gap:12px 17px;font-size:12px}.library-teaser h2{font-size:30px}.library-teaser .text-link{display:block;margin:20px 0 0}.library-group h2{font-size:27px}}
.library-actions{justify-content:center}
