:root {
  --bg:#06070b; --panel:#0c0e15; --panel2:#11141d;
  --ink:#eef1f6; --ink2:#aab2c5; --ink3:#7c869c;
  --teal:#34e1c8; --blue:#7aa2ff; --gold:#E8B923;
  --grad:linear-gradient(135deg,#34e1c8,#7aa2ff);
  --line:rgba(255,255,255,.11); --line2:rgba(255,255,255,.06);
  --serif:'Instrument Serif','Times New Roman',serif;
  --sans:'Inter Tight',-apple-system,BlinkMacSystemFont,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,Menlo,monospace;
  --max:1440px; --gutter:clamp(20px,3vw,40px); --measure:40rem;
  --teal-haze:rgba(52,225,200,.10);
  --blue-haze:rgba(122,162,255,.08);
  --gold-glow:rgba(232,185,35,.20);
  --teal-glow:rgba(52,225,200,.18);
  --blue-glow:rgba(122,162,255,.18);
  --clear:rgba(6,7,11,0);
  --shade:rgba(6,7,11,.78);
  --shade-soft:rgba(6,7,11,.28);
  --type-body:1.0625rem;
  --type-label:11px;
  --type-hero:clamp(6rem,12.5vw,12rem);
  --type-statement:clamp(2.6rem,4.1vw,4.4rem);
  --type-heading:clamp(3.25rem,5.3vw,5.6rem);
  --type-card:clamp(2rem,3vw,2.8rem);
  --weight-regular:400;
  --weight-medium:500;
  --tracking-display:-0.03em;
  --tracking-label:0.16em;
  --leading-display:0.95;
  --leading-body:1.72;
  /* The masthead includes the pill's border and padding around one label line. */
  --masthead-pad:1.65rem;
  --masthead-h:calc(var(--type-label) * 1.65 + var(--masthead-pad) * 2 + .6rem + 2px);
  /* The fixed trailing band is the height the last page gives back. */
  --footer-h:8rem;
  /* Compact page rhythm leaves the masthead offset clear at every snap. */
  --page-pad:clamp(.75rem,1.6vh,1.5rem);
  --page-gap:clamp(.65rem,1.4vh,1.25rem);
}

* { box-sizing:border-box; }
html, body { overflow-x:clip; max-width:100%; }
/* Reading progress replaces the scrollbar gutter, keeping the viewport width intact. */
html { scroll-behavior:smooth; scroll-snap-type:y mandatory; scroll-padding-top:var(--masthead-h); scrollbar-width:none; background:var(--bg); }
body {
  margin:0;
  background:radial-gradient(ellipse at 0% 0%,var(--teal-haze),var(--clear) 55%),radial-gradient(ellipse at 100% 8%,var(--blue-haze),var(--clear) 52%),var(--bg);
  background-attachment:fixed;
  color:var(--ink);
  font-family:var(--sans);
  font-size:var(--type-body);
  font-weight:var(--weight-regular);
  line-height:var(--leading-body);
  -webkit-font-smoothing:antialiased;
}

::selection { color:var(--bg); background:var(--teal); }
a { color:var(--teal); text-decoration:none; }
:focus-visible { outline:2px solid var(--teal); outline-offset:3px; }
h1, h2, h3, p { margin:0; }
h1, h2, h3, .hero-statement {
  font-family:var(--serif);
  font-weight:var(--weight-regular);
  letter-spacing:var(--tracking-display);
  line-height:var(--leading-display);
}
em { font-weight:inherit; }
h2 { max-width:10.4em; font-size:var(--type-heading); }
h2 em, .hero-statement em { color:var(--teal); }
h3 { font-size:var(--type-card); }
.page-width { width:100%; max-width:var(--max); margin-inline:auto; padding-inline:var(--gutter); }
.label { font-family:var(--mono); font-size:var(--type-label); font-weight:var(--weight-regular); letter-spacing:var(--tracking-label); line-height:1.65; text-transform:uppercase; color:var(--ink3); }
.eyebrow { margin-bottom:var(--page-gap); }
.prose { max-width:31rem; color:var(--ink2); }
/* Snap the document, leaving the fixed scene outside any scroll wrapper. */
.page { min-height:100svh; scroll-snap-align:start; scroll-snap-stop:always; display:flex; flex-direction:column; justify-content:center; padding-block:var(--page-pad) calc(var(--page-pad) + var(--masthead-h)); }
.page > * { flex-shrink:0; min-width:0; }
/* The masthead sits above the first page, so the final page gives that offset back
   and still fills one screen. The footer below it is the only scroll left after the
   last page's snap point, and a position with no snap point is what made the last
   line pop up and drop back, so the footer ends the document on a snap of its own. */
main > .page:last-child { min-height:calc(100svh - var(--masthead-h)); padding-bottom:var(--page-pad); }

.scene-backdrop, #convergence-scene, .scene-vignette { position:fixed; inset:0; width:100%; height:100%; pointer-events:none; }
.scene-backdrop {
  z-index:0;
  background:radial-gradient(ellipse at 62% 39%,var(--gold-glow),var(--clear) 23%),radial-gradient(ellipse at 83% 31%,var(--teal-glow),var(--clear) 25%),radial-gradient(ellipse at 79% 67%,var(--blue-glow),var(--clear) 29%);
}
.scene-ready .scene-backdrop { opacity:.28; }
#convergence-scene { z-index:1; display:block; }
#convergence-scene[hidden] { display:none; }
/* The turn, measured and offer pages carry their own figures, so the rig steps aside. */
#convergence-scene, .scene-backdrop { transition:opacity .55s ease,transform .55s ease; }
:root[data-active-page="turn"] #convergence-scene,
:root[data-active-page="offer"] #convergence-scene { opacity:.08; }
/* On the pages whose own content occupies the right of the screen, the faded rig was still
   readable behind the figures and the link columns, so it is parked below the fold there. */
:root[data-active-page="measured"] #convergence-scene,
:root[data-active-page="everything"] #convergence-scene,
:root[data-active-page="inside-the-sun"] #convergence-scene { opacity:.08; transform:translateY(68vh); }
:root[data-active-page="turn"] .scene-backdrop { opacity:.4; }
.scene-vignette { z-index:2; background:linear-gradient(90deg,var(--shade),var(--clear) 61%),radial-gradient(ellipse at 64% 47%,var(--clear) 28%,var(--shade-soft) 74%,var(--shade)); }
.masthead, main, .footer { position:relative; z-index:3; }
.reading-progress { position:fixed; inset:0 0 auto; z-index:10; height:2px; }
.reading-progress span { display:block; height:100%; background:var(--grad); transform:scaleX(0); transform-origin:left; }
.skip-link { position:fixed; top:1rem; left:var(--gutter); z-index:20; padding:.7rem 1rem; background:var(--panel); transform:translateY(-200%); }
.skip-link:focus { transform:translateY(0); }
.visually-hidden { position:absolute; width:1px; height:1px; clip:rect(0,0,0,0); clip-path:inset(50%); overflow:hidden; white-space:nowrap; border:0; padding:0; margin:-1px; }

.masthead { display:flex; align-items:center; justify-content:space-between; gap:clamp(.5rem,1.5vw,1.5rem); padding-block:var(--masthead-pad); }
.present-controls { display:flex; align-items:center; gap:.75rem; margin-left:auto; white-space:nowrap; }
.present-toggle { padding:.3rem .8rem; border:1px solid var(--line); border-radius:999px; background:transparent; color:var(--ink2); cursor:pointer; }
.present-toggle:hover, .present-toggle[aria-pressed="true"] { border-color:var(--teal); color:var(--teal); }
.present-counter { color:var(--ink2); }
html.present-mode { overflow:hidden; scroll-snap-type:none; scroll-behavior:auto; }
body.present-mode { overflow:hidden; }
body.present-mode .page { display:none; }
/* Long phone slides scroll inside the deck so their last invitation stays reachable. */
body.present-mode .page.is-present-slide { display:flex; height:calc(100vh - var(--masthead-h)); height:calc(100dvh - var(--masthead-h)); min-height:0; padding-block:var(--page-pad); overflow-y:auto; overflow-x:hidden; justify-content:safe center; overscroll-behavior-y:contain; }
.wordmark { color:var(--ink); font-weight:var(--weight-medium); letter-spacing:.06em; }
.wordmark-dot { color:var(--teal); }
.masthead-note { margin-left:auto; margin-right:auto; }
.location { display:flex; align-items:center; gap:.7rem; }
.status-dot { width:5px; height:5px; border-radius:50%; background:var(--teal); box-shadow:0 0 12px var(--teal-glow); }
.hero { position:relative; }
.hero-copy { width:60%; }
.hero .eyebrow { color:var(--ink2); margin-bottom:1.2rem; }
h1 { font-size:var(--type-hero); white-space:nowrap; }
.hero-statement { margin-top:1.25rem; font-size:var(--type-statement); line-height:1.03; }
.hero-description { max-width:34rem; margin-top:1.5rem; color:var(--ink2); }
/* Two equal invitations, before the first scroll. */
/* The three fronts sit under the buttons as one quiet mono line, and wrap to two on a phone. */
.hero-fronts { margin-top:1.1rem; color:var(--ink3); }
.hero-fronts span { padding-inline:.35rem; color:var(--line); }
/* The three sizes used to be the headline; it now introduces the cards. */
.tier-subline { font-family:var(--serif); font-size:clamp(1.35rem,2.1vw,1.85rem); line-height:1.15; letter-spacing:var(--tracking-display); margin-top:var(--page-gap); }
.tier-subline em { color:var(--teal); font-style:italic; }
.tier-subline + .tier-grid { margin-top:1rem; }
.split-footnote { margin-top:clamp(1rem,2vh,1.5rem); color:var(--ink3); }
.hero-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; max-width:36rem; margin-top:1.5rem; }
.hero-actions > a { margin-top:0; }
.hero-bottom { display:flex; align-items:center; justify-content:space-between; gap:2rem; margin-top:clamp(2rem,5vh,4rem); }
.scroll-cue { display:inline-flex; align-items:center; gap:1rem; color:var(--ink2); }
.scroll-stem { display:block; width:1px; height:35px; background:var(--line); overflow:hidden; }
.scroll-stem::after { content:""; display:block; height:15px; background:var(--teal); animation:scroll-hint 2.6s ease-in-out infinite; }
.scene-key { display:flex; gap:1.8rem; padding-right:4%; }
.scene-key span::before { content:""; display:inline-block; width:4px; height:4px; border-radius:50%; margin-right:.65rem; background:currentColor; vertical-align:middle; }
.key-bitcoin { color:var(--gold); }
.key-ai { color:var(--teal); }
.key-robotics { color:var(--blue); }

