/* Self-hosted variable fonts (2026-08-18, P3-2, director-approved from before/after renders): the three
   woff2 files had shipped unreferenced since 2026-07-17. A full-page headless render against Google Fonts
   was pixel-identical (259 px of 5.6M, one 10-row strip), so the page now loads them from this origin and
   makes no request to fonts.googleapis.com / fonts.gstatic.com. */
@font-face{font-family:"Archivo";font-style:normal;font-weight:100 900;font-display:swap;src:url(fonts/archivo-var.woff2) format("woff2");}
@font-face{font-family:"Fraunces";font-style:normal;font-weight:100 900;font-display:swap;src:url(fonts/fraunces-roman-var.woff2) format("woff2");}
@font-face{font-family:"Fraunces";font-style:italic;font-weight:100 900;font-display:swap;src:url(fonts/fraunces-italic-var.woff2) format("woff2");}
  :root{
    --abyss:#0A0D0F;
    --bone:#ECE5D6; --bone-2:#E3D9C5; --ink:#1C1A17; --charcoal:#4F493F;
    --paper:#EDE7DA; --oxblood:#20697A; --oxblood-bright:#58AEBE; --oxblood-deep:#134E5A;
    --gold:#CBA15A; --gold-soft:#E2C384; --rule-light:#C9BCA3;
    --serif:"Fraunces",Georgia,"Times New Roman",serif;
    --sans:"Archivo","Helvetica Neue",Arial,sans-serif;
    --pad:clamp(1.25rem,5vw,4rem); --maxw:74rem; --measure:34rem;
    --ease:cubic-bezier(.22,.61,.36,1);
  }
  /* palette CHOSEN (client feedback + director ruling, 2026-08-16): petrol — the middle
     swatch of the beta trio. Its values ARE the base accent vars above (#20697A/#58AEBE/#134E5A,
     AA-verified >=4.5:1 for small label text on the --bone light sections); the [data-palette]
     slot and the toggle instrument are removed per their own baked-in instruction.
     heritage (original art-direction), kept for reference: oxblood #9A3340 / #C04A57 / #7F2935 */
  *{box-sizing:border-box;}
  html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:4.5rem;}
  body{margin:0;background:var(--abyss);color:var(--paper);font-family:var(--serif);font-weight:400;
    font-size:clamp(1.02rem,.5vw + .95rem,1.16rem);line-height:1.62;-webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;overflow-x:hidden;}
  ::selection{background:var(--oxblood);color:var(--paper);}
  a{color:inherit;text-decoration:none;}
  img{display:block;max-width:100%;}
  /* Two-colour focus indicator. A single palette token cannot clear 3:1 on BOTH the
     dark (--abyss/--ink) and light (--bone/--paper) surfaces this page uses - blue's
     --oxblood measures 2.81:1 on --abyss. The light outline rides on a dark halo, so
     whichever surface is behind it, one ring contrasts. Palette-independent by
     construction, so a new palette cannot silently regress it. (codex P2, #177 item 2) */
  :focus-visible{outline:2px solid var(--paper);outline-offset:2px;
                 box-shadow:0 0 0 6px var(--ink);}

  .skip-link{position:absolute;top:.5rem;left:.5rem;z-index:100;transform:translateY(-160%);
    background:var(--oxblood);color:#fff;font-family:var(--sans);font-weight:600;font-size:.8rem;
    letter-spacing:.03em;padding:.65rem 1.1rem;border:1px solid var(--oxblood-bright);transition:transform .2s var(--ease);}
  .skip-link:focus{transform:translateY(0);}
  main:focus{outline:none;}

  .grain{position:fixed;inset:0;z-index:60;pointer-events:none;opacity:.05;mix-blend-mode:overlay;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}

  .eyebrow{font-family:var(--sans);font-weight:600;font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;}
  .label{font-family:var(--sans);font-weight:600;font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;}
  .gold{color:var(--gold);}

  /* nav */
  .nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;
    gap:1.5rem;padding:1.1rem var(--pad);transition:background .4s var(--ease),padding .4s var(--ease),border-color .4s var(--ease);border-bottom:1px solid transparent;}
  .nav.scrolled{background:rgba(8,11,13,.86);backdrop-filter:blur(8px);padding:.7rem var(--pad);border-bottom-color:rgba(203,161,90,.18);}
  .brand{display:flex;align-items:center;gap:.6rem;font-family:var(--sans);font-weight:800;font-size:1.02rem;letter-spacing:.01em;color:var(--paper);}
  .nav-links{display:flex;gap:1.5rem;font-family:var(--sans);font-size:.8rem;font-weight:500;letter-spacing:.03em;}
  .nav-links a{color:rgba(237,231,218,.74);transition:color .2s;}
  .nav-links a:hover{color:var(--gold);}
  .nav-book{font-family:var(--sans);font-weight:600;font-size:.76rem;letter-spacing:.05em;text-transform:uppercase;border:1.4px solid var(--oxblood-bright);color:var(--paper);padding:.5rem 1rem;transition:background .2s,color .2s;}
  .nav-book:hover{background:var(--oxblood-bright);color:#fff;}
  .nav-right{display:flex;align-items:center;gap:.75rem;}
  .nav-toggle{display:none;flex-direction:column;justify-content:center;align-items:stretch;gap:5px;
    width:42px;height:36px;padding:0 8px;background:transparent;border:1.4px solid rgba(237,231,218,.32);cursor:pointer;flex:none;}
  .nav-toggle span{display:block;height:2px;background:var(--paper);border-radius:2px;transition:transform .3s var(--ease),opacity .2s;}
  .nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
  .nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  @media(max-width:920px){
    .nav-toggle{display:flex;}
    .nav-book{padding:.5rem .8rem;font-size:.68rem;}
    html.js .nav-links{position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;
      background:rgba(8,11,13,.97);backdrop-filter:blur(10px);border-bottom:1px solid rgba(203,161,90,.18);
      padding:.25rem var(--pad) 1rem;max-height:0;overflow:hidden;opacity:0;visibility:hidden;
      transition:max-height .35s var(--ease),opacity .25s var(--ease),visibility .35s;}
    html.js .nav-links.open{max-height:80vh;opacity:1;visibility:visible;}
    html.js .nav-links a{padding:.9rem .15rem;font-size:.96rem;color:var(--paper);border-bottom:1px solid rgba(237,231,218,.08);}
    html.js .nav-links a:last-child{border-bottom:none;}
    html:not(.js) .nav-toggle{display:none;}
    /* NO-JS NARROW FALLBACK. Wrapping .nav-links ALONE is not enough, and the failure is
       vertical, not horizontal: .nav is a nowrap flex row, so the six links pile into a tall
       column INSIDE that row and stretch the fixed bar to ~227px at 320px wide. Because .nav
       is position:fixed it does not push content down - it covers the hero. (Measured on PR
       #241 at 320px: nav height 227px, links box 18-209, overlapping the h1. A horizontal
       overflow check does NOT catch this - scrollWidth equals clientWidth throughout.)
       So the parent must wrap too, and the links take their own full-width row below the
       brand and the booking control. This mirrors what index-a.html already did.

       AND the bar stops being fixed here. Wrapping alone only shrinks the problem: the nav
       still came to 121px and still covered the hero's .eyebrow, because .hero is
       min-height:100svh with vertically-centred content and nothing reserves space for the
       bar. Padding the hero would mean guessing a value per width. position:static puts the
       nav back in flow so it pushes content down instead, which cannot overlap at any height
       or viewport. A sticky bar is a JS-era nicety; without JS a scrolling header is normal. */
    html:not(.js) .nav{position:static;flex-wrap:wrap;row-gap:.35rem;}
    html:not(.js) .nav-links{flex-wrap:wrap;order:3;width:100%;justify-content:flex-start;
      row-gap:.3rem;column-gap:.9rem;font-size:.78rem;}
  }
  @media(max-width:400px){
    .nav{padding-left:1.1rem;padding-right:1.1rem;}
    .brand{font-size:.92rem;}
    .nav-right{gap:.5rem;}
    .nav-book{padding:.45rem .7rem;font-size:.66rem;}
  }

  /* bands / theming */
  .band{position:relative;background:var(--bg);color:var(--fg);}
  .band.dark{--bg:var(--abyss);--fg:var(--paper);--fg-dim:rgba(237,231,218,.6);--line:rgba(237,231,218,.13);--accent:var(--oxblood-bright);}
  .band.light{--bg:var(--bone);--fg:var(--ink);--fg-dim:var(--charcoal);--line:var(--rule-light);--accent:var(--oxblood);}
  .inner{max-width:var(--maxw);margin:0 auto;padding:clamp(3.5rem,9vw,7rem) var(--pad);position:relative;z-index:2;}

  /* HERO */
  .hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden;background:var(--abyss);}
  .hero-bg{position:absolute;inset:0;z-index:0;}
  .hero-bg svg{width:100%;height:100%;display:block;}
  .hero-bg .zoom{transform-origin:50% 60%;animation:slowzoom 26s var(--ease) forwards;}
  @keyframes slowzoom{from{transform:scale(1.08);}to{transform:scale(1);}}
  /* Wave drift (2026-08-18, director-approved from a demo): each of the five hero contour lines eases
     14px sideways / 3px vertically on its own 17-26s alternate cycle. Transform-only (no layout shift);
     the global prefers-reduced-motion rule below already sets animation:none on everything. */
  .hero-bg .wave{animation:wave-roll var(--wd,20s) ease-in-out infinite alternate;}
  .hero-bg .w1{--wd:23s;animation-delay:-3s;} .hero-bg .w2{--wd:19s;animation-delay:-11s;} .hero-bg .w3{--wd:26s;animation-delay:-6s;}
  .hero-bg .w4{--wd:21s;animation-delay:-15s;} .hero-bg .w5{--wd:17s;animation-delay:-9s;}
  @keyframes wave-roll{from{transform:translate(-14px,3px);}to{transform:translate(14px,-3px);}}
  .hero-vignette{position:absolute;inset:0;z-index:1;background:radial-gradient(120% 90% at 30% 38%,transparent 40%,rgba(5,7,9,.72) 100%);pointer-events:none;}
  .hero-grid{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto;padding:5.4rem var(--pad) 3rem;width:100%;
    display:grid;grid-template-columns:1.12fr .88fr;column-gap:clamp(1.5rem,4vw,3.2rem);row-gap:0;align-items:center;}
  .hero-copy{max-width:32ch;grid-column:1;grid-row:1;}
  .hero-cta{grid-column:1;grid-row:2;align-self:start;}
  .hero .eyebrow{color:var(--gold-soft);display:block;margin-bottom:1rem;}
  .hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(2.1rem,4.4vw,3.55rem);line-height:1.08;letter-spacing:-.02em;margin:0 0 1.3rem;color:var(--paper);}
  .hero h1 em{font-style:italic;color:var(--gold);}
  .hero .lede{font-family:var(--serif);font-size:clamp(1.02rem,.5vw + 1rem,1.18rem);line-height:1.5;color:rgba(237,231,218,.82);max-width:42ch;margin:0 0 1.7rem;}
  .hero-portrait{max-width:20.5rem;margin-left:auto;box-shadow:0 26px 64px -30px rgba(0,0,0,.75);grid-column:2;grid-row:1 / span 2;}
  .hero-portrait img{object-position:50% 18%;}
  .cta-row{display:flex;gap:.9rem;width:max-content;}
  .btn{font-family:var(--sans);font-weight:600;font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;padding:.95rem 1.7rem;display:inline-block;transition:transform .18s var(--ease),background .2s,color .2s,border-color .2s;}
  .btn:active{transform:translateY(1px);}
  .btn-solid{background:var(--oxblood);color:#fff;border:1.5px solid var(--oxblood);}
  .btn-solid:hover{background:var(--oxblood-deep);border-color:var(--oxblood-deep);}
  .btn-ghost{background:transparent;color:var(--paper);border:1.5px solid rgba(237,231,218,.4);}
  .btn-ghost:hover{border-color:var(--gold);color:var(--gold);}
  .cta-note{font-family:var(--sans);font-size:.72rem;letter-spacing:.04em;color:rgba(237,231,218,.62);margin:.9rem 0 0;}
  .scrollcue{position:absolute;left:50%;bottom:1.5rem;transform:translateX(-50%);z-index:3;font-family:var(--sans);font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;color:rgba(237,231,218,.6);animation:bob 2.4s ease-in-out infinite;}
  @keyframes bob{0%,100%{transform:translate(-50%,0);}50%{transform:translate(-50%,7px);}}

  /* video cards — styled outbound links (self-host policy: no vendor imagery or embeds) */
  .vfacade{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;border:1px solid rgba(203,161,90,.24);
    background:radial-gradient(120% 80% at 70% 20%,color-mix(in srgb,var(--oxblood-bright) 16%,transparent),transparent 55%),linear-gradient(155deg,#10171c,#0b0e10);}
  .vfacade .vthumb{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55;transition:opacity .3s,transform .6s var(--ease);z-index:0;}
  .vfacade:hover .vthumb{opacity:.7;transform:scale(1.03);}
  @media(max-width:600px){.vfacade .vlabel{flex-direction:column;align-items:flex-start;gap:.15rem;}.vfacade .vlabel span{white-space:normal;}}
  .vfacade::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(8,11,13,.82));z-index:1;}
  .vfacade .vlabel{z-index:2;}
  .vfacade .vlabel{position:absolute;left:0;right:0;bottom:0;padding:.85rem 1rem;display:flex;justify-content:space-between;align-items:baseline;gap:.6rem;
    background:linear-gradient(0deg,rgba(6,8,10,.9),transparent);font-family:var(--sans);z-index:2;}
  .vfacade .vlabel b{font-size:.74rem;letter-spacing:.02em;color:#fff;font-weight:600;}
  .vfacade .vlabel span{font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-soft);}
  /* MEDIA-FLIP-1 support: styles for the commented featured-episode slot (see the
     MEDIA-FLIP contract in <head>). Inert until the slot is uncommented post-air. */
  .feat-ep{margin:0 0 2.2rem;}
  .feat-ep .label{margin-bottom:.7rem;}

  /* CREDIBILITY LEDGER */
  .ledger{border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
  .ledger-grid{display:grid;grid-template-columns:repeat(4,1fr);}
  .ledger-cell{padding:1.6rem clamp(.8rem,2vw,1.6rem);border-right:1px solid var(--line);border-bottom:1px solid var(--line);}
  .ledger-cell:nth-child(4n){border-right:none;}
  .ledger-cell .big{font-family:var(--serif);font-weight:500;font-size:clamp(1.5rem,3vw,2.3rem);line-height:1;color:var(--paper);letter-spacing:-.01em;}
  .ledger-cell .cap{font-family:var(--sans);font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;color:rgba(237,231,218,.58);margin-top:.55rem;line-height:1.4;}
  @media(max-width:880px){.ledger-grid{grid-template-columns:repeat(2,1fr);}.ledger-cell:nth-child(4n){border-right:1px solid var(--line);}.ledger-cell:nth-child(2n){border-right:none;}}

  /* section heads */
  .sec-head{margin-bottom:2.6rem;max-width:40rem;}
  .sec-head .label{display:block;color:var(--accent);margin-bottom:1rem;}
  .band.dark .sec-head .label{color:var(--gold);}
  .sec-head h2{font-family:var(--serif);font-weight:400;font-size:clamp(1.8rem,4vw,3.3rem);line-height:1.08;letter-spacing:-.018em;margin:0;color:var(--fg);}
  .sec-head h2 em{font-style:italic;color:var(--accent);}
  .lead-p{font-family:var(--serif);font-size:clamp(1.06rem,.6vw + 1rem,1.26rem);color:var(--fg-dim);max-width:var(--measure);}

  /* TIMELINE bridge */
  .bridge{background:linear-gradient(180deg,#090C0E 0%,#0c1519 45%,#102832 100%);}
  .tl-head{margin-bottom:3rem;}
  .tl-head .label{color:var(--gold);display:block;margin-bottom:1rem;}
  .tl-head h2{font-family:var(--serif);font-weight:400;font-size:clamp(1.8rem,4vw,3.3rem);line-height:1.08;letter-spacing:-.018em;margin:0;color:var(--paper);}
  .tl{position:relative;display:grid;grid-template-columns:56px 1fr;column-gap:clamp(1rem,3vw,2rem);}
  .tl-rail{position:relative;}
  .tl-seam{position:absolute;left:50%;top:0;height:100%;width:42px;transform:translateX(-50%);overflow:visible;}
  .tl-seam path{fill:none;stroke:url(#seamgrad);stroke-width:2.4;stroke-linecap:round;stroke-dasharray:1400;transition:stroke-dashoffset 2.2s var(--ease);filter:url(#seamglow);}
  html.js .tl-seam path{stroke-dashoffset:1400;}
  html.js .tl-seam.drawn path{stroke-dashoffset:0;}
  .tl-list{list-style:none;margin:0;padding:0;}
  .tl-item{position:relative;padding:0 0 2.6rem 0;}
  .tl-item:last-child{padding-bottom:0;}
  .tl-node{position:absolute;left:calc(-1*(clamp(1rem,3vw,2rem) + 56px) + 28px);top:.35rem;width:13px;height:13px;border-radius:50%;transform:translateX(-50%);}
  .tl-year{font-family:var(--sans);font-weight:700;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;display:block;margin-bottom:.4rem;}
  .tl-item h3{font-family:var(--serif);font-weight:500;font-size:clamp(1.15rem,2vw,1.5rem);line-height:1.18;margin:0 0 .5rem;letter-spacing:-.01em;}
  .tl-item p{margin:0;max-width:40rem;font-size:1rem;line-height:1.6;}
  .on-dark{color:var(--paper);}
  .on-dark .tl-year{color:var(--gold-soft);}
  .on-dark .tl-node{background:#0A0D0F;border:2px solid var(--gold);}
  .on-dark p{color:rgba(237,231,218,.78);}

  /* SPEAKING topics */
  .topics{display:grid;gap:0;margin:0;padding:0;list-style:none;max-width:50rem;counter-reset:topic;}
  .topic{display:grid;grid-template-columns:3.2rem 1fr;gap:1.2rem;padding:1.5rem 0;border-top:1px solid var(--line);align-items:start;counter-increment:topic;}
  .topic:last-child{border-bottom:1px solid var(--line);}
  .topic .tn{font-family:var(--sans);font-weight:700;font-size:.86rem;color:var(--accent);padding-top:.3rem;}
  .topic .tn::before{content:counter(topic,decimal-leading-zero);}
  .topic h3{font-family:var(--serif);font-weight:500;font-size:clamp(1.15rem,2vw,1.5rem);margin:0 0 .35rem;letter-spacing:-.01em;color:var(--fg);}
  .topic p{margin:0;color:var(--fg-dim);max-width:42rem;font-size:1rem;}

  .cta-band{margin-top:2.6rem;display:flex;flex-wrap:wrap;gap:.9rem;align-items:center;}
  .btn-ox{background:var(--oxblood);color:#fff;border:1.5px solid var(--oxblood);}
  .btn-ox:hover{background:var(--oxblood-deep);border-color:var(--oxblood-deep);}
  .btn-line{background:transparent;color:var(--oxblood);border:1.5px solid var(--oxblood);}
  .btn-line:hover{background:var(--oxblood);color:#fff;}

  .split{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(1.6rem,4vw,3.5rem);align-items:start;}
  @media(max-width:820px){.split{grid-template-columns:1fr;}.hero-grid{grid-template-columns:1fr;row-gap:0;}.media-grid{grid-template-columns:1fr;}
    /* mobile stack: copy → portrait → CTAs, so the photo sits above both buttons */
    .hero-copy{grid-column:1;grid-row:1;}
    .hero-portrait{margin:.5rem auto 0;max-width:24rem;width:100%;grid-column:1;grid-row:2;}
    .hero-cta{grid-column:1;grid-row:3;margin-top:1.5rem;}}

  .credential{font-family:var(--sans);font-size:.8rem;line-height:1.6;color:var(--fg-dim);border-left:2px solid var(--oxblood);padding:.3rem 0 .3rem 1.1rem;margin-top:1.8rem;max-width:36rem;}
  .modalities{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.4rem 0 0;}
  .modalities span{font-family:var(--sans);font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;border:1px solid var(--line);color:var(--fg-dim);padding:.4rem .8rem;}

  /* photo slot (curated stills) */
  .photo{position:relative;overflow:hidden;background:radial-gradient(120% 80% at 70% 20%,color-mix(in srgb,var(--oxblood-bright) 14%,transparent),transparent 55%),linear-gradient(155deg,#10171c 0%,#0b0e10 60%,#161019 100%);border:1px solid rgba(203,161,90,.22);}
  .photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
  .photo .ph-cap{position:absolute;left:0;right:0;bottom:0;padding:1.7rem 1rem .85rem;display:flex;justify-content:space-between;align-items:baseline;gap:.6rem;font-family:var(--sans);z-index:1;background:linear-gradient(0deg,rgba(6,8,10,.84),rgba(6,8,10,.32) 55%,transparent);}
  .photo .ph-cap b{font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-soft);font-weight:600;}
  .photo .ph-cap span{font-size:.6rem;letter-spacing:.04em;color:rgba(237,231,218,.6);font-family:ui-monospace,Menlo,monospace;}
  .photo .ph-mark{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:30%;max-width:80px;opacity:.5;z-index:0;}

  /* One More Wave */
  .omw-card{position:relative;background:#0c1418;border:1px solid rgba(203,161,90,.22);overflow:hidden;aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;}
  .omw-card svg{width:78%;height:auto;}
  .sep-note{background:var(--bone-2);border-top:2px solid var(--oxblood);padding:1.3rem 1.5rem;margin-top:1.8rem;max-width:46rem;font-size:.98rem;color:var(--charcoal);}
  .sep-note strong{color:var(--ink);}
  .sep-note a{color:var(--oxblood);text-decoration:underline;text-underline-offset:2px;}
  .omw-links{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.5rem;}
  .omw-links a{font-family:var(--sans);font-size:.74rem;font-weight:600;letter-spacing:.04em;padding:.55rem 1rem;border:1.4px solid var(--oxblood);color:var(--oxblood);transition:background .2s,color .2s;}
  .omw-links a:hover{background:var(--oxblood);color:#fff;}
  .omw-quote{margin:1.9rem 0 0;padding:.1rem 0 .1rem 1.4rem;border-left:3px solid var(--oxblood);max-width:42rem;}
  .omw-quote p{font-family:var(--serif);font-style:italic;font-size:clamp(1.16rem,2.2vw,1.55rem);line-height:1.42;color:var(--ink);margin:0 0 .65rem;}
  .omw-quote cite{font-family:var(--sans);font-style:normal;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--charcoal);}

  /* MEDIA */
  .media-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(1.6rem,4vw,3rem);align-items:start;}
  /* mobile collapse — must follow the base rule (equal specificity; source order decides) */
  @media(max-width:820px){.media-grid{grid-template-columns:1fr;}}
  ol.listen{list-style:none;margin:0;padding:0;counter-reset:ep;}
  ol.listen li{counter-increment:ep;border-top:1px solid var(--line);}
  ol.listen li:last-child{border-bottom:1px solid var(--line);}
  ol.listen a{display:grid;grid-template-columns:2.4rem 1fr auto;gap:.9rem;align-items:baseline;padding:1.7rem .15rem;color:var(--fg);transition:color .2s;}
  ol.listen a:hover{color:var(--oxblood-bright);}
  .ep-n{font-family:var(--sans);font-weight:700;font-size:.78rem;color:var(--fg-dim);}
  .ep-n::before{content:counter(ep,decimal-leading-zero);}
  .ep-t{font-family:var(--serif);font-size:1.18rem;line-height:1.35;}
  .ep-s{display:block;font-family:var(--sans);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-dim);margin-bottom:.18rem;}
  .ep-m{font-family:var(--sans);font-size:.7rem;letter-spacing:.04em;color:var(--fg-dim);white-space:nowrap;}
  .stack-gap{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;}
  .stack-gap>a:last-of-type{grid-column:1/-1;}
  .stack-gap .vlabel b{font-size:.92rem;}
  @media(max-width:820px){.stack-gap{grid-template-columns:1fr;}.stack-gap>a:last-of-type{grid-column:auto;}.stack-gap .vlabel b{font-size:1.05rem;}}
  @media(max-width:540px){ol.listen a{grid-template-columns:2rem 1fr;}.ep-m{grid-column:2;}
    .cta-row{width:auto;flex-wrap:wrap;}.cta-row .btn,.cta-band .btn{flex:1 1 100%;text-align:center;}}

  /* PRESS WALL */
  .press-wall{display:flex;flex-wrap:wrap;gap:.5rem 2.2rem;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:1.7rem 0;}
  .press-wall a{font-family:var(--serif);font-style:italic;font-size:clamp(1.05rem,2.2vw,1.45rem);color:var(--fg-dim);transition:color .2s;}
  .press-wall a:hover{color:var(--accent);}

  /* AFFILIATE CARDS */
  .aff-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:0;max-width:54rem;}
  .aff-card{display:flex;flex-direction:column;gap:.3rem;padding:1.5rem;border:1px solid var(--line);margin:-.5px;transition:background .2s;}
  .aff-card:hover{background:color-mix(in srgb,var(--oxblood) 6%,transparent);}
  .aff-card .ac-name{font-family:var(--sans);font-weight:700;font-size:1rem;color:var(--fg);display:flex;justify-content:space-between;align-items:center;gap:1rem;}
  .aff-card .ac-name .arr{color:var(--accent);font-size:1.15rem;transition:transform .2s;}
  .aff-card:hover .ac-name .arr{transform:translateX(4px);}
  .aff-card .ac-desc{font-family:var(--sans);font-size:.8rem;color:var(--fg-dim);line-height:1.5;}
  .aff-card .ac-url{font-family:ui-monospace,Menlo,monospace;font-size:.66rem;color:var(--accent);margin-top:.35rem;letter-spacing:.01em;}
  @media(max-width:640px){.aff-grid{grid-template-columns:1fr;}}

  /* CONTACT */
  .contact-mail{font-family:var(--serif);font-style:italic;font-size:clamp(1.6rem,4.5vw,3rem);font-weight:400;display:inline-block;margin:.8rem 0 .3rem;border-bottom:2px solid var(--oxblood);padding-bottom:.15rem;color:var(--ink);}
  .contact-mail:hover{color:var(--oxblood);}
  .paths{display:flex;flex-wrap:wrap;gap:2rem 3rem;margin-top:2.4rem;}
  .paths .path{max-width:20rem;}
  .paths h3{font-family:var(--sans);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--oxblood);margin:0 0 .5rem;}
  .paths p{margin:0;font-size:.98rem;color:var(--charcoal);}

  /* footer */
  footer.site{background:var(--abyss);color:var(--paper);border-top:1px solid rgba(203,161,90,.2);}
  .foot-inner{max-width:var(--maxw);margin:0 auto;padding:clamp(2.6rem,5vw,3.6rem) var(--pad) 2.6rem;}
  .foot-top{display:flex;align-items:center;gap:.7rem;margin-bottom:1.6rem;}
  .disclaimer{font-family:var(--sans);font-size:.72rem;line-height:1.7;color:rgba(237,231,218,.6);max-width:54rem;margin-bottom:1.5rem;}
  .disclaimer strong{color:var(--gold);text-transform:uppercase;letter-spacing:.08em;font-weight:700;}
  .foot-row{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.8rem;font-family:var(--sans);font-size:.72rem;color:rgba(237,231,218,.6);border-top:1px solid rgba(237,231,218,.12);padding-top:1.3rem;}
  .foot-row a{color:rgba(237,231,218,.66);text-decoration:underline;text-underline-offset:2px;}
  /* variant switcher removed from B (director, 2026-08-16): B is the selected direction;
     A/C remain reachable by URL. The palette toggle stays. */

  /* reveal */
  html.js .reveal:not(.in){opacity:0;transform:translateY(26px);}
  html.js .reveal{transition:opacity .9s var(--ease),transform .9s var(--ease);}
  .reveal.in{opacity:1;transform:none;}
  .reveal.d1{transition-delay:.08s;} .reveal.d2{transition-delay:.16s;} .reveal.d3{transition-delay:.24s;}
  @media(prefers-reduced-motion:reduce){
    *{animation:none !important;transition:none !important;scroll-behavior:auto !important;}
    html.js .reveal:not(.in){opacity:1;transform:none;} html.js .tl-seam path{stroke-dashoffset:0;} .hero-bg .zoom{transform:none;}
  }

  button.btn{cursor:pointer;line-height:inherit;-webkit-appearance:none;appearance:none;}

  /* social row */
  .social-row{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.8rem;align-items:center;}
  .social-row a{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--sans);font-size:.78rem;font-weight:600;
    letter-spacing:.03em;color:var(--fg-dim);border:1.4px solid var(--line);padding:.5rem .85rem;transition:color .2s,border-color .2s;}
  .social-row a:hover{color:var(--accent);border-color:var(--accent);}
  .social-row svg{width:16px;height:16px;flex:none;}

/* 2026-08-17 audit S2: p.credential rendered 12.8px on mobile vs 18.25px body */
@media(max-width:640px){ p.credential{font-size:.95rem;} }
/* 2026-08-17 audit S3: hamburger 42x36, nav Book Alex 90x33, social chips 38px, footer links 72x12 */
@media(max-width:920px){
  .nav-toggle{min-width:44px;min-height:44px;}
  .nav-book{padding:0 .9rem;min-height:44px;display:inline-flex;align-items:center;white-space:nowrap;}
  .social-row a{min-height:44px;}
  .foot-row a{display:inline-block;padding:.35rem 0;font-size:.78rem;}
}

/* Date-sorted media grid (2026-08-20 restructure; featured spans both columns) */
.sorted-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;align-items:start;}
.sorted-grid .vlabel b{font-size:.92rem;}
@media(max-width:820px){.sorted-grid{grid-template-columns:1fr;}}
