:root{--bg:#FAF8F3;--ink:#272524;--muted:#6B655F;--border:#E8E1D8;--coral:#DB513D;--coral-deep:#B8402F;
--paper:#F2E8D3;--b-dry:#8FAE58;--b-light:#E3BC42;--b-med:#DE8A3C;--b-heavy:#DB513D;
--b-rough:#7E2A22;--i-dry:#4C6330;--i-light:#7A611A;--i-med:#7C471B;--i-heavy:#6E2117;--i-rough:#3C120D;}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);
font-family:-apple-system,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;
font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-weight:900;letter-spacing:-0.02em;line-height:1.08;margin:0 0 .5em}
h1{font-size:clamp(2.4rem,6vw,4rem)}h2{font-size:clamp(1.7rem,4vw,2.5rem)}h3{font-size:1.35rem}
p{margin:0 0 1em}a{color:var(--coral-deep)}
img{max-width:100%;height:auto}
.container{max-width:1080px;margin:0 auto;padding:0 20px}
.section{padding:72px 0}
.section-title{text-align:center;margin-bottom:40px}
.btn{display:inline-block;border-radius:999px;padding:14px 30px;font-weight:800;
text-decoration:none;font-size:1.2rem}
.btn-coral{background:var(--coral);color:#fff}
.btn-coral:hover{filter:brightness(1.06)}
.nav{display:flex;justify-content:space-between;align-items:center;padding:18px 0}
.nav-links{display:flex;gap:26px;align-items:center;color:var(--muted);font-weight:600}
.nav-links a{color:inherit;text-decoration:none}
.wordmark{font-weight:900;font-size:1.35rem;letter-spacing:-0.03em;color:var(--ink);
text-decoration:none;display:flex;gap:10px;align-items:center}
.wordmark img{width:34px;height:34px;border-radius:8px}
.wordmark,.nav-links a{white-space:nowrap}
.nav .btn{padding:10px 22px;font-size:1.17rem}
.chip{display:inline-block;border-radius:5px;padding:2px 10px;font-size:.8rem;
font-weight:800;color:#fff}
.store-badge{display:inline-flex;align-items:center;gap:8px;background:#161412;color:#fff;
border-radius:8px;padding:10px 16px;font-weight:700;font-size:.9rem;text-decoration:none}
.badge-soon{opacity:.6;cursor:default}
.site-footer{border-top:1px solid var(--border);padding:40px 0;color:var(--muted);font-size:.9rem}
.site-footer a{color:var(--muted)}
@media(max-width:720px){.nav-links{gap:14px;font-size:.9rem;flex-wrap:wrap;justify-content:center}
.nav{flex-wrap:wrap;justify-content:center;gap:12px}
.nav .btn{padding:10px 20px}
.section{padding:48px 0}}

.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center;padding:48px 0}
.hero-sub{color:var(--muted);font-size:1.1rem;max-width:44ch}
.cta-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.hero-visual{position:relative;padding-top:48px;justify-self:center}
.cal-grid{display:grid;grid-template-columns:repeat(7,clamp(26px,4.5vw,40px));gap:6px}
.cal-tile{aspect-ratio:1;border-radius:6px;border:1.5px dashed rgba(39,37,36,.28);background:var(--fill,transparent);display:grid;place-items:center;font-size:.74rem;line-height:1;font-weight:900}
.cal-today{outline:3px solid var(--ink);outline-offset:1px}
.drink-stamp{position:absolute;width:64px;height:76px;background:#fff;border:1.5px dashed rgba(39,37,36,.35);border-radius:6px;display:grid;place-items:center;box-shadow:0 3px 10px rgba(39,37,36,.14)}
.dry-seal{display:inline-block;transform:rotate(-3deg);border:2px solid var(--i-dry);color:var(--i-dry);font-weight:800;border-radius:6px;padding:3px 10px;margin-top:10px}
.trust p{text-align:center;font-weight:800;font-size:1.15rem;margin:0}
.final-cta{text-align:center}
.final-cta .cta-row{justify-content:center}
@media(max-width:820px){.hero{grid-template-columns:1fr}}

.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;list-style:none;margin:0;padding:0}
.step-card,.feature-card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:26px}
.step-num{font-size:2rem;font-weight:900;color:var(--border)}
.features{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.feature-card svg{margin-bottom:10px;display:block}
.step-card svg{display:block}
.chip-row{display:flex;gap:6px 16px;flex-wrap:wrap}
.band-key{display:inline-flex;align-items:center;gap:6px;font-weight:800;font-size:.85rem}
.band-swatch{width:14px;height:14px;border-radius:4px;display:inline-block;border:1px solid rgba(39,37,36,.2)}
.step-card p:last-child,.feature-card p:last-child{margin-bottom:0}
@media(max-width:820px){.steps,.features{grid-template-columns:1fr}}

:focus-visible{outline:3px solid var(--coral);outline-offset:2px}

.calc{text-align:center;max-width:640px;margin:0 auto}
.calc-controls{display:grid;gap:22px;margin-bottom:32px;text-align:left}
.calc-field label{display:inline-block;color:var(--muted);font-weight:800;font-size:.95rem;margin-bottom:8px}
.calc-val{font-weight:900;margin-left:6px}
input[type=range]{accent-color:var(--coral)}
.calc-field input[type=range]{width:100%;display:block}
#calc-total{font-size:clamp(3rem,8vw,5rem);font-weight:900;line-height:1;letter-spacing:-0.03em}
.calc-cap{color:var(--muted);font-weight:800;margin:10px 0 28px}

.faq{max-width:760px;margin:0 auto}
.faq-item{border-top:1px solid var(--border)}
.faq-item:last-child{border-bottom:1px solid var(--border)}
.faq-q{all:unset;cursor:pointer;font-weight:800;padding:16px 0;display:block;width:100%}
.faq-q:focus-visible{outline:3px solid var(--coral);outline-offset:2px}
.faq-a{display:none;padding-bottom:16px;color:var(--muted)}
.faq-item.open .faq-a{display:block}

/* Day cells are a fixed 8px, so the 4 columns are capped and centred to keep
   the twelve months reading as one poster instead of drifting apart. */
.year-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;justify-items:center;
max-width:460px;margin:0 auto}
.mini-month{font-size:.8rem;font-weight:800}
.mini-name{margin-bottom:6px;color:var(--muted)}
.mini-days{display:grid;grid-template-columns:repeat(7,8px);gap:2px}
.mini-day{width:8px;height:8px;border-radius:2px;background:var(--fill,var(--border));
opacity:.15;transition:opacity .5s;transition-delay:var(--d,0s)}
.year-grid.lit .mini-day{opacity:1}
@media(max-width:820px){.year-grid{grid-template-columns:repeat(2,1fr)}}
@media(prefers-reduced-motion:reduce){.mini-day{transition:none;transition-delay:0s}}

