/* Skein site: one stylesheet for every page.
   Look (the Skein brand board, 2026-10-24): sand ground, charcoal ink, slate secondary text, indigo accent, lavender
   tints. The mark is an infinity of fine interwoven threads in one colour. Suisse Int'l is the brand face; the site
   uses Inter Tight and Inter as free stand-ins. --forest keeps its old name because every page uses it; it holds the
   indigo accent, and --forest-ink the darker indigo used for small accent text. Spec: company-wiki/marketing/brand.md */
:root:root:root{
  --ground:#F7F6F2;
  --panel:#EFEDE6;
  --card:#FFFFFF;
  --ink:#0F1720;
  --muted:#636A77;
  --hair:#E4E2DA;
  --forest:#6366F1;
  --forest-ink:#4F46E5;
  --pen:#6B7280;
  --os-tint:#EDEBFF;
  --hl:#DEDBFF;
  --accent-light:#A5A7F7;
  --tag-pain:#B5581A;
  --r-bg:#F7F6F3; --r-surface:#FFFFFF; --r-ink:#1D2433; --r-muted:#5F6878; --r-line:#E0E2E6; --r-accent:#B4532A; --r-accent-ink:#FFFFFF;
  --r-tint:#F6ECE6; --r-good:#23764A; --r-good-bg:#E4F2EA; --r-warn:#8A5C00; --r-warn-bg:#FBF1D9; --r-bad:#B3261E; --r-bad-bg:#FBE9E7;
  --sans:"Inter Tight","Inter",-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;
  --serif:"Inter",-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  color-scheme:light;
}
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--serif);-webkit-font-smoothing:antialiased;}
h1,h2,h3{font-family:var(--sans);font-weight:600;letter-spacing:-.03em;}
::selection{background:var(--hl);}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--ground);}

