
/* Base palette = Primavera. The journey script blends --bg, --surface, --line
   and --accent through Verão, Outono and Inverno as the reader scrolls. */
:root{
  --bg:#f6f8f2;
  --surface:#eaf0e2;
  --line:#dae3d0;
  --accent:#44703f;
  --ink:#1f2b29;
  --muted:#5d6966;
  --faint:#b8c0bb;
  --accent-ink:#ffffff;
  --care:#8a3557;
  --care-bg:#f6e8ee;
  --glass:color-mix(in srgb,var(--bg) 74%,transparent);
  --sans:"Source Sans 3","Source Sans Pro","Segoe UI",Helvetica,Arial,sans-serif;
  --mono:var(--sans);
  --serif:"Newsreader",Georgia,"Times New Roman",serif;
  --max:1120px;
  --gutter:clamp(16px,4vw,32px);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --bg:#101512;--surface:#18211b;--line:#253028;--accent:#9dc795;
    --ink:#eef2ee;--muted:#9ba7a2;--faint:#3f4a44;--accent-ink:#101512;--care:#e7a0bf;--care-bg:#25171e;
  }
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#101512;--surface:#18211b;--line:#253028;--accent:#9dc795;
  --ink:#eef2ee;--muted:#9ba7a2;--faint:#3f4a44;--accent-ink:#101512;--care:#e7a0bf;--care-bg:#25171e;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit}
h1,h2,h3{text-wrap:balance;margin:0;letter-spacing:-.025em}
p{margin:0}
.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.serif{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.01em}

/* Nav */
.nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--glass);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;height:52px}
.brand{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:15px;text-decoration:none;letter-spacing:-.01em;white-space:nowrap}
.brand-tree{width:26px;height:26px;color:var(--accent);flex:none;margin-top:-3px}
.brand .bs{color:var(--muted);font-weight:400}
@media (max-width:420px){.brand .bs{display:none}}
.nav ul{display:flex;gap:28px;list-style:none;margin:0;padding:0;font-size:13px}
.nav ul a{text-decoration:none;color:var(--muted);transition:color .2s}
.nav ul a:hover{color:var(--ink)}
.btn{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:11px 22px;font-size:15px;font-weight:500;text-decoration:none;transition:transform .2s,opacity .2s;border:0;cursor:pointer;font-family:inherit}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--accent);color:var(--accent-ink)}
.btn-ghost{color:var(--accent);padding-inline:6px}
.btn-ghost::after{content:"›";font-size:20px;line-height:1}
.nav .btn{padding:6px 14px;font-size:13px}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}
@media (max-width:760px){.nav ul{display:none}}

/* Hero */
.hero{padding-block:clamp(72px,12vw,150px) clamp(56px,8vw,96px);text-align:center;overflow:hidden}
.hero-inner{will-change:transform,opacity}
.hero .eyebrow{margin-bottom:24px}
.hero h1{font-size:clamp(44px,8.4vw,104px);font-weight:600;line-height:1.02;letter-spacing:-.045em;max-width:14ch;margin-inline:auto}
.hero h1 .serif{font-weight:400;letter-spacing:-.02em}
.hero p.lede{font-size:clamp(19px,2.2vw,24px);color:var(--muted);max-width:34ch;margin:28px auto 0;line-height:1.4}
.hero .ctas{display:flex;gap:18px;justify-content:center;align-items:center;flex-wrap:wrap;margin-top:36px}

/* Seal / monogram band */
.band{padding-block:0 clamp(64px,9vw,120px)}
.seal{position:relative;border-radius:28px;background:var(--surface);aspect-ratio:21/9;max-width:100%;overflow:hidden;display:grid;place-items:center}
.seal canvas{position:absolute;inset:0;width:100%;height:100%}
.seal .mono{position:relative;font-family:var(--serif);font-style:italic;font-size:clamp(44px,9vw,120px);line-height:1;color:var(--ink);letter-spacing:-.02em;text-align:center;padding-inline:16px}
.seal .tag{position:absolute;left:24px;bottom:20px;font-family:var(--mono);font-size:12px;color:var(--muted);letter-spacing:.06em}
.seal .tag.r{left:auto;right:24px}
@media (max-width:600px){.seal{aspect-ratio:4/3}.seal .tag.r{display:none}}

