/* ==========================================================================
   SOUNDINGS — premium layer for the working pages
   (quizzes · basics · collaborate) — third movement of Pelagic Drift.
   Layers on top of style.css / quiz.css / ads.css. No generic card grids:
   instruments, ledgers and editorial type instead.
   ========================================================================== */

/* ---------- shared editorial touches ---------- */
.snd-kicker{
  display:flex;align-items:center;gap:14px;margin:0 0 10px;
  font:700 .62rem 'Bricolage Grotesque',sans-serif;letter-spacing:.34em;text-transform:uppercase;color:var(--primary);
}
.snd-kicker::after{content:'';flex:0 0 64px;height:1px;background:linear-gradient(90deg,var(--primary),transparent)}

/* =========================================================================
   QUIZZES — The Sounding Line
   ========================================================================= */

/* picker: asymmetric tide-table, not a card grid */
.tide-table{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--ring);border-radius:var(--radius);overflow:hidden;margin:8px 0 30px;background:var(--card)}
.tide{position:relative;text-align:left;font:inherit;color:inherit;background:transparent;border:none;cursor:pointer;padding:34px 32px 34px;transition:background .3s}
.tide + .tide{border-left:1px solid var(--ring)}
.tide::after{content:'→';position:absolute;right:26px;bottom:22px;font-size:1.3rem;color:var(--primary);opacity:0;transform:translateX(-8px);transition:opacity .28s,transform .28s}
.tide:hover{background:rgba(95,212,200,.05)}
.tide:hover::after{opacity:1;transform:none}
.tide h3{font-family:'Fraunces',serif;font-weight:700;font-size:clamp(1.5rem,2.6vw,2.1rem);color:var(--plum);margin:6px 0 10px;line-height:1.08;letter-spacing:-.01em}
.tide p{font-size:.92rem;color:var(--plum-soft);margin:0;max-width:40ch}
@media (max-width:760px){.tide-table{grid-template-columns:1fr}.tide + .tide{border-left:none;border-top:1px solid var(--ring)}}

/* stage: sounding gauge beside the card */
.quiz-stage{position:relative}
.snd-gauge{position:absolute;left:-96px;top:0;width:72px;height:100%;pointer-events:none}
.snd-gauge canvas{display:block;width:72px;height:100%}
@media (max-width:1180px){.snd-gauge{display:none}}

/* ghost question numeral behind the card */
.quiz-card{position:relative;overflow:hidden}
.quiz-card::before{content:attr(data-ghost);position:absolute;right:14px;top:-24px;font-family:'Fraunces',serif;font-style:italic;font-weight:900;font-size:8rem;line-height:1;color:rgba(95,212,200,.05);pointer-events:none;transition:color .5s}
.quiz-card.snd-good::before{color:rgba(95,212,200,.11)}
.quiz-card.snd-bad::before{color:rgba(238,106,107,.12)}

/* answers: staggered drift-in */
.qa{will-change:transform,opacity}
.js .qa{opacity:0;transform:translateX(14px)}
.js .qa.snd-in{opacity:1;transform:none;transition:opacity .45s ease,transform .45s cubic-bezier(.16,.84,.44,1),border-color .18s,background .18s}
.js .qa.snd-in:hover:not(:disabled){transform:translateX(3px)}

/* verdict: surfacing reveal */
.quiz-result{position:relative;overflow:hidden}
.js .quiz-result.snd-surface{animation:sndSurface .9s cubic-bezier(.16,.84,.44,1) both}
@keyframes sndSurface{from{clip-path:inset(100% 0 0 0);transform:translateY(14px)}to{clip-path:inset(0 0 0 0);transform:none}}

@media (prefers-reduced-motion:reduce){
  .js .qa{opacity:1;transform:none}
  .js .quiz-result.snd-surface{animation:none}
  .tide::after{transition:none}
}

/* =========================================================================
   BASICS
   ========================================================================= */
/* field-guide cards: numbered chapters, accent spine */
.grid2 .kcard{position:relative;border-left:3px solid var(--ring);transition:border-color .3s,transform .3s,box-shadow .3s}
.grid2 .kcard:hover{transform:translateY(-3px)}
.grid2 .kcard[data-right]{scroll-margin-top:110px}
.kcard.snd-flash{border-left-color:var(--c,var(--primary));box-shadow:0 0 0 1px var(--c,var(--primary)),var(--shadow)}