/* ---------- shared header ---------- */
.g-head{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:rgba(247,246,242,.86);-webkit-backdrop-filter:saturate(160%) blur(12px);backdrop-filter:saturate(160%) blur(12px);border-bottom:1px solid var(--hair);}
.g-head-in{max-width:76rem;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:.7rem;display:flex;align-items:center;gap:1.4rem;}
.g-logo{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--sans);font-weight:500;font-size:1.36rem;letter-spacing:-.03em;line-height:1;color:var(--ink);text-decoration:none;flex:none;}
.g-logo small{position:relative;top:-.72em;margin-left:.16em;font-family:var(--sans);font-weight:400;font-size:.44em;letter-spacing:0;color:inherit;}
.g-mark{width:2.9rem;height:1.28rem;flex:none;overflow:visible;}
.g-mark path{fill:none;stroke:currentColor;stroke-width:1.25;stroke-linejoin:round;vector-effect:non-scaling-stroke;}
.g-nav{display:flex;align-items:center;gap:.2rem;flex:1;}
.g-nav > a,.g-dd > summary{font-family:var(--sans);font-size:.95rem;font-weight:500;color:var(--ink);text-decoration:none;padding:.5rem .75rem;border-radius:8px;cursor:pointer;list-style:none;display:flex;align-items:center;gap:.35rem;}
.g-dd > summary::-webkit-details-marker{display:none;}
.g-dd > summary::after{content:"";width:.42rem;height:.42rem;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .15s ease;}
.g-dd[open] > summary::after{transform:rotate(-135deg) translate(-1px,-1px);}
.g-nav > a:hover,.g-dd > summary:hover{background:var(--panel);}
.g-nav > a[aria-current="page"],.g-dd.is-current > summary{color:var(--forest);}
.g-dd{position:relative;}
.g-menu{position:absolute;top:calc(100% + .5rem);left:-1rem;width:min(40rem,calc(100vw - 32px));background:var(--card);border:1px solid var(--hair);border-radius:16px;box-shadow:0 24px 48px -24px rgba(12,4,7,.28);padding:.6rem;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:.4rem;}
.g-menu.is-one{width:min(24rem,calc(100vw - 32px));grid-template-columns:1fr;}
.g-mcol{display:flex;flex-direction:column;gap:.1rem;min-width:0;}
.g-mcol + .g-mcol{border-left:1px solid var(--hair);padding-left:.4rem;}
.g-mk{margin:.55rem .85rem .25rem;font-family:var(--sans);font-weight:600;font-size:.74rem;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);}
.g-menu a{display:flex;flex-direction:column;gap:.15rem;padding:.7rem .85rem;border-radius:10px;text-decoration:none;color:var(--ink);}
.g-menu a:hover{background:var(--panel);}
.g-menu a b{font-family:var(--sans);font-weight:600;font-size:.98rem;letter-spacing:-.01em;}
.g-menu a span{font-size:.86rem;color:var(--muted);line-height:1.4;}
.g-menu a[aria-current="page"]{background:var(--panel);}
.g-menu a[aria-current="page"] b{color:var(--forest);}
@media (max-width:1100px){.g-dd:last-of-type .g-menu{left:auto;right:-1rem;}}
.g-cta{margin-left:auto;flex:none;}
.g-burger{display:none;margin-left:auto;}
.g-burger > summary{list-style:none;cursor:pointer;font-family:var(--sans);font-weight:600;font-size:.92rem;padding:.5rem .9rem;border:1px solid var(--hair);border-radius:99px;}
.g-burger > summary::-webkit-details-marker{display:none;}
.g-burger-panel{position:absolute;left:0;right:0;top:100%;background:var(--card);border-bottom:1px solid var(--hair);padding:.6rem max(16px,env(safe-area-inset-left,0px)) 1.2rem;display:flex;flex-direction:column;gap:.1rem;box-shadow:0 24px 40px -24px rgba(12,4,7,.3);max-height:calc(100dvh - 4rem);overflow:auto;}
.g-burger-k{margin:1rem .4rem .2rem;font-family:var(--sans);font-weight:600;font-size:.74rem;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);}
.g-burger-k.is-sub{margin:.7rem 1.2rem .1rem;font-size:.68rem;}
.g-burger-panel a{padding:.7rem .4rem;border-bottom:1px solid var(--hair);text-decoration:none;color:var(--ink);font-family:var(--sans);font-weight:500;font-size:1.02rem;}
.g-burger-panel a.is-sub{padding-left:1.2rem;font-size:.96rem;color:var(--muted);}
.g-burger-panel a[aria-current="page"]{color:var(--forest);font-weight:600;}
.g-burger-panel a.g-btn{margin-top:1rem;text-align:center;color:var(--ground);border-bottom:1px solid var(--ink);padding:.8rem 1.3rem;}
@media (max-width:900px){.g-nav,.g-cta{display:none;}.g-burger{display:block;}}

/* ---------- buttons and links ---------- */
.g-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:var(--sans);font-weight:600;font-size:.95rem;letter-spacing:-.01em;text-decoration:none;cursor:pointer;background:var(--ink);color:var(--ground);border:1px solid var(--ink);border-radius:99px;padding:.75rem 1.3rem;transition:transform .15s ease,opacity .15s ease;}
.g-btn:hover{transform:translateY(-1px);opacity:.9;}
.g-btn.is-ghost{background:transparent;color:var(--ink);border-color:var(--hair);}
.g-btn.is-light{background:var(--ground);color:var(--ink);border-color:var(--ground);}
.g-link{font-family:var(--sans);font-weight:600;font-size:.95rem;color:var(--ink);text-decoration:none;display:inline-flex;align-items:center;gap:.4rem;border-bottom:1.5px solid var(--hair);padding-bottom:2px;}
.g-link::after{content:"\2192";transition:transform .15s ease;}
.g-link:hover{border-color:var(--forest);}
.g-link:hover::after{transform:translateX(3px);}
.g-btn:focus-visible,.g-link:focus-visible,.g-nav a:focus-visible,.g-dd summary:focus-visible,.g-burger summary:focus-visible,.g-menu a:focus-visible,.g-faq summary:focus-visible{outline:2px solid var(--pen);outline-offset:3px;}

