:root{
  color-scheme: light;
  --ink:#141210;--paper:#FAF3E3;--paper-2:#F1E7D2;--blue:#2F5BFF;--blue-text:#2C55EE;--yellow:#FFC01C;
  --display:"Futura","Futura PT","Century Gothic","Helvetica Neue",Arial,sans-serif;
  --body:-apple-system,BlinkMacSystemFont,"Helvetica Neue","Segoe UI",Arial,sans-serif;
}
*{box-sizing:border-box;}
html,body{margin:0;}
html{scroll-behavior:smooth;}
body{background:var(--paper);color:var(--ink);font-family:var(--body);font-weight:600;-webkit-font-smoothing:antialiased;overflow-x:hidden;position:relative;}
.wrap{max-width:1240px;margin:0 auto;padding:0 clamp(18px,4vw,46px);}
a{color:inherit;}

/* Honest "not live yet" state for links waiting on a real URL from Steve.
   Dims the target and, via script.js, blocks the click so it never silently
   jumps to the top of the page. Applied with data-todo="slug" — see CLAUDE.md
   polish-pass item 4. */
[data-todo]{opacity:.5;}

.grain{position:fixed;inset:0;z-index:60;pointer-events:none;opacity:.04;mix-blend-mode:multiply;
  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.8' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}


/* ---- Substack bar, sits above the sticky nav ---- */
.topbar{display:block;background:var(--ink);border-bottom:2px solid var(--ink);text-decoration:none;
  position:relative;z-index:41;}
.topbar:hover{background:var(--blue);}
.tb-in{max-width:1240px;margin:0 auto;padding:11px 26px;display:flex;align-items:baseline;
  gap:8px 16px;flex-wrap:wrap;justify-content:center;text-align:center;}
.tb-lead{font-family:var(--display);font-weight:800;font-size:13.5px;letter-spacing:.02em;
  text-transform:uppercase;color:var(--paper);}
.tb-sub{font-size:13.5px;line-height:1.4;color:#C9BFA9;}
.topbar:hover .tb-sub{color:rgba(255,255,255,.85);}
.tb-go{font-family:var(--display);font-weight:800;font-size:12.5px;letter-spacing:.06em;
  text-transform:uppercase;color:var(--yellow);border-bottom:2px solid var(--yellow);padding-bottom:1px;}
.topbar:hover .tb-go{color:#fff;border-bottom-color:#fff;}
@media(max-width:700px){
  .tb-in{padding:10px 18px;gap:4px 12px;}
  .tb-sub{display:none;}
}

header{position:sticky;top:0;z-index:40;background:var(--paper);border-bottom:2px solid var(--ink);}
.nav{display:flex;align-items:center;justify-content:space-between;height:64px;}
.brand{font-family:var(--display);font-weight:800;letter-spacing:.01em;font-size:20px;text-transform:uppercase;text-decoration:none;color:var(--ink);}
.brand b{color:var(--blue);}
.navlinks{display:flex;gap:26px;align-items:center;font-family:var(--display);font-weight:700;font-size:13px;letter-spacing:.03em;text-transform:uppercase;}
.navlinks a{text-decoration:none;}
.navlinks a:hover,.navlinks a.active{color:var(--blue);}
.book{font-family:var(--display);font-weight:800;font-size:13px;letter-spacing:.03em;text-transform:uppercase;color:var(--paper);background:var(--ink);border:2px solid var(--ink);padding:11px 18px;cursor:pointer;box-shadow:4px 4px 0 var(--blue);transition:.12s;text-decoration:none;display:inline-block;}
.book:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--blue);}
@media(max-width:860px){.navlinks{display:none;}}

.dots{background-image:radial-gradient(rgba(20,18,16,.06) 1.1px,transparent 1.4px);background-size:24px 24px;}
.dots-l{background-image:radial-gradient(rgba(255,255,255,.05) 1.1px,transparent 1.4px);background-size:24px 24px;}

/* page hero (inner pages): eyebrow + big headline + lead + ctas */
.phero{position:relative;z-index:1;padding-top:clamp(40px,7vh,84px);padding-bottom:clamp(36px,6vh,60px);}
.phero .kick{margin-bottom:18px;}
.phero h1{font-family:var(--display);font-weight:800;text-transform:none;line-height:.92;letter-spacing:-.015em;font-size:clamp(40px,7vw,92px);margin:0;text-wrap:balance;}
.phero .lead{max-width:52ch;margin:22px 0 0;font-size:clamp(16px,1.6vw,20px);line-height:1.5;color:#413B31;}

/* homepage hero */
.hero{position:relative;z-index:1;padding:clamp(30px,5vh,54px) 0 clamp(46px,8vh,86px);}
.hero-grid{display:grid;grid-template-columns:1.32fr .68fr;gap:clamp(16px,2.6vw,42px);align-items:center;}
@media(max-width:920px){.hero-grid{grid-template-columns:1fr;}}
.toggle{display:inline-flex;margin-bottom:24px;border:2px solid var(--ink);box-shadow:4px 4px 0 var(--ink);}
.toggle button{font-family:var(--display);font-weight:800;font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink);background:var(--paper);border:none;padding:10px 18px;cursor:pointer;}
.toggle button+button{border-left:2px solid var(--ink);}
.toggle button[aria-selected="true"]{background:var(--ink);color:var(--paper);}
.eyebrow,.kick{font-family:var(--display);font-weight:700;font-size:12px;letter-spacing:.16em;text-transform:uppercase;}
.eyebrow{display:inline-block;margin-bottom:22px;}
.eyebrow::before{content:"";display:inline-block;width:26px;height:3px;background:var(--blue);vertical-align:middle;margin-right:12px;transform:translateY(-3px);}
.manifesto{margin:0;line-height:.9;font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:-.015em;}
.manifesto .ln{display:block;}
.manifesto .word{display:inline-block;font-size:clamp(46px,7.4vw,94px);transform:translateY(24px);opacity:0;}
.manifesto .box{background:var(--blue);color:#fff;border:3px solid var(--ink);box-shadow:7px 7px 0 var(--ink);padding:0 .16em .05em;margin:.05em 0;transform:translateY(24px) rotate(-2deg);}
.reveal .manifesto .word{opacity:1;transform:translateY(0);transition:transform .5s cubic-bezier(.2,.8,.2,1),opacity .35s ease;}
.reveal .manifesto .ln:nth-child(2) .word{transition-delay:.07s;}
.reveal .manifesto .box{transform:translateY(0) rotate(-2deg);}
.reveal .manifesto .ln:nth-child(3) .word{transition-delay:.14s;}
.sub{max-width:46ch;margin:26px 0 0;font-size:clamp(15px,1.45vw,18px);line-height:1.5;color:#2C2822;opacity:0;}
.sub b{color:var(--ink);border-bottom:3px solid var(--yellow);}
.reveal .sub{opacity:1;transition:opacity .4s ease .28s;}
.ctas{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px;}
.hero .ctas,.reveal .ctas{opacity:0;}
.reveal .ctas{opacity:1;transition:opacity .4s ease .4s;}
.btn{font-family:var(--display);font-weight:800;font-size:14px;letter-spacing:.04em;text-transform:uppercase;padding:15px 24px;cursor:pointer;border:2px solid var(--ink);text-decoration:none;display:inline-block;box-shadow:5px 5px 0 var(--ink);transition:.12s;}
.btn:hover{transform:translate(2px,2px);box-shadow:3px 3px 0 var(--ink);}
.btn-primary{background:var(--blue);color:#fff;}
.btn-ghost{background:var(--paper);color:var(--ink);}
.btn-light{background:var(--paper);color:var(--ink);box-shadow:5px 5px 0 var(--yellow);}
.btn-light:hover{box-shadow:3px 3px 0 var(--yellow);}

.visual{position:relative;}
.panel{position:relative;border:3px solid var(--ink);background:#211D17;aspect-ratio:3/4;transform:rotate(1.6deg);box-shadow:12px 12px 0 var(--ink);overflow:hidden;display:flex;align-items:center;justify-content:center;text-align:center;padding:26px;}
@media(max-width:920px){.panel{aspect-ratio:16/10;margin-top:24px;}}
.ph-label{font-family:var(--body);font-weight:600;font-size:12px;line-height:1.7;letter-spacing:.03em;text-transform:uppercase;color:#C9BFA9;max-width:26ch;}
.ph-label b{display:block;color:var(--yellow);margin-bottom:10px;letter-spacing:.12em;font-family:var(--display);font-weight:800;}
.tag{position:absolute;top:14px;left:14px;font-family:var(--display);font-weight:700;font-size:11px;letter-spacing:.1em;color:#C9BFA9;}
.tag i{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--blue);margin-right:7px;vertical-align:middle;animation:blink 1.4s infinite;}
@keyframes blink{50%{opacity:.3;}}

.banner{position:relative;z-index:2;background:var(--ink);color:var(--paper);}
.banner-row{display:flex;flex-wrap:wrap;gap:10px 30px;padding:16px 0;justify-content:center;align-items:center;font-family:var(--display);font-weight:700;font-size:clamp(12px,1.35vw,15px);letter-spacing:.05em;text-transform:uppercase;}
.banner-row .p{color:var(--yellow);}
.banner-row .dot{color:var(--blue);font-size:1.2em;line-height:0;}

section{position:relative;}
.sec{padding:clamp(56px,9vh,116px) 0;position:relative;}
.sec.dark{background:var(--ink);color:var(--paper);}
.sec.tint{background:var(--paper-2);}
.sec .kick{color:var(--blue-text);margin:0 0 16px;}
.dark .kick{color:var(--yellow);}
.h2{font-family:var(--display);font-weight:800;text-transform:none;line-height:.94;letter-spacing:-.01em;font-size:clamp(30px,4.6vw,58px);margin:0;text-wrap:balance;}
.lead{max-width:52ch;margin:20px 0 0;font-size:clamp(15px,1.4vw,18px);line-height:1.55;color:#413B31;}
.dark .lead{color:#CFC6B4;}

.rise{opacity:0;transform:translateY(26px);}
.rise.in{opacity:1;transform:none;transition:opacity .6s ease,transform .6s cubic-bezier(.2,.8,.2,1);}
/* Above-the-fold copy must be readable before JS runs, and must never be caught
   mid-fade. The reveal animation stays for content further down the page. */
.phero .rise,.hero .rise,.sig-hero .rise{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){.rise{opacity:1;transform:none;}}

.matrix{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:42px;}
@media(max-width:700px){.matrix{grid-template-columns:1fr;}}
.q{border:3px solid var(--ink);padding:26px;box-shadow:8px 8px 0 var(--ink);}
.q .lab{font-family:var(--display);font-weight:700;font-size:11px;letter-spacing:.12em;text-transform:uppercase;opacity:.7;}
.q h3{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(22px,2.6vw,30px);margin:6px 0 10px;}
.q p{margin:0;font-size:14.5px;line-height:1.5;}
.q.rock{background:var(--blue);color:#fff;}
.q.ego{background:var(--paper);}
.q.choice{background:var(--ink);color:var(--paper);}
.q.happy{background:var(--paper-2);}
.moves{margin-top:36px;display:flex;flex-wrap:wrap;gap:10px;}
.move{font-family:var(--display);font-weight:700;font-size:12.5px;letter-spacing:.02em;text-transform:uppercase;border:2px solid var(--ink);padding:9px 14px;background:var(--paper);box-shadow:3px 3px 0 var(--ink);}
.move.lead-move{background:var(--yellow);}

.season{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(24px,4vw,56px);align-items:center;}
@media(max-width:920px){.season{grid-template-columns:1fr;}}
.counter-wrap{margin-top:30px;display:flex;align-items:center;gap:20px;flex-wrap:wrap;}
.counter{font-family:var(--display);font-weight:800;font-size:clamp(64px,11vw,132px);line-height:1;letter-spacing:-.02em;color:var(--yellow);font-variant-numeric:tabular-nums;}
.counter-cap{font-size:13.5px;line-height:1.6;color:#CFC6B4;max-width:26ch;}
.counter-cap b{color:var(--paper);}
.portrait{position:relative;border:3px solid var(--ink);background:#26221A;aspect-ratio:4/5;box-shadow:14px 14px 0 var(--blue);overflow:hidden;display:flex;align-items:center;justify-content:center;text-align:center;padding:26px;transform:rotate(-1.4deg);}
.dark .portrait{border-color:var(--paper);}
.portrait .ph-label{color:#C4BBA8;}
.portrait img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;padding:0;}

.cards{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:44px;}
@media(max-width:760px){.cards{grid-template-columns:1fr;}}
.cards.three{grid-template-columns:1fr 1fr 1fr;}
@media(max-width:900px){.cards.three{grid-template-columns:1fr;}}
.card{border:3px solid var(--ink);background:var(--paper);box-shadow:8px 8px 0 var(--ink);padding:0 26px 26px;transition:.14s;text-decoration:none;color:inherit;display:block;}
.card.pad{padding:26px;}
.card:hover{transform:translate(-2px,-2px);box-shadow:11px 11px 0 var(--blue);}
.card .ct{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(20px,2.3vw,26px);margin:0 0 8px;}
.card p{margin:0 0 16px;font-size:14.5px;line-height:1.5;color:#413B31;}
.card .go{font-family:var(--display);font-weight:800;font-size:12.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--blue-text);}
.card-media{aspect-ratio:16/9;border-bottom:3px solid var(--ink);background:#211D17;margin:0 -26px 22px;display:flex;align-items:center;justify-content:center;text-align:center;padding:16px;}
.card-media span{font-family:var(--display);font-weight:700;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#6E6558;}
.card-media b{color:var(--yellow);display:block;margin-bottom:6px;}

.quote{margin-top:46px;border-left:5px solid var(--blue);padding:6px 0 6px 22px;}
.quote p{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(20px,2.6vw,30px);line-height:1.15;margin:0;}
.quote cite{display:block;margin-top:12px;font-style:normal;font-weight:700;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:#6E6558;}

/* simple list rows (e.g. what steve hosts / topics) */
.rows{margin-top:34px;border-top:2px solid var(--ink);}
.rows .row{display:flex;gap:18px;align-items:baseline;padding:16px 0;border-bottom:2px solid rgba(20,18,16,.12);}
.rows .row .n{font-family:var(--display);font-weight:800;color:var(--blue);font-size:14px;min-width:34px;}
.rows .row .rt{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(16px,1.8vw,20px);}
.rows .row .rd{color:#413B31;font-size:14.5px;line-height:1.5;}

/* accordion */
.acc{margin-top:34px;border-top:2px solid var(--ink);}
.acc details{border-bottom:2px solid rgba(20,18,16,.14);}
.acc summary{list-style:none;cursor:pointer;padding:20px 0;display:flex;justify-content:space-between;gap:18px;align-items:center;font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(18px,2.2vw,26px);}
.acc summary::-webkit-details-marker{display:none;}
.acc summary::after{content:"+";color:var(--blue);font-weight:800;font-size:26px;}
.acc details[open] summary::after{content:"\2013";}
.acc .body{padding:0 0 22px;color:#413B31;font-size:15px;line-height:1.6;max-width:64ch;}

/* form */
.form{margin-top:36px;max-width:560px;display:grid;gap:16px;}
.form label{font-family:var(--display);font-weight:700;font-size:12px;letter-spacing:.1em;text-transform:uppercase;display:block;margin-bottom:8px;}
.form input,.form select,.form textarea{width:100%;font-family:var(--body);font-weight:600;font-size:15px;padding:13px 14px;border:2px solid var(--ink);background:var(--paper);color:var(--ink);}
.form textarea{min-height:120px;resize:vertical;}
.embed-note{margin-top:8px;font-size:12.5px;color:#6E6558;font-style:italic;}

.closer{position:relative;background:var(--blue);color:#fff;text-align:center;padding:clamp(60px,10vh,116px) 0;overflow:hidden;}
.closer .h2{font-size:clamp(34px,5.4vw,72px);color:#fff;}
.closer p{max-width:44ch;margin:20px auto 30px;font-size:17px;line-height:1.5;color:rgba(255,255,255,.92);}

footer{background:var(--ink);color:var(--paper);padding:64px 0 40px;}
.fgrid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;}
@media(max-width:1040px){.fgrid{grid-template-columns:1.4fr 1fr 1fr;}}
@media(max-width:760px){.fgrid{grid-template-columns:1fr;gap:28px;}}
.fbig{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:24px;line-height:1.05;}
.fbig .hi{color:var(--yellow);}
.fnote{margin-top:16px;font-size:13px;color:#9C927E;line-height:1.6;}
.fcol h3{font-family:var(--display);font-weight:700;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#9C927E;margin:0 0 14px;}
.fcol a{display:block;text-decoration:none;font-weight:600;font-size:14px;margin-bottom:9px;color:var(--paper);}
.fcol a:hover{color:var(--yellow);}
.fbtm{margin-top:44px;padding-top:22px;border-top:1px solid #343027;display:flex;flex-wrap:wrap;gap:10px 24px;justify-content:space-between;font-size:12px;color:#9C927E;letter-spacing:.02em;}

/* ---- nav: dropdowns + mobile ---- */
.navtoggle{display:none;width:44px;height:40px;border:2px solid var(--ink);background:var(--paper);cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:0;box-shadow:3px 3px 0 var(--ink);}
.navtoggle span{display:block;width:20px;height:2.5px;background:var(--ink);}
.navmenu{display:flex;align-items:center;gap:26px;}
.navmenu>a,.navlink{font-family:var(--display);font-weight:700;font-size:13px;letter-spacing:.03em;text-transform:uppercase;text-decoration:none;color:var(--ink);background:none;border:none;cursor:pointer;padding:0;}
.navmenu>a:hover,.navlink:hover,.navmenu a.active,.navlink.active{color:var(--blue);}
.navitem{position:relative;padding:20px 0;}
.navlink::after{content:"\25BE";font-size:.7em;margin-left:6px;}
.dropdown{position:absolute;top:100%;left:50%;transform:translateX(-50%);min-width:220px;background:var(--paper);border:2px solid var(--ink);box-shadow:6px 6px 0 var(--ink);padding:8px;display:none;flex-direction:column;z-index:50;}
.navitem:hover .dropdown,.navitem:focus-within .dropdown,.navitem.open .dropdown{display:flex;}
.dropdown a{font-family:var(--display);font-weight:700;font-size:13px;letter-spacing:.02em;text-transform:uppercase;text-decoration:none;color:var(--ink);padding:11px 12px;white-space:nowrap;}
.dropdown a:hover,.dropdown a.active{background:var(--paper-2);color:var(--blue);}
.navmenu .book{margin-left:6px;}
@media(max-width:860px){
  .navtoggle{display:flex;}
  .navmenu{display:none;position:absolute;top:64px;left:0;right:0;background:var(--paper);border-bottom:2px solid var(--ink);flex-direction:column;align-items:stretch;padding:12px clamp(18px,4vw,46px) 22px;gap:0;}
  #site-nav.open .navmenu{display:flex;}
  .navitem{padding:0;}
  .navmenu>a,.navlink{padding:15px 0;font-size:16px;width:100%;text-align:left;border-bottom:1px solid rgba(20,18,16,.12);}
  .navlink::after{float:right;}
  .dropdown{position:static;transform:none;border:none;box-shadow:none;min-width:0;padding:2px 0 10px 16px;display:none;}
  .navitem.open .dropdown{display:flex;}
  .dropdown a{padding:11px 0;border-bottom:1px solid rgba(20,18,16,.08);}
  .navmenu .book{margin:16px 0 0;text-align:center;}
}

/* ---- inner-page hero with image ---- */
.phero-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:clamp(20px,4vw,52px);align-items:center;}
@media(max-width:920px){.phero-grid{grid-template-columns:1fr;}}
.phero-media{position:relative;border:3px solid var(--ink);background:#211D17;aspect-ratio:4/5;box-shadow:14px 14px 0 var(--blue);overflow:hidden;display:flex;align-items:center;justify-content:center;text-align:center;padding:26px;}
.phero-media .ph-label{color:#C9BFA9;}
.phero-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;padding:0;}
@media(max-width:920px){.phero-media{aspect-ratio:16/10;margin-top:6px;}}

@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;}
  .manifesto .word{opacity:1!important;transform:none!important;}
  .manifesto .box{transform:rotate(-2deg)!important;}
  .sub,.ctas{opacity:1!important;}
  .rise{opacity:1!important;transform:none!important;}
}

/* ============================================================
   LEGACY / STORY TIMELINE  (page: legacy.html)
   All classes prefixed .tl- to avoid collisions with site chrome.
   ============================================================ */

/* --- two clocks --- */
.tl-clockgrid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:26px;}
@media(max-width:760px){.tl-clockgrid{grid-template-columns:1fr;}}
.tl-clock{border:3px solid var(--ink);background:var(--paper-2);padding:26px 24px;box-shadow:8px 8px 0 var(--ink);}
.tl-clock.b{background:var(--ink);color:var(--paper);box-shadow:8px 8px 0 var(--blue);}
.tl-no{font-family:var(--display);font-weight:700;font-size:11px;letter-spacing:.16em;text-transform:uppercase;margin-bottom:14px;opacity:.72;}
.tl-clock h3{font-family:var(--display);font-weight:800;text-transform:uppercase;line-height:.98;letter-spacing:-.01em;font-size:clamp(20px,2.6vw,28px);margin:0 0 14px;}
.tl-clock p{margin:0;font-size:15px;line-height:1.55;color:#413B31;}
.tl-clock.b p{color:#CFC6B4;}
.tl-clock b{color:var(--ink);}
.tl-clock.b b{color:#fff;}
.tl-date{display:block;margin-top:16px;font-family:var(--display);font-weight:800;font-size:13px;letter-spacing:.05em;text-transform:uppercase;color:var(--blue);}
.tl-clock.b .tl-date{color:var(--yellow);}
.tl-clocknote{margin:30px 0 0;font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(18px,2.6vw,30px);line-height:1.1;letter-spacing:-.01em;color:var(--ink);}
.tl-clocknote i{font-style:normal;background:var(--yellow);padding:0 .12em;box-shadow:4px 4px 0 var(--ink);display:inline-block;}

/* --- acts --- */
.tl-actnum{font-family:var(--display);font-weight:800;font-size:clamp(52px,10vw,110px);line-height:.78;color:transparent;-webkit-text-stroke:2px var(--ink);margin-bottom:8px;}
.dark .tl-actnum{-webkit-text-stroke-color:var(--paper);}
.tl-years{font-family:var(--display);font-weight:700;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--blue-text);margin:14px 0 0;}

/* --- the spine --- */
.tl-line{border-left:3px solid var(--ink);margin:38px 0 0 10px;padding-left:clamp(22px,3.4vw,38px);}
.tl-beat{position:relative;padding-bottom:34px;}
.tl-beat:last-child{padding-bottom:0;}
.tl-beat::before{content:"";position:absolute;left:calc(-1 * clamp(22px,3.4vw,38px) - 10.5px);top:5px;width:18px;height:18px;background:var(--paper);border:3px solid var(--ink);border-radius:50%;}
.tl-beat.key::before{background:var(--blue);}
.tl-stamp{display:inline-block;font-family:var(--display);font-weight:800;font-size:11px;letter-spacing:.07em;text-transform:uppercase;border:2px solid var(--ink);padding:4px 10px 3px;margin-bottom:12px;background:var(--paper);}
.tl-beat.key .tl-stamp{background:var(--blue);color:#fff;box-shadow:3px 3px 0 var(--ink);}
.tl-beat h3{font-family:var(--display);font-weight:800;text-transform:uppercase;line-height:1;letter-spacing:-.01em;font-size:clamp(19px,2.3vw,27px);margin:0 0 12px;text-wrap:balance;}
.tl-beat p{max-width:58ch;margin:0 0 11px;font-size:clamp(15px,1.4vw,17px);line-height:1.55;color:#413B31;}
.tl-beat p:last-child{margin-bottom:0;}
.tl-beat b{color:var(--ink);}
.tl-beat em{font-style:normal;color:var(--ink);border-bottom:3px solid var(--yellow);}

/* --- "the birth of" callout --- */
.tl-born{margin-top:16px;border-left:6px solid var(--blue);background:var(--paper-2);padding:13px 17px;}
.tl-born span{display:block;font-family:var(--display);font-weight:800;font-size:10.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--blue);margin-bottom:6px;}
.tl-born p{margin:0;font-size:16px;line-height:1.4;color:var(--ink);font-weight:800;font-family:var(--display);text-transform:uppercase;letter-spacing:-.005em;max-width:none;}

/* --- method table --- */
.tl-table{border:3px solid var(--ink);box-shadow:10px 10px 0 var(--blue);background:var(--paper);margin-top:34px;}
.tl-row{display:grid;grid-template-columns:minmax(200px,1fr) 1.7fr 74px;gap:16px;padding:15px 18px;border-bottom:2px solid var(--ink);align-items:center;}
.tl-row:last-child{border-bottom:none;}
.tl-row.hd{background:var(--ink);}
.tl-row.hd span{font-family:var(--display);font-weight:700;font-size:10.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--paper);}
.tl-mv{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:14px;line-height:1.15;}
.tl-src{font-size:14.5px;line-height:1.45;color:#413B31;}
.tl-age{font-family:var(--display);font-weight:800;font-size:13.5px;text-align:right;color:var(--blue);}
@media(max-width:760px){
  .tl-row{grid-template-columns:1fr;gap:6px;padding:15px 16px;}
  .tl-row.hd{display:none;}
  .tl-age{text-align:left;}
}

/* inner-page hero highlight box (index.html scopes .box to .manifesto only) */
.phero h1 .box{background:var(--blue);color:#fff;border:3px solid var(--ink);box-shadow:7px 7px 0 var(--ink);padding:0 .14em .04em;margin:.06em 0;display:inline-block;transform:rotate(-2deg);}

/* ============================================================
   HOMEPAGE INTERACTIVITY
   ============================================================ */

/* --- goal grid --- */
.goals{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:44px;}
@media(max-width:900px){.goals{grid-template-columns:1fr;}}
.goal{border:3px solid var(--ink);background:var(--paper);box-shadow:8px 8px 0 var(--ink);padding:26px;display:flex;flex-direction:column;transition:transform .14s,box-shadow .14s;}
.goal:hover{transform:translate(-3px,-3px);box-shadow:12px 12px 0 var(--blue);}
.goal .gnum{font-family:var(--display);font-weight:800;font-size:13px;letter-spacing:.1em;color:var(--blue-text);margin-bottom:14px;}
.goal h3{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(19px,2.1vw,24px);line-height:1.02;margin:0 0 12px;text-wrap:balance;}
.goal p{font-size:14.5px;line-height:1.5;color:#413B31;margin:0 0 20px;}
.glinks{margin-top:auto;display:flex;flex-direction:column;gap:2px;border-top:2px solid var(--ink);padding-top:14px;}
.glinks a{font-family:var(--display);font-weight:800;font-size:12.5px;letter-spacing:.03em;text-transform:uppercase;text-decoration:none;padding:7px 0;display:flex;justify-content:space-between;align-items:center;gap:10px;transition:.12s;}
.glinks a span{color:var(--blue);transition:transform .14s;display:inline-block;}
.glinks a:hover{color:var(--blue);}
.glinks a:hover span{transform:translateX(5px);}
.goal.free{background:var(--ink);color:var(--paper);box-shadow:8px 8px 0 var(--blue);}
.goal.free:hover{box-shadow:12px 12px 0 var(--yellow);}
.goal.free p{color:#CFC6B4;}
.goal.free .gnum{color:var(--yellow);}
.goal.free .glinks{border-top-color:#4A4437;}
.goal.free .glinks a span{color:var(--yellow);}
.goal.free .glinks a:hover{color:var(--yellow);}

/* --- interactive 2x2 --- */
.matrix .q{position:relative;text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;
  transition:transform .14s,box-shadow .14s;-webkit-appearance:none;appearance:none;}
.matrix .q:hover{transform:translate(-3px,-3px);box-shadow:12px 12px 0 var(--blue);}
.matrix .q[aria-pressed="true"]{transform:translate(-3px,-3px);box-shadow:12px 12px 0 var(--yellow);}
.matrix .q:focus-visible{outline:4px solid var(--blue);outline-offset:4px;}
.q .plus{position:absolute;top:16px;right:18px;width:26px;height:26px;border:2px solid currentColor;display:flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:800;font-size:16px;line-height:1;opacity:.55;transition:.16s;}
.matrix .q:hover .plus,.matrix .q[aria-pressed="true"] .plus{opacity:1;}
.matrix .q[aria-pressed="true"] .plus{transform:rotate(45deg);}
.q-hint{margin-top:18px;font-family:var(--display);font-weight:700;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);display:flex;align-items:center;gap:10px;}
.q-hint i{font-style:normal;display:inline-block;width:9px;height:9px;background:var(--blue);border-radius:50%;animation:qpulse 1.9s ease-in-out infinite;}
@keyframes qpulse{0%,100%{transform:scale(1);opacity:1;}50%{transform:scale(1.7);opacity:.35;}}
.q-hint.gone{display:none;}

/* --- matrix detail panel --- */
.mdetail{margin-top:22px;border:3px solid var(--ink);background:var(--paper);box-shadow:10px 10px 0 var(--ink);
  overflow:hidden;max-height:0;opacity:0;transition:max-height .42s cubic-bezier(.2,.8,.2,1),opacity .3s ease,margin .3s ease;}
.mdetail.open{max-height:900px;opacity:1;}
.mdetail-in{padding:28px 30px 30px;border-top:8px solid var(--blue);}
.mdetail .mlab{font-family:var(--display);font-weight:700;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--blue-text);}
.mdetail h3{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(24px,3.2vw,36px);margin:8px 0 14px;line-height:1;}
.mdetail .mbody{font-size:16px;line-height:1.55;color:#413B31;max-width:58ch;margin:0 0 18px;}
.mdetail .mdo{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:13px;letter-spacing:.05em;margin:0 0 8px;}
.mdetail .mmoves{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 18px;}
.mdetail .mmoves span{font-family:var(--display);font-weight:700;font-size:12.5px;text-transform:uppercase;border:2px solid var(--ink);padding:9px 14px;background:var(--paper-2);box-shadow:3px 3px 0 var(--ink);}
.morigin{border-left:6px solid var(--yellow);background:var(--paper-2);padding:13px 17px;font-size:14.5px;line-height:1.5;color:var(--ink);}
.morigin .mlabel{font-family:var(--display);font-weight:800;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#6E6558;display:block;margin-bottom:5px;}
.morigin b{color:var(--ink);font-weight:800;}
.morigin a{color:var(--blue-text);font-weight:800;}

/* --- quote, line by line --- */
.quote .qline{display:block;opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .55s cubic-bezier(.2,.8,.2,1);}
.quote.in .qline{opacity:1;transform:none;}
.quote.in .qline:nth-child(2){transition-delay:.13s;}
.quote.in .qline:nth-child(3){transition-delay:.26s;}

/* --- story band extras --- */
.vow{margin-top:26px;border-left:6px solid var(--yellow);padding:4px 0 4px 20px;}
.vow p{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(17px,2.1vw,24px);line-height:1.12;margin:0;color:var(--ink);}
.vow small{display:block;margin-top:10px;font-family:var(--body);font-weight:600;font-size:14.5px;line-height:1.55;color:#CFC6B4;text-transform:none;letter-spacing:0;}

@media(prefers-reduced-motion:reduce){
  .q-hint i{animation:none;}
  .mdetail{transition:none;}
  .quote .qline{opacity:1;transform:none;transition:none;}
}

/* the button reset above sets color:inherit at equal specificity to .q.rock/.q.choice,
   so the coloured quadrants need restating with the .matrix prefix to win */
.matrix .q.rock{color:#fff;}
.matrix .q.choice{color:var(--paper);}

/* ============================================================
   SHARED PAGE COMPONENTS
   Promoted out of speaking.html / contact.html so every page
   can use them. Page-level <style> blocks still override.
   ============================================================ */

/* second-level hero line */
.h1sub{font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:-.01em;
  font-size:clamp(19px,2.7vw,32px);line-height:1;color:var(--blue);margin:20px 0 0;}

/* numbered process steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:40px;}
@media(max-width:900px){.steps{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.steps{grid-template-columns:1fr;}}
.steps.three{grid-template-columns:repeat(3,1fr);}
@media(max-width:900px){.steps.three{grid-template-columns:1fr;}}
.step{border-top:3px solid var(--ink);padding-top:16px;}
.step .sn{font-family:var(--display);font-weight:800;font-size:13px;color:var(--blue-text);margin-bottom:10px;}
.step h3{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:17px;margin:0 0 8px;}
.step p{margin:0;font-size:14.5px;line-height:1.55;color:#413B31;}
.dark .step{border-top-color:#4A4437;}
.dark .step .sn{color:var(--yellow);}
.dark .step h3{color:var(--paper);}
.dark .step p{color:#CFC6B4;}

/* testimonial row */
.fb{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px;}
@media(max-width:900px){.fb{grid-template-columns:1fr;}}
.fbq{border:3px solid var(--ink);background:var(--paper);box-shadow:8px 8px 0 var(--ink);padding:26px;}
.fbq p{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(16px,1.9vw,21px);line-height:1.14;margin:0 0 14px;}
.fbq cite{font-style:normal;font-family:var(--display);font-weight:700;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#6E6558;}
.fbq.hi{background:var(--ink);box-shadow:8px 8px 0 var(--blue);}
.fbq.hi p{color:var(--paper);}
.fbq.hi cite{color:var(--yellow);}

/* investment cards (sit on .sec.dark) */
.inv{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:38px;}
@media(max-width:820px){.inv{grid-template-columns:1fr;}}
.invc{border:3px solid var(--paper);padding:26px;}
.invc h3{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:16px;margin:0 0 10px;color:var(--paper);}
.invc .amt{font-family:var(--display);font-weight:800;font-size:clamp(26px,3.4vw,40px);line-height:1;color:var(--yellow);margin-bottom:12px;}
.invc p{margin:0;font-size:14.5px;line-height:1.55;color:#CFC6B4;}

/* generic 2-column: copy left, image or cutout right */
.splitgrid{display:grid;grid-template-columns:1.3fr .9fr;gap:32px;align-items:center;}
@media(max-width:860px){.splitgrid{grid-template-columns:1fr;}}
.split-media{border:3px solid var(--ink);box-shadow:8px 8px 0 var(--blue);overflow:hidden;aspect-ratio:16/9;}
.dark .split-media{border-color:var(--paper);}
.split-media img{width:100%;height:100%;object-fit:cover;object-position:center 15%;display:block;}

/* video tiles */
.vtile{position:relative;border:3px solid var(--paper);background:#211D17;box-shadow:10px 10px 0 var(--blue);
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:34px 26px;min-height:230px;text-decoration:none;transition:transform .14s,box-shadow .14s;}
.vtile:hover{transform:translate(-3px,-3px);box-shadow:14px 14px 0 var(--yellow);}
.vplay{width:56px;height:56px;border:3px solid var(--yellow);border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:16px;}
.vplay i{border-left:15px solid var(--yellow);border-top:9px solid transparent;border-bottom:9px solid transparent;margin-left:5px;}
.vtile .vt{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(17px,2vw,22px);color:var(--paper);}
.vtile .vs{font-size:13px;line-height:1.5;color:#C4BBA8;margin-top:8px;max-width:34ch;}

/* reel + two stacked videos: big reel left, two compact tiles right */
.reelgrid{display:grid;grid-template-columns:1.2fr .9fr;gap:20px;margin-top:40px;align-items:stretch;}
@media(max-width:900px){.reelgrid{grid-template-columns:1fr;}}
.side-col{display:flex;flex-direction:column;gap:16px;}
.vtile.reel-main{min-height:100%;}
.vtile.compact{min-height:150px;padding:24px 20px;}
.vtile.compact .vplay{width:44px;height:44px;margin-bottom:10px;}
.vtile.compact .vt{font-size:16px;}

/* embed placeholder */
.embedslot{border:3px dashed rgba(20,18,16,.3);background:var(--paper-2);padding:26px;text-align:center;}
.dark .embedslot{border-color:rgba(250,243,227,.3);background:rgba(250,243,227,.05);}
.embedslot p{margin:0;font-family:var(--display);font-weight:700;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#6E6558;line-height:1.8;}
.embedslot b{display:block;color:var(--blue);margin-bottom:8px;}

/* the vow / pull-note block */
.vow{margin-top:26px;border-left:6px solid var(--yellow);padding:4px 0 4px 20px;}
.vow p{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(17px,2.1vw,24px);line-height:1.12;margin:0;}
.dark .vow p{color:var(--paper);}
.vow small{display:block;margin-top:10px;font-family:var(--body);font-weight:600;font-size:14.5px;line-height:1.55;color:#413B31;text-transform:none;letter-spacing:0;}
.dark .vow small{color:#CFC6B4;}

/* four-up card grid (index + meet-steve). Was an inline style that beat the media query. */
.cards.four{grid-template-columns:1fr 1fr;}
@media(max-width:760px){.cards.four{grid-template-columns:1fr;}}
/* rotated blocks add width to their bounding box — straighten them on small screens */
/* rotated blocks go full-width once the hero stacks, and rotation then overflows */
@media(max-width:920px){.panel,.portrait,.phero-media{transform:none!important;}}
@media(max-width:700px){
  .manifesto .box,.phero h1 .box{transform:none!important;}
  .card-media{margin-left:-20px;margin-right:-20px;}
  .card{padding-left:20px;padding-right:20px;}
}
/* rotated panels need a little side room or their corners exceed the viewport */
.panel,.portrait{margin-left:10px;margin-right:10px;}
@media(max-width:920px){.panel,.portrait{margin-left:0;margin-right:0;}}

/* ============================================================
   HERO TYPE — one system. Was nine different clamps.
   ============================================================ */
.phero h1{font-size:clamp(40px,6.2vw,84px);text-wrap:balance;}
.hero-long .phero h1{font-size:clamp(34px,5vw,66px);}

/* ============================================================
   CUTOUT PORTRAITS
   Transparent-background figures stand ON a colour block rather
   than sitting inside a frame. Head breaks the top edge.
   ============================================================ */
.cutout{position:relative;display:flex;align-items:flex-end;justify-content:center;padding-top:6%;}
.cutout::before{
  content:"";position:absolute;left:4%;right:4%;bottom:0;height:76%;
  background:var(--blue);border:3px solid var(--ink);box-shadow:12px 12px 0 var(--ink);}
.cutout::after{
  content:"";position:absolute;left:4%;right:4%;bottom:0;height:76%;
  background-image:radial-gradient(rgba(255,255,255,.14) 1.1px,transparent 1.4px);background-size:22px 22px;}
.cutout img{position:relative;z-index:1;display:block;width:100%;height:auto;
  max-width:min(100%,460px);filter:drop-shadow(0 18px 24px rgba(20,18,16,.22));}
@media(max-width:920px){
  .cutout{max-width:420px;margin:0 auto;}
  .cutout::before,.cutout::after{height:72%;}
}

/* ============================================================
   HOMEPAGE HERO — full-bleed background video
   Vimeo background embeds ignore object-fit, so the iframe is
   oversized and centred to cover. Scrim keeps the copy readable.
   ============================================================ */
.hero-wrap{position:relative;overflow:hidden;background:var(--paper);}
.hero-bg{position:absolute;inset:0;z-index:0;overflow:hidden;}
.hero-bg iframe{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:100vw;height:56.25vw;min-height:100%;min-width:177.78vh;border:0;pointer-events:none;}
.hero-scrim{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(102deg,
    rgba(250,243,227,.95) 0%, rgba(250,243,227,.93) 34%,
    rgba(250,243,227,.74) 62%, rgba(250,243,227,.46) 86%, rgba(250,243,227,.40) 100%);}
.hero-wrap .wrap.hero{position:relative;z-index:2;}

/* cutout standing directly on the video — no colour block behind.
   It deliberately overflows the hero: the dark proof banner crosses him
   at shin height and his feet land in the next section's top padding. */
.cutout.on-video::before,.cutout.on-video::after{display:none;}
.cutout.on-video{padding-top:0;align-items:flex-end;}
.cutout.on-video img{max-width:none;width:clamp(340px,40vw,700px);
  margin-bottom:clamp(-230px,-15vw,-120px);   /* overflow without adding hero height */
  filter:drop-shadow(0 30px 40px rgba(20,18,16,.38)) drop-shadow(0 4px 12px rgba(20,18,16,.22));}

/* stacking: hero content above the next section, banner above everything */
.hero-wrap{position:relative;z-index:3;overflow:visible;}
.hero-wrap .hero-bg{overflow:hidden;}          /* video still clipped to the hero */
.hero-wrap .hero-grid{grid-template-columns:1.06fr .94fr;align-items:end;}
.hero-wrap .hero-copy{padding-bottom:clamp(16px,4vh,48px);}
body[data-page="home"] .banner{position:relative;z-index:5;}
body[data-page="home"] #doors{position:relative;z-index:1;padding-top:clamp(90px,11vh,150px);}

@media(max-width:920px){
  .hero-wrap{overflow:hidden;}
  .hero-wrap .hero-grid{grid-template-columns:1fr;}
  .cutout.on-video img{width:min(76vw,440px);margin-bottom:0;}
  body[data-page="home"] #doors{padding-top:clamp(56px,9vh,116px);}
}

/* motion-sensitive users get a still hero, not a looping montage */
@media(prefers-reduced-motion:reduce){
  .hero-bg{display:none;}
  .hero-scrim{background:var(--paper);}
}
/* small screens: video costs bandwidth and the crop stops working */
@media(max-width:700px){
  .hero-bg{display:none;}
  .hero-scrim{background:var(--paper);}
  .cutout.on-video::before,.cutout.on-video::after{display:block;}
}

/* ============================================================
   IMAGERY
   ============================================================ */

/* page-hero cutouts: figure stands on a colour block, head over the edge */
.phero-media-wrap{position:relative;display:flex;align-items:flex-end;justify-content:center;}
.phero-media-wrap .cutout{width:100%;}
.phero-media-wrap .cutout::before{background:var(--blue);}
.dark .phero-media-wrap .cutout::before{background:var(--ink);border-color:var(--paper);}

/* photos inside card media slots */
.card-media{padding:0;overflow:hidden;}
.card-media img{width:100%;height:100%;object-fit:cover;display:block;}

/* video tiles with a real still behind */
.vtile.has-img{overflow:hidden;}
.vtile .vbg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  filter:grayscale(.25) brightness(.52);transition:transform .5s ease,filter .3s;}
.vtile.has-img:hover .vbg{transform:scale(1.05);filter:grayscale(0) brightness(.62);}
.vtile.has-img .vplay,.vtile.has-img .vt,.vtile.has-img .vs{position:relative;z-index:1;}

/* podcast row thumbnails */
.ep.has-thumb{grid-template-columns:96px 1fr auto;}
.ep .epthumb{width:96px;aspect-ratio:16/9;object-fit:cover;border:2px solid var(--ink);display:block;}

/* book mockups float above the block and lift on hover */
.bk .cov{aspect-ratio:3/2;padding:20px 18px 10px;}
.bk .cov::before{height:66%;background:var(--paper-2);}
.bk .cov::after{content:"";position:absolute;left:0;right:0;bottom:0;height:66%;
  background-image:radial-gradient(rgba(20,18,16,.07) 1.1px,transparent 1.4px);background-size:20px 20px;}
.bk .cov img{max-width:88%;max-height:96%;object-fit:contain;}
.ls .cov{width:140px;aspect-ratio:3/2;}
.ls .cov::before{height:70%;}

/* ============================================================
   SCROLL COMPANION — a cutout that rides down the method section
   ============================================================ */
/* he sits under the 2x2 and points back up at it */
.hintrow{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;}
.rider{width:clamp(120px,15vw,190px);flex:none;margin:-10px 0 -14px;pointer-events:none;
  opacity:0;transform:translateY(34px) rotate(-3deg);
  transition:opacity .55s ease,transform .8s cubic-bezier(.2,.8,.2,1);}
.rider.in{opacity:1;transform:translateY(0) rotate(-3deg);}
.rider img{width:100%;height:auto;display:block;
  filter:drop-shadow(0 14px 18px rgba(20,18,16,.26));}
@media(max-width:820px){.rider{display:none;}}
@media(prefers-reduced-motion:reduce){.rider{transition:none;}}

/* pixel Steve — the easter egg */
.pixel-steve{width:74px;height:auto;image-rendering:pixelated;vertical-align:middle;margin-right:12px;}

/* ============================================================
   PHONES — the homepage hero, centred and tightened.
   Sits at the end so it wins over the earlier desktop rules.
   ============================================================ */
@media(max-width:700px){

  /* the whole hero column centres */
  .hero-wrap .hero-copy{text-align:center;padding-bottom:0;}
  .hero-wrap .hero-grid{gap:8px;}
  .hero{padding:22px 0 30px;}

  /* toggle: three buttons have to fit, and sit in the middle */
  .toggle{display:inline-flex;flex-wrap:nowrap;max-width:100%;margin:0 auto 18px;box-shadow:3px 3px 0 var(--ink);}
  .toggle button{font-size:10.5px;letter-spacing:.03em;padding:9px 10px;white-space:nowrap;flex:1 1 auto;}

  /* eyebrow loses its rule so it centres cleanly */
  .hero-wrap .eyebrow{display:block;margin-bottom:14px;font-size:11px;letter-spacing:.13em;}
  .hero-wrap .eyebrow::before{display:none;}

  /* headline sized so three lines land above the fold */
  .hero-wrap .manifesto .word{font-size:clamp(38px,12.5vw,56px);}
  .hero-wrap .manifesto .box{box-shadow:5px 5px 0 var(--ink);}

  .hero-wrap .sub{margin:16px auto 0;max-width:34ch;font-size:15px;}
  .hero-wrap .ctas{justify-content:center;margin-top:22px;gap:12px;}
  .hero-wrap .ctas .btn{flex:0 1 auto;text-align:center;padding:14px 18px;font-size:13px;box-shadow:4px 4px 0 var(--ink);}

  /* cutout: smaller, centred, and pulled up under the copy */
  .hero-wrap .visual{display:flex;justify-content:center;}
  .cutout.on-video{padding-top:0;}
  .cutout.on-video img{width:min(62vw,300px);margin:6px auto 0;}
}

/* video lightbox: click any [data-video] tile to play inline instead of leaving the site */
html.vlightbox-locked{overflow:hidden;}
.vlightbox{position:fixed;inset:0;z-index:999;display:none;align-items:center;justify-content:center;background:rgba(20,18,16,.92);padding:24px;}
.vlightbox.open{display:flex;}
.vlightbox-inner{position:relative;width:100%;max-width:1000px;}
.vlightbox-frame{position:relative;width:100%;aspect-ratio:16/9;background:#000;border:3px solid var(--paper);box-shadow:8px 8px 0 var(--blue);}
.vlightbox-frame iframe{position:absolute;inset:0;width:100%;height:100%;}
.vlightbox-close{position:absolute;top:-42px;right:0;width:36px;height:36px;border:3px solid var(--paper);border-radius:50%;background:var(--ink);color:var(--paper);font-size:22px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.vlightbox-close:hover{background:var(--blue);border-color:var(--blue);}
@media (max-width:600px){
  .vlightbox{padding:14px;}
  .vlightbox-close{top:-38px;width:32px;height:32px;font-size:19px;}
}

/* ============================================================
   2026-09 REBUILD: the Bat signal and the quests
   Added on top of the existing system. Nothing above is removed.
   ============================================================ */

/* --- spotlight beam: a cone of light from the top-right corner.
       Used behind the homepage hero, the signal page hero and the
       Why Batman section. Generic light, never an emblem. --- */
.beam{position:relative;overflow:hidden;}
.beam::before{content:"";position:absolute;inset:-20% -10% 0 auto;width:80%;pointer-events:none;z-index:0;
  background:conic-gradient(from 195deg at 100% 0%,transparent 0deg,rgba(255,192,28,.26) 12deg,rgba(255,192,28,.10) 30deg,transparent 46deg);}
.dark.beam::before,.sec.dark.beam::before{background:conic-gradient(from 195deg at 100% 0%,transparent 0deg,rgba(255,192,28,.30) 12deg,rgba(255,192,28,.08) 32deg,transparent 48deg);}
.beam>*{position:relative;z-index:1;}

/* --- homepage hero (v3): headline, one line, two door tiles --- */
.hero3{padding-top:clamp(18px,3vh,32px);padding-bottom:0;}
.hero3-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(16px,3vw,48px);align-items:end;}
@media(max-width:920px){.hero3-grid{grid-template-columns:1fr;}}
.hero3 h1{font-family:var(--display);font-weight:800;text-transform:uppercase;line-height:.9;letter-spacing:-.02em;
  font-size:clamp(30px,3.9vw,54px);margin:0;text-wrap:initial;}
.hero3 h1 .ln{display:block;white-space:nowrap;}
@media(max-width:700px){.hero3 h1 .ln{white-space:normal;}}
.hero3 h1 .box{background:var(--blue);color:#fff;border:3px solid var(--ink);box-shadow:7px 7px 0 var(--ink);padding:0 .14em .04em;margin:.06em 0;display:inline-block;transform:rotate(-2deg);}
.hero3 .oneline{max-width:60ch;margin:16px 0 0;font-size:clamp(15px,1.2vw,16.5px);line-height:1.5;color:#2C2822;}
.hero3 .cutout img{max-width:min(100%,330px);}
.hero3 .visual{align-self:end;}

.doors{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:clamp(18px,3vh,28px) 0 0;position:relative;z-index:2;}
@media(max-width:860px){.doors{grid-template-columns:1fr;}}
.door{border:3px solid var(--ink);background:var(--paper);box-shadow:8px 8px 0 var(--ink);padding:20px 24px 22px;display:flex;flex-direction:column;}
.door.signal{background:var(--ink);color:var(--paper);box-shadow:8px 8px 0 var(--blue);}
.door.quests{background:var(--paper-2);}
.door .dlab{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;}
.door .dlab b{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(20px,2.2vw,26px);letter-spacing:-.01em;}
.door .dlab span{font-family:var(--display);font-weight:700;font-size:11px;letter-spacing:.14em;text-transform:uppercase;opacity:.7;}
.door.signal .dlab span{color:var(--yellow);opacity:1;}
.door p{margin:0 0 16px;font-size:14.5px;line-height:1.5;color:#413B31;flex:1;}
.door.signal p{color:#D7D0C5;}
.door .ctas{margin:0;gap:12px;opacity:1;}
.door .btn{padding:13px 18px;font-size:13px;}
.door.signal .btn-ghost{background:transparent;color:var(--paper);border-color:var(--paper);box-shadow:5px 5px 0 rgba(250,243,227,.35);}
.door.signal .btn-ghost:hover{box-shadow:3px 3px 0 rgba(250,243,227,.35);}
.door.signal .btn-primary{box-shadow:5px 5px 0 var(--yellow);}
.door.signal .btn-primary:hover{box-shadow:3px 3px 0 var(--yellow);}

/* --- proof strip: word logos, no images --- */
.proof{display:flex;flex-wrap:wrap;gap:8px 26px;align-items:center;margin-top:28px;padding-top:18px;border-top:2px solid var(--ink);
  font-family:var(--display);font-weight:700;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#6E6558;}
.proof b{color:var(--ink);}
.dark .proof{border-top-color:#4A4437;color:#9C927E;}
.dark .proof b{color:var(--paper);}

/* --- realm cards --- */
.realms{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:44px;}
@media(max-width:860px){.realms{grid-template-columns:1fr;}}
.realm{border:3px solid var(--ink);background:var(--paper);box-shadow:8px 8px 0 var(--ink);padding:26px;transition:transform .14s,box-shadow .14s;}
.realm:hover{transform:translate(-3px,-3px);box-shadow:12px 12px 0 var(--blue);}
.realm .rn{font-family:var(--display);font-weight:800;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--blue-text);margin-bottom:12px;}
.realm h3{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(20px,2.2vw,26px);line-height:1.02;margin:0 0 10px;}
.realm .sig{font-family:var(--display);font-weight:800;font-size:15px;line-height:1.25;margin:0 0 12px;color:var(--ink);border-left:5px solid var(--yellow);padding-left:12px;}
.realm p{margin:0;font-size:15px;line-height:1.55;color:#413B31;}
.realm .tags{margin-top:16px;display:flex;flex-wrap:wrap;gap:8px;}
.realm .tags span{font-family:var(--display);font-weight:700;font-size:11px;letter-spacing:.04em;text-transform:uppercase;border:2px solid var(--ink);padding:6px 10px;background:var(--paper-2);}

/* --- formats row: stage / room / call --- */
.formats{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:40px;}
@media(max-width:1000px){.formats{grid-template-columns:1fr 1fr;}}
@media(max-width:900px){.formats{grid-template-columns:1fr;}}
.fmt{border-top:3px solid var(--ink);padding-top:18px;text-decoration:none;color:inherit;display:block;}
.fmt .fk{font-family:var(--display);font-weight:700;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--blue-text);}
.fmt h3{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(20px,2.4vw,28px);margin:6px 0 8px;line-height:1;}
.fmt p{margin:0 0 12px;font-size:14.5px;line-height:1.5;color:#413B31;}
.fmt .go{font-family:var(--display);font-weight:800;font-size:12.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--blue-text);}
.fmt:hover h3{color:var(--blue);}
.dark .fmt{border-top-color:#4A4437;}
.dark .fmt h3{color:var(--paper);}
.dark .fmt p{color:#CFC6B4;}
.dark .fmt .fk,.dark .fmt .go{color:var(--yellow);}

/* --- quest containers --- */
.quest{border:3px solid var(--ink);background:var(--paper);box-shadow:10px 10px 0 var(--ink);margin-top:40px;
  display:grid;grid-template-columns:1.15fr .85fr;gap:0;overflow:hidden;}
@media(max-width:920px){.quest{grid-template-columns:1fr;}}
.quest.flip{grid-template-columns:.85fr 1.15fr;}
@media(max-width:920px){.quest.flip{grid-template-columns:1fr;}}
.quest.flip .qmedia{order:-1;}
.quest .qbody{padding:clamp(24px,3.4vw,44px);}
.quest .qmedia{position:relative;background:#211D17;min-height:280px;border-left:3px solid var(--ink);}
.quest.flip .qmedia{border-left:0;border-right:3px solid var(--ink);}
@media(max-width:920px){.quest .qmedia,.quest.flip .qmedia{border-left:0;border-right:0;border-bottom:3px solid var(--ink);order:-1;}}
.quest .qmedia img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.quest .qmedia .ph-label{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:26px;margin:0 auto;}
.quest.dark{background:var(--ink);color:var(--paper);box-shadow:10px 10px 0 var(--blue);}
.quest.dark .qmedia{border-color:var(--paper);}
.quest .kick{margin:0 0 12px;}
.quest h3{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(26px,3.4vw,42px);line-height:.96;letter-spacing:-.01em;margin:0 0 16px;text-wrap:balance;}
.quest p{margin:0 0 14px;font-size:15.5px;line-height:1.55;color:#413B31;max-width:60ch;}
.quest.dark p{color:#CFC6B4;}
.quest .inside{margin:18px 0 22px;padding:14px 16px;border-left:6px solid var(--blue);background:var(--paper-2);font-size:14.5px;line-height:1.5;color:var(--ink);}
.quest.dark .inside{background:rgba(250,243,227,.06);color:#EDE6D6;border-left-color:var(--yellow);}
.quest .inside b{font-family:var(--display);font-weight:800;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;display:block;margin-bottom:6px;color:var(--blue-text);}
.quest.dark .inside b{color:var(--yellow);}

/* --- the model: three panels --- */
.model{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:44px;}
@media(max-width:900px){.model{grid-template-columns:1fr;}}
.mp{border:3px solid var(--ink);background:var(--paper);box-shadow:8px 8px 0 var(--ink);padding:26px;display:flex;flex-direction:column;}
.mp .mn{font-family:var(--display);font-weight:800;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--blue-text);margin-bottom:12px;}
.mp h3{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(22px,2.4vw,30px);line-height:1;margin:0 0 14px;}
.mp p{margin:0 0 14px;font-size:14.5px;line-height:1.55;color:#413B31;}
.mp p:last-of-type{margin-bottom:0;}
.mp .go{margin-top:auto;padding-top:16px;font-family:var(--display);font-weight:800;font-size:12.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--blue-text);text-decoration:none;}
.mp.lab{background:var(--ink);color:var(--paper);box-shadow:8px 8px 0 var(--blue);}
.mp.lab p{color:#CFC6B4;}
.mp.lab .mn,.mp.lab .go{color:var(--yellow);}

/* --- why batman --- */
.bat{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,56px);align-items:center;}
@media(max-width:860px){.bat{grid-template-columns:1fr;}}
.bat .big{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(28px,4.2vw,54px);line-height:.96;letter-spacing:-.01em;margin:0;}
.bat .big i{font-style:normal;color:var(--yellow);}
.bat p{font-size:clamp(15px,1.4vw,17px);line-height:1.6;color:#413B31;margin:0 0 14px;max-width:56ch;}
.dark .bat p{color:#CFC6B4;}
.bat p:last-child{margin-bottom:0;}

/* --- 13:20 tape device --- */
.tape13{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-top:26px;}
.tape13 .num{font-family:var(--display);font-weight:800;font-size:clamp(58px,9vw,120px);line-height:.9;letter-spacing:-.03em;color:var(--yellow);font-variant-numeric:tabular-nums;}
.tape13 .cap{font-size:14px;line-height:1.55;color:#CFC6B4;max-width:28ch;}
.tape13 .cap b{color:var(--paper);}

/* --- picker form (signal page) --- */
.picker{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px;margin-top:30px;max-width:820px;}
@media(max-width:700px){.picker{grid-template-columns:1fr;}}
.picker .full{grid-column:1/-1;}
.picker label{font-family:var(--display);font-weight:700;font-size:12px;letter-spacing:.1em;text-transform:uppercase;display:block;margin-bottom:8px;}
.picker input,.picker select,.picker textarea{width:100%;font-family:var(--body);font-weight:600;font-size:15px;padding:13px 14px;border:2px solid var(--ink);background:var(--paper);color:var(--ink);}
.picker textarea{min-height:120px;resize:vertical;}
.chips{display:flex;flex-wrap:wrap;gap:8px;}
.chip{position:relative;}
.chip input{position:absolute;opacity:0;width:0;height:0;}
.chip span{display:inline-block;font-family:var(--display);font-weight:700;font-size:12px;letter-spacing:.03em;text-transform:uppercase;border:2px solid var(--ink);padding:9px 13px;background:var(--paper);cursor:pointer;box-shadow:3px 3px 0 var(--ink);transition:.12s;}
.chip input:checked+span{background:var(--blue);color:#fff;}
.chip input:focus-visible+span{outline:3px solid var(--blue);outline-offset:2px;}

/* --- three ways in (signal page) --- */
.ways{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px;}
@media(max-width:900px){.ways{grid-template-columns:1fr;}}
.way{border:3px solid var(--ink);background:var(--paper);box-shadow:8px 8px 0 var(--ink);padding:24px;text-decoration:none;color:inherit;display:block;transition:.14s;}
.way:hover{transform:translate(-2px,-2px);box-shadow:11px 11px 0 var(--blue);}
.way .wn{font-family:var(--display);font-weight:800;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--blue-text);margin-bottom:10px;}
.way h3{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(19px,2.1vw,24px);line-height:1.02;margin:0 0 10px;}
.way p{margin:0;font-size:14.5px;line-height:1.5;color:#413B31;}

/* --- session / lane cards with a footer line --- */
.lanes{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:40px;}
@media(max-width:860px){.lanes{grid-template-columns:1fr;}}
.lane{border:3px solid var(--ink);background:var(--paper);box-shadow:8px 8px 0 var(--ink);padding:26px;display:flex;flex-direction:column;}
.lane h3{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(20px,2.2vw,26px);line-height:1.02;margin:0 0 12px;}
.lane p{margin:0 0 12px;font-size:14.5px;line-height:1.55;color:#413B31;}
.lane .meta{margin-top:auto;padding-top:14px;border-top:2px solid var(--ink);font-family:var(--display);font-weight:700;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:#6E6558;line-height:1.6;}
.lane .meta b{color:var(--blue-text);}

/* --- numbered list (the five things) --- */
.five{counter-reset:five;list-style:none;margin:30px 0 0;padding:0;border-top:2px solid var(--ink);max-width:720px;}
.five li{counter-increment:five;display:grid;grid-template-columns:52px 1fr;gap:14px;padding:16px 0;border-bottom:2px solid rgba(20,18,16,.12);font-size:15.5px;line-height:1.5;color:#413B31;}
.five li::before{content:"0" counter(five);font-family:var(--display);font-weight:800;color:var(--blue);font-size:15px;}

/* --- footer: five columns now --- */
.fgrid.five-col{grid-template-columns:1.3fr 1fr 1fr 1fr 1fr;}
@media(max-width:1040px){.fgrid.five-col{grid-template-columns:1.3fr 1fr 1fr;}}
@media(max-width:760px){.fgrid.five-col{grid-template-columns:1fr 1fr;}}
@media(max-width:480px){.fgrid.five-col{grid-template-columns:1fr;}}
.fgrid.five-col>div:first-child{grid-column:1/-1;}
@media(min-width:1041px){.fgrid.five-col>div:first-child{grid-column:auto;}}

/* --- page hero cutout slightly smaller so two-line headlines fit --- */
.phero .cutout img{max-width:min(100%,400px);}

/* --- small print --- */
.fine{font-size:13px;line-height:1.6;color:#6E6558;margin-top:14px;}
.dark .fine{color:#9C927E;}

/* --- phone tightening for the new hero --- */
@media(max-width:700px){
  .hero3{padding-top:18px;}
  .hero3 h1{font-size:clamp(28px,8.6vw,40px);}
  .hero3 h1 .box{box-shadow:5px 5px 0 var(--ink);transform:none;}
  .hero3 .oneline{font-size:15px;}
  .hero3 .cutout{max-width:240px;margin:6px auto 0;}
  .door{padding:20px;}
  .door .btn{width:100%;text-align:center;}
  .door .ctas{flex-direction:column;}
}

.hero3 .eyebrow{margin-bottom:14px;}
.hero3-grid{align-items:center;}