.section-rule { height:1px; background:var(--line); margin-bottom:var(--page-gap); }
.narrative h2 { margin-bottom:var(--page-gap); }
.quiet-link { display:inline-block; align-self:flex-start; margin-top:var(--page-gap); color:var(--ink3); text-decoration:underline; text-underline-offset:.3em; transition:color .25s ease; }
.quiet-link:hover { color:var(--teal); }
.quiet-link:focus-visible { outline:2px solid var(--teal); outline-offset:3px; }
.say-line { max-width:var(--measure); font-size:clamp(1.0625rem,1.3vw,1.2rem); line-height:1.5; color:var(--ink2); }
/* Light tiles leave the story, rather than the card, in the foreground. */
.tile-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(.65rem,1vw,1rem); margin-top:var(--page-gap); min-width:0; }
.tile { min-width:0; padding:clamp(.85rem,1.5vh,1.1rem); background:var(--panel); border:1px solid var(--line); border-radius:3px; }
.tile-index { margin-bottom:.6rem; color:var(--teal); }
.tile-title { font-family:var(--sans); font-size:clamp(1rem,1.25vw,1.2rem); font-weight:var(--weight-medium); letter-spacing:0; line-height:1.3; }
.tile-body { margin-top:.5rem; font-size:1rem; line-height:1.5; color:var(--ink2); }
.machine-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
/* Wider headings keep the long story beats within a single desktop page. */
.trap h2 { max-width:18em; }
.turn h2, .machine h2 { max-width:18em; font-size:clamp(3rem,4.4vw,4.5rem); }
.posture-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin-top:var(--page-gap); max-width:var(--measure); }
.posture-card h3 { margin:.5rem 0 0; font-size:clamp(1.6rem,2.2vw,2rem); line-height:1.1; }
.venture-card.posture-ask { border-color:var(--line2); box-shadow:none; }
.posture-ask .card-label, .posture-ask h3 { color:var(--ink3); }
.venture-card.posture-offer { border-color:color-mix(in oklch,var(--teal) 48%,transparent); box-shadow:0 0 40px var(--teal-haze); }
.posture-offer h3 { color:var(--ink); }
/* The overlap is the whole argument, so the diagram sits beside the posture. */
.turn-split { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:clamp(1rem,3vw,3rem); margin-top:var(--page-gap); }
.turn-copy { min-width:0; }
.turn-copy .posture-pair { max-width:none; }
.venn-figure { margin:0; min-width:0; }
.venn { display:block; width:100%; height:auto; max-height:clamp(190px,32vh,330px); margin-inline:auto; overflow:visible; }
.venn-set circle { fill-opacity:.15; stroke-width:2; mix-blend-mode:screen; }
.venn-email { fill:var(--teal); stroke:var(--teal); }
.venn-show { fill:var(--blue); stroke:var(--blue); }
.venn text { font-family:var(--mono); text-transform:uppercase; letter-spacing:var(--tracking-label); fill:var(--ink); }
.venn-label { font-size:21px; fill:var(--ink2); }
.venn-center { font-size:17px; fill:var(--gold); }
.venn-note { font-size:12px; fill:var(--ink3); letter-spacing:.08em; }
.venn-pill { fill:var(--shade); stroke:color-mix(in oklch,var(--gold) 55%,transparent); stroke-width:1.2; }
.venn-set circle, .venn-labels, .venn-meet { transform-box:fill-box; transform-origin:center; }
.reveal-enabled .venn-figure.is-visible .venn-email { animation:venn-close-left .85s cubic-bezier(.2,.65,.2,1) both; }
.reveal-enabled .venn-figure.is-visible .venn-show { animation:venn-close-right .85s cubic-bezier(.2,.65,.2,1) both; }
.reveal-enabled .venn-figure.is-visible .venn-labels { animation:venn-fade .6s ease both .45s; }
.reveal-enabled .venn-figure.is-visible .venn-meet { animation:venn-fade .6s ease both .85s; }
@keyframes venn-close-left { from { opacity:0; transform:translateX(-64px); } to { opacity:1; transform:none; } }
@keyframes venn-close-right { from { opacity:0; transform:translateX(64px); } to { opacity:1; transform:none; } }
@keyframes venn-fade { from { opacity:0; } to { opacity:1; } }
/* Beliefs are open serif paragraphs, with room between the two thoughts. */
.beliefs { max-width:76rem; margin-top:clamp(1.25rem,2.5vh,2rem); }
.belief { font-family:var(--serif); font-size:clamp(1.35rem,1.65vw,1.9rem); line-height:1.35; color:var(--ink); }
.belief + .belief { margin-top:clamp(.85rem,1.8vh,1.5rem); }
.belief em, .close-title em { color:var(--teal); }
.method-quote { max-width:76rem; margin-top:clamp(1.25rem,2.5vh,2rem); padding-left:1rem; border-left:2px solid var(--teal); font-family:var(--serif); font-size:clamp(1.35rem,1.8vw,1.75rem); line-height:1.3; color:var(--ink); }
.link-row { display:flex; align-items:baseline; flex-wrap:wrap; gap:.75rem 1.5rem; margin-top:var(--page-gap); }
.link-row .secondary-button, .link-row .text-link { margin-top:0; }
.link-row .text-link { align-self:baseline; }
.front-row { margin-top:var(--page-gap); }
.front-line { display:grid; grid-template-columns:minmax(0,13rem) minmax(0,10rem) minmax(0,1fr); align-items:baseline; gap:.35rem 1.5rem; padding-block:clamp(.6rem,1.2vh,1rem); line-height:1.5; }
.front-line + .front-line { border-top:1px solid var(--line2); }
.front-label { color:var(--teal); }
.front-name { font-weight:var(--weight-medium); color:var(--ink); }
.front-body { color:var(--ink2); }
/* Four figures share the evidence row without borrowing space from labels. */
.figure-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(1rem,3vw,3rem); margin-top:var(--page-gap); }
.figure-cell { min-width:0; }
.proof-figure { font-family:var(--serif); font-weight:var(--weight-regular); font-size:clamp(2.6rem,4vw,4rem); letter-spacing:var(--tracking-display); line-height:1; }
.proof-label { margin-top:.4rem; }
.split { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:clamp(.75rem,1.6vw,1.5rem); margin-top:clamp(2rem,5vh,4rem); }
.split-side { min-width:0; text-align:center; }
.split-rate { font-family:var(--serif); font-size:clamp(2.25rem,3.3vw,3.5rem); letter-spacing:var(--tracking-display); line-height:1; }
.split-label { margin-top:.5rem; }
.split-delta { display:flex; align-items:center; justify-content:center; gap:1rem; color:var(--ink2); }
.split-delta::before, .split-delta::after { content:""; width:clamp(1rem,4vw,4rem); height:1px; background:var(--line); }
.split-win .split-rate, .split-win .split-label { color:var(--teal); }
.honest-line { max-width:var(--measure); margin-top:clamp(1.5rem,3vh,2.5rem); color:var(--ink2); }
/* The show stands on its own, and the invitation is free. */
.show-free { margin-top:var(--page-gap); padding:clamp(.75rem,1.5vh,1.25rem); border:1px solid var(--line); border-left:2px solid var(--teal); color:var(--ink2); }
.show-free p { max-width:64rem; }
.text-link { display:inline-flex; align-self:flex-start; align-items:center; gap:2rem; color:var(--teal); margin-top:var(--page-gap); border-bottom:1px solid var(--line); padding-bottom:.65rem; }
.text-link span { transition:transform .25s ease; }
.text-link:hover span { transform:translate(3px,-3px); }

