/* Swell Active (sav2) — Journal index + single post. Ported from the Claude Design source. */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .85s var(--ease-out),transform .85s var(--ease-out);}
.reveal.in{opacity:1;transform:none;}

/* Journal index */
.chip{font-family:'Outfit',sans-serif;font-size:12px;font-weight:500;letter-spacing:0.08em;text-transform:uppercase;color:#214A63;background:transparent;border:1px solid rgba(14,42,58,0.2);border-radius:100px;padding:9px 20px;cursor:pointer;transition:background .3s,color .3s,border-color .3s;white-space:nowrap;text-decoration:none;display:inline-block;}
.chip:hover{border-color:#1B7878;color:#0E2A3A;}
.chip.on{background:#0E2A3A;border-color:#0E2A3A;color:#FAF6EE;}
.pcard{display:flex;flex-direction:column;text-decoration:none;color:inherit;}
.pcard .pcimg{overflow:hidden;border-radius:14px;box-shadow:0 16px 40px rgba(14,42,58,0.12);}
.pcard .pcimg img{transition:transform .8s var(--ease-out);}
.pcard:hover .pcimg img{transform:scale(1.055);}
.pcard:hover h3{color:#1B7878;}
.pcard h3{transition:color .3s;}
.feat:hover .featimg img{transform:scale(1.04);}
.featimg img{transition:transform .9s var(--ease-out);}
.arlink{display:inline-flex;align-items:center;gap:10px;font-family:'Outfit',sans-serif;font-weight:600;font-size:12.5px;letter-spacing:0.08em;text-transform:uppercase;color:#1B7878;}
.arlink .ar{display:inline-block;transition:transform .35s var(--ease-out);}
.arlink:hover{color:#0E2A3A;}
.arlink:hover .ar{transform:translateX(5px);}
.jgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(30px,3.4vw,56px) clamp(24px,2.6vw,40px);}
.feat{display:grid;grid-template-columns:1.15fr 0.85fr;gap:clamp(30px,4vw,72px);align-items:center;}
.m-foot{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:clamp(30px,4vw,60px);}
@media (max-width:960px){ .jgrid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:760px){
  .navgroup{display:none !important;}
  .jgrid{grid-template-columns:1fr !important;}
  .feat{grid-template-columns:1fr !important;}
  .m-foot{grid-template-columns:1fr 1fr !important;gap:30px 24px !important;}
  .chiprow{flex-wrap:nowrap !important;overflow-x:auto !important;}
  .metarow{flex-direction:column !important;align-items:flex-start !important;gap:18px !important;}
  .rel{grid-template-columns:1fr !important;}
  .navtoggle{display:inline-flex;flex-direction:column;gap:5px;background:transparent;border:0;cursor:pointer;padding:6px;}
  .navtoggle span{display:block;width:24px;height:2px;background:currentColor;transition:transform .3s,opacity .3s;}
  .mobilemenu{flex-direction:column;gap:8px;padding:16px clamp(22px,4vw,64px) 24px;}
  .mobilemenu.open{display:flex;}
}

/* Single post */
.rprog{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,#2FA8A8,#1B7878);z-index:120;transition:width .1s linear;}
.prose p{font-family:'Hanken Grotesk',sans-serif;font-weight:300;font-size:clamp(1.12rem,1.35vw,1.32rem);line-height:1.8;color:#20384a;margin:0 0 clamp(22px,2.4vw,30px);text-wrap:pretty;}
.prose > p:first-of-type::first-letter{font-family:'Marcellus',serif;float:left;font-size:clamp(3.4rem,6vw,5rem);line-height:0.72;padding:8px 14px 0 0;color:#1B7878;}
.prose h2{font-family:'Outfit',sans-serif;font-weight:300;font-size:clamp(1.6rem,2.6vw,2.3rem);line-height:1.15;letter-spacing:-0.015em;color:#0E2A3A;margin:clamp(44px,5vw,68px) 0 clamp(16px,1.6vw,22px);}
.prose h3{font-family:'Outfit',sans-serif;font-weight:400;font-size:clamp(1.35rem,2vw,1.8rem);line-height:1.2;letter-spacing:-0.01em;color:#0E2A3A;margin:clamp(32px,4vw,48px) 0 clamp(14px,1.4vw,18px);}
.prose ul,.prose ol{margin:0 0 clamp(22px,2.4vw,30px);padding:0;list-style:none;}
.prose li{position:relative;font-family:'Hanken Grotesk',sans-serif;font-weight:300;font-size:clamp(1.05rem,1.25vw,1.2rem);line-height:1.7;color:#20384a;padding:0 0 12px 30px;}
.prose li::before{content:"";position:absolute;left:4px;top:12px;width:8px;height:8px;border-radius:50%;background:#2FA8A8;}
.prose a{color:#1B7878;background-image:linear-gradient(rgba(47,168,168,0.5),rgba(47,168,168,0.5));background-repeat:no-repeat;background-position:0 92%;background-size:100% 2px;transition:background-size .3s;}
.prose a:hover{color:#0E2A3A;background-size:100% 100%;}
.prose blockquote{margin:clamp(40px,5vw,64px) 0;padding:0 0 0 clamp(22px,3vw,40px);border-left:3px solid #2FA8A8;}
.prose blockquote p{font-family:'Marcellus',serif;font-weight:400;font-size:clamp(1.5rem,2.6vw,2.3rem);line-height:1.3;color:#0E2A3A;margin:0;}
.prose img{border-radius:14px;margin:clamp(30px,4vw,44px) 0;box-shadow:0 20px 44px rgba(14,42,58,0.14);}
.rel{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,2.6vw,44px);}
.rcard .rcimg img{transition:transform .8s var(--ease-out);}
.rcard:hover .rcimg img{transform:scale(1.055);}
.rcard:hover h3{color:#1B7878;}
.rcard h3{transition:color .3s;}

/* Table of contents (single post) — server-rendered, scoped under .sav2-toc.
   Lives outside .prose so the prose list/link rules never bleed in. */
.prose h2,.prose h3{scroll-margin-top:96px;}
.sav2-toc{background:var(--sand);border:1px solid var(--rule);border-radius:16px;padding:clamp(22px,2.6vw,30px) clamp(24px,3vw,36px);}
.sav2-toc__label{font-family:'Outfit',sans-serif;font-size:11px;font-weight:600;letter-spacing:0.2em;text-transform:uppercase;color:var(--teal-deep);margin-bottom:clamp(14px,1.6vw,20px);}
.sav2-toc ol{list-style:none;margin:0;padding:0;}
.sav2-toc__list{counter-reset:sav2sec;}
.sav2-toc__list>li{counter-increment:sav2sec;margin:0 0 11px;}
.sav2-toc__sub{counter-reset:sav2sub;margin:9px 0 4px;padding-left:1.6em;}
.sav2-toc__sub>li{counter-increment:sav2sub;margin:0 0 8px;}
.sav2-toc a{display:inline-flex;gap:9px;font-family:'Outfit',sans-serif;font-weight:400;font-size:14.5px;line-height:1.35;color:var(--ocean-mid);text-decoration:none;transition:color .25s;text-wrap:pretty;}
.sav2-toc a:hover,.sav2-toc a:focus-visible{color:var(--teal-deep);}
.sav2-toc__list>li>a::before{content:counter(sav2sec) ".";flex-shrink:0;min-width:1.5em;font-variant-numeric:tabular-nums;color:var(--teal-deep);font-weight:500;}
.sav2-toc__sub>li>a{font-size:13.5px;color:#3a5568;}
.sav2-toc__sub>li>a::before{content:counter(sav2sec) "." counter(sav2sub);flex-shrink:0;min-width:2.1em;font-variant-numeric:tabular-nums;color:var(--teal);font-weight:500;}