/* ---------- page building blocks ---------- */
.g-wrap{max-width:76rem;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));}
.g-sec{padding-block:clamp(3.5rem,8vw,6.5rem);}
.g-sec.is-tight{padding-block:clamp(2.4rem,5vw,4rem);}
.g-sec.is-sand{background:var(--panel);}
.g-sec.is-ink{background:var(--ink);color:var(--ground);}
.g-sec + .g-sec:not(.is-sand):not(.is-ink){border-top:1px solid var(--hair);}
.g-eyebrow{margin:0 0 1rem;font-family:var(--sans);font-weight:600;font-size:.88rem;letter-spacing:.01em;color:var(--forest-ink);display:inline-flex;align-items:center;gap:.5rem;}
.g-eyebrow::before{content:"";width:.5rem;height:.5rem;border-radius:50%;background:currentColor;}
.is-ink .g-eyebrow{color:#A5A7F7;}
.g-h1{margin:0;font-family:var(--sans);font-weight:600;font-size:clamp(2.9rem,8.4vw,6.2rem);letter-spacing:-.045em;line-height:.98;text-wrap:balance;}
.g-h1 em{font-style:normal;color:var(--forest);}
.g-h2{margin:0;font-family:var(--sans);font-weight:600;font-size:clamp(2rem,4.6vw,3.4rem);letter-spacing:-.035em;line-height:1.04;text-wrap:balance;max-width:22ch;}
.g-h2 em{font-style:normal;color:var(--forest);}
.is-ink .g-h2 em{color:#A5A7F7;}
.g-h3{margin:0;font-family:var(--sans);font-weight:600;font-size:clamp(1.15rem,1.9vw,1.4rem);letter-spacing:-.02em;line-height:1.2;}
.g-lede{margin:1.3rem 0 0;font-size:clamp(1.08rem,1.7vw,1.3rem);line-height:1.55;color:var(--muted);max-width:60ch;}
.is-ink .g-lede{color:rgba(250,249,246,.72);}
.g-p{margin:0;color:var(--muted);font-size:1rem;line-height:1.6;}
.is-ink .g-p{color:rgba(250,249,246,.7);}
.g-head-row{display:flex;justify-content:space-between;align-items:flex-end;gap:1.5rem 3rem;flex-wrap:wrap;margin-bottom:clamp(2rem,4.5vw,3rem);}
.g-head-row .g-lede{margin-top:0;max-width:46ch;}
.g-row{display:flex;flex-wrap:wrap;align-items:center;gap:.9rem 1.3rem;}

.g-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(min(17rem,100%),1fr));}
.g-grid.is-2{grid-template-columns:repeat(auto-fit,minmax(min(24rem,100%),1fr));}
.g-card{background:var(--card);border:1px solid var(--hair);border-radius:18px;padding:clamp(1.3rem,2.6vw,1.9rem);display:flex;flex-direction:column;gap:.75rem;min-width:0;}
.is-sand .g-card{background:var(--card);}
.is-ink .g-card{background:rgba(250,249,246,.06);border-color:rgba(250,249,246,.14);}
a.g-card{text-decoration:none;color:inherit;transition:transform .15s ease,border-color .15s ease;}
a.g-card:hover{transform:translateY(-3px);border-color:var(--forest);}
.g-card .g-link{margin-top:auto;align-self:flex-start;}
.g-num{font-family:var(--sans);font-weight:600;font-size:.82rem;color:var(--forest);letter-spacing:.02em;}
.g-icon{width:2.6rem;height:2.6rem;border-radius:12px;background:var(--os-tint);color:var(--forest);display:grid;place-items:center;font-family:var(--sans);font-weight:700;font-size:1.05rem;}
.is-ink .g-icon{background:rgba(165,167,247,.14);color:#A5A7F7;}

.g-stat{display:flex;flex-direction:column;gap:.5rem;}
.g-stat b{font-family:var(--sans);font-weight:600;font-size:clamp(2.8rem,6vw,4.2rem);letter-spacing:-.05em;line-height:1;}
.g-stat small{font-size:.8rem;color:var(--muted);line-height:1.45;}
.g-stat small a{color:inherit;}
.is-ink .g-stat small{color:rgba(250,249,246,.55);}

.g-steps{list-style:none;margin:0;padding:0;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(min(15rem,100%),1fr));counter-reset:gs;}
.g-steps > li{counter-increment:gs;background:var(--card);border:1px solid var(--hair);border-radius:18px;padding:1.4rem 1.4rem 1.5rem;display:flex;flex-direction:column;gap:.6rem;}
.g-steps > li::before{content:counter(gs,decimal-leading-zero);font-family:var(--sans);font-weight:600;font-size:.85rem;color:var(--forest);}
.g-steps ul{margin:.2rem 0 0;padding-left:1.1rem;color:var(--muted);font-size:.95rem;line-height:1.55;display:flex;flex-direction:column;gap:.25rem;}

