/* CRE Modelling theme. Built from the approved prototypes by website/build/tools/make-theme.py. Tokens live in :root. */
:root{
  --cream:#fdfbf7; --cream-2:#f4efe6; --ink:#0b1f44; --ink-2:#4b5566; --ink-3:#7a8394;
  --navy:#0e2a5c; --blue:#1f65cc; --blue-soft:#e8f0fc;
  --line:rgba(11,31,68,.08); --shell:rgba(11,31,68,.045);
  --serif:"Fraunces","Georgia","Times New Roman",serif;
  --sans:"Plus Jakarta Sans","Segoe UI",system-ui,sans-serif;
  --mono:"JetBrains Mono","SFMono-Regular",Menlo,Consolas,monospace;
  --ease:cubic-bezier(.32,.72,0,1);
  --r:2rem; --rp:6px; --ri:calc(2rem - 6px);
  --gutter:16px; --max:1200px;
  --shadow:0 30px 80px -40px rgba(11,31,68,.35),0 10px 30px -20px rgba(11,31,68,.2);
  --display:"Montserrat",var(--sans); --dw:800; --dtrack:-.035em; --dlh:1.02; --quote:var(--sans); --qw:500;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.55;overflow-x:hidden;-webkit-tap-highlight-color:rgba(31,101,204,.12)}