/* the matcher — replaces the static cheat sheet */
.matcher{border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:var(--radius);background:linear-gradient(140deg,var(--card),rgba(12,49,64,.45));padding:30px 30px 26px;margin:44px 0 8px}
.matcher h2{font-family:'Fraunces',serif;font-size:clamp(1.5rem,2.8vw,2rem);color:var(--plum);margin:4px 0 4px}
.matcher .m-sub{color:var(--plum-soft);font-size:.95rem;margin:0 0 18px}
.m-chips{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 6px}
.m-chip{font:500 .9rem 'Bricolage Grotesque',sans-serif;color:var(--plum);background:rgba(95,212,200,.05);border:1px solid var(--ring);border-radius:100px;padding:9px 18px;cursor:pointer;transition:border-color .2s,background .2s,transform .2s}
.m-chip:hover{border-color:var(--primary);transform:translateY(-2px)}
.m-chip[aria-pressed="true"]{border-color:var(--c,var(--primary));color:var(--c,var(--primary));background:rgba(95,212,200,.1)}
.m-verdict{min-height:86px;margin-top:16px;padding:16px 20px;border-left:3px solid var(--c,var(--primary));background:rgba(4,32,43,.45);border-radius:0 8px 8px 0;opacity:0;transform:translateY(6px);transition:opacity .4s,transform .4s}
.m-verdict.show{opacity:1;transform:none}
.m-verdict b{font-family:'Fraunces',serif;font-size:1.15rem;color:var(--c,var(--primary));display:block;margin-bottom:4px}
.m-verdict p{margin:0;font-size:.92rem;color:var(--plum-soft)}
.m-verdict a{color:var(--c,var(--primary));font-weight:600;text-decoration:none}
.m-verdict a:hover{text-decoration:underline}
@media (prefers-reduced-motion:reduce){.m-chip:hover{transform:none}.grid2 .kcard:hover{transform:none}}

/* =========================================================================
   COLLABORATE — The Accounts Department
   ========================================================================= */
.harbor{display:grid;grid-template-columns:minmax(320px,460px) 1fr;gap:34px;align-items:start;margin:10px 0 26px}
@media (max-width:940px){
  .harbor{grid-template-columns:1fr;gap:26px}
  .bills-scene{position:static;max-width:440px;margin:0 auto}
}


/* =========================================================================
   USEFUL LINKS — coffee break
   ========================================================================= */
