: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;}

.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");}

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:clamp(48px,8vh,96px) 0 clamp(40px,6vh,64px);}
.phero .kick{margin-bottom:18px;}
.phero h1{font-family:var(--display);font-weight:800;text-transform:uppercase;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:uppercase;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);}

.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;}

.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;gap:40px;}
@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;}
@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(--paper);}
.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;}

/* video tiles */
.watchrow{display:grid;grid-template-columns:1.4fr 1fr;gap:20px;margin-top:40px;}
@media(max-width:820px){.watchrow{grid-template-columns:1fr;}}
.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;}

/* 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"] #goals{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"] #goals{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;}