.episode-strip { margin-top:clamp(.5rem,1.2vh,1rem); }
.episode-strip-label { margin-bottom:clamp(.5rem,1vh,.8rem); color:var(--ink3); }
.episode-row { display:grid; grid-auto-flow:column; grid-auto-columns:min(15.5rem,78vw); gap:1rem; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x proximity; scrollbar-width:none; -ms-overflow-style:none; padding:.3rem .3rem .4rem; }
.episode-row::-webkit-scrollbar { width:0; height:0; display:none; }
.episode-card { display:flex; flex-direction:column; gap:.75rem; min-width:0; padding:.7rem; background:var(--panel); border:1px solid var(--line); border-radius:12px; color:var(--ink); scroll-snap-align:start; transition:border-color .35s ease,background .35s ease; }
.episode-card:focus-visible { outline:2px solid var(--teal); outline-offset:3px; }
.episode-thumb { position:relative; display:block; aspect-ratio:16/9; overflow:hidden; border-radius:8px; background:var(--panel2); }
.episode-thumb img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .4s cubic-bezier(.2,.65,.2,1); }
.episode-duration { position:absolute; right:.45rem; bottom:.45rem; padding:2px 6px; border-radius:4px; color:var(--ink); background:rgba(6,7,11,.82); letter-spacing:.08em; line-height:1.5; }
.episode-title { display:-webkit-box; -webkit-line-clamp:2; line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; font-family:var(--sans); font-size:.95rem; font-weight:var(--weight-medium); line-height:1.4; color:var(--ink); }
.episode-meta { color:var(--ink3); }
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
  .episode-card:hover { background:var(--panel2); border-color:color-mix(in oklch,var(--teal) 42%,transparent); }
  .episode-card:hover .episode-thumb img { transform:scale(1.045) translateY(-3px); }
}
@media (prefers-reduced-motion:reduce) {
  .episode-thumb img { transition:none; }
  .episode-card:hover .episode-thumb img { transform:none; }
}
@media (min-width:1100px) {
  /* Four previews across; the next four stay in the same scroll row. */
  .episode-row { grid-auto-columns:calc((100% - 3rem) / 4); }
  .trap-grid { grid-template-columns:repeat(5,minmax(0,1fr)); }
}