.coffee-duck{position:relative;width:min(280px,70vw);margin:64px auto 10px;cursor:pointer;filter:drop-shadow(0 14px 28px rgba(0,0,0,.45))}
.coffee-duck canvas{display:block;width:100%;height:auto;image-rendering:crisp-edges;image-rendering:pixelated}
.coffee-bubble{position:absolute;bottom:82%;left:34%;transform:translateX(-50%) translateY(6px);background:var(--plum);color:#04202B;border-radius:10px;padding:9px 14px;font:500 .84rem 'Bricolage Grotesque',sans-serif;max-width:230px;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;line-height:1.4}
.coffee-bubble.show{opacity:1;transform:translateX(-50%) translateY(0)}
.coffee-bubble::after{content:'';position:absolute;bottom:-6px;left:50%;margin-left:-7px;border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid var(--plum)}

@media (prefers-reduced-motion:reduce){.coffee-bubble{transition:none}}


.bills-scene{position:relative;cursor:pointer;filter:drop-shadow(0 16px 32px rgba(0,0,0,.5));position:sticky;top:110px}
.bills-scene canvas{display:block;width:100%;height:auto;image-rendering:crisp-edges;image-rendering:pixelated}
.bills-bubble{position:absolute;top:-6px;left:30%;transform:translateX(-50%) translateY(6px);background:var(--plum);color:#04202B;border-radius:10px;padding:9px 14px;font:500 .84rem 'Bricolage Grotesque',sans-serif;max-width:250px;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;line-height:1.4;z-index:3}
.bills-bubble.show{opacity:1;transform:translateX(-50%) translateY(0)}
.bills-bubble::after{content:'';position:absolute;bottom:-6px;left:50%;margin-left:-7px;border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid var(--plum)}
@media (prefers-reduced-motion:reduce){.bills-bubble{transition:none}}


/* =========================================================================
   ARTICLES — the reading room
   ========================================================================= */
.press-room{display:grid;grid-template-columns:1fr minmax(280px,340px);gap:38px;align-items:start;margin:14px 0 30px}
.press-list{border-top:2px solid var(--gold)}
.press-item{display:block;border-bottom:1px solid var(--ring);padding:26px 8px 24px 2px;text-decoration:none;color:inherit;transition:background .25s,padding-left .25s}
a.press-item:hover{background:rgba(95,212,200,.045);padding-left:10px}
.press-meta{display:flex;gap:12px;align-items:baseline;font:600 .68rem 'Bricolage Grotesque',sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--plum-soft);margin-bottom:8px}
.press-tag{border:1px solid var(--ring);border-radius:100px;padding:3px 10px;color:var(--primary);letter-spacing:.12em}
.press-tag--sp{color:var(--gold);border-color:rgba(111,195,217,.4)}
.press-item h3{font-family:'Fraunces',serif;font-weight:700;font-size:clamp(1.25rem,2.2vw,1.7rem);line-height:1.15;margin:0 0 8px;letter-spacing:-.01em}
.press-item h3 a{color:var(--plum);text-decoration:none}
.press-item h3 a:hover{color:var(--primary)}
.press-item--vacant h3{color:var(--plum)}
.press-item--vacant:hover h3{color:var(--primary)}
.press-item--vacant{border-left:3px dashed var(--ring);padding-left:16px}
a.press-item--vacant:hover{padding-left:22px}
.press-item p{margin:0 0 8px;font-size:.95rem;color:var(--plum-soft);max-width:62ch;line-height:1.6}
.press-by{font-family:'Fraunces',serif;font-style:italic;font-size:.9rem;color:var(--gold)}
.press-side{position:sticky;top:92px}
.reader-scene{position:relative;cursor:pointer;filter:drop-shadow(0 16px 32px rgba(0,0,0,.5));max-width:300px;margin:0 auto}
.reader-scene canvas{display:block;width:100%;height:auto;image-rendering:crisp-edges;image-rendering:pixelated}
.reader-bubble{position:absolute;top:-4px;left:50%;transform:translateX(-50%) translateY(6px);background:var(--plum);color:#04202B;border-radius:10px;padding:9px 14px;font:500 .84rem 'Bricolage Grotesque',sans-serif;max-width:230px;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;line-height:1.4;z-index:3}
.reader-bubble.show{opacity:1;transform:translateX(-50%) translateY(0)}
.reader-bubble::after{content:'';position:absolute;bottom:-6px;left:50%;margin-left:-7px;border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid var(--plum)}
.press-pitch{margin-top:32px;background:var(--card);border:1px solid var(--ring);border-left:4px solid var(--gold);border-radius:var(--radius);padding:22px 22px 24px}
.press-pitch h4{font-family:'Fraunces',serif;font-size:1.2rem;color:var(--plum);margin:0 0 8px}
.press-pitch p{font-size:.88rem;color:var(--plum-soft);margin:0 0 16px;line-height:1.6}
.press-pitch .btn{margin-right:8px;margin-bottom:8px}
@media (max-width:900px){.press-room{grid-template-columns:1fr}.press-side{position:static}}
@media (prefers-reduced-motion:reduce){.press-item,.reader-bubble{transition:none}}

/* The h3 -> h2 renumbering (CHANGES.md §3) walked past these two: the rules
   above still key off h3, so the headings they style went unstyled. Same
   declarations, correct element. */
.press-item h2{font-family:'Fraunces',serif;font-weight:700;font-size:clamp(1.25rem,2.2vw,1.7rem);line-height:1.15;margin:0 0 8px;letter-spacing:-.01em;color:var(--plum)}
.press-item h2 a{color:var(--plum);text-decoration:none}
.press-item h2 a:hover{color:var(--primary)}
.press-item--vacant h2{color:var(--plum)}
.press-item--vacant:hover h2{color:var(--primary)}
.press-pitch h3{font-family:'Fraunces',serif;font-size:1.2rem;color:var(--plum);margin:0 0 8px}

/* ==========================================================================
   PADDY'S IP NEWS - the fortnightly bulletin (/articles/ip-news-*.html)
   Reuses the reading-room grid; these are the pieces that are only ever
   needed by an edition page.
   ========================================================================== */
.news-standfirst{font-size:.88rem;color:var(--plum-soft);border-top:1px solid var(--ring);
  border-bottom:1px solid var(--ring);padding:12px 0;margin:0 0 8px;letter-spacing:.01em}
.news-standfirst b{color:var(--plum)}
.press-item .news-why{border-left:3px solid var(--gold);padding:2px 0 2px 14px;margin-top:14px;
  color:var(--plum-soft)}
.press-item .news-why b{color:var(--gold);font-family:'Bricolage Grotesque',sans-serif}
.press-item .news-link{margin-top:12px}
.press-item .news-link a{font:600 .85rem 'Bricolage Grotesque',sans-serif;color:var(--primary);
  text-decoration:none}
.press-item .news-link a:hover{color:var(--primary-deep)}
.news-briefs{margin:6px 0 0;padding:0;list-style:none;max-width:62ch}
.news-briefs li{font-size:.95rem;color:var(--plum-soft);line-height:1.6;padding:10px 0 10px 18px;
  border-bottom:1px solid rgba(95,212,200,.12);position:relative}
.news-briefs li:last-child{border-bottom:none}
.news-briefs li::before{content:"·";position:absolute;left:2px;top:8px;color:var(--gold);
  font-size:1.4rem;line-height:1}
.news-briefs b{color:var(--plum)}

/* the edition contents, under the duck */
.news-toc{margin-top:28px;border-top:2px solid var(--gold);padding-top:14px}
.news-toc h2{font:600 .68rem 'Bricolage Grotesque',sans-serif;letter-spacing:.16em;
  text-transform:uppercase;color:var(--plum-soft);margin:0 0 10px}
.news-toc ol{margin:0;padding:0 0 0 20px}
.news-toc li{font-size:.86rem;margin-bottom:7px;color:var(--plum-soft)}
.news-toc a{color:var(--plum);text-decoration:none}
.news-toc a:hover{color:var(--primary)}

/* sources */
.news-sources{max-width:820px;margin:14px 0 0;border-top:1px solid var(--ring);padding-top:26px}
.news-sources h2{font-size:1.15rem;margin-bottom:8px}
.news-sources > p{font-size:.88rem;color:var(--plum-soft);margin-bottom:14px}
.news-sources ul{margin:0;padding:0 0 0 18px}
.news-sources li{font-size:.86rem;color:var(--plum-soft);line-height:1.6;margin-bottom:9px}
/* the edition card on the reading-room index */
.news-latest{border:1px solid var(--ring);border-left:4px solid var(--gold);
  border-radius:var(--radius);background:var(--card);padding:22px 24px;margin:0 0 30px}
.news-latest .press-meta{margin-bottom:6px}
.news-latest h2{font-family:'Fraunces',serif;font-weight:700;font-size:clamp(1.3rem,2.4vw,1.8rem);
  line-height:1.15;margin:0 0 8px;letter-spacing:-.01em}
.news-latest h2 a{color:var(--plum);text-decoration:none}
.news-latest h2 a:hover{color:var(--primary)}
.news-latest p{font-size:.95rem;color:var(--plum-soft);margin:0 0 12px;max-width:62ch;line-height:1.6}
.news-archive{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px 18px}
.news-archive li{font-size:.85rem;color:var(--plum-soft)}
.news-archive a{color:var(--primary);text-decoration:none;font-weight:600}
.news-archive a:hover{color:var(--primary-deep)}


/* final responsive overrides (must come after the base rules above) */
@media (max-width:940px){
  .bills-scene{position:static !important;max-width:440px;margin:0 auto}
}


/* =========================================================================
   HOME — Berne at the sign
   ========================================================================= */
.duck-intro{display:grid;grid-template-columns:minmax(380px,520px) 1fr;gap:44px;align-items:center;max-width:1120px;margin:26px auto 40px}
.di-scene{position:relative;cursor:pointer;filter:drop-shadow(0 16px 32px rgba(0,0,0,.5))}
.di-scene canvas{display:block;width:100%;height:auto;image-rendering:crisp-edges;image-rendering:pixelated}
.di-bubble{position:absolute;top:-8px;left:58%;transform:translateX(-50%) translateY(6px);background:var(--plum);color:#04202B;border-radius:10px;padding:9px 14px;font:500 .84rem 'Bricolage Grotesque',sans-serif;max-width:230px;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;line-height:1.4;z-index:3}
.di-bubble.show{opacity:1;transform:translateX(-50%) translateY(0)}
.di-bubble::after{content:'';position:absolute;bottom:-6px;left:50%;margin-left:-7px;border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid var(--plum)}
.di-speech{position:relative;background:var(--card);border:1px solid var(--ring);border-radius:16px;padding:30px 34px 24px}
.di-speech::before{content:'';position:absolute;left:-11px;top:50%;margin-top:-9px;border-top:9px solid transparent;border-bottom:9px solid transparent;border-right:11px solid var(--card)}
.di-quote{font-family:'Fraunces',serif;font-size:clamp(1.05rem,1.7vw,1.3rem);line-height:1.6;color:var(--plum);margin:0 0 14px}
.di-quote a{color:var(--primary);text-decoration:none;border-bottom:1px solid rgba(95,212,200,.4)}
.di-quote a:hover{border-bottom-color:var(--primary)}
.di-name{font:600 .72rem 'Bricolage Grotesque',sans-serif;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
@media (max-width:900px){
  .duck-intro{grid-template-columns:1fr;gap:12px;max-width:520px}
  .di-speech::before{left:50%;top:-11px;margin-top:0;margin-left:-9px;border-left:9px solid transparent;border-right:9px solid transparent;border-bottom:11px solid var(--card);border-top:none}
}
@media (prefers-reduced-motion:reduce){.di-bubble{transition:none}}


/* =========================================================================
   ABOUT — the chart is never finished
   ========================================================================= */
.about-flow{max-width:760px}
.about-block{margin:0 0 44px}
.about-block p{font-size:1.02rem;line-height:1.7;color:var(--plum-soft);margin:0 0 16px;max-width:68ch}
.about-block p b{color:var(--plum)}
.about-block a{color:var(--primary);text-decoration:none;border-bottom:1px solid rgba(95,212,200,.35)}
.about-block a:hover{border-bottom-color:var(--primary)}
.about-list{list-style:none;margin:0 0 24px;padding:0}
.about-list li{position:relative;padding:10px 0 10px 26px;border-bottom:1px solid var(--ring);font-size:.98rem;color:var(--plum-soft);line-height:1.55}
.about-list li::before{content:'~';position:absolute;left:2px;color:var(--primary);font-weight:700}
.about-foot{font-size:.9rem;color:var(--plum-soft);opacity:.85;border-top:1px solid var(--ring);padding-top:18px;max-width:68ch}
.about-foot a{color:var(--primary)}


/* =========================================================================
   COLLABORATE — enquiry panels (contact-page style, blue icons)
   ========================================================================= */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.cpanel{display:grid;grid-template-columns:46px 1fr;grid-template-rows:auto auto;gap:4px 16px;align-items:start;background:var(--card);border:1px solid var(--ring);border-radius:var(--radius);padding:20px 20px 16px;text-decoration:none;color:inherit;transition:border-color .25s,transform .25s,background .25s}
.cpanel:hover{border-color:var(--gold);transform:translateY(-3px);background:rgba(111,195,217,.05)}
.cp-icon{grid-row:1/3;width:46px;height:46px;border-radius:12px;background:rgba(111,195,217,.12);border:1px solid rgba(111,195,217,.3);color:var(--gold);display:flex;align-items:center;justify-content:center}
.cp-icon svg{width:24px;height:24px}
.cp-body b{display:block;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:1rem;color:var(--plum);margin-bottom:3px}
.cp-body span{display:block;font-size:.84rem;color:var(--plum-soft);line-height:1.5}
.cp-go{grid-column:2;font:600 .76rem 'Bricolage Grotesque',sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);opacity:0;transform:translateX(-6px);transition:opacity .25s,transform .25s;margin-top:6px}
.cpanel:hover .cp-go{opacity:1;transform:none}
@media (max-width:1240px){.contact-grid{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.cpanel:hover{transform:none}.cp-go{transition:none}}


/* =========================================================================
   PHOTO HEROES — the real ocean behind the big type
   ========================================================================= */
.photo-hero{position:relative;margin:-36px calc(50% - 50vw) 46px;padding:clamp(80px,12vw,150px) 0 clamp(60px,9vw,110px);border-bottom:1px solid var(--ring);overflow:hidden}
.photo-hero::before{content:'';position:absolute;inset:0;background-size:cover;background-position:center;z-index:0}
.photo-hero--splash::before{background-image:url(ocean-splash.jpg);background-image:image-set(url(ocean-splash.webp) type("image/webp"), url(ocean-splash.jpg) type("image/jpeg"))}
.photo-hero--calm::before{background-image:url(ocean-calm.jpg);background-image:image-set(url(ocean-calm.webp) type("image/webp"), url(ocean-calm.jpg) type("image/jpeg"))}
.photo-hero::after{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(6,36,48,.42),rgba(6,36,48,.28) 45%,var(--bg) 100%)}
.ph-inner{position:relative;z-index:2;max-width:1150px;margin:0 auto;padding:0 24px}
.ph-title{font-family:'Instrument Serif',Georgia,serif;font-weight:400;font-size:clamp(3rem,7.5vw,5.6rem);line-height:1.02;letter-spacing:-.01em;color:#fff;margin:14px 0 20px;text-shadow:0 2px 30px rgba(4,32,43,.6);max-width:22ch}
.ph-title em{font-style:italic;color:var(--primary)}
.photo-hero .eyebrow{color:#fff}
.photo-hero .lede{color:rgba(244,251,251,.92);text-shadow:0 1px 18px rgba(4,32,43,.7);max-width:52ch}
@media (max-width:640px){.photo-hero{margin-top:-24px}}

/* ---------- basics: the symbols stamp themselves ---------- */
.symbols .sym{transition:transform .25s,border-color .25s;cursor:default}
.symbols .sym:hover{transform:rotate(-2deg) scale(1.04);border-color:var(--primary)}
.symbols .sym:hover .big{animation:stampIn .4s cubic-bezier(.2,1.6,.4,1) both;color:var(--primary)}
@keyframes stampIn{0%{transform:scale(2.2);opacity:0}60%{transform:scale(.92)}100%{transform:scale(1);opacity:1}}
@media (prefers-reduced-motion:reduce){.symbols .sym:hover{transform:none}.symbols .sym:hover .big{animation:none}}

/* ---------- links: the fishing filter ---------- */
.link-filter-wrap{display:flex;align-items:center;gap:16px;margin:6px 0 34px}
.link-filter{flex:1;max-width:460px;background:var(--card);border:1px solid var(--ring);border-radius:100px;padding:13px 22px;font:500 .95rem 'Bricolage Grotesque',sans-serif;color:var(--plum);transition:border-color .25s}
.link-filter::placeholder{color:var(--plum-soft);opacity:.7}
.link-filter:focus{border-color:var(--primary)}
.link-count{font:600 .72rem 'Bricolage Grotesque',sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--plum-soft)}
.link-section.lf-empty{display:none}
.lcard.lf-hide{display:none}


/* ---------- alignment pass ---------- */
/* (html,body{overflow-x:clip} now lives in style.css, with a @supports fallback) */
.about-flow{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px 64px;max-width:1100px;align-items:start}
.about-block{grid-column:1;margin:0 0 34px}
/* No sidebar on this page any more: --full collapses the reserved 300px
   column so the prose is not squeezed against dead space. */
.about-flow--full{grid-template-columns:minmax(0,1fr)}
.about-foot{grid-column:1/-1}
@media (max-width:980px){.about-flow{grid-template-columns:1fr}}

/* photo-hero title in the homepage hero's face (Space Grotesk) */
.ph-title--sans{font-family:'Space Grotesk','Bricolage Grotesque',sans-serif;font-weight:700;font-style:normal;letter-spacing:-.02em;font-size:clamp(2.6rem,6vw,4.4rem);line-height:1.08}