.g-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;}
.g-list li{display:grid;grid-template-columns:1.6rem minmax(0,1fr);gap:.6rem;padding:.85rem 0;border-top:1px solid var(--hair);font-size:1.02rem;line-height:1.5;}
.g-list li:last-child{border-bottom:1px solid var(--hair);}
.g-list li::before{content:"";width:1.05rem;height:1.05rem;margin-top:.22rem;border-radius:50%;background:var(--forest);-webkit-mask:radial-gradient(circle,#000 38%,transparent 40%);mask:radial-gradient(circle,#000 38%,transparent 40%);box-shadow:inset 0 0 0 2px var(--forest);}
.g-list.is-cross li::before{background:#B3261E;}
.is-ink .g-list li{border-color:rgba(250,249,246,.14);}

.g-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,5vw,4.5rem);align-items:start;}
@media (max-width:860px){.g-split{grid-template-columns:1fr;}}

.g-chips{display:flex;flex-wrap:wrap;gap:.45rem;}
.g-chip{font-family:var(--sans);font-weight:500;font-size:.88rem;padding:.42rem .8rem;border-radius:99px;background:var(--card);border:1px solid var(--hair);color:var(--ink);}
.is-ink .g-chip{background:transparent;border-color:rgba(250,249,246,.2);color:var(--ground);}

.g-logos{display:flex;flex-wrap:wrap;gap:.7rem 1.6rem;align-items:center;}
.g-logos span{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--sans);font-weight:500;font-size:.95rem;color:var(--muted);}
.g-logos svg{width:20px;height:20px;fill:currentColor;color:var(--ink);}

.g-faq{border-top:1px solid var(--hair);max-width:58rem;}
.g-faq details{border-bottom:1px solid var(--hair);}
.g-faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:1rem;align-items:baseline;padding:1.2rem 0;font-family:var(--sans);font-weight:600;font-size:clamp(1.05rem,1.7vw,1.25rem);letter-spacing:-.015em;}
.g-faq summary::-webkit-details-marker{display:none;}
.g-faq summary::after{content:"+";font-weight:400;font-size:1.4rem;color:var(--forest);line-height:1;}
.g-faq details[open] summary::after{content:"\2212";}
.g-faq details p{margin:0 0 1.3rem;color:var(--muted);max-width:64ch;line-height:1.65;}

.g-band{background:var(--ink);color:var(--ground);border-radius:28px;padding:clamp(2rem,5vw,3.6rem);display:flex;justify-content:space-between;align-items:flex-end;gap:1.5rem 3rem;flex-wrap:wrap;}
.g-band .g-h2{color:var(--ground);}
.g-band .g-lede{color:rgba(250,249,246,.72);}

.g-sources{margin-top:2rem;font-size:.8rem;color:var(--muted);line-height:1.6;max-width:70rem;}
.g-sources a{color:inherit;}
.is-ink .g-sources{color:rgba(250,249,246,.5);}

.g-figure{margin:0;background:var(--card);border:1px solid var(--hair);border-radius:24px;padding:clamp(1rem,3vw,2rem);}
.g-figure svg{display:block;width:100%;height:auto;}
.g-fig-scroll{overflow-x:auto;}
.g-figure figcaption{margin-top:1rem;font-size:.9rem;color:var(--muted);}

/* ---------- shared footer ---------- */
.g-foot{background:var(--ink);color:rgba(250,249,246,.72);margin-top:0;}
.g-foot-in{max-width:76rem;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:clamp(2.5rem,6vw,4rem) 2rem;display:grid;grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(0,1fr));gap:2rem;}
.g-foot b{display:block;font-family:var(--sans);font-weight:600;color:var(--ground);margin-bottom:.8rem;font-size:.95rem;}
.g-foot a{display:block;color:inherit;text-decoration:none;padding:.22rem 0;font-size:.94rem;}
.g-foot a:hover{color:var(--ground);}
.g-foot .g-logo{display:inline-flex;padding:0;color:var(--ground);font-size:1.6rem;margin-bottom:.8rem;}
.g-foot-k{display:block;font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;color:rgba(250,249,246,.5);margin:-.2rem 0 .8rem;}
.g-foot p{margin:0;font-size:.94rem;line-height:1.55;max-width:30ch;}
.g-foot-base{grid-column:1 / -1;border-top:1px solid rgba(250,249,246,.14);padding-top:1.2rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.82rem;}
@media (max-width:760px){.g-foot-in{grid-template-columns:1fr 1fr;}.g-foot-in > div:first-child{grid-column:1 / -1;}}