.venture-card { position:relative; min-width:0; padding:clamp(1rem,2vh,1.5rem); background:var(--panel); border:1px solid var(--line); border-radius:3px; transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease; }
.accent-teal { --card-accent:var(--teal); --card-glow:var(--teal-glow); }
.accent-blue { --card-accent:var(--blue); --card-glow:var(--blue-glow); }
.accent-gold { --card-accent:var(--gold); --card-glow:var(--gold-glow); }
.card-label { color:var(--card-accent,var(--ink3)); }

/* Wider service prose reserves the page height for scope and checkout. */
.engagement { --page-gap:clamp(.4rem,.8vh,.75rem); line-height:1.45; }
.engagement > .prose { max-width:82rem; }
.engagement h2 { max-width:none; font-size:clamp(2.75rem,4vw,4rem); }
.engagement-kicker { max-width:68rem; margin-bottom:var(--page-gap); color:var(--ink3); }
.tier-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin-top:var(--page-gap); min-width:0; }
.tier-card { display:flex; flex-direction:column; padding:clamp(.75rem,1.3vh,1rem); }
.venture-card.tier-card h3 { margin-top:0; margin-bottom:clamp(.25rem,.6vh,.5rem); font-size:clamp(2rem,2.5vw,2.5rem); }
.tier-price { margin-top:clamp(.35rem,.7vh,.75rem); }
/* The price shares its card with the complete scope and both actions. */
.tier-total { font-family:var(--serif); font-size:clamp(2.25rem,2.8vw,3rem); font-weight:var(--weight-regular); letter-spacing:var(--tracking-display); line-height:1; }
.tier-caption { margin-top:.25rem; color:var(--ink2); }
.tier-monthly { margin-top:.25rem; }
.tier-scope { margin:var(--page-gap) 0 0; padding-top:var(--page-gap); border-top:1px solid var(--line); color:var(--ink2); font-size:.95rem; }
ul.tier-scope { padding-left:1.1rem; }
.tier-scope li + li { margin-top:.125rem; }
.tier-scope li::marker { color:var(--card-accent); }
/* Checkout follows the scope, with room to talk first. */
.tier-cta { margin-top:auto; padding-top:var(--page-gap); text-align:center; }
.tier-cta .primary-button { width:100%; margin-top:0; padding:.7rem 1.2rem; gap:1rem; }
.tier-talk { display:inline-block; margin-top:.25rem; color:var(--ink3); transition:color .25s ease; }
.tier-talk:hover { color:var(--teal); }
.engagement-terms { margin-top:var(--page-gap); padding:clamp(.5rem,1vh,1rem); border:1px solid var(--line); border-left:2px solid var(--teal); color:var(--ink2); font-size:.95rem; }
.engagement-terms p { max-width:82rem; }
/* The closing invitation shares a line, with the record directly below it. */
.offer-close { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:var(--page-gap) 1.5rem; margin-top:clamp(1.5rem,3.2vh,2.75rem); }
.close-title { font-size:clamp(2.25rem,3vw,3rem); line-height:1.05; }
.offer-close .primary-button { justify-self:start; margin-top:0; }
.record-line { grid-column:1 / -1; color:var(--ink3); }
.offer-close .quiet-link { grid-column:1 / -1; justify-self:start; margin-top:0; }