/* Legal pages are long-form prose, so the 1080px container is narrowed to a
   readable measure and the display heading sizes are stepped down. */
.legal{max-width:700px;margin:0 auto}
.legal h1{font-size:clamp(2.1rem,5vw,2.9rem)}
.legal h2{font-size:1.35rem;margin:2.2em 0 .6em}
.legal ul{padding-left:1.15em;margin:0 0 1em}
.legal li{margin-bottom:.5em}
.legal .updated{color:var(--muted);font-weight:800}

/* Blog listing and article. Cards stay a single link target, so the whole
   tile is clickable rather than just the title. */
.blog-intro{color:var(--muted);max-width:60ch;margin-bottom:36px}
.blog-empty{color:var(--muted);font-weight:800}
.blog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px}
.blog-card{background:#fff;border:1px solid var(--border);border-radius:14px;overflow:hidden;
text-decoration:none;color:inherit;display:block;transition:box-shadow .18s,transform .18s}
.blog-card:hover{box-shadow:0 8px 24px rgba(39,37,36,.12);transform:translateY(-2px)}
.blog-card-hero{display:block;width:100%;aspect-ratio:600/315;object-fit:cover}
.blog-card-body{padding:22px}
.blog-card-body h2,.blog-card-body h3{font-size:1.3rem;margin:0 0 .4em}
.blog-card-meta{color:var(--muted);font-size:.85rem;font-weight:800;display:flex;gap:10px;
align-items:center;flex-wrap:wrap;margin:0 0 10px}
.blog-card-desc{color:var(--muted);font-size:.95rem}
.blog-card-more{color:var(--coral-deep);font-weight:800;margin:0}
.blog-tag{display:inline-block;background:var(--paper);color:var(--i-light);border-radius:5px;
padding:2px 10px;font-size:.75rem;font-weight:800;letter-spacing:.01em}
@media(prefers-reduced-motion:reduce){.blog-card{transition:none}.blog-card:hover{transform:none}}