/* Statement */
.statement{padding-block:clamp(64px,10vw,140px)}
.statement p{font-size:clamp(30px,4.6vw,56px);font-weight:600;line-height:1.12;letter-spacing:-.03em;max-width:22ch}
.statement .w{color:var(--faint);transition:color .35s ease}
.statement .w.on{color:var(--ink)}

/* Areas */
.areas{padding-block:clamp(64px,9vw,120px);border-top:1px solid var(--line)}
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap;margin-bottom:40px}
.sec-head h2{font-size:clamp(34px,5vw,56px);font-weight:600;line-height:1.05}
.sec-head p{color:var(--muted);max-width:40ch}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media (max-width:960px){.grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.grid{grid-template-columns:1fr}}
.card{background:var(--surface);border-radius:22px;padding:30px 28px 28px;display:flex;flex-direction:column;gap:14px;min-height:260px;transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.card:hover{transform:scale(1.015)}
.card .ref{font-family:var(--mono);font-size:12px;color:var(--accent);letter-spacing:.02em}
.card h3{font-size:26px;font-weight:600;line-height:1.1}
.card p{color:var(--muted);font-size:16px}
.card.feature{grid-column:span 2;background:var(--accent);color:var(--accent-ink)}
.card.feature p{color:color-mix(in srgb,var(--accent-ink) 82%,var(--accent))}
.card.feature .ref{color:color-mix(in srgb,var(--accent-ink) 70%,var(--accent))}
.card.feature h3{font-size:clamp(28px,3.4vw,40px)}
@media (max-width:600px){.card.feature{grid-column:auto}}

/* Process */
.process{padding-block:clamp(64px,9vw,120px);border-top:1px solid var(--line)}
.steps{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:clamp(32px,6vw,96px)}
.steps-sticky{position:sticky;top:120px;align-self:start}
.steps-sticky h2{font-size:clamp(34px,5vw,56px);font-weight:600;line-height:1.05}
.steps-sticky p{color:var(--muted);margin-top:18px;max-width:34ch}
.meter{margin-top:32px;height:2px;background:var(--line);border-radius:2px;overflow:hidden;max-width:260px}
.meter i{display:block;height:100%;width:0;background:var(--accent);transition:width .4s ease}
.step{padding-block:34px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:48px 1fr;gap:12px;opacity:.45;transition:opacity .4s}
.step.on{opacity:1}
.step:first-child{padding-top:0}
.step .n{font-family:var(--mono);font-size:13px;color:var(--accent);padding-top:6px}
.step h3{font-size:24px;font-weight:600;margin-bottom:8px}
.step p{color:var(--muted)}
@media (max-width:860px){.steps{grid-template-columns:1fr}.steps-sticky{position:static}.step{opacity:1}}

/* About */
.about{padding-block:clamp(64px,9vw,120px);border-top:1px solid var(--line)}
.about-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(32px,6vw,88px);align-items:center}
@media (max-width:860px){.about-grid{grid-template-columns:1fr}}
.portrait{aspect-ratio:4/5;max-width:100%;border-radius:24px;background:linear-gradient(160deg,var(--surface),color-mix(in srgb,var(--surface) 70%,var(--accent)));display:grid;place-items:center;position:relative;overflow:hidden}
.portrait span{font-family:var(--serif);font-style:italic;font-size:clamp(44px,6vw,72px);line-height:1.02;text-align:center;color:color-mix(in srgb,var(--ink) 80%,transparent)}
.portrait small{position:absolute;bottom:18px;left:20px;right:20px;font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.04em}
.about h2{font-size:clamp(34px,5vw,56px);font-weight:600;line-height:1.05;margin-block:14px 22px}
.about p{color:var(--muted);max-width:52ch}
.about p+p{margin-top:16px}
.facts{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.facts span{font-family:var(--mono);font-size:12px;border:1px solid var(--line);border-radius:999px;padding:7px 14px;color:var(--ink)}

/* FAQ */
.faq{padding-block:clamp(64px,9vw,120px);border-top:1px solid var(--line)}
.faq h2{font-size:clamp(34px,5vw,56px);font-weight:600;line-height:1.05;margin-bottom:36px}
details{border-bottom:1px solid var(--line)}
summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:24px;align-items:center;padding-block:24px;font-size:clamp(18px,2vw,22px);font-weight:500;letter-spacing:-.01em}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font-size:26px;font-weight:300;color:var(--accent);transition:transform .3s;flex:none}
details[open] summary::after{transform:rotate(45deg)}
details .a{padding-bottom:26px;color:var(--muted);max-width:66ch}
details .a code{font-family:var(--mono);font-size:.85em;color:var(--ink)}