/* Compact actions retain a full text line and comfortable padded edges. */
.primary-button, .secondary-button { display:inline-flex; align-items:center; justify-content:space-between; gap:2rem; max-width:100%; padding:.9rem 1.5rem; margin-top:var(--page-gap); border:1px solid transparent; border-radius:999px; font-weight:var(--weight-medium); }
.primary-button { background:var(--grad); color:var(--bg); box-shadow:0 5px 35px var(--teal-glow); transition:transform .25s ease,box-shadow .25s ease; }
.primary-button:hover { transform:translateY(-3px); box-shadow:0 8px 45px var(--teal-glow); }
.secondary-button { border-color:var(--line); background:transparent; color:var(--ink); transition:border-color .25s ease,color .25s ease; }
.secondary-button:hover { border-color:var(--teal); color:var(--teal); }
.secondary-button:focus-visible { outline:2px solid var(--teal); outline-offset:3px; }
/* The small line that sits under the lit rate. */
.split-detail { margin-top:.5rem; font-size:.95rem; line-height:1.45; color:var(--ink3); }

/* The everything page: the same light tiles, but every one of them is a link. */
.masthead-everything { color:var(--ink3); white-space:nowrap; transition:color .25s ease; }
.masthead-everything:hover { color:var(--teal); }
.masthead-everything:focus-visible { outline:2px solid var(--teal); outline-offset:3px; }
.feature-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.feature-tile { display:flex; flex-direction:column; transition:border-color .25s ease,background .25s ease; }
a.feature-tile:hover, .feature-blog:hover { border-color:var(--teal); background:var(--panel2); }
a.feature-tile:focus-visible { outline:2px solid var(--teal); outline-offset:3px; }
.feature-tile .tile-title { display:block; font-family:var(--sans); font-size:clamp(1rem,1.25vw,1.2rem); font-weight:var(--weight-medium); line-height:1.3; }
a.tile-title:hover { color:var(--teal); }
.feature-tile .tile-body { display:block; }
.post-list { margin:.6rem 0 0; padding:0; list-style:none; border-top:1px solid var(--line2); }
.post-list li { padding-top:.4rem; }
.post-list a { display:block; font-size:.95rem; line-height:1.4; color:var(--ink2); transition:color .25s ease; }
.post-list a:hover { color:var(--teal); }
.everything .scene-key { margin-top:var(--page-gap); }