.article-wrap{max-width:720px;margin:0 auto}
.article-wrap h1{font-size:clamp(2.1rem,5vw,3.1rem)}
.breadcrumb{color:var(--muted);font-size:.85rem;font-weight:800;margin-bottom:18px}
.breadcrumb a{color:var(--muted)}
.article-meta{color:var(--muted);font-size:.9rem;font-weight:800;display:flex;gap:10px;
align-items:center;flex-wrap:wrap;margin-bottom:28px}
.article-hero{display:block;width:100%;aspect-ratio:1200/630;object-fit:cover;
border-radius:14px;border:1px solid var(--border);margin-bottom:36px}
.article-body h2{font-size:1.6rem;margin:1.8em 0 .5em}
.article-body h3{font-size:1.25rem;margin:1.6em 0 .4em}
.article-body ul,.article-body ol{padding-left:1.15em;margin:0 0 1em}
.article-body li{margin-bottom:.5em}
.article-body img{border-radius:12px;border:1px solid var(--border)}
.article-body blockquote{margin:1.4em 0;padding:2px 0 2px 20px;border-left:4px solid var(--paper);
color:var(--muted);font-style:italic}
.article-body table{width:100%;border-collapse:collapse;margin:0 0 1.4em;font-size:.95rem}
.article-body th,.article-body td{border:1px solid var(--border);padding:10px 12px;text-align:left}
.article-body th{background:var(--paper);font-weight:800}
.article-table-wrap{overflow-x:auto}

.share-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;
border-top:1px solid var(--border);margin-top:44px;padding-top:22px}
.share-label{font-weight:800;color:var(--muted);font-size:.9rem}
.share-btn{font:inherit;font-size:.9rem;font-weight:800;background:#fff;color:var(--ink);
border:1px solid var(--border);border-radius:999px;padding:8px 18px;text-decoration:none;cursor:pointer}
.share-btn:hover{border-color:var(--muted)}

.related{margin-top:56px}
.related h2{font-size:1.5rem}
.post-cta{background:var(--paper);border-radius:16px;padding:36px;text-align:center;margin-top:56px}
.post-cta h2{font-size:1.8rem}
.post-cta p{color:var(--muted);max-width:46ch;margin:0 auto 22px}

/* Closing CTA inside a post fragment. An inline editorial callout, not a card:
   post.php already renders .post-cta below and that block owns the pill button.
   Keeping this one flat, left-ruled and text-linked is what stops the two from
   reading as the same card printed twice. */
.article-cta{border-left:4px solid var(--coral);padding:2px 0 2px 22px;margin:44px 0 0}
.article-cta h3{font-size:1.2rem;margin:0 0 .3em}
.article-cta p{color:var(--muted);max-width:56ch;margin:0 0 .5em}
.article-cta a{font-weight:800}

/* Multi-site v2. The palette stays close to the app, while each explicit site
   key receives a small accent shift so the domains are related, not cloned. */