/* ---------- the older pages, re-themed ---------- */
.wrap{max-width:76rem;}
.masthead,.foot{display:none;}
.btn{font-family:var(--sans)!important;text-transform:none!important;letter-spacing:-.01em!important;font-size:.95rem!important;border-radius:99px!important;background:var(--ink);border-color:var(--ink);color:var(--ground);}
.btn.is-ghost{background:transparent;color:var(--ink);border-color:var(--hair);}
.chap{border-top-color:var(--ink);}
.eyebrow{font-family:var(--sans);text-transform:none;letter-spacing:.01em;font-weight:600;font-size:.88rem;}

@media (prefers-reduced-motion: reduce){.g-btn,.g-link::after,a.g-card,.g-dd > summary::after{transition:none;}.g-btn:hover,a.g-card:hover{transform:none;}}

/* ---------- photo panels: text over a licensed photo (Pixabay, files in img/) ---------- */
.g-photo-sec{padding-block:clamp(1rem,3vw,2.2rem);}
.g-wrap.is-wide{max-width:92rem;}
.g-photo{position:relative;isolation:isolate;margin:0;border-radius:clamp(18px,2.4vw,28px);overflow:hidden;min-height:clamp(26rem,46vw,38rem);color:#fff;display:flex;background:var(--ink);}
.g-photo > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;}
.g-photo::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,rgba(15,23,32,.9) 0%,rgba(15,23,32,.66) 38%,rgba(15,23,32,.18) 70%,rgba(15,23,32,.24) 100%),linear-gradient(to right,rgba(15,23,32,.35),rgba(15,23,32,0) 55%);}
.g-photo > img{filter:saturate(.85);}
.g-photo-in{position:relative;width:100%;padding:clamp(1.4rem,3.6vw,3rem);display:flex;flex-direction:column;}
.g-photo-h{margin:0;font-family:var(--sans);font-weight:400;font-size:clamp(2.1rem,5.2vw,4.4rem);line-height:1.02;letter-spacing:-.045em;text-wrap:balance;max-width:16ch;color:#fff;}
.g-photo p{margin:0;font-size:clamp(1rem,1.4vw,1.15rem);line-height:1.45;color:rgba(255,255,255,.9);}
.g-photo.is-split .g-photo-in{flex-direction:row;align-items:flex-end;justify-content:space-between;gap:2rem;}
.g-photo.is-split p{max-width:28rem;}
.g-photo.is-top::after{background:linear-gradient(to bottom,rgba(15,23,32,.62) 0%,rgba(15,23,32,.1) 42%,rgba(15,23,32,.18) 60%,rgba(15,23,32,.8) 100%);}
.g-photo.is-top .g-photo-in{justify-content:space-between;gap:3rem;}
.g-photo.is-top .g-photo-lede{margin-top:1rem;max-width:34rem;}
.g-photo-points{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,2.4vw,2rem);}
.g-photo-points span{display:inline-block;font-family:var(--sans);font-weight:500;font-size:.8rem;padding:.25rem .6rem;border-radius:7px;background:var(--ground);color:var(--ink);margin-bottom:.7rem;}
.g-photo.is-center::after{background:radial-gradient(ellipse at center,rgba(15,23,32,.62),rgba(15,23,32,.42) 70%);}
.g-photo.is-center .g-photo-in{align-items:center;justify-content:center;text-align:center;}
.g-photo.is-center .g-photo-h{max-width:18ch;}
.g-photo.is-center p{max-width:40rem;margin-top:1.2rem;}
.g-photo.is-center .g-btn{margin-top:1.8rem;background:var(--ground);color:var(--ink);}
@media (max-width:760px){
  .g-photo{min-height:30rem;}
  .g-photo.is-split .g-photo-in{flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:1rem;}
  .g-photo-points{grid-template-columns:1fr;gap:.9rem;}
}