/* The index page: five columns of links, one column on a phone. */
.sun-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:clamp(.75rem,1.6vw,1.75rem); margin-top:var(--page-gap); min-width:0; }
.sun-group { min-width:0; }
.sun-group-title { color:var(--teal); padding-bottom:.4rem; border-bottom:1px solid var(--line); }
.link-list { margin:.5rem 0 0; padding:0; list-style:none; }
.link-list li + li { margin-top:.45rem; }
.link-list a { font-size:.98rem; line-height:1.3; color:var(--ink); transition:color .25s ease; }
.link-list a:hover { color:var(--teal); }
.link-list a:focus-visible { outline:2px solid var(--teal); outline-offset:3px; }
.link-note { display:block; font-size:.85rem; line-height:1.35; color:var(--ink3); }
.sun-connect { display:flex; flex-wrap:wrap; align-items:baseline; gap:.75rem 1.25rem; margin-top:var(--page-gap); padding-top:var(--page-gap); border-top:1px solid var(--line); }
.sun-connect a { color:var(--ink2); transition:color .25s ease; }
.sun-connect a:hover { color:var(--teal); }

/* Shots on goal: one week of the calendar as blocks, seven columns, 7am to 8pm. Every
   block is positioned from its own start and length, so back-to-back calls really do touch. */