body.theme-official{--coral:#3E6B35;--coral-deep:#31572B;--accent-soft:#E6EEDC}
body.theme-moderation{--coral:#DB513D;--coral-deep:#B8402F;--accent-soft:#FBE9E4}
body.theme-streaks{--coral:#58734A;--coral-deep:#3E5C35;--accent-soft:#E7EFDF}
html{scroll-behavior:smooth}
.skip-link{position:absolute;left:-9999px;top:8px;z-index:1000;background:var(--ink);color:#fff;padding:10px 14px;border-radius:8px}
.skip-link:focus{left:8px}
.site-header{border-bottom:1px solid var(--border);background:rgba(250,248,243,.96);position:sticky;top:0;z-index:20;backdrop-filter:blur(12px)}
.nav-links .btn-coral{color:#fff}
.eyebrow,.section-kicker{font-size:.76rem;line-height:1.2;letter-spacing:.13em;font-weight:900;color:var(--coral-deep);margin:0 0 14px}
.hero{min-height:650px;padding:76px 0 90px}
.hero h1{max-width:12ch;font-size:clamp(3rem,7vw,5.7rem)}
.hero-sub{font-size:1.2rem;max-width:48ch}
.store-note{font-size:.83rem;color:var(--muted);font-weight:700;margin-top:14px}
.text-link{font-weight:850;color:var(--coral-deep);text-decoration:none;border-bottom:2px solid currentColor;padding:4px 0}
.hero-visual{width:min(100%,430px);padding:75px 42px 40px;background:#fff;border:1px solid var(--border);border-radius:24px;box-shadow:0 20px 60px rgba(39,37,36,.1);transform:rotate(1.5deg)}
.hero-calendar-head{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;margin-bottom:12px}
.hero-calendar-overline{margin:0 0 3px;color:var(--muted);font-size:.57rem;line-height:1.1;letter-spacing:.12em;font-weight:900}
.hero-calendar-title{margin:0;font-size:1.08rem;line-height:1;font-weight:950;letter-spacing:-.02em}
.hero-calendar-score{flex:none;background:var(--accent-soft);color:var(--coral-deep);border-radius:999px;padding:6px 9px;font-size:.61rem;line-height:1;font-weight:950;letter-spacing:.04em}
.calendar-weekdays{display:grid;grid-template-columns:repeat(7,42px);gap:8px;margin-bottom:6px;text-align:center;color:var(--muted);font-size:.62rem;line-height:1;font-weight:900}
.hero-calendar{grid-template-columns:repeat(7,42px);gap:8px}
.tone-dry{--fill:var(--b-dry)}.tone-light{--fill:var(--b-light)}.tone-med{--fill:var(--b-med)}.tone-heavy{--fill:var(--b-heavy)}.tone-rough{--fill:var(--b-rough)}
.hero-calendar .tone-dry{color:var(--i-dry)}.hero-calendar .tone-light{color:var(--i-light)}
.hero-calendar .tone-med,.hero-calendar .tone-heavy,.hero-calendar .tone-rough{color:#fff}
.cal-future{background:#fff;color:#aaa;border-color:#cfcac4}.cal-spacer{visibility:hidden}
.stamp-stack{position:absolute;left:22px;right:22px;top:-24px;display:flex;justify-content:center;gap:8px}
.mini-stamp{width:58px;height:65px;background:var(--paper);border:2px dashed var(--i-light);border-radius:7px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:950;font-size:1.1rem;line-height:1;box-shadow:0 5px 16px rgba(39,37,36,.12)}
.mini-stamp strong{font:inherit}.mini-stamp small{margin-top:4px;font-size:.45rem;letter-spacing:.08em;text-transform:uppercase}
.stamp-a{transform:rotate(-8deg);background:#E6EEDC;color:var(--i-dry)}.stamp-b{transform:rotate(4deg);background:#FBF0C9;color:var(--i-light)}.stamp-c{transform:rotate(-3deg);background:#F6DEC9;color:var(--i-med)}.stamp-d{transform:rotate(8deg);background:#FBE4DF;color:var(--i-heavy)}
.trust{padding:18px 0;background:var(--ink);color:#fff}
.trust p{font-size:1rem;letter-spacing:.015em}
.paper-section{background:var(--paper)}
.section-title{max-width:780px;margin-left:auto;margin-right:auto}
.section-kicker{text-align:center}
.step-card,.feature-card{box-shadow:0 4px 0 rgba(39,37,36,.04)}
.step-card{position:relative;overflow:hidden}
.step-num{color:var(--coral);opacity:.35}
.feature-card{min-height:220px}
.feature-mark{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--accent-soft);color:var(--coral-deep);font-weight:900;margin-bottom:16px}
.guides-preview{background:#fff}
.section-head-row{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:32px}
.section-head-row .section-kicker{text-align:left}.section-head-row h2{margin:0}
.blog-card-art{height:150px;background:var(--accent-soft);display:grid;place-items:center;position:relative;overflow:hidden}
.blog-card-art::before,.blog-card-art::after{content:"";position:absolute;width:105px;height:105px;border:2px dashed var(--coral);border-radius:16px;transform:rotate(14deg);opacity:.28}
.blog-card-art::after{transform:translate(62px,38px) rotate(-8deg)}
.blog-card-art span{position:relative;z-index:1;background:#fff;border:1px solid var(--border);border-radius:999px;padding:7px 14px;font-weight:900;color:var(--coral-deep)}
.faq-layout{display:grid;grid-template-columns:.7fr 1.3fr;gap:70px;align-items:start}
.faq-layout .section-kicker{text-align:left}
.faq-q{display:flex;justify-content:space-between;align-items:center;text-align:left}
.faq-q span{font-size:1.35rem;color:var(--coral)}
.faq-a{display:block}.js .faq-a{display:none}.js .faq-item.open .faq-a{display:block}
.faq-a p{margin:0}
.final-band{background:var(--ink);color:#fff}
.final-cta p{max-width:55ch;margin:0 auto 24px;color:#dedad4}
.final-band .section-kicker{color:#D8C27E}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:48px}
.footer-grid h2{font-size:.84rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:12px;color:var(--ink)}
.footer-grid ul{list-style:none;margin:0;padding:0}.footer-grid li{margin-bottom:8px}.footer-grid a{color:var(--muted)}
.footer-wordmark{margin-bottom:14px}.footer-grid>div>p{max-width:38ch}
.footer-bottom{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--border);padding-top:20px;margin-top:30px}.footer-bottom p{margin:0}
.blog-hero{padding-bottom:42px}.narrow-intro{max-width:820px}.narrow-intro .section-kicker{text-align:left}.narrow-intro h1{font-size:clamp(2.7rem,6vw,5rem)}
.review-note{display:inline-block;background:var(--accent-soft);border-left:4px solid var(--coral);padding:10px 14px;color:var(--muted);font-size:.9rem}
.blog-list-section{padding-top:18px}.blog-empty{text-align:center;background:#fff;border:1px solid var(--border);border-radius:16px;padding:50px}
.blog-card-meta span{border-left:1px solid var(--border);padding-left:10px}
.article-section{padding-top:48px}.breadcrumb{display:flex;gap:8px;flex-wrap:wrap}
.article-wrap>.section-kicker{text-align:left}.article-dek{font-size:1.25rem;line-height:1.5;color:var(--muted);margin:0 0 20px}
.medical-boundary{background:var(--accent-soft);border-left:4px solid var(--coral);padding:14px 18px;margin:10px 0 36px;border-radius:0 8px 8px 0}
.article-lead{font-size:1.18rem;font-weight:650;line-height:1.6}
.article-callout{background:var(--paper);border-left:4px solid var(--coral);padding:20px 22px;margin:32px 0}.article-callout h3{font-size:1.1rem}.article-callout p{margin:0}
.safety-callout{background:#FBE9E4;border-color:var(--b-heavy)}
.article-faq{margin-top:42px}.article-sources{border-top:1px solid var(--border);margin-top:42px;padding-top:10px}.article-sources a{overflow-wrap:anywhere}
.not-found{text-align:center;min-height:60vh;display:grid;align-items:center}
@media(max-width:820px){
  html{scroll-behavior:auto}.site-header{position:static}.nav-links a:not(.nav-cta){display:none}.nav{justify-content:space-between;flex-wrap:nowrap}.nav .btn{font-size:.95rem;padding:9px 15px}
  .hero{min-height:0;padding:54px 0 68px}.hero-visual{margin-top:36px;padding:72px 25px 32px}.hero-calendar,.calendar-weekdays{grid-template-columns:repeat(7,34px)}
  .faq-layout,.footer-grid{grid-template-columns:1fr;gap:28px}.faq-layout .section-kicker{text-align:center}.faq-layout>div:first-child{text-align:center}
  .section-head-row,.footer-bottom{align-items:flex-start;flex-direction:column}
}
@media(max-width:430px){.hero-calendar,.calendar-weekdays{grid-template-columns:repeat(7,29px);gap:6px}.hero-calendar-title{font-size:.94rem}.hero-calendar-score{font-size:.54rem;padding:5px 7px}.mini-stamp{width:50px;height:56px}.hero-visual{padding-left:18px;padding-right:18px}.blog-grid{grid-template-columns:1fr}.section{padding:52px 0}}