/* ---------- hero texture: a fan of fine curved lines and a soft lavender glow (drawn by TEXTURE in build.py) ----------
   Put class g-tex-host on the section and <!--g:texture--> inside it. --tex-solid and --tex-end set where it fades. */
.g-tex-host{position:relative;isolation:isolate;}
.g-tex{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden;
  background:radial-gradient(ellipse 46% 50% at 74% 42%,rgba(237,235,255,.95),rgba(237,235,255,0) 70%);
  -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 var(--tex-solid,46%),transparent var(--tex-end,74%));
  mask-image:linear-gradient(to bottom,#000 0%,#000 var(--tex-solid,46%),transparent var(--tex-end,74%));}
.g-tex svg{position:absolute;inset:0;width:100%;height:100%;}
.g-tex path{fill:none;stroke:var(--forest);stroke-opacity:.12;stroke-width:1;vector-effect:non-scaling-stroke;}

/* Article covers (drawn in build.py, COVERS) and the insight cards that carry them: home, insights, each article */
.g-cover{display:block;width:100%;height:100%;}
.g-cover .c-bg{fill:var(--os-tint);}
.g-cover path,.g-cover polyline{fill:none;stroke-linecap:round;vector-effect:non-scaling-stroke;}
.g-cover .c-idle{stroke:var(--ink);stroke-opacity:.22;stroke-width:1.2;stroke-dasharray:3 5;}
.g-cover .c-live{stroke:var(--forest);stroke-width:2.4;}
.g-cover .c-braid{stroke:var(--ink);stroke-width:1.8;}
.g-cover .c-dot{fill:var(--ground);stroke:var(--ink);stroke-opacity:.35;stroke-width:1.2;}
.g-cover .c-dot-live{fill:var(--forest);}
.g-cover .c-knot{fill:var(--card);stroke:var(--hair);stroke-width:1;}
.g-cover .g-mark{color:var(--ink);}
.g-ins-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1.2rem 2rem;flex-wrap:wrap;margin-bottom:clamp(1.8rem,3.5vw,2.6rem);}
.g-pill{display:inline-flex;align-items:center;gap:.9rem;padding:.4rem .4rem .4rem 1.3rem;border:1px solid var(--hair);border-radius:99px;background:var(--card);font-family:var(--sans);font-weight:500;font-size:.98rem;color:var(--ink);text-decoration:none;transition:border-color .15s ease;}
.g-pill i{width:2.4rem;height:2.4rem;border-radius:50%;background:var(--ink);display:grid;place-items:center;transition:transform .2s ease;}
.g-pill svg{width:.9rem;height:.9rem;stroke:var(--ground);stroke-width:2;fill:none;}
.g-pill:hover{border-color:var(--ink);}
.g-pill:hover i{transform:rotate(45deg);}
.g-ins{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(1.4rem,3.5vw,3rem);align-items:center;text-decoration:none;color:inherit;}
.g-ins-art{position:relative;aspect-ratio:8 / 5;border-radius:20px;overflow:hidden;border:1px solid var(--hair);}
.g-ins-art .g-cover{transition:transform .5s cubic-bezier(.2,.7,.2,1);}
.g-ins:hover .g-ins-art .g-cover{transform:scale(1.03);}
.g-ins-go{position:absolute;top:1rem;right:1rem;width:2.6rem;height:2.6rem;border-radius:50%;background:rgba(247,246,242,.9);display:grid;place-items:center;}
.g-ins-go svg{width:.9rem;height:.9rem;stroke:var(--ink);stroke-width:2;fill:none;}
.g-ins-k{margin:0 0 .9rem;font-family:var(--mono);font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;color:var(--forest-ink);}
.g-ins-t{margin:0;font-family:var(--sans);font-weight:500;font-size:clamp(1.6rem,2.8vw,2.2rem);letter-spacing:-.03em;line-height:1.12;text-wrap:balance;}
.g-ins-d{margin:1rem 0 0;color:var(--muted);font-size:1.02rem;line-height:1.6;max-width:44ch;}
.g-ins-m{margin:1.2rem 0 0;font-size:.88rem;color:var(--muted);}
.g-ins:hover .g-ins-t{text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:.18em;}
.g-ins:focus-visible{outline:3px solid var(--forest);outline-offset:6px;border-radius:20px;}
@media (max-width:760px){.g-ins{grid-template-columns:1fr;}}