.week-wrap { margin-top:var(--page-gap); min-width:0; }
/* Five columns, not seven: the weekend was two near-empty tracks of dead space. */
.week-grid { display:grid; grid-template-columns:auto repeat(5,minmax(0,1fr)); gap:.4rem; min-width:0; }
.week-hours { display:flex; flex-direction:column; justify-content:space-between; padding-top:1.9rem; color:var(--ink3); font-size:10px; line-height:1; text-align:right; }
.week-day { min-width:0; }
.week-day-name { text-align:center; color:var(--ink2); margin-bottom:.35rem; }
.week-track { position:relative; height:clamp(200px,34vh,360px); border:1px solid var(--line); border-radius:3px; background:var(--panel); background-image:repeating-linear-gradient(to bottom,var(--line2) 0 1px,transparent 1px calc(100% / 13)); }
.week-block { position:absolute; left:2px; right:2px; top:var(--top); height:var(--height); min-height:2px; border-radius:2px; background:var(--kind,var(--line)); }
.kind-taping { --kind:var(--teal); }
.kind-pre-interview { --kind:var(--blue); }
.kind-client { --kind:var(--gold); }
.kind-other { --kind:var(--ink3); }
.week-legend { display:flex; flex-wrap:wrap; gap:.5rem 1.5rem; margin-top:.75rem; color:var(--ink3); }
.week-key::before { content:""; display:inline-block; width:9px; height:9px; border-radius:2px; margin-right:.55rem; background:var(--kind,var(--line)); vertical-align:middle; }
/* The blocks draw in one day after the next once the grid comes into view. */
.reveal-enabled .week-wrap.is-visible .week-block { animation:block-in .45s ease both; animation-delay:calc(var(--day) * 110ms); }
@keyframes block-in { from { opacity:0; transform:scaleY(.2); } to { opacity:1; transform:none; } }
.week-block { transform-origin:top; }

.footer { display:flex; justify-content:space-between; align-items:flex-end; gap:1rem; height:var(--footer-h); padding-top:1.8rem; padding-bottom:5rem; scroll-snap-align:end; }
.footer::before { content:""; position:absolute; top:0; left:var(--gutter); right:var(--gutter); height:1px; background:var(--line); }
.current-site-pill { position:fixed; right:var(--gutter); bottom:18px; z-index:15; padding:9px 15px; font-family:var(--mono); font-size:var(--type-label); text-transform:uppercase; letter-spacing:.12em; color:var(--ink2); background:var(--panel); border:1px solid color-mix(in oklch,var(--teal) 35%,transparent); border-radius:999px; backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); transition:background .25s ease,border-color .25s ease,color .25s ease; }
.current-site-pill:hover { color:var(--teal); background:var(--panel2); border-color:var(--teal); }
.current-site-pill:focus-visible { outline:2px solid var(--teal); outline-offset:3px; }

.reveal-enabled [data-reveal] { opacity:0; transform:translateY(22px); transition:opacity .85s ease,transform .85s cubic-bezier(.2,.65,.2,1); transition-delay:var(--reveal-delay,0ms); }
.reveal-enabled [data-reveal].is-visible { opacity:1; transform:translateY(0); }
.reveal-enabled [data-reveal]:focus-visible { opacity:1; transform:none; transition:none; }
.reveal-enabled [data-reveal]:focus-within { opacity:1; transform:none; transition:none; }
.reveal-enabled .venture-card.is-visible { transition:opacity .85s ease,transform .35s ease,border-color .35s ease,box-shadow .35s ease; transition-delay:0ms; }
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
  .tier-card:hover, .reveal-enabled .tier-card.is-visible:hover { border-color:var(--card-accent); box-shadow:0 0 20px -12px var(--card-accent),inset 0 1px 0 var(--card-glow); }
}
@keyframes scroll-hint {
  0% { transform:translateY(-16px); }
  65%,100% { transform:translateY(36px); }
}