/* Contact */
.contact{padding-block:clamp(64px,9vw,120px)}
.contact-box{background:var(--surface);border-radius:32px;padding:clamp(32px,6vw,72px);text-align:center}
.contact-box h2{font-size:clamp(36px,6vw,72px);font-weight:600;line-height:1.02;letter-spacing:-.04em}
.contact-box > p{color:var(--muted);margin:18px auto 0;max-width:44ch}
.channels{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:40px;text-align:left}
@media (max-width:760px){.channels{grid-template-columns:1fr}}
.channel{background:var(--bg);border-radius:18px;padding:20px 22px;display:flex;flex-direction:column;gap:6px}
.channel .eyebrow{font-size:11px}
.channel .v{font-weight:500;user-select:all;word-break:break-word}
.channel .acts{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:auto;padding-top:8px}
.channel .go{font-size:13px;color:var(--accent);text-decoration:none;font-weight:500}
.channel .go::after{content:" ›"}
.channel .go:hover{text-decoration:underline}
.channel button{background:none;border:1px solid var(--line);color:var(--ink);border-radius:999px;padding:5px 12px;font:inherit;font-size:12px;cursor:pointer}
.channel button:hover{border-color:var(--accent);color:var(--accent)}

footer{border-top:1px solid var(--line);padding-block:32px 48px;font-size:12px;color:var(--muted)}
footer .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
footer p{max-width:70ch}

/* Reveal: visible at rest, gently lifts in when enhanced */
.js .rv{transform:translateY(24px);opacity:.35;transition:transform .9s cubic-bezier(.2,.7,.2,1),opacity .9s ease}
.js .rv.in{transform:none;opacity:1}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .rv{transform:none;opacity:1;transition:none}
  .card,.btn,.statement .w,.step{transition:none}
}

/* Cross-links between the two practice pages */
.nav ul a.xl{color:var(--accent)}
.nav ul a[aria-current="page"]{color:var(--ink)}
.also{padding-block:0 clamp(56px,8vw,96px)}
.also a{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;text-decoration:none;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-block:26px}
.also .t{font-size:clamp(18px,2vw,22px);font-weight:500;letter-spacing:-.01em}
.also .t small{display:block;font-size:14px;color:var(--muted);font-weight:400;margin-top:4px;letter-spacing:0}
.also .go{color:var(--accent);font-size:15px;font-weight:500;white-space:nowrap}
.also a:hover .go{text-decoration:underline}