body.bar-on{padding-bottom:88px}
h1,h2,h3{margin:0;font-family:var(--display);font-weight:var(--dw);letter-spacing:var(--dtrack);line-height:var(--dlh);text-wrap:balance;font-variation-settings:"opsz" 120}
h1{font-size:clamp(2.05rem,5.9vw + .55rem,4.15rem)}
h2{font-size:clamp(1.85rem,2.3vw + .9rem,3.2rem)}
h3{font-size:1.3rem;letter-spacing:calc(var(--dtrack) + .01em)}
p{margin:0 0 1em}p:last-child{margin-bottom:0}
a{color:inherit;text-underline-offset:.18em;transition:color .5s var(--ease)}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.hero :focus-visible,.island :focus-visible,.sheet-menu :focus-visible,.story.lead :focus-visible{outline-color:#fff}
.muted{color:var(--ink-2)}
.skip{position:absolute;left:var(--gutter);top:-60px;background:var(--ink);color:#fff;padding:12px 16px;z-index:60;border-radius:999px}
.skip:focus{top:12px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.grain{position:fixed;inset:0;z-index:5;pointer-events:none;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:200px 200px}

/* Eyebrow tags */
.eyebrow{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:5px 12px;font-size:10px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;background:var(--shell);color:var(--ink-2);margin-bottom:16px;border:1px solid var(--line);white-space:nowrap;max-width:100%}
.hero .eyebrow{white-space:normal;line-height:1.3}
.eyebrow::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--blue)}
.on-dark .eyebrow,.hero .eyebrow{background:rgba(255,255,255,.1);color:rgba(255,255,255,.85);border-color:rgba(255,255,255,.14)}
.on-dark .eyebrow::before,.hero .eyebrow::before{background:#9cc2ff}

/* Pill buttons; the trailing icon lives in its own circle */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:54px;padding:8px 8px 8px 24px;border-radius:999px;font:600 1rem/1.2 var(--sans);text-decoration:none;cursor:pointer;border:1.5px solid transparent;touch-action:manipulation;transition:transform .7s var(--ease),background-color .7s var(--ease),border-color .7s var(--ease),box-shadow .7s var(--ease),color .7s var(--ease);white-space:nowrap}
.btn i{width:36px;height:36px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex:none;transition:transform .7s var(--ease),background-color .7s var(--ease)}
.btn i svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.btn:hover i{transform:translate(3px,-1px) scale(1.05)}
.btn:active{transform:scale(.98)}
.btn-ink{background:var(--ink);color:#fff;box-shadow:0 1px 0 rgba(255,255,255,.12) inset,0 16px 36px -20px rgba(11,31,68,.6)}
.btn-ink i{background:rgba(255,255,255,.12)}
.btn-ink:hover{background:var(--navy);box-shadow:0 1px 0 rgba(255,255,255,.14) inset,0 22px 44px -20px rgba(11,31,68,.7)}
.btn-cream{background:#fff;color:var(--ink);border-color:var(--line);box-shadow:0 1px 1px rgba(255,255,255,.6) inset,0 12px 30px -22px rgba(11,31,68,.4)}
.btn-cream i{background:var(--shell)}
.btn-cream:hover{border-color:rgba(11,31,68,.2);background:var(--cream)}
.btn-glass{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.28);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.btn-glass i{background:rgba(255,255,255,.14)}
.btn-glass:hover{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.5)}
/* The hero's "Book a free call" (home, /modelling-programme/): white text on a dark glass pill. The link-state selectors outrank any
   plugin's a:link colour (that is what turned it blue), and the dark backing keeps white text above 4.5:1 (about 7:1 at worst, over a
   white frame of the video) whatever is behind it. */
a.btn-glass,a.btn-glass:link,a.btn-glass:visited{color:#fff;background:rgba(8,22,50,.7);border-color:rgba(255,255,255,.6)}
a.btn-glass:hover,a.btn-glass:focus-visible{color:#fff;background:rgba(8,22,50,.82);border-color:#fff}
/* The header's "Book a free call": a solid pill, dark text on white (about 16:1; the glass version read faded, and a plugin
   stylesheet could turn its link blue). The selectors outrank any plugin's a:link colour. */
.island .pill a.btn-glass,.island .pill a.btn-glass:link,.island .pill a.btn-glass:visited{background:#fff;color:var(--ink);border-color:#fff;box-shadow:0 1px 0 rgba(255,255,255,.6) inset}
.island .pill a.btn-glass i{background:var(--shell)}
.island .pill a.btn-glass:hover,.island .pill a.btn-glass:focus-visible{background:var(--cream-2);color:var(--ink);border-color:var(--cream-2)}
.btn-white{background:#fff;color:var(--ink);box-shadow:0 20px 40px -24px rgba(0,0,0,.6)}
.btn-white i{background:var(--shell)}
.btn-white:hover{background:var(--cream)}
.btn-small{min-height:42px;padding:4px 6px 4px 16px;font-size:.9rem;gap:8px}
.btn-small i{width:30px;height:30px}
.btn-block{width:100%}
.btn-plain{padding:8px 24px}
.tlink{font-weight:600;text-decoration:underline;text-underline-offset:.22em;text-decoration-thickness:1px;display:inline-flex;align-items:center;min-height:44px;transition:color .5s var(--ease)}
.tlink:hover{color:var(--blue)}

/* Double bezel: shell and core */
.shell{background:var(--shell);border:1px solid var(--line);border-radius:var(--r);padding:var(--rp)}
.core{background:#fff;border-radius:var(--ri);box-shadow:0 1px 1px rgba(255,255,255,.9) inset,0 0 0 1px rgba(255,255,255,.6) inset;height:100%}
.shell.dark{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12)}
.shell.dark .core{background:rgba(8,22,50,.78);box-shadow:0 1px 1px rgba(255,255,255,.15) inset;color:#fff}

/* Floating island nav */
.island{position:fixed;top:12px;left:var(--gutter);right:var(--gutter);z-index:30;pointer-events:none}
.island .pill{pointer-events:auto;margin:0 auto;display:flex;align-items:center;gap:10px;padding:8px 8px 8px 16px;border-radius:999px;background:rgba(11,31,68,.72);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);border:1px solid rgba(255,255,255,.14);box-shadow:0 1px 0 rgba(255,255,255,.12) inset,0 24px 50px -30px rgba(0,0,0,.6);color:#fff}
.logo{display:inline-flex;align-items:center;margin-right:auto;min-height:44px}
.logo svg{height:30px;width:auto;display:block}
.links{display:none;gap:22px;align-items:center;margin:0 10px}
.links a{text-decoration:none;font-weight:500;font-size:.92rem;color:rgba(255,255,255,.78);min-height:44px;display:inline-flex;align-items:center}
.links a:hover{color:#fff}
.nav-t{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.burger{width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.1);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;position:relative;flex:none;transition:background-color .7s var(--ease)}
.burger:hover{background:rgba(255,255,255,.18)}
.burger span{position:absolute;left:14px;width:16px;height:1.5px;background:#fff;border-radius:2px;transition:transform .7s var(--ease),top .7s var(--ease)}
.burger span:nth-child(1){top:18px}.burger span:nth-child(2){top:24px}
.nav-t:checked ~ .pill .burger span:nth-child(1){top:21px;transform:rotate(45deg)}
.nav-t:checked ~ .pill .burger span:nth-child(2){top:21px;transform:rotate(-45deg)}
.sheet-menu{position:fixed;inset:0;z-index:-1;background:rgba(11,31,68,.86);backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);color:#fff;opacity:0;visibility:hidden;transition:opacity .7s var(--ease),visibility 0s .7s;pointer-events:none;display:grid;align-content:center;padding:0 var(--gutter)}
.nav-t:checked ~ .sheet-menu{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .7s var(--ease)}
.sheet-menu nav{display:grid;gap:4px;max-width:var(--max);margin:0 auto;width:100%}
.sheet-menu a{font-family:var(--display);font-weight:var(--dw);letter-spacing:var(--dtrack);font-size:clamp(1.9rem,6vw,3.4rem);line-height:1.1;text-decoration:none;color:#fff;padding:8px 0;opacity:0;transform:translateY(48px);transition:opacity .7s var(--ease),transform .7s var(--ease),color .5s var(--ease)}
.sheet-menu a:hover{color:#9cc2ff}
.nav-t:checked ~ .sheet-menu a{opacity:1;transform:none}
.nav-t:checked ~ .sheet-menu a:nth-child(1){transition-delay:.1s}.nav-t:checked ~ .sheet-menu a:nth-child(2){transition-delay:.15s}.nav-t:checked ~ .sheet-menu a:nth-child(3){transition-delay:.2s}.nav-t:checked ~ .sheet-menu a:nth-child(4){transition-delay:.25s}.nav-t:checked ~ .sheet-menu a:nth-child(5){transition-delay:.3s}.nav-t:checked ~ .sheet-menu a:nth-child(6){transition-delay:.35s}.nav-t:checked ~ .sheet-menu a:nth-child(7){transition-delay:.4s}
.sheet-menu small{display:block;font-family:var(--sans);font-size:.85rem;color:rgba(255,255,255,.6);margin-top:24px}
body:has(.nav-t:checked){overflow:hidden}
@media (min-width:900px) and (max-width:1100px){.links{gap:16px;margin:0 6px}.links a{font-size:.88rem}}
@media (min-width:900px){.island{top:24px}.island .pill{width:max-content;padding-left:20px}.links{display:flex}.logo svg{height:34px}}
@media (max-width:359px){.island .btn-small{padding-left:12px;font-size:.84rem}.island .btn-small i{display:none}.logo svg{height:26px}}

/* Hero: the live site's video (local loop first, his file second), dark gradient under it, the model beside or below */
.hero{position:relative;background:linear-gradient(160deg,#0b1f44 0%,#071533 55%,#040b1f 100%);color:#fff;overflow:hidden;min-height:100dvh;display:grid;align-items:center;isolation:isolate}
.hero .poster,.hero video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.hero .poster{opacity:.55}
.hero video{opacity:0;transition:opacity 1.6s var(--ease)}
.hero video.live{opacity:1}
.hero::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(6,16,38,.82) 0%,rgba(6,16,38,.62) 50%,rgba(6,16,38,.9) 100%)}
.hero .wrap{position:relative;z-index:2;display:grid;gap:24px;padding-top:88px;padding-bottom:36px;width:100%}
.hero h1{max-width:16ch;margin-bottom:14px}
.hero .lede{font-size:clamp(1.02rem,.5vw + 1rem,1.3rem);line-height:1.45;max-width:38ch;color:rgba(255,255,255,.78);margin-bottom:16px}
.gains{list-style:none;margin:0 0 20px;padding:0;display:grid;gap:4px;font-weight:500;font-size:.95rem}
.gains li{display:flex;gap:12px;align-items:center}
.gains svg{width:18px;height:18px;flex:none;color:#9cc2ff;stroke-width:1.5}
.hero-actions{display:grid;gap:10px;max-width:420px}
.hero-actions .btn{width:100%}
.hero .en{opacity:0;transform:translateY(40px);animation:enter 1.1s var(--ease) forwards;animation-delay:calc(.1s + var(--i,0) * 110ms)}
@keyframes enter{to{opacity:1;transform:none}}
@media (min-width:640px){.hero-actions{grid-template-columns:auto auto;max-width:none;justify-content:start}.hero-actions .btn{width:auto}}
@media (min-width:1000px){.hero .wrap{padding-top:150px;padding-bottom:120px}.hero h1{max-width:13ch}}

/* The model: a finished course model, built row by row */
.model{margin:0;font-family:var(--mono)}
/* In the programme section: the model arrives with the section and only then builds row by row */
html.js .model:not(.in) .sheet tbody tr,html.js .model:not(.in) .sheet td,html.js .model:not(.in) .chrome .formula{animation-play-state:paused}
.build{display:grid;gap:12px;margin:0 0 20px}
.build .syllabus{margin:0}
.build .model{background:var(--ink);border-color:rgba(11,31,68,.25)}
.build .model .core{background:#071533}
@media (min-width:900px){.build{grid-template-columns:7fr 5fr;gap:24px;align-items:start;margin-bottom:32px}}
.model .core{overflow:hidden;position:relative}
.model .chrome{display:flex;align-items:center;gap:12px;padding:9px 14px;border-bottom:1px solid rgba(255,255,255,.1);font-size:.74rem;color:rgba(255,255,255,.65)}
.model .chrome b{font-weight:500;color:#fff;min-width:2.6em}
.model .chrome .fx{padding-left:12px;border-left:1px solid rgba(255,255,255,.14)}
.model .chrome .formula{color:#fff;white-space:nowrap;overflow:hidden;display:inline-block;max-width:0;border-right:2px solid transparent;animation:type .7s steps(11) forwards 1.8s,caret 1s steps(1) 4}
@keyframes type{to{max-width:12ch}}
.model input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.model .v1,.model .v2,.model .v3{display:none}
#m1:checked ~ .core .chrome .v1,#m2:checked ~ .core .chrome .v2,#m3:checked ~ .core .chrome .v3{display:inline}
.model .views{display:grid;grid-template-columns:minmax(0,1fr)}
.model .views table{display:table;grid-area:1/1;min-width:0;width:100%;visibility:hidden;opacity:0;transition:opacity .5s var(--ease);align-self:start}
#m1:checked ~ .core .views table.v1,#m2:checked ~ .core .views table.v2,#m3:checked ~ .core .views table.v3{visibility:visible;opacity:1}
.model .tabs{display:flex;gap:6px;padding:8px 10px;border-top:1px solid rgba(255,255,255,.1);font-size:.7rem;color:rgba(255,255,255,.65)}
.model .tabs label{display:inline-flex;align-items:center;min-height:40px;padding:4px 14px;border-radius:999px;cursor:pointer;transition:background-color .5s var(--ease),color .5s var(--ease)}
.model .tabs label:hover{color:#fff;background:rgba(255,255,255,.08)}
#m1:checked ~ .core .tabs label[for=m1],#m2:checked ~ .core .tabs label[for=m2],#m3:checked ~ .core .tabs label[for=m3]{color:var(--ink);background:#fff}
#m1:focus-visible ~ .core .tabs label[for=m1],#m2:focus-visible ~ .core .tabs label[for=m2],#m3:focus-visible ~ .core .tabs label[for=m3]{outline:3px solid #fff;outline-offset:-3px}
#m2:checked ~ .core .views table.v2 tbody tr,#m3:checked ~ .core .views table.v3 tbody tr{animation-delay:calc(var(--i,0) * 90ms)}
#m2:checked ~ .core .chrome .formula,#m3:checked ~ .core .chrome .formula{animation-delay:.6s,0s}
@keyframes caret{50%{border-right-color:#fff}}
.sheet{width:100%;border-collapse:collapse;font-size:.8rem;line-height:1.3;color:#e8eefb}
.sheet th,.sheet td{border:1px solid rgba(255,255,255,.08);padding:8px 10px;text-align:left;white-space:nowrap}
.sheet td:nth-child(2){white-space:normal}
.sheet thead th,.sheet th.r{background:rgba(255,255,255,.05);color:rgba(255,255,255,.6);font-weight:400;text-align:center;font-size:.68rem}
.sheet th.r{width:2.2em}
.sheet td.v{text-align:right;font-variant-numeric:tabular-nums}
.sheet td.in{color:#8fb8ff}
.sheet td.h{color:#fff;font-weight:500;background:rgba(255,255,255,.03)}
.sheet tr.sel td{background:rgba(31,101,204,.35)}
.sheet tr.sel td.v{color:#fff;font-weight:500}
.sheet tbody tr{animation:build .6s var(--ease) both;animation-delay:calc(.9s + var(--i,0) * 110ms)}
@keyframes build{from{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:none}}
.sheet tr.sel td{animation:flash 1.2s var(--ease) both;animation-delay:2.8s}
@keyframes flash{0%{background:rgba(31,101,204,0)}40%{background:rgba(31,101,204,.6)}100%{background:rgba(31,101,204,.35)}}
.model figcaption{font-family:var(--sans);font-size:.8rem;color:rgba(255,255,255,.62);padding:10px 14px 12px;border-top:1px solid rgba(255,255,255,.1)}
@media (max-width:479px){.sheet{font-size:.72rem}.sheet th,.sheet td{padding:7px 6px}.sheet th.r{width:2em}}
@media (max-width:359px){.sheet{font-size:.66rem}.sheet th,.sheet td{padding:6px 5px}.sheet td:nth-child(2){overflow-wrap:anywhere}}

/* Sections: tight on phones, breathing heavily from tablet up */
section{scroll-margin-top:72px}
.sec .wrap{padding-top:28px;padding-bottom:28px}
.sec h2{margin-bottom:10px}
.sec .intro{color:var(--ink-2);max-width:50ch;margin-bottom:20px;font-size:.98rem}
.sec.tint{background:var(--cream-2)}
@media (min-width:768px){.sec .wrap{padding-top:112px;padding-bottom:112px}.sec .intro{margin-bottom:40px}}
@media (min-width:1100px){.sec .wrap{padding-top:144px;padding-bottom:144px}}
html.js .rv{opacity:0;transform:translateY(48px);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:calc(var(--i,0) * 90ms)}
html.js .rv.in{opacity:1;transform:none}

/* Where alumni work: four trays by kind of firm.
   Motion, in order: the trays arrive one after another; each tray's count ticks up as it lands;
   its logos light from grey to colour one by one; then a slow drift inside every tray, which pauses
   when you rest on a tray, and that tray lifts while the others step back. Still frame: all lit. */
.trays{display:grid;gap:8px;grid-template-columns:minmax(0,1fr)}
.tray{min-width:0}
html.js .tray.rv{transition-delay:calc(var(--i,0) * 240ms)}
.tray .core{height:100%;padding:8px 8px 5px;display:grid;gap:4px;align-content:start;min-width:0;overflow:hidden;transition:transform .7s var(--ease),box-shadow .7s var(--ease)}
.tray .lab{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:2px 8px;min-width:0}
.tray .lab .eyebrow{margin:0;font-size:8.5px;padding:4px 9px;letter-spacing:.14em;white-space:nowrap}
.tray .lab small{font-family:var(--mono);font-size:.68rem;color:var(--ink-3);white-space:nowrap;font-variant-numeric:tabular-nums}
.firms{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px 0;container-type:inline-size}
.firm{grid-column:span 2;min-width:0;height:50px;display:flex;align-items:center;justify-content:center;padding:0 4px;border-radius:10px;transition:background-color .7s var(--ease)}
/* Five to a card, 3 + 2: the first three share a row in thirds, the wider two take half each below. Each logo is sized to equal visual area (width = 13.5 x the square root of its width-to-height ratio, as --k in container-width units), not equal width. */
.firm:nth-child(n+4){grid-column:span 3}
.firm img{width:calc(var(--k,24) * 3px);max-width:100%;height:auto;max-height:100%;object-fit:contain;display:block;filter:grayscale(1);opacity:.5;transition:filter .9s var(--ease),opacity .9s var(--ease),transform .7s var(--ease);transition-delay:calc(.25s + var(--i,0) * 140ms)}
@supports (width:1cqw){.firm img{width:calc(var(--k,24) * 1cqw)}}
.tray.lit .firm img,.firm:hover img,html:not(.js) .firm img{opacity:1}
html.js .tray.lit .firm{animation:drift 7s ease-in-out infinite alternate;animation-delay:calc(1.6s + var(--i,0) * -1.3s)}
@keyframes drift{from{transform:translateY(-2px)}to{transform:translateY(2px)}}
.tray:hover .firm,.tray:focus-within .firm{animation-play-state:paused}
.tray:hover .core,.tray:focus-within .core{transform:translateY(-4px);box-shadow:var(--shadow)}
.trays:hover .tray:not(:hover) .firm img{opacity:.55;filter:grayscale(1)}
.firm:hover{background:var(--cream)}
.firm:hover img{transform:translateY(-3px) scale(1.05);transition-delay:0s}
@media (min-width:640px){.trays{gap:12px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.tray .core{padding:14px 14px 10px;gap:10px}.tray .lab .eyebrow{font-size:10px;padding:5px 12px;letter-spacing:.2em}.tray .lab small{font-size:.74rem}.firm{height:56px}}
@media (min-width:1000px){.trays{grid-template-columns:repeat(12,1fr);gap:16px}.tray.pe,.tray.ib,.tray.ad,.tray.im{grid-column:span 6}.tray .core{padding:20px 20px 14px}.firms{gap:8px 0}.firm{height:80px}}

/* The figures: four of the same species, two by two on a phone */
.figures{display:grid;gap:8px;margin-top:20px;grid-template-columns:1fr 1fr}
.figure .core{padding:14px 12px 14px 14px;display:grid;gap:2px;align-content:start}
.figure b{font-family:var(--display);font-weight:var(--dw);font-size:2.3rem;letter-spacing:calc(var(--dtrack) - .01em);line-height:.95;font-variant-numeric:tabular-nums;color:var(--ink);font-variation-settings:"opsz" 144;white-space:nowrap}
.figure b small{font-size:.5em;letter-spacing:-.02em;color:var(--blue)}
.figure .eyebrow{margin-bottom:8px;font-size:8px;padding:3px 7px;letter-spacing:.12em}
.figure p{color:var(--ink-2);font-size:.8rem;line-height:1.3;max-width:26ch;margin-top:6px}
.figure p em{font-style:normal;font-family:var(--mono);font-size:.64rem;color:var(--ink);display:block;margin-top:5px}
@media (min-width:640px){.figures{gap:12px;margin-top:40px;grid-template-columns:repeat(4,1fr)}.figure .core{padding:24px 20px 22px;gap:4px}.figure b{font-size:clamp(2.6rem,3vw + 1.2rem,4.2rem)}.figure .eyebrow{margin-bottom:10px;font-size:10px;padding:5px 12px;letter-spacing:.2em}.figure p{font-size:.92rem;line-height:1.45}.figure p em{font-size:.78rem}}
@media (min-width:1000px){.figures{gap:16px}.figure .core{padding:28px 26px 26px}}

/* Where are you now: the picker */
.pick input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.pick .wrap{display:grid;gap:20px}
.opts{display:grid;gap:6px;list-style:none;margin:0;padding:0}
.opts label{display:grid;grid-template-columns:22px 1fr;gap:10px;align-items:center;padding:9px 14px;min-height:50px;background:#fff;border:1px solid var(--line);border-radius:999px;cursor:pointer;font-weight:600;font-size:.9rem;line-height:1.3;transition:border-color .7s var(--ease),box-shadow .7s var(--ease),transform .7s var(--ease),background-color .7s var(--ease)}
.opts label:hover{border-color:rgba(11,31,68,.25);transform:translateY(-1px)}
.opts label:active{transform:scale(.99)}
.opts label i{width:20px;height:20px;border-radius:50%;border:1.5px solid rgba(11,31,68,.3);display:grid;place-items:center;transition:background-color .7s var(--ease),border-color .7s var(--ease)}
.opts label i::after{content:"";width:8px;height:8px;border-radius:50%;background:#fff;transform:scale(0);transition:transform .7s var(--ease)}
#s1:checked ~ .wrap label[for=s1],#s2:checked ~ .wrap label[for=s2],#s3:checked ~ .wrap label[for=s3],#s4:checked ~ .wrap label[for=s4]{border-color:var(--ink);box-shadow:0 18px 36px -24px rgba(11,31,68,.5)}
#s1:checked ~ .wrap label[for=s1] i,#s2:checked ~ .wrap label[for=s2] i,#s3:checked ~ .wrap label[for=s3] i,#s4:checked ~ .wrap label[for=s4] i{background:var(--ink);border-color:var(--ink)}
#s1:checked ~ .wrap label[for=s1] i::after,#s2:checked ~ .wrap label[for=s2] i::after,#s3:checked ~ .wrap label[for=s3] i::after,#s4:checked ~ .wrap label[for=s4] i::after{transform:scale(1)}
#s1:focus-visible ~ .wrap label[for=s1],#s2:focus-visible ~ .wrap label[for=s2],#s3:focus-visible ~ .wrap label[for=s3],#s4:focus-visible ~ .wrap label[for=s4]{outline:3px solid var(--blue);outline-offset:2px}
.panels{position:relative}
.panel{position:absolute;top:0;left:0;width:100%;display:grid;gap:14px;align-content:start;transition:opacity .7s var(--ease),transform .7s var(--ease);opacity:0;transform:translateY(24px);visibility:hidden}
#s1:checked ~ .wrap .p1,#s2:checked ~ .wrap .p2,#s3:checked ~ .wrap .p3,#s4:checked ~ .wrap .p4{position:relative;opacity:1;transform:none;visibility:visible;transition-delay:.08s}
.pick:not(:has(input:checked)) .p0{position:relative;opacity:1;transform:none;visibility:visible}
.panel{gap:12px}
.panel h3{font-size:1.3rem}
.panel > p{color:var(--ink-2);max-width:48ch;font-size:.94rem;line-height:1.5}
.panel .acts{display:flex;flex-wrap:wrap;gap:8px 20px;align-items:center}
.card .core{padding:12px 14px;display:grid;gap:6px}
.card h4{margin:0;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);font-weight:600}
.card ul{margin:0;padding:0;list-style:none;display:grid;gap:6px}
.card li{display:grid;grid-template-columns:18px 1fr;gap:10px;align-items:start;color:var(--ink-2);font-size:.92rem;line-height:1.4}
@media (min-width:900px){.panel{gap:14px}.panel h3{font-size:1.5rem}.panel > p{font-size:.98rem}.card .core{gap:8px}.card ul{gap:8px}.card li{font-size:.95rem}}
.card li svg{width:18px;height:18px;color:var(--blue);margin-top:2px;stroke-width:1.5}
#s1:checked ~ .wrap .p1 .card li,#s2:checked ~ .wrap .p2 .card li,#s3:checked ~ .wrap .p3 .card li,#s4:checked ~ .wrap .p4 .card li{animation:build .6s var(--ease) both;animation-delay:calc(.15s + var(--i,0) * 80ms)}
@media (min-width:900px){.pick .wrap{grid-template-columns:5fr 7fr;column-gap:72px;align-items:start}.opts{position:sticky;top:100px}.card .core{padding:22px 24px}}

/* Success Stories: the featured story turns between three students on a slow timer (dots to choose;
   it rests while you read or hover); the result tag stamps in, the quote rises a sentence at a time. Two shorter beside. */
.stories{display:grid;gap:8px}
.minor{display:grid;grid-auto-flow:column;grid-auto-columns:84%;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-left:var(--gutter);margin:0 calc(var(--gutter) * -1);padding:2px var(--gutter) 6px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.minor::-webkit-scrollbar{display:none}
.minor .story{scroll-snap-align:start}
.story{margin:0}
.story .core{padding:16px 16px;display:grid;gap:12px;align-content:start}
.story blockquote{margin:0;font-family:var(--quote);font-weight:var(--qw);font-size:1.02rem;line-height:1.35;letter-spacing:-.01em;font-variation-settings:"opsz" 72}
.story.lead blockquote{font-size:clamp(1rem,1.1vw + .8rem,1.9rem);line-height:1.35;font-variation-settings:"opsz" 120}
@media (min-width:640px){.minor{grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:1fr 1fr;overflow:visible;margin:0;padding:0;gap:12px}}
@media (min-width:900px){.minor{grid-template-columns:1fr;gap:16px}}
.story figcaption{display:grid;grid-template-columns:44px 1fr;gap:12px;align-items:center;font-size:.86rem;color:var(--ink-2);line-height:1.3}
.story.lead figcaption{grid-template-columns:56px 1fr}
.story figcaption img{width:44px;height:44px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 3px #fff,0 0 0 4px var(--line)}
.story.lead figcaption img{width:56px;height:56px}
@media (min-width:640px){.stories{gap:12px}.story .core{padding:22px 20px;gap:16px}.story blockquote{font-size:1.15rem}.story figcaption{font-size:.9rem}}
.story figcaption b{display:block;color:var(--ink);font-weight:600}
.story figcaption span{display:block}
.story .tag{font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--blue);display:inline-block;transform-origin:left center}
.story.lead .core{background:var(--ink);color:#fff;position:relative}
.story.lead figcaption{color:rgba(255,255,255,.7)}
.story.lead figcaption b{color:#fff}
.story.lead figcaption img{box-shadow:0 0 0 3px rgba(255,255,255,.12)}
.story.lead .tag{color:#9cc2ff}
.story.lead.shell{background:rgba(11,31,68,.08)}
.slides{display:grid}
.slide{grid-area:1/1;display:grid;gap:12px;align-content:start}
html.js .slide{opacity:0;visibility:hidden;transition:opacity .9s var(--ease),visibility 0s .9s}
html.js .slide.on{opacity:1;visibility:visible;transition:opacity .9s var(--ease)}
html.js .slide .tag{opacity:0;transform:scale(1.18);}
html.js .slide.on .tag{animation:stamp .7s var(--ease) .15s forwards}
@keyframes stamp{to{opacity:1;transform:none}}
html.js .slide .ln{display:inline;opacity:0;}
html.js .slide.on .ln{animation:focus .9s var(--ease) forwards;animation-delay:calc(.3s + var(--i,0) * 260ms)}
@keyframes focus{to{opacity:1}}
@keyframes rise{to{opacity:1;transform:none}}
html.js .slide figcaption{opacity:0;transform:translateY(8px)}
html.js .slide.on figcaption{animation:rise .8s var(--ease) forwards;animation-delay:calc(.5s + var(--n,3) * 220ms)}
.dots{display:flex;gap:6px;align-items:center;margin-top:4px}
html:not(.js) .dots{display:none}
.dots button{width:44px;height:44px;border:0;background:none;cursor:pointer;display:grid;place-items:center;padding:0;border-radius:50%}
.dots button span{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.32);transition:transform .7s var(--ease),background-color .7s var(--ease);display:block}
.dots button[aria-current="true"] span{background:#fff;transform:scale(1.4)}
.dots button:hover span{background:rgba(255,255,255,.7)}
.dots button:focus-visible{outline:3px solid #fff;outline-offset:-6px}
@media (min-width:640px){.story.lead .core{gap:16px}}
@media (min-width:900px){.stories{grid-template-columns:7fr 5fr;gap:16px}.story.lead .core{padding:40px 40px}.story .core{padding:28px 28px}.slide{gap:16px}}

/* Our story: the question as a quote, the punchline on its own line, his three reasons, then the two people */
.ask{margin:0 0 18px;padding:2px 0 2px 18px;border-left:3px solid var(--blue);max-width:46ch}
.ask p{margin:0;font-family:var(--display);font-weight:var(--dw);letter-spacing:var(--dtrack);font-size:clamp(1.22rem,1.2vw + 1rem,2rem);line-height:1.28;color:var(--ink)}
.ask .by{margin:10px 0 0;font-family:var(--mono);font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.punch{font-size:1.1rem;font-weight:600;color:var(--ink);max-width:40ch;margin:0 0 22px}
@media (min-width:768px){.ask{margin-bottom:24px;padding-left:28px}.punch{font-size:1.3rem;margin-bottom:40px}}
.reasons{display:grid;grid-auto-flow:column;grid-auto-columns:84%;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-left:var(--gutter);margin:4px calc(var(--gutter) * -1) 0;padding:2px var(--gutter) 6px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.reasons::-webkit-scrollbar{display:none}
.reasons .reason{scroll-snap-align:start;min-width:0}
.reason .core{padding:14px 16px;display:grid;gap:6px;align-content:start}
.reason .n{font-family:var(--mono);font-size:.72rem;color:var(--blue);letter-spacing:.06em}
.reason h3{font-size:1.08rem}
.reason p{color:var(--ink-2);font-size:.9rem;line-height:1.45}
@media (min-width:720px){.reasons{grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:repeat(3,1fr);gap:16px;overflow:visible;margin:4px 0 0;padding:0}.reason .core{padding:24px 24px 22px;gap:8px}.reason h3{font-size:1.2rem}.reason p{font-size:.95rem}}
.people{margin-top:16px}
.people h3{font-size:1.2rem;margin-bottom:10px}
.founders{display:grid;gap:8px}
.founder .core{display:grid;grid-template-columns:64px 1fr;gap:12px;align-items:center;padding:10px 12px 10px 10px}
.founder img{width:64px;height:64px;border-radius:calc(var(--ri) - 10px);object-fit:cover}
.founder h4{margin:0;font-family:var(--display);font-weight:var(--dw);letter-spacing:var(--dtrack);font-size:1.1rem}
.founder p{margin:3px 0 0;color:var(--ink-2);font-size:.86rem;line-height:1.4}
.team{margin-top:6px;color:var(--ink-2);max-width:60ch;font-size:.94rem}
@media (min-width:720px){.people{margin-top:40px}.people h3{font-size:1.45rem;margin-bottom:16px}.founders{grid-template-columns:1fr 1fr;gap:16px}.founder .core{grid-template-columns:112px 1fr;padding:20px}.founder img{width:112px;height:112px}}

/* Prices */
.syllabus{max-width:760px;margin:0 0 20px}
.syllabus .core{overflow:hidden}
.syllabus details{border-radius:var(--ri)}
.syllabus summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;min-height:52px;font-size:.95rem;font-weight:600;transition:background-color .5s var(--ease)}
.syllabus summary::-webkit-details-marker{display:none}
.syllabus summary:hover{background:var(--cream)}
.syllabus summary i{width:30px;height:30px;border-radius:50%;background:var(--ink);position:relative;flex:none;transition:transform .7s var(--ease)}
.syllabus summary i::before,.syllabus summary i::after{content:"";position:absolute;background:#fff;left:50%;top:50%;transform:translate(-50%,-50%)}
.syllabus summary i::before{width:12px;height:1.5px}
.syllabus summary i::after{width:1.5px;height:12px}
.syllabus[open] summary i{transform:rotate(45deg)}
.syllabus ol{margin:0;padding:0 18px 18px;list-style:none;counter-reset:m;display:grid;gap:12px;animation:build .5s var(--ease)}
.syllabus li{counter-increment:m;display:grid;grid-template-columns:34px 1fr;gap:12px;align-items:start}
.syllabus li::before{content:counter(m,decimal-leading-zero);font-family:var(--mono);font-size:.78rem;color:var(--blue);padding-top:4px}
.syllabus li b{display:block;font-weight:600;font-size:.95rem}
.syllabus li span{display:block;grid-column:2;color:var(--ink-2);font-size:.9rem}
.tiers{display:grid;gap:8px}
.tier .core{display:grid;grid-template-rows:auto 1fr auto;gap:12px;padding:16px 16px 14px;transition:transform .7s var(--ease),box-shadow .7s var(--ease)}
.tier:hover .core{transform:translateY(-3px);box-shadow:var(--shadow)}
.tier .top{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.tier .top h3{font-size:1.2rem}
.tier .price{font-family:var(--display);font-weight:var(--dw);font-size:1.6rem;letter-spacing:var(--dtrack);font-variant-numeric:tabular-nums;white-space:nowrap}
.tier .tag{margin:3px 0 0;font-size:.9rem;color:var(--ink-2)}
.tier ul{margin:0;padding:0;list-style:none;display:grid;gap:5px;color:var(--ink-2);font-size:.9rem;line-height:1.4;align-content:start}
.tier li{display:grid;grid-template-columns:18px 1fr;gap:10px;align-items:start}
.tier li svg{width:18px;height:18px;color:var(--blue);margin-top:3px;stroke-width:1.5}
.tier .acts{display:grid;grid-template-rows:50px 38px;gap:4px;align-content:end}
@media (min-width:720px){.tier .core{gap:16px}.tier .top h3{font-size:1.3rem}.tier .price{font-size:1.85rem}.tier ul{gap:8px;font-size:.95rem}.tier .acts{grid-template-rows:54px 44px;gap:6px}}
.tier .acts .tlink{justify-content:center}
.tier.featured .core{background:var(--ink);color:#fff}
.tier.featured.shell{background:rgba(11,31,68,.08)}
.tier.featured .tag,.tier.featured ul{color:rgba(255,255,255,.72)}
.tier.featured li svg{color:#9cc2ff}
.tier.featured .tlink:hover{color:#9cc2ff}
.coach{display:grid;grid-template-columns:40px 1fr;gap:10px;align-items:center;font-size:.86rem;color:rgba(255,255,255,.72);line-height:1.35}
.coach img{width:40px;height:40px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 2px rgba(255,255,255,.18)}
.coach b{display:block;color:#fff;font-weight:600}
.unsure{margin-top:20px;color:var(--ink-2);display:grid;gap:4px;font-size:.95rem}
.unsure a{font-weight:600}
@media (min-width:720px){.tiers{grid-template-columns:1fr 1fr;gap:16px;align-items:stretch}.tier .core{padding:28px 28px 24px}.unsure{grid-template-columns:auto auto;gap:4px 28px;justify-content:start}}

footer{background:var(--ink);color:rgba(255,255,255,.7);padding:36px 0 24px;border-radius:var(--r) var(--r) 0 0;margin-top:0}
footer .wrap{display:grid;gap:12px;font-size:.88rem}
footer svg{height:28px;width:auto}
footer nav{display:grid;grid-template-columns:repeat(4,auto);justify-content:start;gap:0 16px}
@media (min-width:640px){footer nav{display:flex;flex-wrap:wrap;gap:4px 24px}footer{padding:72px 0 48px}}
footer nav a{min-height:44px;display:inline-flex;align-items:center;color:#fff;text-decoration:none}
footer nav a:hover{text-decoration:underline}

/* The signup screen (in production, /join/free-materials/) */
.screen{display:none;position:fixed;inset:0;z-index:50;background:var(--cream);color:var(--ink);overflow:auto;overscroll-behavior:contain;opacity:1;transition:opacity .7s var(--ease)}
.screen:target{display:block}
@starting-style{.screen:target{opacity:0}}
.screen .wrap{max-width:600px;padding-top:12px;padding-bottom:72px}
.back{display:inline-flex;align-items:center;gap:8px;min-height:44px;text-decoration:none;font-weight:600;font-size:.92rem;color:var(--ink-2)}
.back:hover{color:var(--ink)}
.back svg{width:18px;height:18px;stroke-width:1.5}
.screen h2{margin:8px 0 6px;font-size:clamp(1.8rem,2vw + 1rem,2.5rem)}
.screen .lead{max-width:40ch;margin-bottom:18px;color:var(--ink-2)}
.form-shell .core{padding:18px}
.form{display:grid;gap:16px}
.social{display:grid;gap:8px}
.btn-social{justify-content:center;padding:8px 20px}
.btn-social svg{width:18px;height:18px;flex:none}
.or{display:flex;align-items:center;gap:12px;font-family:var(--mono);font-size:.74rem;color:var(--ink-3)}
.or::before,.or::after{content:"";flex:1;height:1px;background:var(--line)}
.fields{display:grid;gap:14px}
.two{display:grid;gap:10px;grid-template-columns:1fr 1fr}
.field{display:grid;gap:4px}
.field label{font-weight:600;font-size:.92rem}
.field small{font-size:.82rem;color:var(--ink-2)}
.field input{min-height:52px;padding:0 16px;border:1px solid rgba(11,31,68,.2);border-radius:999px;font:400 1.02rem var(--sans);color:var(--ink);background:#fff;width:100%;transition:border-color .5s var(--ease),box-shadow .5s var(--ease)}
.field input:hover{border-color:var(--ink)}
.field input:focus-visible{outline:3px solid var(--blue);outline-offset:1px;border-color:var(--blue)}
.pw{position:relative}
.pw input{padding-right:76px}
.pw button{position:absolute;right:5px;top:5px;min-height:42px;min-width:56px;border:0;background:var(--shell);font:600 .86rem var(--sans);color:var(--ink);cursor:pointer;border-radius:999px;display:none}
.notice{font-size:.84rem;color:var(--ink-2);line-height:1.45}
.notice a{font-weight:600}
.form .fine{font-size:.92rem;color:var(--ink-2);display:grid;gap:0}
.form .fine a,.notice a{font-weight:600;display:inline-flex;align-items:center;min-height:44px}
.hold{max-width:540px}
.hold p{color:var(--ink-2);max-width:44ch}
.hold .btn{margin-top:16px}
#main{scroll-margin-top:0}
body:has(.screen:target){overflow:hidden}
body:has(.screen:target) .island,body:has(.screen:target) .float{display:none}

/* Floating island action on phones, after the first screen; it steps away while a section with its own button is on screen */
.float{position:fixed;left:var(--gutter);right:var(--gutter);bottom:max(14px,env(safe-area-inset-bottom));z-index:40;transform:translateY(140%);transition:transform .7s var(--ease);display:none}
.float.ready{display:block}
.float.on{transform:none}
.float.on.off{transform:translateY(140%)}
.float .btn{width:100%;max-width:520px;margin:0 auto;display:flex;box-shadow:0 1px 0 rgba(255,255,255,.12) inset,0 24px 50px -24px rgba(11,31,68,.8)}
@media (min-width:900px){.float{display:none !important}body.bar-on{padding-bottom:0}}


/* Fix round 1: written form errors, the no-emails button, the neutral picker panel, the footer newsletter */
.field input[aria-invalid="true"]{border-color:#b42318}
.field .err{display:none;font-size:.86rem;color:#b42318;font-weight:500}
.field .err.on{display:block}
.form .alt{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:center;font-size:.92rem;color:var(--ink-2)}
.form .alt button{border:0;background:none;padding:0;min-height:44px;font:600 .92rem var(--sans);color:var(--ink);text-decoration:underline;text-underline-offset:.22em;cursor:pointer}
.form .alt button:hover{color:var(--blue)}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
footer .nl{display:grid;gap:12px;padding:18px 0 6px;border-top:1px solid rgba(255,255,255,.12);margin-top:8px}
footer .nl-text{display:grid;gap:2px;max-width:48ch}
footer .nl-text b{color:#fff;font-weight:600;font-size:1rem}
footer .nl-text span{color:rgba(255,255,255,.7);font-size:.86rem;line-height:1.45}
footer .nl-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;max-width:460px}
footer .nl input{min-height:44px;padding:0 16px;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:rgba(255,255,255,.06);color:#fff;font:400 1rem var(--sans);width:100%;min-width:0;transition:border-color .5s var(--ease)}
footer .nl input::placeholder{color:rgba(255,255,255,.45)}
footer .nl input:hover{border-color:rgba(255,255,255,.5)}
footer .nl input:focus-visible{outline:3px solid #9cc2ff;outline-offset:1px;border-color:#9cc2ff}
footer .nl input[aria-invalid="true"]{border-color:#ffb4b4}
footer .nl .btn{min-height:44px}
footer .nl-err{margin:0;font-size:.86rem;color:#ffb4b4}
footer .nl-err[hidden]{display:none}
footer .nl-done{color:#fff;font-weight:600}
@media (min-width:640px){footer .nl{grid-template-columns:1fr auto;align-items:center;gap:24px;padding:28px 0 8px;margin-top:16px}footer .nl-row{min-width:380px}footer .nl-err{grid-column:2}}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:.01ms !important;animation-duration:.01ms !important;animation-delay:0s !important;transition-delay:0s !important}
  html.js .rv,.hero .en,.model{opacity:1;transform:none}
  .hero video{display:none}
  .model .chrome .formula{max-width:none}
  .firm img{opacity:1}
  html.js .tray.lit .firm{animation:none}
  html.js .slide .tag,html.js .slide .ln,html.js .slide figcaption{opacity:1;transform:none;animation:none}
  .grain{display:none}
}

/* ===== Added for the build (appended by make-theme.py; the prototypes stay as designed) ===== */

/* Motion budget (SEO spec 1.9): the first screen's headline and lede are fully visible on the first frame and only slide;
   everything else keeps its entrance. Blur is removed from every entrance by the build script. */
.hero h1.en,.hero .lede.en,.top h1.en,.top .lede.en,.auth h1.en,.auth .lede.en,.nf h1.en,.nf .lede.en{opacity:1;transform:translateY(18px);animation:lift .6s var(--ease) forwards;animation-delay:0s}
@keyframes lift{to{transform:none}}
@media (prefers-reduced-motion:reduce){.hero h1.en,.hero .lede.en,.top h1.en,.top .lede.en,.auth h1.en,.auth .lede.en,.nf h1.en,.nf .lede.en{transform:none;animation:none}}

/* The hero video only starts after the page has loaded (site.js); the poster is the first paint */
.hero video:not(.live){visibility:hidden}

/* Footer: the privacy and cookie line */
footer .legal{font-size:.84rem;color:rgba(255,255,255,.55)}
footer .legal a{color:rgba(255,255,255,.8);text-decoration:none;display:inline-flex;align-items:center;min-height:44px}
footer .legal a:hover{color:#fff;text-decoration:underline}

/* The cookie choice (SEO spec 1.10): a compact bar at the foot, no overlay, the page usable before answering */
.consent{position:fixed;left:var(--gutter);right:var(--gutter);bottom:max(12px,env(safe-area-inset-bottom));z-index:45;display:grid;gap:10px;padding:14px 16px;border-radius:22px;background:rgba(11,31,68,.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#fff;box-shadow:0 24px 50px -30px rgba(0,0,0,.6);border:1px solid rgba(255,255,255,.14);max-width:640px;margin:0 auto}
.consent[hidden]{display:none}
.consent p{margin:0;font-size:.9rem;line-height:1.4;color:rgba(255,255,255,.85)}
.consent-acts{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.consent .btn{min-height:44px;padding:4px 14px}
body.consent-on .float.on{transform:translateY(-104px)}
@media (min-width:640px){.consent{grid-template-columns:1fr auto;align-items:center;padding:16px 20px}.consent-acts{grid-template-columns:auto auto}}

/* Ink buttons keep white text even where a plugin stylesheet colours links (MemberPress's ui/theme.css on /account/ turned it blue on navy, 18 Oct) */
a.btn-ink,a.btn-ink:link,a.btn-ink:visited,a.btn-ink:hover,a.btn-ink:focus{color:#fff}
/* Footer links stay white where a plugin stylesheet colours every link (MemberPress ui/theme.css on /account/, 18 Oct) */
footer nav a,footer nav a:link,footer nav a:visited{color:#fff!important}
footer .legal a,footer .legal a:link,footer .legal a:visited{color:rgba(255,255,255,.8)!important}
footer .legal a:hover{color:#fff!important}