@media (max-width:900px) {
  .masthead-note { display:none; }
  .hero-copy { width:76%; }
  .scene-key { padding-right:0; gap:1rem; }
  .scene-vignette { background:linear-gradient(90deg,var(--shade-soft),var(--clear)),radial-gradient(ellipse at 70% 36%,var(--clear),var(--shade) 95%); }
}
@media (max-width:600px) {
  /* The mobile masthead keeps its existing reduced padding. */
  :root { --masthead-pad:1.2rem; --page-gap:clamp(.5rem,1.2vh,.75rem); --type-heading:clamp(2.6rem,10.8vw,3.25rem); }
  /* Phone prose keeps a full reading size with tighter leading. */
  .narrative { font-size:1rem; line-height:1.5; }
  /* Beliefs and full paid scope need longer pages at readable phone sizes. */
  html { scroll-snap-type:y proximity; }
  .turn, .engagement { min-height:auto; scroll-snap-stop:normal; }
  main > .page:last-child { min-height:auto; padding-bottom:var(--page-pad); }
  .location { letter-spacing:.09em; }
  .hero-copy { width:100%; }
  .hero .eyebrow { letter-spacing:.07em; margin-bottom:1rem; }
  h1 { font-size:clamp(5.5rem,23vw,8.4rem); }
  .hero-statement { margin-top:1.3rem; font-size:clamp(2.6rem,10.4vw,3.8rem); }
  .hero-actions { grid-template-columns:minmax(0,1fr); gap:.75rem; }
  .hero-bottom { align-items:flex-end; margin-top:2.5rem; gap:1rem; }
  .scroll-cue { gap:.7rem; letter-spacing:.07em; }
  .scene-key { flex-direction:column; gap:.2rem; }
  .scene-backdrop { background:radial-gradient(ellipse at 24% 51%,var(--gold-glow),var(--clear) 35%),radial-gradient(ellipse at 78% 42%,var(--teal-glow),var(--clear) 32%),radial-gradient(ellipse at 70% 67%,var(--blue-glow),var(--clear) 38%); }
  .scene-vignette { background:linear-gradient(0deg,var(--shade),var(--clear) 38%,var(--shade-soft) 65%,var(--shade)); }
  /* Cards travel sideways so every scope remains readable at phone width. */
  .tier-grid, .tile-grid { grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:min(20rem,82vw); overflow-x:auto; scroll-snap-type:x proximity; overscroll-behavior-x:contain; scrollbar-width:none; -ms-overflow-style:none; padding:.3rem .3rem .4rem; }
  /* The rail hides its scrollbar, so without a cue the last visible card reads as
     clipped rather than swipeable. A mask on the rail gives the cue with no extra
     DOM, because a mask applies to the element box and does not scroll with the
     content inside it. It is set only while there is actually more to scroll to. */
  .tier-grid[data-more="1"], .tile-grid[data-more="1"] {
    -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 2.5rem),transparent);
    mask-image:linear-gradient(90deg,#000 calc(100% - 2.5rem),transparent);
  }
  .tile-grid { grid-auto-columns:min(17rem,80vw); }
  .tier-grid::-webkit-scrollbar, .tile-grid::-webkit-scrollbar { width:0; height:0; display:none; }
  .tile, .tier-card { scroll-snap-align:start; }
  /* The week keeps its real shape on a phone and scrolls sideways inside its own box. */
  .week-wrap { overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:none; }
  .week-wrap::-webkit-scrollbar { width:0; height:0; display:none; }
  .week-grid { width:640px; }
  /* The two index pages read as one column on a phone rather than as a sideways rail. */
  .feature-grid, .sun-grid { grid-template-columns:minmax(0,1fr); grid-auto-flow:row; grid-auto-columns:auto; overflow-x:visible; padding:0; }
  .link-note { display:none; }
  .everything, .sunlist { overflow-y:auto; }
  .turn h2, .machine h2 { font-size:var(--type-heading); }
  .turn-split { grid-template-columns:minmax(0,1fr); gap:.9rem; }
  /* Flatten the copy wrapper so the phone diagram separates the say-line from the posture cards. */
  .turn-copy { display:contents; }
  .turn-copy .posture-pair { order:1; }
  .venn { max-height:none; }
  .posture-pair { grid-template-columns:minmax(0,1fr); gap:.65rem; }
  .posture-card { padding:.85rem 1rem; }
  .front-line { grid-template-columns:minmax(0,1fr) auto; gap:.3rem .5rem; }
  .front-label { letter-spacing:.08em; }
  .front-body { grid-column:1 / -1; }
  .figure-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem 1rem; }
  .split { grid-template-columns:minmax(0,1fr); gap:1rem; margin-top:1.5rem; }
  .offer-close { grid-template-columns:minmax(0,1fr); gap:.75rem; margin-top:1.75rem; }
}
/* Short phones keep both invitations clear of the current-site pill. */
@media (max-width:600px) and (max-height:700px) {
  .hero .eyebrow { margin-bottom:.75rem; }
  .hero-statement { margin-top:1rem; }
  .hero-description { margin-top:1rem; line-height:1.6; }
  .hero-actions { margin-top:1rem; }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation:none !important; transition:none !important; }
  .reveal-enabled [data-reveal] { opacity:1; transform:none; }
  .scroll-stem::after { transform:none; }
  .primary-button:hover, .text-link:hover span { transform:none; }
}
.motion-reduced { scroll-behavior:auto; }
.motion-reduced *, .motion-reduced *::before, .motion-reduced *::after { animation:none !important; transition:none !important; }
.motion-reduced [data-reveal] { opacity:1; transform:none; }
.motion-reduced .primary-button:hover, .motion-reduced .text-link:hover span { transform:none; }

@media print {
  .scene-backdrop, #convergence-scene, .scene-vignette, .reading-progress, .scroll-cue, .scene-key, .current-site-pill { display:none !important; }
  *, *::before, *::after { animation:none !important; transition:none !important; }
  .reveal-enabled [data-reveal] { opacity:1; transform:none; }
  .page { min-height:0; padding-block:2rem; }
  .venture-card { break-inside:avoid; }
}