/* Journey (spiral timeline) */
.journey{padding-block:clamp(40px,6vw,80px) clamp(64px,9vw,120px);border-top:1px solid var(--line)}
.j-head{text-align:center;max-width:760px;margin:0 auto clamp(24px,4vw,48px)}
.j-head h2{font-size:clamp(34px,5vw,58px);font-weight:600;line-height:1.05;margin-top:14px}
.j-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(24px,5vw,80px)}
.j-visual{position:sticky;top:calc(env(safe-area-inset-top,0px) + 72px);align-self:start;height:calc(100vh - 110px);max-height:720px;display:flex;flex-direction:column;justify-content:center;gap:10px}
#spiral{width:100%;height:auto;max-height:calc(100% - 30px);overflow:visible}
#rings path{stroke:var(--accent);stroke-width:1;opacity:.1;fill:none}
#track{stroke:var(--line);stroke-width:2}
#trail{stroke:var(--accent);stroke-width:3.5;stroke-linecap:round}
#dot{fill:var(--accent);filter:drop-shadow(0 0 10px color-mix(in srgb,var(--accent) 55%,transparent))}
.mk circle{fill:var(--bg);stroke:var(--faint);stroke-width:2}
.mk text{paint-order:stroke;stroke:var(--bg);stroke-width:7px;stroke-linejoin:round;font-family:var(--sans);font-size:19px;font-weight:500;fill:var(--muted);transition:fill .3s}
.mk text.n{font-family:var(--mono);font-size:12px;font-weight:400;letter-spacing:.06em}
.mk.on circle{fill:var(--accent);stroke:var(--accent)}
.mk.on text{fill:var(--ink)}
.mk.cur text:not(.n){font-weight:700}
.j-now{text-align:center;font-size:14px;color:var(--muted);font-family:var(--mono);letter-spacing:.02em}
.j-now strong{color:var(--ink);font-family:var(--sans);font-weight:600;letter-spacing:-.01em}
.j-stations{display:flex;flex-direction:column;gap:clamp(96px,16vh,180px);padding-block:12vh 22vh}
.station{opacity:.4;transition:opacity .35s ease}
.station.on{opacity:1}
.station .kicker{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.station h3{font-size:clamp(30px,3.6vw,44px);font-weight:600;line-height:1.06;margin-block:12px 16px}
.station .intro{color:var(--muted);font-size:18px;max-width:46ch}
.station .items{list-style:none;margin:28px 0 0;padding:0;display:flex;flex-direction:column}
.station .items li{border-top:1px solid var(--line);padding-block:18px}
.station .ih{display:flex;justify-content:space-between;align-items:baseline;gap:6px 16px;flex-wrap:wrap;margin-bottom:6px}
.station .ih strong{font-size:18px;font-weight:600;letter-spacing:-.01em}
.station .ref{font-family:var(--mono);font-size:11.5px;color:var(--accent);white-space:nowrap}
.station .items p{color:var(--muted);font-size:15.5px;max-width:58ch}
.station .sub{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:32px}
.station .sub+.items{margin-top:12px}
.fork{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:28px}
.fork .path{background:var(--surface);border-radius:20px;padding:22px;display:flex;flex-direction:column;gap:8px}
.fork .path h4{margin:0;font-size:20px;font-weight:600;letter-spacing:-.015em}
.fork .path p{color:var(--muted);font-size:15px}
.fork .path .ref{margin-top:auto;padding-top:6px}
.fork .pill{align-self:flex-start;font-family:var(--mono);font-size:11px;letter-spacing:.04em;border:1px solid var(--line);border-radius:999px;padding:4px 10px;color:var(--muted)}
.fork .care{background:var(--care-bg)}
.fork .care .pill{color:var(--care);border-color:color-mix(in srgb,var(--care) 40%,transparent)}
.fork .sos{font-size:14px!important;color:var(--care)!important}
.station .coda{margin-top:32px;font-family:var(--serif);font-style:italic;font-size:clamp(22px,2.6vw,30px);line-height:1.25;color:var(--ink);max-width:30ch}
@media (max-width:860px){
  .j-grid{grid-template-columns:1fr;gap:0}
  .j-visual{top:calc(env(safe-area-inset-top,0px) + 52px);height:auto;max-height:none;z-index:5;background:var(--bg);padding-block:8px 10px;border-bottom:1px solid var(--line);margin-inline:calc(var(--gutter) * -1);padding-inline:var(--gutter)}
  #spiral{max-height:22vh}
  .mk text{display:none}
  .j-stations{padding-block:32px 12vh;gap:72px}
  .fork{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){.station,.mk circle,.mk text{transition:none}}

/* About: CV list and photo */
.portrait img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.cv{margin:28px 0 0;display:flex;flex-direction:column}
.cv div{border-top:1px solid var(--line);padding-block:14px;display:grid;grid-template-columns:minmax(0,190px) minmax(0,1fr);gap:4px 20px}
.cv dt{font-weight:600;font-size:15px}
.cv dd{margin:0;color:var(--muted);font-size:15px}
@media (max-width:600px){.cv div{grid-template-columns:1fr}}
.contact-box .hours{font-family:var(--mono);font-size:13px;color:var(--muted);margin-top:14px}
footer a{color:var(--muted)}

/* Season label under the spiral */
.j-now{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}
.j-now .tree{width:44px;height:44px;flex:none}
.tree,.kt{color:var(--accent);fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;overflow:visible}
.sprite .f{fill:currentColor;fill-opacity:.2}
.kicker{display:flex;align-items:center;gap:10px}
.kicker .kt{width:26px;height:26px;flex:none;margin-top:-4px}
@media (max-width:860px){.j-now .tree{width:34px;height:34px}}

/* Deep links to each stage clear the sticky header */
.station{scroll-margin-top:90px}
@media (max-width:860px){.station{scroll-margin-top:calc(52px + 22vh + 70px)}}

/* Cookie consent (only shown once analytics IDs are configured) */
.consent{position:fixed;left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:50;max-width:560px;margin-inline:auto;background:var(--bg);border:1px solid var(--line);border-radius:18px;padding:18px 20px;box-shadow:0 10px 40px rgba(0,0,0,.12);display:flex;flex-direction:column;gap:12px;font-size:14px}
.consent p{color:var(--muted)}
.consent .row{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.consent button{font:inherit;font-size:14px;border-radius:999px;padding:8px 16px;cursor:pointer;border:1px solid var(--line);background:none;color:var(--ink)}
.consent button.ok{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}

/* Articles page */
.hero-sm{padding-block:clamp(56px,9vw,110px) clamp(32px,5vw,56px)}
.hero-sm h1{font-size:clamp(40px,6.4vw,80px);max-width:16ch}
.posts{padding-block:0 clamp(64px,9vw,120px)}
.chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:36px}
.chip{font:inherit;font-size:14px;border:1px solid var(--line);background:none;color:var(--muted);border-radius:999px;padding:8px 16px;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.chip:hover{color:var(--ink);border-color:var(--faint)}
.chip.on{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.post-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
@media (max-width:960px){.post-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.post-grid{grid-template-columns:1fr}}
.post{--pc:var(--accent);--ps:var(--surface);background:var(--ps);border-radius:22px;padding:26px 24px 22px;display:flex;flex-direction:column;gap:10px;text-decoration:none;transition:transform .35s cubic-bezier(.2,.7,.2,1)}
a.post:hover,.post:not(.open):hover{transform:translateY(-3px)}
.post-link{display:flex;flex-direction:column;gap:10px;flex:1;text-decoration:none;color:inherit;cursor:pointer}
.post .m-close{display:none}
.post.open{grid-column:1/-1;padding:clamp(28px,4vw,48px);scroll-margin-top:72px}
.post.open .post-link{flex:none}
.post.open h3{font-size:clamp(28px,3.6vw,40px);line-height:1.08;max-width:24ch}
.post.open .post-sum{font-size:clamp(18px,2vw,21px);max-width:60ch}
.post.open .m-open{display:none}
.post.open .m-close{display:inline}
.post-full{max-width:68ch;font-size:17px;line-height:1.7;border-top:1px solid color-mix(in srgb,var(--pc) 22%,transparent);margin-top:14px;padding-top:6px;animation:pf-in .5s ease both}
@keyframes pf-in{from{opacity:.001;transform:translateY(8px)}to{opacity:1;transform:none}}
.post-full h4{font-size:21px;font-weight:600;letter-spacing:-.015em;margin:30px 0 8px}
.post .post-full p{color:var(--ink);font-size:17px;margin-block:12px}
.post .post-full .a-note{color:var(--muted);font-size:14px}
.post-full ul{padding-left:1.1em;margin-block:12px}
.post-full li{margin-block:7px}
.post-full li::marker{color:var(--pc)}
.pf-refs{background:color-mix(in srgb,var(--bg) 55%,transparent);border-radius:14px;padding:16px 18px;margin-top:28px}
.pf-refs ul{margin:8px 0 0;font-family:var(--mono);font-size:12.5px;line-height:1.7}
.pf-actions{display:flex;flex-wrap:wrap;gap:6px 22px;align-items:center;margin-top:18px}
.pf-actions .btn{padding-inline:0;color:var(--pc)}
.pf-close{margin-left:auto;font:inherit;font-size:14px;border:1px solid color-mix(in srgb,var(--pc) 35%,transparent);background:none;color:var(--ink);border-radius:999px;padding:7px 16px;cursor:pointer}
@media (prefers-reduced-motion:reduce){.post-full{animation:none}}
.post h3{font-size:21px;font-weight:600;line-height:1.2;letter-spacing:-.015em}
.post p{color:var(--muted);font-size:15px}
.post .more,.video .more{margin-top:auto;padding-top:8px;color:var(--pc,var(--accent));font-size:14px;font-weight:500}
.post-k{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--pc,var(--accent))}
.post-k .kt{width:22px;height:22px;margin-top:-3px;color:var(--pc)}
.s-spring{--pc:#44703f;--ps:#eaf0e2}
.s-summer{--pc:#8a5f0f;--ps:#f3e9d0}
.s-autumn{--pc:#9c4a2a;--ps:#f2e1d4}
.s-winter{--pc:#3d6283;--ps:#e2e9ef}
.s-civil{--pc:var(--ink);--ps:var(--surface)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .s-spring{--pc:#9dc795;--ps:#18211b}:root:not([data-theme="light"]) .s-summer{--pc:#e2bb63;--ps:#211d12}:root:not([data-theme="light"]) .s-autumn{--pc:#e69c7a;--ps:#231915}:root:not([data-theme="light"]) .s-winter{--pc:#9ebcd8;--ps:#172029}}
:root[data-theme="dark"] .s-spring{--pc:#9dc795;--ps:#18211b}:root[data-theme="dark"] .s-summer{--pc:#e2bb63;--ps:#211d12}:root[data-theme="dark"] .s-autumn{--pc:#e69c7a;--ps:#231915}:root[data-theme="dark"] .s-winter{--pc:#9ebcd8;--ps:#172029}
.videos{padding-block:clamp(64px,9vw,120px);border-top:1px solid var(--line)}
.video-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
@media (max-width:700px){.video-grid{grid-template-columns:1fr}}
.video{position:relative;display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:center;background:var(--surface);border-radius:22px;padding:22px;text-decoration:none;overflow:hidden}
.video .thumb{grid-column:1/-1;position:relative;border-radius:14px;overflow:hidden;aspect-ratio:16/9}
.video .thumb img{width:100%;height:100%;object-fit:cover;display:block}
.video .thumb .play{position:absolute;inset:0;margin:auto}
.play{width:52px;height:52px;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;flex:none}
.play svg{width:26px;height:26px}
.v-meta{display:flex;flex-direction:column;gap:6px}
.v-meta strong{font-size:18px;font-weight:600;letter-spacing:-.01em}

/* Article pages take the palette of their season */
html.season-summer{--bg:#fbf6e9;--surface:#f3e9d0;--line:#e8dcbd;--accent:#8a5f0f}
html.season-autumn{--bg:#faf1ea;--surface:#f2e1d4;--line:#e7d1c1;--accent:#9c4a2a}
html.season-winter{--bg:#f2f5f8;--surface:#e2e9ef;--line:#d3dde6;--accent:#3d6283}
@media (prefers-color-scheme:dark){
  html.season-summer:not([data-theme="light"]){--bg:#15130d;--surface:#211d12;--line:#322b19;--accent:#e2bb63}
  html.season-autumn:not([data-theme="light"]){--bg:#161110;--surface:#231915;--line:#35251e;--accent:#e69c7a}
  html.season-winter:not([data-theme="light"]){--bg:#0e1216;--surface:#172029;--line:#23303c;--accent:#9ebcd8}
}
html.season-summer[data-theme="dark"]{--bg:#15130d;--surface:#211d12;--line:#322b19;--accent:#e2bb63}
html.season-autumn[data-theme="dark"]{--bg:#161110;--surface:#231915;--line:#35251e;--accent:#e69c7a}
html.season-winter[data-theme="dark"]{--bg:#0e1216;--surface:#172029;--line:#23303c;--accent:#9ebcd8}
.article{padding-block:clamp(32px,5vw,56px) clamp(48px,7vw,80px)}
.article .wrap{max-width:760px}
.crumb{font-size:14px;color:var(--accent);text-decoration:none}
.crumb:hover{text-decoration:underline}
.a-head{margin-block:28px 36px}
.a-head .kicker{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:0}
.a-head .kicker .kt{width:26px;height:26px;margin-top:-4px}
.a-head h1{font-size:clamp(34px,5.2vw,56px);font-weight:600;line-height:1.06;margin-block:14px 18px}
.a-lede{font-size:clamp(19px,2.2vw,22px);color:var(--muted);line-height:1.45}
.a-meta{font-family:var(--mono);font-size:12px;color:var(--muted);margin-top:18px;letter-spacing:.02em}
.a-body{font-size:18px;line-height:1.7;border-top:1px solid var(--line);padding-top:12px}
.a-body h2{font-size:24px;font-weight:600;letter-spacing:-.015em;margin-block:36px 10px}
.a-body p{margin-block:14px}
.a-body ul{padding-left:1.1em;margin-block:14px}
.a-body li{margin-block:8px}
.a-body li::marker{color:var(--accent)}
.a-refs{background:var(--surface);border-radius:18px;padding:22px 24px;margin-top:40px}
.a-refs ul{margin:10px 0 0;padding-left:1.1em;font-family:var(--mono);font-size:13px;line-height:1.7}
.a-note{font-size:14px;color:var(--muted);margin-top:20px}
.a-back{margin-top:24px}
.a-back .btn{padding-inline:0}
.related{padding-block:clamp(48px,7vw,88px);border-top:1px solid var(--line)}
.related h2{font-size:clamp(28px,3.6vw,40px);font-weight:600;margin-bottom:28px}
.related .post h3{font-size:19px}

/* Typography: Newsreader for headings, Source Sans 3 for text and labels */
body{font-size:18px;line-height:1.6}
:root :is(h1,h2,h3,h4),:root .statement p,:root .contact-box h2{font-family:var(--serif);font-weight:500;letter-spacing:-.012em;font-optical-sizing:auto}
:root .hero h1{font-weight:500;letter-spacing:-.02em;line-height:1.02}
:root .hero h1 .serif,:root :is(h1,h2) .serif{font-style:italic;font-weight:400;letter-spacing:-.01em}
:root .station h3,:root .a-head h1,:root .post.open h3{letter-spacing:-.015em}
:root .card h3,:root .post h3,:root .step h3,:root .fork .path h4,:root .station .ih strong{font-weight:500}
.station .ih strong{font-family:var(--serif);font-size:19px}
/* Labels that were monospace: small caps of the text face */
.eyebrow,.station .kicker,.a-head .kicker,.post-k,.card .ref,.station .ref,.j-now,.a-meta,.step .n,.fork .pill,.seal .tag,.facts span,.channel .eyebrow,.station .sub,.consent{font-family:var(--sans)}
.eyebrow,.station .kicker,.a-head .kicker,.post-k,.station .sub,.channel .eyebrow{font-weight:600;letter-spacing:.1em;font-size:12px}
.card .ref,.station .ref,.fork .ref{font-size:13px;font-weight:600;letter-spacing:.02em}
.a-refs ul,.pf-refs ul,details .a code{font-family:var(--sans);font-size:14.5px}
.j-now{font-size:15px}
.step .n{font-weight:600;font-size:14px;font-variant-numeric:tabular-nums}
.brand .bn{font-family:var(--serif);font-weight:500;font-size:18px;letter-spacing:-.01em}
.brand .bs{font-size:13px;letter-spacing:.08em;text-transform:uppercase;font-weight:600}
.btn{font-weight:600}
.mk text{font-family:var(--sans)}
.mk text:not(.n){font-family:var(--serif);font-weight:500;font-size:21px}
.statement p{font-weight:400}

/* Floating WhatsApp button */
.wa-float{position:fixed;right:calc(20px + env(safe-area-inset-right,0px));bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:40;display:inline-flex;align-items:center;gap:8px;padding:12px 18px 12px 14px;border-radius:999px;background:var(--accent);color:var(--accent-ink);text-decoration:none;font-family:var(--sans);font-weight:600;font-size:15px;box-shadow:0 8px 28px rgba(0,0,0,.16);transition:transform .3s ease,opacity .3s ease}
.wa-float svg{width:22px;height:22px}
.wa-float:hover{transform:translateY(-2px)}
.wa-float.away{opacity:0;transform:translateY(12px);pointer-events:none}
@media (max-width:480px){.wa-float{padding:14px}.wa-float span{display:none}}
@media (prefers-reduced-motion:reduce){.wa-float{transition:none}}

/* About without a photo: the text takes the full row */
.about-grid.no-photo{grid-template-columns:1fr}
.about-grid.no-photo > div{max-width:780px}
.portrait{background:var(--surface)}