/* ---------- Insight articles: one layout for every article page (insight-*.html, built by blog.py) ---------- */
.a-hero{padding-block:clamp(3.5rem,8vw,6rem) clamp(2rem,4vw,3rem);}
.a-hero .g-h1{font-size:clamp(2.5rem,6.2vw,4.8rem);max-width:16ch;}
.a-back{display:flex;width:fit-content;margin-bottom:1.6rem;font-family:var(--sans);font-weight:500;font-size:.92rem;color:var(--muted);text-decoration:none;}
.a-back:hover{color:var(--ink);}
.a-meta{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;margin-top:1.8rem;font-size:.9rem;color:var(--muted);}
.a-meta b{font-family:var(--sans);font-weight:600;color:var(--ink);}
.a-art{aspect-ratio:8 / 5;max-height:34rem;width:100%;border-radius:22px;overflow:hidden;border:1px solid var(--hair);}
.a-body{max-width:42rem;margin:0 auto;padding-block:clamp(2.5rem,6vw,4.5rem) clamp(3rem,7vw,5rem);}
.a-body > p,.a-body li{font-size:clamp(1.05rem,1.4vw,1.15rem);line-height:1.72;color:#2A313B;}
.a-body > p{margin:0 0 1.3rem;}
.a-body h2{margin:3rem 0 1.1rem;font-size:clamp(1.5rem,2.6vw,1.95rem);letter-spacing:-.03em;line-height:1.15;}
.a-body ol{margin:0 0 1.4rem;padding-left:1.3rem;}
.a-body li{margin-bottom:.7rem;}
.a-body li b,.a-body p b{font-family:var(--sans);font-weight:600;color:var(--ink);}
.a-body sup a{color:var(--forest-ink);text-decoration:none;font-size:.75em;font-family:var(--sans);font-weight:600;}
.a-dek{font-size:clamp(1.2rem,2vw,1.45rem)!important;line-height:1.5!important;color:var(--ink)!important;font-family:var(--sans);font-weight:500;letter-spacing:-.015em;}
.a-body .a-quote{margin:2.4rem 0;padding:0 0 0 1.4rem;border-left:3px solid var(--forest);font-family:var(--sans);font-weight:500;font-size:clamp(1.35rem,2.4vw,1.75rem);letter-spacing:-.025em;line-height:1.3;color:var(--ink);}
.a-test{margin:2.6rem 0;padding:clamp(1.5rem,3.5vw,2.2rem);border-radius:20px;background:var(--ink);color:var(--ground);}
.a-test span{font-family:var(--mono);font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;color:#A5A7F7;}
.a-test p{margin:.8rem 0 0;font-family:var(--sans);font-weight:500;font-size:clamp(1.3rem,2.3vw,1.6rem);letter-spacing:-.025em;line-height:1.3;}
.a-test small{display:block;margin-top:1rem;font-size:.95rem;line-height:1.6;color:rgba(250,249,246,.7);}
.a-own{display:grid;gap:.8rem;margin:1.6rem 0 2rem;}
.a-own div{background:var(--card);border:1px solid var(--hair);border-radius:16px;padding:1.1rem 1.3rem;}
.a-own b{display:block;font-family:var(--sans);font-weight:600;font-size:1.05rem;letter-spacing:-.01em;}
.a-own p{margin:.35rem 0 0;color:var(--muted);font-size:.98rem;line-height:1.6;}
.a-own a{color:inherit;}
.a-src{margin-top:3rem;padding-top:1.4rem;border-top:1px solid var(--hair);font-size:.85rem;line-height:1.6;color:var(--muted);}
.a-src ol{padding-left:1.2rem;margin:.6rem 0 0;}
.a-src li{font-size:.85rem!important;line-height:1.6!important;color:var(--muted)!important;margin-bottom:.4rem;}
.a-src a{color:inherit;}
.a-hero .g-h1.is-long{font-size:clamp(2.1rem,4.6vw,3.6rem);max-width:22ch;line-height:1.06;}
.a-body h3{margin:2rem 0 .7rem;font-family:var(--sans);font-weight:600;font-size:clamp(1.15rem,1.8vw,1.3rem);letter-spacing:-.015em;line-height:1.3;}
.a-body ul{margin:0 0 1.4rem;padding-left:1.2rem;}
.a-body a{color:var(--forest-ink);text-underline-offset:.18em;}
.a-body code{font-family:var(--mono);font-size:.88em;background:var(--os-tint);padding:.1em .35em;border-radius:4px;}
.a-body blockquote{margin:1.6rem 0;padding:1rem 1.3rem;border-radius:14px;background:var(--os-tint);font-family:var(--sans);font-weight:500;font-size:1.1rem;color:var(--ink);}
.a-body blockquote p{margin:0;}
.a-keys{margin:0 0 2.6rem;padding:clamp(1.2rem,3vw,1.7rem) clamp(1.3rem,3vw,1.9rem);border:1px solid var(--hair);border-radius:18px;background:var(--card);}
.a-keys h2{margin:0 0 .9rem!important;font-family:var(--mono);font-weight:500;font-size:.76rem!important;letter-spacing:.06em!important;text-transform:uppercase;color:var(--forest-ink);}
.a-keys ul{margin:0;}
.a-keys li{font-size:1rem!important;line-height:1.6!important;margin-bottom:.5rem;}
.a-table{margin:1.6rem 0 2rem;overflow-x:auto;border:1px solid var(--hair);border-radius:14px;background:var(--card);}
.a-table table{width:100%;border-collapse:collapse;font-size:.95rem;line-height:1.5;}
.a-table th,.a-table td{padding:.7rem .9rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--hair);}
.a-table th{font-family:var(--sans);font-weight:600;background:var(--os-tint);}
.a-table tr:last-child td{border-bottom:0;}
.a-rel{display:grid;gap:.7rem;margin:1.2rem 0 0;}
.a-rel a{display:block;padding:1rem 1.2rem;border:1px solid var(--hair);border-radius:14px;background:var(--card);text-decoration:none;color:inherit;}
.a-rel a:hover{border-color:var(--ink);}
.a-rel b{display:block;font-family:var(--sans);font-weight:600;color:var(--ink);}
.a-rel span{display:block;margin-top:.25rem;color:var(--muted);font-size:.95rem;line-height:1.5;}
.a-src li{word-break:break-word;}

/* ---------- Insights index: category filter and the article grid ---------- */
.i-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 clamp(1.8rem,4vw,2.6rem);}
.i-chips button{font:inherit;font-family:var(--sans);font-weight:500;font-size:.92rem;padding:.5rem .95rem;border:1px solid var(--hair);border-radius:99px;background:var(--card);color:var(--ink);cursor:pointer;}
.i-chips button:hover{border-color:var(--ink);}
.i-chips button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--ground);}
.i-chips button i{font-style:normal;margin-left:.35rem;opacity:.6;font-size:.85em;}
.i-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.8rem,3.5vw,2.6rem) clamp(1.2rem,2.5vw,1.8rem);}
.i-card{display:flex;flex-direction:column;text-decoration:none;color:inherit;}
.i-card .g-ins-art{margin-bottom:1.1rem;}
.i-card .g-ins-k{margin-bottom:.6rem;}
.i-card h3{margin:0;font-family:var(--sans);font-weight:500;font-size:1.2rem;letter-spacing:-.02em;line-height:1.25;text-wrap:balance;}
.i-card p{margin:.6rem 0 0;color:var(--muted);font-size:.95rem;line-height:1.55;}
.i-card .g-ins-m{margin-top:.8rem;}
.i-card:hover h3{text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:.18em;}
.i-card:hover .g-cover{transform:scale(1.03);}
.i-card .g-cover{transition:transform .5s cubic-bezier(.2,.7,.2,1);}
.i-card:focus-visible{outline:3px solid var(--forest);outline-offset:6px;border-radius:16px;}
.i-card[hidden]{display:none;}
@media (max-width:980px){.i-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:620px){.i-grid{grid-template-columns:1fr;}}
