/* ===========================================================================
   WHAT MAKES YOU SICK? · Meir Ezra live in Toronto, November 2026 (round 8: the new name; was Reclaiming the Kingdom of You)
   tor.css v4, 27 Sep 2026 late (round 4, ONE idea: "a day in his room", see
   toronto-seminar/CONCEPT-R4.md): the white kept as PAPER laid over a living
   world (the dusk city, the room), the pinned day in the room, the window in
   "is this you", the floating ticket bar. v3 (round 3): the hero rebuilt to
   five things, the guarantee set in type, the timeline, the motion tools.
   Nothing here comes from the Money Manual's mm.css.

   THE SKIN: Toronto in November, bright.
     paper   snow-white page base, the page reads light-first
     navy    a deep night navy (never black) for the dark bands
     red     maple red, THE action colour: every button, the ticker, the
             guarantee band
     amber   maple gold for labels, the price, the seal
     ice     lake / ice blue for the one bright band (what you walk out with)
   TYPE (round 3, Zman: "we always stay with these boring static fonts"):
     Fraunces (display: a soft old-style serif with optical sizes and a real
     italic, set with SOFT 30) over Bricolage Grotesque (body, optical sizes
     too). Picked by a rendered tasting of eight pairs on the real words
     (shots-r3/font-tasting.png); Frank Ruhl Libre was the runner-up.
   RHYTHM (round 7 order, his, 30 Sep): hero (the night photograph, the paper pass) ·
     the days (paper-2, the date plates) · the room (navy, the film) · guarantee (the
     red sheet over the room, directly under the room film) · who (paper, the sheet
     over the red) · their words (ice) · is this you (paper-2) · walk out with (paper,
     five printed lines and one sheet) · your seat (paper-2) · frequently asked
     questions (paper) · close (navy).
   =========================================================================== */

:root{
  --paper:#FBFAF7; --paper-2:#F3F1EB; --snow:#FFFFFF;
  --navy:#0F1B33; --navy-2:#162543; --navy-3:#1E3159;
  --text:#131C2E; --text-2:rgba(19,28,46,.74); --text-3:rgba(19,28,46,.56);
  --on-navy:#F7F5F0; --on-navy-2:rgba(247,245,240,.76); --on-navy-3:rgba(247,245,240,.54);
  --red:#C8102E; --red-deep:#A30C25; --red-soft:rgba(200,16,46,.10);
  --amber:#F0A202; --amber-deep:#A8680A; --amber-soft:#FFE7B3;
  --ice:#DCEFF8; --ice-2:#EDF6FB; --lake:#1F6FB2; --lake-deep:#0E4C7E;
  --line:rgba(19,28,46,.12); --line-navy:rgba(247,245,240,.16);
  --display:'Fraunces',Georgia,'Times New Roman',serif;
  --body:'Bricolage Grotesque',system-ui,-apple-system,'Segoe UI',sans-serif;
  --maxw:1340px; --gutter:clamp(20px,4vw,56px); --bar:0px;
  --secpad:clamp(64px,8vw,120px);
  --r-card:18px; --r-btn:10px; --r-sheet:clamp(22px,2.6vw,40px);
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:clip}
body{margin:0;background:var(--paper);color:var(--text);font-family:var(--body);font-size:16px;line-height:1.5;
  -webkit-font-smoothing:antialiased;overflow-x:clip;font-variation-settings:"SOFT" 30;font-optical-sizing:auto}
/* Lenis (vendor/lenis.min.js) wants these; lenis.css inlined */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:hidden}
.lenis.lenis-smooth iframe{pointer-events:none}
img,svg,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4,p,ul,ol,figure,blockquote{margin:0;padding:0}
ul,ol{list-style:none}
button{font:inherit;color:inherit}
b,strong{font-weight:700}
::selection{background:var(--amber-soft);color:var(--navy)}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}
.wrap.narrow{max-width:min(var(--maxw),900px)}
.section{padding:var(--secpad) 0;position:relative}
.sz-small{--secpad:clamp(40px,5vw,72px)}
.sz-large{--secpad:clamp(88px,11vw,160px)}

/* the bands */
.band-paper{background:var(--paper-2)}
.band-ice{background:var(--paper-2)}
.band-accent{background:var(--red);color:#fff}
.roomfilm,.close,.foot{background:var(--navy);color:var(--on-navy)}
.proof{background:var(--ice)}

/* ---------- type ---------- */
.eyebrow,.mono-tag,.hero-kick{font:700 12px/1.3 var(--body);letter-spacing:.2em;text-transform:uppercase;color:var(--amber-deep)}
.roomfilm .mono-tag,.close .eyebrow{color:var(--amber)}
.proof .eyebrow{color:var(--lake-deep)}
.band-ice .eyebrow{color:var(--amber-deep)}
.band-accent .mono-tag{color:rgba(255,255,255,.88)}
h2.big,.statement{font-family:var(--display);font-weight:600;font-size:clamp(38px,5.2vw,68px);line-height:.98;letter-spacing:-.022em;
  color:var(--navy);margin-top:14px;max-width:18ch;font-optical-sizing:auto}
.roomfilm .statement,.close h2{color:var(--on-navy)}
.lede{margin-top:18px;font-size:clamp(17px,1.55vw,20px);line-height:1.55;color:var(--text-2);max-width:56ch}
.roomfilm .lede{color:var(--on-navy-2)}

/* ---------- buttons: maple red is the one action colour ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;font-family:var(--body);font-weight:700;font-size:16px;
  line-height:1;letter-spacing:-.005em;padding:17px 26px;border-radius:var(--r-btn);border:0;cursor:pointer;white-space:nowrap;
  transition:transform .18s ease,background .18s ease,box-shadow .18s ease}
.btn-red{background:var(--red);color:#fff;box-shadow:0 12px 26px -14px rgba(200,16,46,.7)}
.btn-red:hover{background:var(--red-deep);transform:translateY(-1px);box-shadow:0 16px 30px -14px rgba(200,16,46,.8)}
.btn-red:active{transform:translateY(0)}
.btn-dark{background:var(--navy);color:#fff;box-shadow:0 12px 26px -14px rgba(15,27,51,.7)}
.btn-dark:hover{background:var(--navy-3);transform:translateY(-1px)}
.btn-lg{padding:20px 32px;font-size:17px}
.btn-sm{padding:12px 18px;font-size:14px;border-radius:8px}
.btn.wide{width:100%}
.btn em{font-style:normal;font-weight:600;opacity:.85;padding-left:12px;border-left:1px solid rgba(255,255,255,.35)}
.btn:focus-visible{outline:3px solid var(--amber);outline-offset:2px}

/* ---------- ticker + nav ---------- */
.ticker{background:var(--red);color:#fff;font:600 12.5px/1.3 var(--body);letter-spacing:.02em}
.ticker-in{max-width:var(--maxw);margin:0 auto;padding:10px var(--gutter);display:flex;align-items:center;justify-content:center;gap:10px;overflow:hidden}
.dot{width:7px;height:7px;border-radius:50%;background:#fff;flex:0 0 7px;animation:pulse 2.2s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.78)}}
@media (max-width:640px){
  .ticker-in{justify-content:flex-start}
  .ticker-in span:last-child{white-space:nowrap;animation:tick 22s linear infinite}
  @keyframes tick{from{transform:translateX(100vw)}to{transform:translateX(-100%)}}
}

.nav{position:sticky;top:0;z-index:60;display:flex;align-items:center;gap:28px;padding:14px var(--gutter);
  background:rgba(251,250,247,0);transition:background .25s ease,box-shadow .25s ease}
.nav.stuck{background:rgba(251,250,247,.94);box-shadow:0 1px 0 var(--line)}
.nav-brand img{height:34px;width:auto}
.nav-links{display:flex;gap:26px;margin-left:auto;font-weight:600;font-size:14px;color:var(--text-2)}
.nav-links a:hover{color:var(--red)}
.nav>.btn{margin-left:auto}
.nav-links+.btn{margin-left:0}
.nav-prog{position:absolute;left:0;bottom:-1px;height:2px;width:var(--prog,0%);background:var(--amber);opacity:0;transition:opacity .3s ease}
.nav.stuck .nav-prog{opacity:1}
@media (max-width:900px){.nav-links{display:none}.nav-brand img{height:28px}}

/* ---------- HERO, round 9 (1 Oct): HERO A, his pick ("This is the one we should put in"): the storm breaking into
   light over the harbour, the CN Tower lit red and white, Meir in a charcoal coat and a red scarf (hero-r8/hero-a-v1.png,
   one take), and the ticket as a paper pass. A night picture, so the hero's words are white on the night navy.
   THE PLATE (toronto-seminar/media/compose_hero_r9.py) is 2.604 wide: the 21:9 take plus a strip of its own storm sky
   and dark water on the left, so its height is the hero's (+56 px for the drift) at every size up to 2560 x 1440 and
   his face never grows on a wide screen. Measured on the take: hair 0.155, chin 0.44 of the height; ears 0.605 to 0.715,
   the tower 0.542 of the width = 1.0687 plate-heights from the RIGHT edge. The plate is hung from the right and pulled
   right (its right side, the sun's far edge, cropped) only as far as the tower needs to stand 40 px clear of the WORDS:
   --tend is where the widest line ends, the title's "What Makes" (5.4 x its size) or, wider at every size, the lede's
   box (44ch = 28.6 x its size). The storm stays behind the words, the light behind him. ---------- */
.hero{position:relative;overflow:hidden;background:var(--navy);color:#fff;isolation:isolate;display:flex;
  min-height:min(calc(100svh - 102px),max(820px,40.64vw - 56px));padding:clamp(24px,3.6vh,44px) 0 calc(clamp(16px,2.4vh,24px) + var(--r-sheet));
  --tfs:clamp(44px,4.9vw,70px);--sfs:clamp(16px,1.25vw,18px);
  --tend:calc(max(var(--gutter),50vw - 670px + var(--gutter)) + max(5.4 * var(--tfs),28.6 * var(--sfs)))}
.hero-media{position:absolute;inset:0;z-index:0;overflow:hidden;--sy:0px;background:var(--navy);container-type:size}
.hero-plate{position:absolute;top:-56px;--ph:max(100cqh + 56px,100cqw / 2.6042);height:var(--ph);width:auto;max-width:none;
  right:min(0px,100cqw - var(--tend) - 40px - 1.0687 * var(--ph));translate:0 var(--sy)}
/* the words' side eases darker (the picture itself already does: compose_hero_r7.py), and the foot of the picture
   settles into the night so the pass and the paper sheet sit on something calm */
.hero-scrim{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(90deg,rgba(8,15,33,.5) 0%,rgba(8,15,33,.34) 24%,rgba(8,15,33,.1) 44%,rgba(8,15,33,0) 56%),
    linear-gradient(0deg,rgba(8,15,33,.62) 0%,rgba(8,15,33,.3) 18%,rgba(8,15,33,0) 40%)}

.hero-body{position:relative;z-index:5;width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter);
  display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"copy" "dates" "card";grid-template-rows:auto auto 1fr;
  align-self:stretch;padding-top:clamp(6px,2.4vh,26px)}
.hero-copy{grid-area:copy;align-self:start}
.hero-dates{grid-area:dates;align-self:start;margin:clamp(14px,2.2vh,24px) 0 0;font:600 15.5px/1.5 var(--body);color:#fff}
.hero-dates-venue{display:block;margin-top:3px;font-weight:500;color:rgba(255,255,255,.74)}
.hero-card{grid-area:card;align-self:end;margin-top:clamp(18px,3vh,34px)}

.hero-kick{margin:0;color:var(--amber)}
.hero-title{font-family:var(--display);font-weight:600;font-size:var(--tfs);line-height:.96;letter-spacing:-.025em;
  color:#fff;margin:14px 0 0;text-shadow:0 2px 30px rgba(8,15,33,.35)}
.hero-title span{display:block}
.hero-tag{margin:16px 0 0;font-family:var(--display);font-style:italic;font-weight:500;font-size:clamp(19px,1.6vw,24px);line-height:1.3;color:rgba(255,255,255,.94);max-width:40ch;text-wrap:balance}
.hero-sub{margin:14px 0 0;font-size:var(--sfs);line-height:1.55;color:rgba(255,255,255,.84);max-width:44ch;text-shadow:0 1px 16px rgba(8,15,33,.45)}

/* ---------- PAPER SHEETS (round 4): wherever the paper meets the world (the city, the room), the paper has an edge and
   casts a shadow, so the white reads as a page laid over something alive, never as a void beside it ---------- */
.sheet-top{position:relative;z-index:3;margin-top:calc(-1 * var(--r-sheet));border-radius:var(--r-sheet) var(--r-sheet) 0 0;
  box-shadow:0 -26px 50px -30px rgba(15,27,51,.42),0 -1px 0 rgba(255,255,255,.7)}
.sheet-bottom{position:relative;z-index:3;margin-bottom:calc(-1 * var(--r-sheet));border-radius:0 0 var(--r-sheet) var(--r-sheet);
  box-shadow:0 30px 56px -30px rgba(15,27,51,.5)}
.sheet-top.sheet-bottom{border-radius:var(--r-sheet)}
.sheet-top.sheet-bottom{box-shadow:0 -26px 50px -30px rgba(15,27,51,.42),0 30px 56px -30px rgba(15,27,51,.5)}
.under-top{padding-top:calc(var(--secpad) + var(--r-sheet))}
.under-bottom{padding-bottom:calc(var(--secpad) + var(--r-sheet))}

/* short laptops: the words tighten so the whole pass stays inside the first screen, clear of his chin */
@media (min-width:1000px) and (max-height:820px){
  .hero{padding:16px 0 calc(14px + var(--r-sheet));--tfs:clamp(42px,4.4vw,60px);--sfs:15.5px}
  .hero-tag{margin-top:12px;font-size:clamp(18px,1.5vw,21px)}
  .hero-sub{margin-top:10px;line-height:1.5}
  .hero-dates{margin-top:12px;font-size:15px}
  .hero-card{margin-top:16px}
}

/* under 1000px: the picture as a strip at the top (his face, the tower), melting into the night; the words start under
   his chin, then the pass, then the dates. The strip (hero-plate-ph.jpg) is the take cropped to x 0.47 to 0.95 and
   y 0.06 to 0.74 (1.6484 wide): on it the tower stands at 0.15, the ears at 0.28 to 0.51, hair 0.14, chin 0.559. It is
   --hp tall (always wider than the screen: --hp >= 100vw / 1.6484), centred, lifted --hoff so his chin ends just above
   the kicker. */
@media (max-width:999px){
  .hero{display:block;min-height:0;padding:0 0 calc(40px + var(--r-sheet));--hp:62vw;--hoff:6.6vw}
  .hero-media{height:clamp(300px,42vw,460px);inset:auto 0 auto 0;top:0;container-type:normal}
  .hero-media::after{content:"";position:absolute;inset:0;z-index:5;pointer-events:none;
    background:linear-gradient(180deg,rgba(15,27,51,0) 40%,rgba(15,27,51,.78) 62%,rgba(15,27,51,.96) 76%,var(--navy) 88%)}
  .hero-scrim{display:none}
  .hero-plate{top:calc(-1 * var(--hoff));right:auto;left:calc(50% - .8242 * var(--hp));height:var(--hp);translate:none}
  .hero-body{display:flex;flex-direction:column;padding-top:clamp(190px,30vw,340px)}
  .hero-copy{order:0;max-width:56ch}
  .hero-card{order:1;align-self:auto;margin-top:22px;width:100%;max-width:520px}
  .hero-dates{order:2;margin:18px 0 0}
}
@media (max-width:640px){
  /* the face strip at the top, the kicker right under his chin, the pass's button inside the first screen */
  .hero{--hp:62vw;--hoff:6.4vw}
  .hero-media{height:270px}
  .hero-body{padding-top:max(150px,30vw)}
  .hero{--tfs:clamp(36px,10vw,44px)}
  .hero-title{margin-top:12px}
  .hero-tag{margin-top:10px;font-size:18px}
  .hero-sub{font-size:15px;line-height:1.5;margin-top:10px}
  .hero-card{margin-top:16px}
  .hero-dates{font-size:14px;margin-top:14px}
}
@media (max-width:400px){.hero{--hp:250px;--hoff:20px;--tfs:35px}.hero-media{height:250px}.hero-body{padding-top:132px}}

/* ---------- the sections slide in and out (his ask, 27 Sep night): tor.js scrubs each section's direct children up
   into place as the section arrives and lifts them away as it leaves; the band colour itself never moves ---------- */
.section>*,.close>*{translate:0 var(--out,0px)}

/* ---------- THE TICKET (rendered by tor.js into every [data-tickets]) ---------- */
.ticket{position:relative;background:var(--navy);color:var(--on-navy);border-radius:var(--r-card);padding:clamp(24px,2.4vw,34px);
  box-shadow:0 34px 70px -34px rgba(15,27,51,.55),inset 0 0 0 1px rgba(255,255,255,.05);overflow:hidden}
.ticket::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:linear-gradient(90deg,var(--red) 0%,var(--amber) 100%)}
.ticket header{display:block}
.t-tag{display:flex}
.t-loc{display:inline-flex;align-items:center;gap:6px;font:700 11px/1 var(--body);letter-spacing:.18em;text-transform:uppercase;color:var(--amber)}
.t-loc svg{width:12px;height:12px;fill:var(--amber)}
.t-name{font-family:var(--display);font-weight:600;font-size:clamp(22px,1.7vw,27px);line-height:1.1;letter-spacing:-.01em;margin-top:12px;color:var(--on-navy)}
.t-price{margin-top:10px;display:flex;align-items:baseline;gap:8px}
.t-price span{font-family:var(--display);font-weight:700;font-size:clamp(46px,3.6vw,58px);line-height:1;letter-spacing:-.03em;color:var(--amber)}
.t-price small{font:700 12px/1 var(--body);letter-spacing:.18em;text-transform:uppercase;color:var(--on-navy-2)}
.t-blurb{margin-top:14px;font-size:15px;line-height:1.5;color:var(--on-navy-2)}
.ticket ul{margin-top:16px;padding-bottom:16px;border-bottom:1px dashed rgba(247,245,240,.24)}
.ticket li{position:relative;padding-left:26px;font-size:14.5px;line-height:1.45;color:var(--on-navy-2)}
.ticket li+li{margin-top:8px}
.ticket li b{color:var(--on-navy);font-weight:600}
.ticket li::before{content:"";position:absolute;left:3px;top:.5em;width:9px;height:5px;border-left:2px solid var(--amber);border-bottom:2px solid var(--amber);transform:rotate(-45deg)}
.ticket .btn{margin-top:18px}
.t-next{margin-top:12px;text-align:center;font-size:12.5px;line-height:1.5;color:var(--on-navy-3)}

/* ---------- THE PASS (round 7, Zman 30 Sep: the hero card "looks so cheap... the normal template"). THE ONE IDEA: it
   stops being a web card and becomes the thing you would hold: a long paper ticket lying across the foot of the
   photograph. Cream paper with real grain (paper.png) and a printed hairline frame, a perforation with two punched
   notches between the pass and its stub, the name set like an invitation, the four lines as printed rows, the price in
   navy ink, one red button. No gradient bar, no glow, no tick marks. Every word comes from tor.js CONFIG, as before.
   The notches are cut with a mask on each half, at that half's own corners, so they hold at any size and either way up;
   the shadow follows the cut shape (the paper is opaque, so a drop-shadow on the pass draws one shadow, not one per row).
   .pass is long (the hero on a laptop); .pass.is-tall and every screen under 1000 px stand it upright. ---------- */
.pass{position:relative;color:var(--text);--stub:clamp(262px,21.5vw,304px);--notch:10px;--ink:rgba(19,28,46,.13);
  filter:drop-shadow(0 1px 1px rgba(5,10,25,.38)) drop-shadow(0 24px 30px rgba(5,10,25,.46))}
.pass-paper{display:grid;grid-template-columns:minmax(0,1fr) var(--stub)}
.pass-main,.pass-stub{position:relative;background:url(paper.png?v=2) 0 0/176px 176px,#FAF6EC;
  -webkit-mask-composite:source-in;mask-composite:intersect}
.pass-main{border-radius:14px 0 0 14px;display:grid;grid-template-columns:clamp(176px,15.5vw,228px) minmax(0,1fr);column-gap:clamp(20px,2.6vw,44px);align-items:center;
  padding:clamp(16px,1.35vw,20px) clamp(24px,2.4vw,36px) clamp(16px,1.35vw,20px) clamp(26px,2.5vw,38px);
  -webkit-mask-image:radial-gradient(circle var(--notch) at 100% 0,#0000 97%,#000 100%),radial-gradient(circle var(--notch) at 100% 100%,#0000 97%,#000 100%);
  mask-image:radial-gradient(circle var(--notch) at 100% 0,#0000 97%,#000 100%),radial-gradient(circle var(--notch) at 100% 100%,#0000 97%,#000 100%)}
.pass-stub{border-radius:0 14px 14px 0;border-left:2px dotted rgba(19,28,46,.34);display:flex;flex-direction:column;justify-content:center;
  padding:clamp(16px,1.35vw,20px) clamp(20px,1.8vw,28px);
  -webkit-mask-image:radial-gradient(circle var(--notch) at 0 0,#0000 97%,#000 100%),radial-gradient(circle var(--notch) at 0 100%,#0000 97%,#000 100%);
  mask-image:radial-gradient(circle var(--notch) at 0 0,#0000 97%,#000 100%),radial-gradient(circle var(--notch) at 0 100%,#0000 97%,#000 100%)}
/* the printed frame: a hairline inset from the edge of each half */
.pass-main::before,.pass-stub::before{content:"";position:absolute;inset:8px;border:1px solid var(--ink);border-radius:7px;pointer-events:none}
.pass-main::before{right:12px}
.pass-stub::before{left:10px}
.pass .t-tag{display:block}
.pass .t-loc{font:700 10.5px/1.2 var(--body);letter-spacing:.24em;text-transform:uppercase;color:var(--amber-deep)}
.pass .t-name{margin-top:10px;font-family:var(--display);font-weight:600;font-size:clamp(25px,2.05vw,31px);line-height:1.04;letter-spacing:-.015em;color:var(--navy);text-wrap:balance}
.pass ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(18px,2.2vw,34px);border-bottom:1px solid var(--ink)}
.pass li{padding:8px 0;border-top:1px solid var(--ink);font-size:13.5px;line-height:1.4;color:var(--text-2)}
.pass li{text-wrap:pretty}
.pass li b{color:var(--navy);font-weight:700}
.pass .t-price{display:flex;align-items:baseline;gap:8px}
.pass .t-price span{font-family:var(--display);font-weight:700;font-size:clamp(38px,3vw,46px);line-height:.95;letter-spacing:-.03em;color:var(--navy);
  text-shadow:0 1px 0 rgba(255,255,255,.95)}
.pass .t-price small{font:700 11px/1 var(--body);letter-spacing:.2em;text-transform:uppercase;color:var(--text-3)}
.pass .btn{margin-top:10px;padding:15px 18px}
.pass .t-next{margin-top:8px;text-align:center;font-size:12px;line-height:1.4;color:var(--text-3);white-space:nowrap}
/* round 8: the line for people brand new to GP, under the button; it opens the popup with that seat chosen */
.pass-new{display:block;width:100%;margin-top:8px;padding:0;border:0;background:none;cursor:pointer;text-align:center;
  font:500 12.5px/1.4 var(--body);color:var(--text-2);white-space:nowrap}
.pass-new b{font-weight:700;color:var(--red-deep);border-bottom:1px solid rgba(200,16,46,.38);transition:border-color .2s ease}
.pass-new:hover b{border-bottom-color:var(--red)}
.pass-new:focus-visible{outline:3px solid var(--amber);outline-offset:3px;border-radius:4px}
/* narrow laptops: the printed rows stay on two lines and the fine line on one */
@media (min-width:1000px) and (max-width:1199px){
  .pass-main{grid-template-columns:150px minmax(0,1fr);column-gap:20px;padding-left:24px;padding-right:22px}
  .pass .t-name{font-size:22px}
  .pass ul{column-gap:16px}
  .pass li{font-size:12.5px}
  .pass-stub{padding-left:18px;padding-right:18px}
  .pass .t-next,.pass-new{font-size:11.5px}
}
/* short laptops: a shorter pass, so there is clear scarf between his chin and the paper */
@media (min-width:1000px) and (max-height:880px){
  .pass-main,.pass-stub{padding-top:13px;padding-bottom:13px}
  .pass .t-name{font-size:clamp(22px,1.85vw,26px);margin-top:8px}
  .pass li{padding:6px 0;font-size:13px;line-height:1.36}
  .pass .t-price span{font-size:38px}
  .pass .btn{margin-top:8px;padding:13px 18px}
  .pass .t-next,.pass-new{margin-top:6px;font-size:11.5px}
}
@media (min-width:1000px) and (max-width:1199px) and (max-height:880px){.pass li{font-size:12.5px}.pass .t-name{font-size:22px}}
/* very short laptops (720 tall): the label gives its line to the scarf */
@media (min-width:1000px) and (max-height:740px){
  .pass .t-tag{display:none}
  .pass .t-name{margin-top:0}
  .pass li{padding:4px 0}
  .pass .t-price span{font-size:34px}
  .pass .btn{padding:12px 18px}
}
/* upright: phones and tablets, and anywhere the pass is given a column (.is-tall) */
@media (max-width:999px){
  .pass-paper{grid-template-columns:minmax(0,1fr)}
  .pass-main{border-radius:14px 14px 0 0;display:block;padding:22px 22px 18px;
    -webkit-mask-image:radial-gradient(circle var(--notch) at 0 100%,#0000 97%,#000 100%),radial-gradient(circle var(--notch) at 100% 100%,#0000 97%,#000 100%);
    mask-image:radial-gradient(circle var(--notch) at 0 100%,#0000 97%,#000 100%),radial-gradient(circle var(--notch) at 100% 100%,#0000 97%,#000 100%)}
  .pass-stub{border-radius:0 0 14px 14px;border-left:0;border-top:2px dotted rgba(19,28,46,.34);padding:16px 22px 18px;
    -webkit-mask-image:radial-gradient(circle var(--notch) at 0 0,#0000 97%,#000 100%),radial-gradient(circle var(--notch) at 100% 0,#0000 97%,#000 100%);
    mask-image:radial-gradient(circle var(--notch) at 0 0,#0000 97%,#000 100%),radial-gradient(circle var(--notch) at 100% 0,#0000 97%,#000 100%)}
  .pass-main::before{inset:8px 8px 10px}
  .pass-stub::before{inset:10px 8px 8px}
  .pass .t-name{font-size:24px;margin-top:8px}
  .pass ul{display:block;margin-top:12px}
  .pass li{font-size:13px;padding:8px 0}
  .pass .t-price span{font-size:42px}
}
@media (max-width:640px){
  .pass-main{padding:18px 20px 14px}
  .pass .t-tag{display:none}
  .pass .t-name{font-size:21px;margin-top:0}
  .pass ul{margin-top:9px}
  .pass li{font-size:12.5px;line-height:1.36;padding:6px 0}
  .pass-stub{padding:12px 20px 16px;display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:16px;align-items:center}
  .pass .t-price{flex-direction:column;align-items:flex-start;gap:4px}
  .pass .t-price span{font-size:32px}
  .pass .btn{margin-top:0;padding:15px 12px}
  .pass .btn em{display:none}
  .pass .t-next{grid-column:1/-1}
  .pass-new{grid-column:1/-1;margin-top:4px;padding:12px 0 2px;font-size:13px}
}

/* ---------- THE DAYS, round 7 (Zman, 30 Sep, for the second time: "the graphic of the line with the dots still looks so
   cheap and so basic"). THE ONE IDEA: THE PROGRAMME IS PRINTED ON THE SAME STOCK AS THE TICKET. Five small date plates
   cut from the pass's paper (the grain, a perforation with two punched notches under the header) stand in a row on one
   engraved rule. The three days with Meir stand taller, on warm cream, the date in navy ink; Thursday and Monday are
   shorter, on cool paper, in lake blue. Each day's words sit under its own plate. Everything below is the FINISHED
   state (no JS and reduced motion show it complete and still); tor.js sets the start state and sets the plates down.
   The notches are a mask on the plate, so the shadow is a drop-shadow on its stand (the paper is opaque: one shadow). */
.days{padding-top:clamp(56px,7vw,96px)}
.lede-2{margin-top:10px}
.plates{position:relative;margin-top:clamp(40px,5vw,68px);--plh:clamp(196px,16.4vw,236px)}
/* the engraved rule the plates stand on: a hairline with its own light under it */
.plates::before{content:"";position:absolute;left:0;right:0;top:calc(var(--plh) + 13px);height:1px;background:rgba(19,28,46,.17);box-shadow:0 1px 0 rgba(255,255,255,.85)}
.pl-days{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));column-gap:clamp(12px,1.4vw,20px)}
.pl-day{min-width:0}
.pl-stand{height:var(--plh);display:flex;align-items:flex-end;filter:drop-shadow(0 1px 1px rgba(15,27,51,.22)) drop-shadow(0 14px 16px rgba(15,27,51,.15))}
.pl-plate{position:relative;overflow:hidden;width:100%;height:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto minmax(0,1fr);
  padding:15px 18px 15px 20px;border-radius:12px;background:url(paper.png?v=2) 0 0/176px 176px,#FAF6EC;color:var(--navy);--perf:44px;--hole:7px;
  -webkit-mask-image:radial-gradient(circle var(--hole) at 0 var(--perf),#0000 97%,#000 100%),radial-gradient(circle var(--hole) at 100% var(--perf),#0000 97%,#000 100%);
  -webkit-mask-composite:source-in;
  mask-image:radial-gradient(circle var(--hole) at 0 var(--perf),#0000 97%,#000 100%),radial-gradient(circle var(--hole) at 100% var(--perf),#0000 97%,#000 100%);
  mask-composite:intersect}
/* the perforation between the header and the date */
.pl-plate::before{content:"";position:absolute;left:13px;right:13px;top:calc(var(--perf) - 1px);border-top:2px dotted rgba(19,28,46,.3)}
.pl-day.is-book .pl-plate{height:80%;background-color:#EAF2F7}
/* round 8 (Zman, 1 Oct: the plates "just jump up as you touch them a little bit"): a small lift with a little spring.
   It moves `translate`, never `transform` (the set-down run owns transform), and the stand's shadow opens under it. */
.pl-plate{transition:translate .45s cubic-bezier(.34,1.56,.64,1)}
.pl-stand{transition:filter .45s ease}
.pl-day.is-lift .pl-plate{translate:0 -9px}
.pl-day.is-lift .pl-stand{filter:drop-shadow(0 1px 1px rgba(15,27,51,.2)) drop-shadow(0 22px 22px rgba(15,27,51,.2))}
@media (hover:hover){
  .pl-day:hover .pl-plate{translate:0 -9px}
  .pl-day:hover .pl-stand{filter:drop-shadow(0 1px 1px rgba(15,27,51,.2)) drop-shadow(0 22px 22px rgba(15,27,51,.2))}
}
.pl-price{font-weight:700;color:var(--navy)}
.pl-top{grid-area:1/1;font:700 10.5px/1.3 var(--body);letter-spacing:.2em;text-transform:uppercase;color:var(--amber-deep);white-space:nowrap}
.pl-day.is-book .pl-top{color:var(--lake-deep)}
/* without JS the date reads on one line; tor.js splits it into the day (large) and the month (small, in the header) */
.pl-date{grid-area:3/1/4/-1;align-self:end;font-family:var(--display);font-weight:600;font-size:clamp(22px,2vw,30px);line-height:1.05;letter-spacing:-.015em}
.pl-date.is-split{display:contents}
.pl-m{grid-area:1/2;justify-self:end;font:600 10.5px/1.3 var(--body);letter-spacing:.2em;text-transform:uppercase;color:var(--text-3);white-space:nowrap}
.pl-n{grid-area:3/1/4/-1;align-self:end;font-family:var(--display);font-weight:600;font-size:clamp(88px,8.4vw,122px);line-height:.74;letter-spacing:-.045em;
  font-variant-numeric:lining-nums;margin-left:-.03em;color:var(--navy);text-shadow:0 1px 0 rgba(255,255,255,.9)}
.pl-day.is-book .pl-n{font-size:clamp(66px,6.2vw,90px);font-weight:500;color:var(--lake-deep)}
/* the one light that crosses the row after the plates are down (tor.js moves it; at rest it is off the plate) */
.pl-sheen{position:absolute;top:-10%;bottom:-10%;left:0;width:46%;pointer-events:none;opacity:0;transform:translateX(-130%) skewX(-16deg);
  background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,246,222,.75) 50%,rgba(255,255,255,0))}
.pl-what{margin-top:32px;font-size:14.5px;line-height:1.5;color:var(--text-2);max-width:26ch}
.pl-what b{color:var(--navy);font-weight:600}
.pl-day.is-book .pl-what{color:var(--text-3)}
.pl-day.is-book .pl-what b{color:var(--text-2)}
/* narrower laptops: the month goes under the weekday, so the header never runs out of plate */
@media (max-width:1279px){
  .pl-plate{--perf:58px}
  .pl-m{grid-area:2/1;justify-self:start;margin-top:2px}
}
.days-facts{margin-top:clamp(44px,5.5vw,72px);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.days-facts li{border-top:1px solid var(--line);padding-top:16px;min-width:0}
.days-facts b{display:block;font:700 11px/1.3 var(--body);letter-spacing:.2em;text-transform:uppercase;color:var(--amber-deep);margin-bottom:8px}
.days-facts span{font-size:14.5px;line-height:1.6;color:var(--text-2)}
.days-facts a{color:var(--navy);border-bottom:1px solid rgba(200,16,46,.5);font-weight:600}
/* round 6: the airport to the hotel. It grows out of "Getting there": the words on the left, the two airports and the one
   button on the right. The airports are real radio buttons (arrow keys move between them), every target 44 px or more. */
.fly{margin-top:clamp(40px,5vw,64px);padding:clamp(24px,2.8vw,40px);border-radius:var(--r-card);background:var(--paper);
  border:1px solid var(--line);box-shadow:0 30px 60px -44px rgba(15,27,51,.35);
  display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:22px clamp(28px,4.5vw,72px);align-items:center}
/* round 8 (Zman, 1 Oct: "I want the back of that little box with the two buttons... to be the Canadian flag. It doesn't
   have to be the whole flag, just smushed in there as the background, so it's a nice little pop"). THE FLAG, PRESSED
   INTO THE BOX: the two red ends of the flag as narrow pales down both sides, the white field between them, and the red
   maple leaf standing in the middle of the white, between the words and the airports, the way it stands on the flag.
   Real flag red (#D52B1E), the official leaf; the words and the airports sit on the white, so nothing loses contrast.
   Phones: thinner pales, the leaf small in the top corner. Red is still the one BUYING colour in buttons: the flag is
   ground, the button stays navy. */
.fly{--flag:#D52B1E;--pale:clamp(16px,4.4%,64px);position:relative;overflow:hidden;
  grid-template-columns:minmax(0,.82fr) auto minmax(0,1.3fr);column-gap:clamp(18px,2.2vw,36px);
  padding-left:calc(var(--pale) + clamp(22px,2.6vw,40px));padding-right:calc(var(--pale) + clamp(22px,2.6vw,40px));
  border-color:rgba(160,24,20,.28);
  background:linear-gradient(90deg,var(--flag) 0 var(--pale),#fff var(--pale) calc(100% - var(--pale)),var(--flag) calc(100% - var(--pale)) 100%);
  box-shadow:0 34px 64px -44px rgba(120,16,12,.45),inset 0 0 0 1px rgba(255,255,255,.35)}
/* the cloth: a soft fold of light across the whole flag, so it reads as a flag and not as two stripes */
.fly::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;
  background:linear-gradient(100deg,rgba(255,255,255,0) 10%,rgba(255,255,255,.16) 24%,rgba(0,0,0,.035) 40%,rgba(255,255,255,0) 52%,rgba(255,255,255,.12) 70%,rgba(0,0,0,.03) 86%)}
.fly-copy,.fly-act{position:relative;z-index:1}
.fly-leaf{position:relative;z-index:1;align-self:center;width:clamp(92px,8.4vw,128px);aspect-ratio:4160/4362;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='330 -52 4160 4362'%3E%3Cpath fill='%23D52B1E' d='m2427 4310-50-1012c-1-36 30-65 66-63l1010 165-70-185c-5-17-3-35 7-49l1100-890-247-116c-25-12-36-43-27-68l217-667-632 135c-29 6-58-9-70-35l-123-288-493 528c-36 38-100 6-90-46l238-1222-381 220c-33 20-75 7-93-26l-379-743-379 743c-18 33-60 46-93 26l-381-220 238 1222c10 52-54 84-90 46l-493-528-123 288c-12 26-41 41-70 35l-632-135 217 667c9 25-2 56-27 68l-247 116 1100 890c10 14 12 32 7 49l-70 185 1010-165c36-2 67 27 66 63l-50 1012z'/%3E%3C/svg%3E") center/contain no-repeat}
/* a hyphenated phrase never breaks at its hyphen (tor.js wraps it): "money-related" stays one piece */
.nw{white-space:nowrap}
@media (max-width:900px){
  .fly{--pale:10px;grid-template-columns:minmax(0,1fr);padding:clamp(22px,5vw,32px) calc(var(--pale) + 16px)}
  .fly-go{white-space:normal;text-align:center}
  .fly-leaf{position:absolute;top:18px;right:calc(var(--pale) + 16px);width:44px}
  .fly-copy h3{padding-right:52px}
}
.fly-copy h3{text-wrap:balance;margin-top:10px;font-family:var(--display);font-weight:600;font-size:clamp(24px,2.3vw,32px);line-height:1.08;letter-spacing:-.015em;color:var(--navy)}
.fly-copy p:last-child{margin-top:12px;font-size:15.5px;line-height:1.55;color:var(--text-2);max-width:44ch}
.fly-pick{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.fly-pick[hidden]{display:none}
.fly-opt{position:relative;display:flex;align-items:center;gap:13px;min-height:68px;padding:12px 16px;border-radius:12px;cursor:pointer;
  background:var(--paper-2);border:1.5px solid var(--line);transition:border-color .2s ease,background-color .2s ease,box-shadow .2s ease}
.fly-opt:hover{border-color:rgba(15,27,51,.35)}
.fly-opt input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.fly-dot{position:relative;flex:0 0 auto;width:20px;height:20px;border-radius:50%;border:2px solid rgba(15,27,51,.35);transition:border-color .2s ease}
.fly-dot::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--navy);transform:scale(0);transition:transform .2s ease}
.fly-opt span{min-width:0}
.fly-opt b{display:block;font-weight:700;font-size:15.5px;line-height:1.25;color:var(--navy)}
.fly-opt small{display:block;margin-top:3px;font-size:13.5px;line-height:1.35;color:var(--text-3)}
.fly-opt:has(input:checked){background:var(--snow);border-color:var(--navy);box-shadow:0 14px 28px -20px rgba(15,27,51,.55)}
.fly-opt:has(input:checked) .fly-dot{border-color:var(--navy)}
.fly-opt:has(input:checked) .fly-dot::after{transform:scale(1)}
.fly-opt:has(input:focus-visible){outline:3px solid var(--amber);outline-offset:2px}
/* navy, not red: red stays the one buying colour on this page (Take your seat) */
.fly-go{margin-top:16px;width:100%}
.fly-go svg{flex:0 0 auto}
.fly-offer{margin-top:12px;font-size:14.5px;line-height:1.5;color:var(--text-2)}
.fly-offer a{color:var(--navy);font-weight:600;border-bottom:1px solid rgba(200,16,46,.5)}

@media (max-width:520px){.fly-pick{grid-template-columns:1fr}}
@media (max-width:979px){
  /* the plates run down the page, each with its words beside it; no rule (the column is the tie) */
  .plates{--plw:112px}
  .plates::before{display:none}
  .pl-days{display:block}
  .pl-day{display:grid;grid-template-columns:var(--plw) minmax(0,1fr);column-gap:18px;align-items:center}
  .pl-day+.pl-day{margin-top:14px}
  .pl-stand{height:auto;display:block}
  .pl-plate{height:118px;padding:11px 12px 11px 14px;border-radius:10px;--perf:32px;--hole:6px;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto}
  .pl-plate::before{left:10px;right:10px}
  .pl-day.is-book .pl-plate{height:98px}
  .pl-top{font-size:9.5px;letter-spacing:.16em}
  .pl-n{grid-area:2/1;font-size:52px;line-height:.8;align-self:end}
  .pl-day.is-book .pl-n{font-size:40px}
  .pl-m{grid-area:3/1;justify-self:start;margin-top:6px;font-size:9px;letter-spacing:.16em}
  .pl-date{grid-area:2/1/4/-1;font-size:19px}
  .pl-what{margin-top:0;max-width:40ch;font-size:15px}
}
@media (max-width:760px){.days-facts{grid-template-columns:1fr;gap:14px}}

/* ---------- THEIR WORDS: proof on navy ---------- */
/* round 5: Zman's pane showed this rail EMPTY except its bottom strip (the names), the gap ending exactly one 256 px raster
   tile below the rail's top: the compositor never painted the drifting track's first tile row. The edge fade was a CSS
   mask, which makes the whole animated track render through an extra offscreen surface; it is now two plain gradient
   covers in the band's own colour (same look), and both drifting tracks pause while off screen (tor.js, .is-off). */
.vid-rail{position:relative;margin-top:clamp(32px,4vw,52px);overflow:hidden}
.vid-rail::before,.vid-rail::after{content:"";position:absolute;top:0;bottom:0;width:6%;z-index:2;pointer-events:none}
.vid-rail::before{left:0;background:linear-gradient(90deg,var(--ice),rgba(220,239,248,0))}
.vid-rail::after{right:0;background:linear-gradient(270deg,var(--ice),rgba(220,239,248,0))}
.vid-track{display:flex;width:max-content;animation:drift 90s linear infinite}
.vid-track:hover,.vid-track.is-holding,.vid-track.is-off{animation-play-state:paused}
/* round 6 (Zman on his phone, 28 Sep: the stories "should auto scroll and also be scrollable on mobile"): on touch screens
   the rail is a real horizontal scroller a finger can swipe; tor.js drifts it by scrolling (not the CSS animation), and
   the first card lines up with the words above. The edge fades would scroll away with the content, so they go here. */
.vid-rail.is-swipe{overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.vid-rail.is-swipe::-webkit-scrollbar{display:none}
.vid-rail.is-swipe::before,.vid-rail.is-swipe::after{display:none}
.vid-rail.is-swipe .vid-track{animation:none;padding-left:var(--gutter)}
@keyframes drift{to{transform:translateX(-50%)}}
.vid{width:clamp(260px,26vw,360px);margin-right:18px;flex:0 0 auto}
.vid-thumb{position:relative;display:block;width:100%;aspect-ratio:16/9;border:0;padding:0;border-radius:12px;overflow:hidden;background:var(--navy-2);cursor:pointer;
  box-shadow:0 22px 40px -24px rgba(14,76,126,.55)}
.vid-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.vid-thumb:hover img{transform:scale(1.04)}
.play{position:absolute;left:50%;top:50%;width:54px;height:54px;margin:-27px 0 0 -27px;border-radius:50%;background:var(--red);box-shadow:0 10px 24px -8px rgba(0,0,0,.6)}
.play::after{content:"";position:absolute;left:21px;top:17px;border-left:16px solid #fff;border-top:10px solid transparent;border-bottom:10px solid transparent}
.vid iframe{width:100%;aspect-ratio:16/9;border:0;border-radius:12px;display:block}
.vid-quote{margin-top:12px;font-size:15px;line-height:1.45;color:var(--navy)}
.vid-by{margin-top:6px;font:700 11px/1.3 var(--body);letter-spacing:.18em;text-transform:uppercase;color:var(--red)}
.wins{margin-top:clamp(56px,7vw,92px)}
.wins-head h3{font-family:var(--display);font-weight:600;font-size:clamp(26px,2.8vw,38px);line-height:1.05;letter-spacing:-.015em;color:var(--navy)}
.wins-head p{margin-top:10px;font-size:15.5px;color:var(--text-2);max-width:56ch}
/* round 5 (Zman, 28 Sep: "so big, make it a bit smaller"): four across on a laptop (was three), ~40% less height; the
   figure order in words.html is set so the four columns end level. Three across only on narrow laptops. */
.wins-grid{margin-top:clamp(22px,2.6vw,32px);columns:4;column-gap:20px}
.wins-grid figure{break-inside:avoid;margin:0 0 20px}
.wins-grid img{width:100%;height:auto;border-radius:12px;border:1px solid rgba(14,76,126,.12);box-shadow:0 22px 40px -24px rgba(14,76,126,.5)}
@media (max-width:1179px){.wins-grid{columns:3}}
@media (max-width:980px){.wins-grid{columns:2}}
@media (max-width:560px){.wins-grid{columns:1}}
.inline-cta{margin-top:clamp(40px,5vw,60px);display:flex;flex-wrap:wrap;align-items:center;gap:16px 26px}
.inline-cta p{font-size:14.5px;line-height:1.5;color:var(--text-2);max-width:44ch}
.proof .inline-cta p{color:var(--text-2)}
@media (max-width:560px){.inline-cta .btn{width:100%}}

/* ---------- IS THIS YOU: the store copy, word for word. Round 6 (Zman, 28 Sep): the window at the right is gone, so the
   words stand alone, centred, at every width (the phone cut he already liked, now everywhere). ---------- */
.you-grid{display:block;text-align:center}
.you-words{min-width:0;max-width:880px;margin-inline:auto}
.you-lines{margin-top:18px}
.you-lines li{font-family:var(--display);font-weight:600;font-size:clamp(28px,3.6vw,52px);line-height:1.04;letter-spacing:-.02em;color:var(--navy);text-wrap:balance;max-width:22ch;margin-inline:auto}
.you-lines li+li{margin-top:14px}
.you-lines li:nth-child(2){color:var(--text-3)}
.you-lines li:nth-child(3){color:var(--lake-deep)}
.pull{margin:clamp(30px,4vw,48px) auto 0;font-family:var(--display);font-style:italic;font-weight:500;font-size:clamp(26px,3.4vw,46px);line-height:1.1;color:var(--red);max-width:20ch}
.you-copy{margin:clamp(24px,3vw,36px) auto 0;max-width:48ch}
.you-copy p{font-size:clamp(16.5px,1.4vw,19px);line-height:1.6;color:var(--text-2)}
.you-copy p+p{margin-top:14px}
.you-copy b{display:block;margin-top:6px;font-family:var(--display);font-weight:700;font-size:clamp(40px,5vw,64px);line-height:1;letter-spacing:-.02em;color:var(--navy)}

/* ---------- WHAT YOU WALK OUT WITH, round 7 (Zman, 30 Sep: "the card sections... make them look much better"). THE ONE
   IDEA: FIVE PRINTED LINES, AND THE ONE YOU KEEP. One to five are a numbered list set like a page of the programme
   (a large numeral, the promise, a hairline: no boxes). The sixth, the one the whole seminar is for, is the single
   object in the section: a sheet of the ticket's own paper standing beside the list. Six boxes became one. ---------- */
.chapters{margin-top:clamp(28px,3.4vw,48px);display:grid;grid-template-columns:minmax(0,1fr) clamp(360px,34vw,460px);grid-template-rows:repeat(5,auto);
  column-gap:clamp(36px,5.5vw,88px);align-items:stretch}
.chapters li{grid-column:1;min-width:0;display:grid;grid-template-columns:clamp(64px,6.4vw,92px) minmax(0,1fr);align-items:center;
  padding:clamp(17px,1.7vw,23px) 0;border-top:1px solid var(--line)}
.chapters li:nth-child(5){border-bottom:1px solid var(--line)}
.chapters .num{font-family:var(--display);font-weight:400;font-size:clamp(34px,3.2vw,46px);line-height:1;letter-spacing:-.03em;color:var(--amber-deep);
  font-variant-numeric:lining-nums tabular-nums;transition:color .25s ease}
.chapters h3{font-family:var(--display);font-weight:600;font-size:clamp(19px,1.72vw,24.5px);line-height:1.22;letter-spacing:-.01em;color:var(--navy);max-width:34ch;
  text-wrap:balance;transition:translate .25s ease}
.chapters li:hover .num{color:var(--red)}
.chapters li:not(:last-child):hover h3{translate:4px 0}
/* the sixth: the ticket's paper, a printed hairline frame, the numeral large at the top, the promise at the foot */
.chapters li:last-child{grid-column:2;grid-row:1/-1;position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:28px;align-items:flex-start;
  padding:clamp(28px,2.8vw,40px) clamp(28px,2.8vw,40px) clamp(30px,3vw,42px);border:0;border-radius:16px;
  background:url(paper.png?v=2) 0 0/176px 176px,#FAF6EC;
  box-shadow:0 1px 1px rgba(15,27,51,.18),0 30px 50px -28px rgba(15,27,51,.42)}
.chapters li:last-child::before{content:"";position:absolute;inset:9px;border:1px solid rgba(19,28,46,.13);border-radius:9px;pointer-events:none}
.chapters li:last-child .num{font-weight:600;font-size:clamp(88px,9vw,128px);line-height:.74;letter-spacing:-.05em;color:var(--amber);
  text-shadow:0 1px 0 rgba(255,255,255,.9)}
.chapters li:last-child h3{font-size:clamp(23px,2.15vw,31px);line-height:1.16;letter-spacing:-.015em;max-width:17ch}
@media (max-width:900px){
  .chapters{grid-template-columns:minmax(0,1fr);row-gap:0}
  .chapters li:nth-child(5){border-bottom:0}
  .chapters li:last-child{grid-column:1;grid-row:auto;margin-top:18px;gap:34px}
  .chapters li:last-child h3{max-width:22ch}
}
@media (max-width:520px){
  .chapters li{grid-template-columns:52px minmax(0,1fr);padding:15px 0}
  .chapters .num{font-size:30px}
  .chapters h3{font-size:18.5px}
  .chapters li:last-child{padding:24px 24px 26px}
  .chapters li:last-child .num{font-size:84px}
  .chapters li:last-child h3{font-size:22px}
}

/* ---------- THE ROOM, round 4: A DAY IN HIS ROOM (the page's one idea). The base below is the phone / reduced-motion
   page: heading, the white phone, the ten hours as a list, the ticket. html.day-live (desktop, motion) turns it into the
   day beside the film: the film plays the minute, the lit hour follows it, the room's light crossfades (round 7c: no pin).
   Round 6 (Zman, 28 Sep, on the pane): the hours are the STACKED LIST on desktop too ("this time, this is what happens"),
   the lit row walking down the day with the scroll; the big clock is gone. ---------- */
.day{position:relative}
.day-stage{position:relative}
.day-glow{display:none}
.day-grid{display:grid;grid-template-columns:minmax(0,1fr) clamp(280px,25vw,340px);grid-template-areas:"head phone" "list phone" "cta phone";
  column-gap:clamp(36px,6vw,96px);align-items:center;align-content:center}
.day-head{grid-area:head}
.day-list{grid-area:list;margin-top:clamp(24px,3vw,34px);border-top:1px solid var(--line-navy);max-width:560px}
.day-list li{display:grid;grid-template-columns:5.4em minmax(0,1fr);gap:14px;padding:9px 0;border-bottom:1px solid var(--line-navy);
  font-size:15px;line-height:1.4;color:var(--on-navy-2);transition:color .3s ease}
.day-list b{font-family:var(--display);font-weight:600;color:var(--on-navy);font-variant-numeric:tabular-nums;white-space:nowrap;transition:color .3s ease}
.day-list li.is-now{color:var(--on-navy)}
.day-list li.is-now b{color:var(--amber)}
.day-cta{grid-area:cta;margin-top:clamp(24px,3vw,34px);display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px}
.day-cta .film-cap{margin:0;max-width:34ch}
.phone-stage{grid-area:phone}

@media (min-width:1000px){
  /* Round 7c (Zman, 30 Sep, on the pane: "it stops the screen... I just wanted to be able to scroll past it. I don't want
     people to get stuck there"): the day is NOT pinned any more. The section is an ordinary section you scroll past; the
     film plays its whole minute, silent, while it is on screen, and the lit row in the list walks down the day WITH THE
     FILM ("as the video plays, that side counting down"). The room's light still follows the lit hour. */
  html.day-live .day-glow{display:block;position:absolute;inset:-12% 0;pointer-events:none;
    /* the light pools around the phone and fades out before the stage's own edges (so no line shows as the stage arrives
       or leaves): a radial pool, intersected with a top/bottom fade */
    -webkit-mask-image:radial-gradient(48% 60% at 77% 53%,#000 0%,rgba(0,0,0,.78) 38%,rgba(0,0,0,.3) 66%,rgba(0,0,0,0) 100%),linear-gradient(180deg,transparent 0%,#000 16%,#000 84%,transparent 100%);
    -webkit-mask-composite:source-in;
    mask-image:radial-gradient(48% 60% at 77% 53%,#000 0%,rgba(0,0,0,.78) 38%,rgba(0,0,0,.3) 66%,rgba(0,0,0,0) 100%),linear-gradient(180deg,transparent 0%,#000 16%,#000 84%,transparent 100%);
    mask-composite:intersect}
  html.day-live .day-glow i{position:absolute;inset:-8%;background-size:cover;background-position:center;opacity:0;transition:opacity 1.2s ease}
  html.day-live .day-glow i.is-on{opacity:1}
  html.day-live .day-grid{position:relative;z-index:1;width:100%;
    grid-template-columns:minmax(0,1fr) min(25vw,340px,calc((100vh - 150px) * .4737))}
  html.day-live .day-list{margin-top:clamp(20px,3vh,32px)}
}
@media (min-width:1000px) and (max-height:820px){
  html.day-live .roomfilm .statement{font-size:clamp(38px,4.4vw,58px)}
  html.day-live .roomfilm .lede{font-size:17px;margin-top:12px}
  html.day-live .day-list li{padding:6px 0;font-size:14px;line-height:1.35}
  html.day-live .day-cta{margin-top:22px}
}
.film-cap{margin-top:16px;font-size:13px;line-height:1.5;color:var(--on-navy-3)}
.phone-stage{width:100%;justify-self:end;perspective:1400px}
.phone{position:relative;width:100%;aspect-ratio:9/19;border-radius:44px;transform-style:preserve-3d;background:linear-gradient(160deg,#F7F9FB,#DCE3EA);padding:11px;
  box-shadow:0 50px 90px -40px rgba(0,0,0,.75),inset 0 0 0 1px rgba(255,255,255,.7),inset 0 0 0 3px rgba(15,27,51,.08);justify-self:end}
.phone::before{content:"";position:absolute;left:50%;top:22px;width:86px;height:24px;margin-left:-43px;border-radius:12px;background:var(--navy);z-index:3;opacity:.92}
.phone video{width:100%;height:100%;object-fit:cover;border-radius:34px;background:var(--navy-2)}
.film-hit{position:absolute;inset:11px;border:0;padding:0 0 30px;border-radius:34px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;
  background:linear-gradient(180deg,rgba(15,27,51,0) 58%,rgba(15,27,51,.72) 100%);color:#fff;transition:opacity .3s ease;z-index:2}
.film-play{position:relative;width:56px;height:56px;border-radius:50%;background:var(--red);box-shadow:0 14px 30px -10px rgba(0,0,0,.7);transition:transform .2s ease}
.film-play::after{content:"";position:absolute;left:22px;top:17px;border-left:17px solid #fff;border-top:11px solid transparent;border-bottom:11px solid transparent}
.film-hit:hover .film-play{transform:scale(1.07)}
.film-hit-cap{margin-top:14px;font:700 12px/1.3 var(--body);letter-spacing:.2em;text-transform:uppercase;text-shadow:0 2px 12px rgba(0,0,0,.5)}
.film-hit-cap em{display:block;margin-top:5px;font:500 11.5px/1.3 var(--body);letter-spacing:.04em;text-transform:none;opacity:.85}
.phone.is-on .film-hit{opacity:0;pointer-events:none}
.film-sound{position:absolute;right:24px;bottom:26px;z-index:4;display:none;align-items:center;gap:6px;border:0;border-radius:999px;padding:9px 13px;
  background:rgba(15,27,51,.78);color:#fff;font:700 12px/1 var(--body);cursor:pointer}
.phone.is-on .film-sound{display:inline-flex}
.film-sound:not(.is-on) .fs-waves{opacity:.35}
.roomfilm-end{margin-top:clamp(56px,7vw,96px);text-align:center}
.roomfilm-end .statement{margin:0 auto}
/* round 6: THE ROOM FILM, one square under the statement (his words: "a big video square").
   The first frame is a real picture underneath; the silent loop fades in over it once it plays (the frames match, so the
   fade is invisible). The whole frame is one button.
   Round 7 (Zman, 30 Sep: "a little bit smaller, and when someone clicks on it, it opens up bigger"): 460 px (was 680), and
   the button opens the full film LARGE in the centred overlay (.filmbox, below); the square itself never changes. */
.reel{position:relative;width:min(460px,100%);margin:clamp(30px,3.6vw,46px) auto 0}
.reel-frame{position:relative;aspect-ratio:1/1;border-radius:var(--r-card);overflow:hidden;background:var(--navy-2);
  box-shadow:0 50px 90px -40px rgba(0,0,0,.75),0 0 0 1px rgba(247,245,240,.1)}
.reel-still,.reel-vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.reel-vid{opacity:0;transition:opacity 1.1s ease}
.reel-vid.is-on{opacity:1}
.reel-hit{position:absolute;inset:0;z-index:2;display:grid;grid-template-columns:auto minmax(0,1fr);align-content:end;align-items:center;column-gap:14px;
  padding:0 clamp(20px,2.6vw,30px) clamp(20px,2.6vw,30px);border:0;cursor:pointer;color:#fff;text-align:left;
  background:linear-gradient(180deg,rgba(15,27,51,0) 50%,rgba(15,27,51,.5) 75%,rgba(15,27,51,.86) 100%)}
.reel-play{position:relative;width:56px;height:56px;border-radius:50%;background:var(--red);box-shadow:0 14px 30px -10px rgba(0,0,0,.7);transition:transform .2s ease}
.reel-play::after{content:"";position:absolute;left:22px;top:17px;border-left:17px solid #fff;border-top:11px solid transparent;border-bottom:11px solid transparent}
.reel-hit:hover .reel-play{transform:scale(1.07)}
.reel-hit:focus-visible{outline:3px solid var(--amber);outline-offset:-3px}
.reel-cap{font:700 12.5px/1.3 var(--body);letter-spacing:.2em;text-transform:uppercase;text-shadow:0 2px 12px rgba(0,0,0,.55)}
.reel-cap em{display:block;margin-top:5px;font:500 12.5px/1.3 var(--body);font-style:normal;letter-spacing:.04em;text-transform:none;opacity:.9}
.reel-note{margin-top:14px;font-size:13px;line-height:1.5;color:var(--on-navy-3)}
/* the guarantee is the next sheet, directly under the film: the room ends a short step below it */
.roomfilm.under-bottom{padding-bottom:calc(clamp(48px,5.4vw,80px) + var(--r-sheet))}
/* THE ROOM FILM, LARGE: the full film centred over the page, as wide as a 16:9 screen fits. No blur behind it (a
   frosted backdrop costs frames): a deep night scrim. The Close is a labelled button above the frame's right corner. */
.filmbox{position:fixed;inset:0;z-index:110;display:grid;place-items:center;padding:clamp(12px,3vw,40px)}
.filmbox[hidden]{display:none}
.filmbox-scrim{position:absolute;inset:0;background:rgba(6,11,24,.96);animation:fbIn .3s ease both}
.filmbox-in{position:relative;width:min(100%,1500px,calc((100svh - 150px) * 16 / 9));animation:fbUp .45s cubic-bezier(.2,.7,.2,1) both}
.filmbox-frame{position:relative;aspect-ratio:16/9;border-radius:14px;overflow:hidden;background:#000;
  box-shadow:0 50px 110px -40px rgba(0,0,0,.9),0 0 0 1px rgba(247,245,240,.12)}
.filmbox-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;pointer-events:auto!important}
.filmbox-x{position:absolute;right:0;bottom:calc(100% + 12px);display:inline-flex;align-items:center;gap:9px;min-height:44px;padding:0 18px 0 14px;border-radius:999px;
  border:1px solid rgba(247,245,240,.3);background:rgba(247,245,240,.1);color:#fff;font:700 13.5px/1 var(--body);letter-spacing:.03em;cursor:pointer;
  transition:background .18s ease,border-color .18s ease}
.filmbox-x:hover{background:rgba(247,245,240,.2);border-color:rgba(247,245,240,.55)}
.filmbox-x:focus-visible{outline:3px solid var(--amber);outline-offset:2px}
.filmbox-x svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round}
@keyframes fbIn{from{opacity:0}}
@keyframes fbUp{from{opacity:0;transform:translateY(14px) scale(.985)}}
@media (max-width:999px){
  .day-grid{grid-template-columns:1fr;grid-template-areas:"head" "phone" "list" "cta"}
  .phone-stage{width:min(300px,72vw);justify-self:center;margin-top:32px}
  .day-list{max-width:none;margin-top:44px}
}
@media (max-width:560px){.day-cta .btn{width:100%}.day-list li{font-size:14px;grid-template-columns:5.2em minmax(0,1fr);gap:10px}}

/* ---------- WHO IS TEACHING: paper. Round 5: it follows the room now, so it is the sheet laid over the navy (it needs
   its own paper, or the room would show through the sheet's corners) ---------- */
.who{background:var(--paper)}
.who-grid{display:grid;grid-template-columns:clamp(260px,32vw,420px) minmax(0,1fr);column-gap:clamp(32px,5vw,88px);align-items:start}
.who-img{position:sticky;top:96px}
.who-img img{width:100%;aspect-ratio:1/1;object-fit:cover;object-position:60% 30%;border-radius:var(--r-card);box-shadow:0 34px 70px -36px rgba(15,27,51,.5)}
.who-copy h2{font-family:var(--display);font-weight:600;font-size:clamp(36px,4.6vw,64px);line-height:.98;letter-spacing:-.022em;color:var(--navy);margin-top:14px}
.prose{margin-top:clamp(18px,2vw,26px)}
.prose p{font-size:clamp(16px,1.3vw,17.5px);line-height:1.65;color:var(--text-2);max-width:62ch}
.prose p+p{margin-top:16px}
.rules{margin-top:clamp(24px,3vw,34px);border-left:3px solid var(--amber);padding-left:20px}
.rules p{font-family:var(--display);font-style:italic;font-weight:500;font-size:clamp(19px,1.7vw,24px);line-height:1.32;color:var(--navy);max-width:34ch}
.rules p+p{margin-top:10px}
.gal-card{margin-top:clamp(28px,3.4vw,40px);display:flex;align-items:center;gap:18px;background:var(--snow);border:1px solid var(--line);border-radius:16px;padding:18px 22px;max-width:560px}
.gal-card img{width:68px;height:68px;border-radius:50%;object-fit:cover;flex:0 0 68px}
.gal-card p{font-size:15px;line-height:1.5;color:var(--text-2)}
.gal-card b{display:block;font:700 11px/1.3 var(--body);letter-spacing:.2em;text-transform:uppercase;color:var(--red);margin-bottom:5px}
.gal-card strong{color:var(--navy);font-weight:600}
@media (max-width:820px){
  .who-grid{grid-template-columns:1fr;row-gap:28px}
  .who-img{position:static;max-width:420px}
}

/* ---------- TAKE YOUR SEAT: round 8, the words above and THE TICKET ITSELF the full width under them ---------- */
.seats-words{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);column-gap:clamp(32px,6vw,96px);align-items:end}
.seats-r .lede{margin-top:0}
.seats-g{margin-top:16px;font-size:15.5px;line-height:1.55;color:var(--text-2);max-width:52ch}
.seats-g b{color:var(--navy)}
.seats-ticket{margin-top:clamp(36px,4.4vw,60px)}
@media (max-width:900px){
  .seats-words{grid-template-columns:1fr}
  .seats-r{margin-top:16px}
}

/* ---------- THE TICKET ITSELF (round 8, Zman 1 Oct: the lower card "doesn't look nice... much more expensive, just like
   the literal card, the ticket itself"). THE ONE IDEA: THE TICKET YOU WILL HOLD AT THE DOOR. One printed object on the
   pass's paper: an engraved guilloche band behind the name (the wave work of banknotes and real tickets), a double
   printed frame, the maple leaf in flag red as the one emblem, the facts as printed fields, the two extra days as a
   priced list; across a perforation with punched notches, the stub: ADMIT ONE printed up its edge, the price large,
   the line for people brand new to GP, the one red button. Landscape from 900 px, upright under it. ---------- */
.gt{position:relative;color:var(--text);--stub:clamp(300px,27vw,380px);--notch:13px;--ink:rgba(19,28,46,.14);
  filter:drop-shadow(0 1px 1px rgba(15,27,51,.22)) drop-shadow(0 30px 34px rgba(15,27,51,.22))}
.gt-paper{display:grid;grid-template-columns:minmax(0,1fr) var(--stub)}
.gt-main,.gt-stub{position:relative;background:url(paper.png?v=2) 0 0/176px 176px,#FAF6EC;-webkit-mask-composite:source-in;mask-composite:intersect}
.gt-main{border-radius:20px 0 0 20px;padding:clamp(30px,3.2vw,48px) clamp(30px,3.4vw,54px) clamp(28px,3vw,44px);
  -webkit-mask-image:radial-gradient(circle var(--notch) at 100% 0,#0000 97%,#000 100%),radial-gradient(circle var(--notch) at 100% 100%,#0000 97%,#000 100%);
  mask-image:radial-gradient(circle var(--notch) at 100% 0,#0000 97%,#000 100%),radial-gradient(circle var(--notch) at 100% 100%,#0000 97%,#000 100%)}
.gt-stub{border-radius:0 20px 20px 0;border-left:2px dotted rgba(19,28,46,.34);display:grid;grid-template-columns:auto minmax(0,1fr);
  -webkit-mask-image:radial-gradient(circle var(--notch) at 0 0,#0000 97%,#000 100%),radial-gradient(circle var(--notch) at 0 100%,#0000 97%,#000 100%);
  mask-image:radial-gradient(circle var(--notch) at 0 0,#0000 97%,#000 100%),radial-gradient(circle var(--notch) at 0 100%,#0000 97%,#000 100%)}
/* the double printed frame: a hairline and, inside it, a finer one */
.gt-main::before,.gt-stub::before{content:"";position:absolute;inset:11px;border:1px solid var(--ink);border-radius:11px;pointer-events:none}
.gt-main::after,.gt-stub::after{content:"";position:absolute;inset:15px;border:1px solid rgba(19,28,46,.07);border-radius:8px;pointer-events:none}
.gt-main::before,.gt-main::after{right:17px}
.gt-stub::before,.gt-stub::after{left:15px}
.gt-top{position:relative;display:flex;align-items:center;gap:12px;font:700 11px/1 var(--body);letter-spacing:.26em;text-transform:uppercase;color:var(--amber-deep)}
.gt-top i{flex:1;height:1px;background:var(--ink)}
.gt-top span:last-child{color:var(--text-3)}
.gt-leaf{display:inline-flex;width:20px;height:21px}
.gt-leaf .leaf,.leaf{width:100%;height:100%;fill:#D52B1E}
/* the engraved band behind the name, faded at both ends like a printed security band */
.gt-head{position:relative;margin:clamp(18px,2vw,26px) calc(-1 * clamp(10px,1.4vw,22px)) 0;padding:clamp(14px,1.6vw,22px) clamp(10px,1.4vw,22px)}
.gt-head::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.42;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='96'%3E%3Cpath fill='none' stroke='%230F1B33' stroke-opacity='.5' stroke-width='.6' d='M0 48.0L4 51.1L8 54.1L12 57.0L16 59.5L20 61.6L24 63.4L28 64.8L32 65.9L36 66.6L40 67.0L44 67.2L48 67.2L52 67.2L56 67.2L60 67.2L64 67.2L68 67.2L72 67.2L76 67.2L80 67.0L84 66.6L88 65.9L92 64.8L96 63.4L100 61.6L104 59.5L108 57.0L112 54.1L116 51.1L120 48.0L124 44.9L128 41.9L132 39.0L136 36.5L140 34.4L144 32.6L148 31.2L152 30.1L156 29.4L160 29.0L164 28.8L168 28.8L172 28.8L176 28.8L180 28.8L184 28.8L188 28.8L192 28.8L196 28.8L200 29.0L204 29.4L208 30.1L212 31.2L216 32.6L220 34.4L224 36.5L228 39.0L232 41.9L236 44.9L240 48.0M0 63.5L4 66.3L8 68.8L12 70.7L16 72.1L20 73.0L24 73.4L28 73.5L32 73.3L36 72.8L40 72.3L44 71.7L48 71.1L52 70.6L56 70.0L60 69.5L64 68.9L68 68.2L72 67.3L76 66.0L80 64.5L84 62.5L88 60.1L92 57.3L96 54.1L100 50.6L104 46.9L108 43.1L112 39.4L116 35.8L120 32.5L124 29.7L128 27.2L132 25.3L136 23.9L140 23.0L144 22.6L148 22.5L152 22.7L156 23.2L160 23.7L164 24.3L168 24.9L172 25.4L176 26.0L180 26.5L184 27.1L188 27.8L192 28.7L196 30.0L200 31.5L204 33.5L208 35.9L212 38.7L216 41.9L220 45.4L224 49.1L228 52.9L232 56.6L236 60.2L240 63.5M0 75.5L4 76.7L8 77.2L12 77.3L16 76.9L20 76.2L24 75.2L28 74.1L32 72.9L36 71.7L40 70.6L44 69.5L48 68.4L52 67.3L56 66.1L60 64.7L64 63.0L68 61.1L72 58.8L76 56.1L80 53.0L84 49.6L88 45.9L92 42.0L96 38.1L100 34.2L104 30.6L108 27.3L112 24.5L116 22.2L120 20.5L124 19.3L128 18.8L132 18.7L136 19.1L140 19.8L144 20.8L148 21.9L152 23.1L156 24.3L160 25.4L164 26.5L168 27.6L172 28.7L176 29.9L180 31.3L184 33.0L188 34.9L192 37.2L196 39.9L200 43.0L204 46.4L208 50.1L212 54.0L216 57.9L220 61.8L224 65.4L228 68.7L232 71.5L236 73.8L240 75.5M0 76.0L4 75.3L8 74.2L12 72.9L16 71.5L20 70.0L24 68.4L28 67.0L32 65.5L36 64.1L40 62.7L44 61.3L48 59.7L52 58.0L56 56.0L60 53.8L64 51.3L68 48.4L72 45.3L76 42.0L80 38.6L84 35.2L88 31.9L92 28.8L96 26.0L100 23.7L104 21.9L108 20.6L112 19.9L116 19.7L120 20.0L124 20.7L128 21.8L132 23.1L136 24.5L140 26.0L144 27.6L148 29.0L152 30.5L156 31.9L160 33.3L164 34.7L168 36.3L172 38.0L176 40.0L180 42.2L184 44.7L188 47.6L192 50.7L196 54.0L200 57.4L204 60.8L208 64.1L212 67.2L216 70.0L220 72.3L224 74.1L228 75.4L232 76.1L236 76.3L240 76.0M0 68.1L4 66.6L8 65.1L12 63.5L16 62.0L20 60.6L24 59.2L28 57.8L32 56.4L36 54.9L40 53.4L44 51.7L48 49.8L52 47.7L56 45.4L60 42.9L64 40.3L68 37.7L72 35.0L76 32.5L80 30.1L84 28.1L88 26.4L92 25.1L96 24.3L100 23.9L104 24.0L108 24.5L112 25.4L116 26.5L120 27.9L124 29.4L128 30.9L132 32.5L136 34.0L140 35.4L144 36.8L148 38.2L152 39.6L156 41.1L160 42.6L164 44.3L168 46.2L172 48.3L176 50.6L180 53.1L184 55.7L188 58.3L192 61.0L196 63.5L200 65.9L204 67.9L208 69.6L212 70.9L216 71.7L220 72.1L224 72.0L228 71.5L232 70.6L236 69.5L240 68.1M0 60.3L4 58.8L8 57.3L12 55.9L16 54.5L20 53.2L24 51.8L28 50.4L32 48.9L36 47.3L40 45.5L44 43.6L48 41.5L52 39.4L56 37.2L60 35.1L64 33.1L68 31.2L72 29.6L76 28.3L80 27.4L84 26.9L88 26.7L92 27.0L96 27.6L100 28.6L104 29.8L108 31.1L112 32.6L116 34.2L120 35.7L124 37.2L128 38.7L132 40.1L136 41.5L140 42.8L144 44.2L148 45.6L152 47.1L156 48.7L160 50.5L164 52.4L168 54.5L172 56.6L176 58.8L180 60.9L184 62.9L188 64.8L192 66.4L196 67.7L200 68.6L204 69.1L208 69.3L212 69.0L216 68.4L220 67.4L224 66.2L228 64.9L232 63.4L236 61.8L240 60.3M0 54.8L4 53.2L8 51.6L12 50.1L16 48.5L20 46.8L24 45.0L28 43.2L32 41.1L36 39.0L40 36.8L44 34.6L48 32.4L52 30.4L56 28.5L60 26.9L64 25.7L68 24.9L72 24.5L76 24.5L80 25.0L84 25.9L88 27.1L92 28.6L96 30.3L100 32.1L104 34.0L108 35.9L112 37.7L116 39.5L120 41.2L124 42.8L128 44.4L132 45.9L136 47.5L140 49.2L144 51.0L148 52.8L152 54.9L156 57.0L160 59.2L164 61.4L168 63.6L172 65.6L176 67.5L180 69.1L184 70.3L188 71.1L192 71.5L196 71.5L200 71.0L204 70.1L208 68.9L212 67.4L216 65.7L220 63.9L224 62.0L228 60.1L232 58.3L236 56.5L240 54.8M0 48.0L4 46.0L8 43.9L12 41.7L16 39.4L20 37.0L24 34.5L28 31.8L32 29.2L36 26.7L40 24.3L44 22.1L48 20.3L52 19.0L56 18.1L60 17.9L64 18.1L68 19.0L72 20.3L76 22.1L80 24.3L84 26.7L88 29.2L92 31.8L96 34.5L100 37.0L104 39.4L108 41.7L112 43.9L116 46.0L120 48.0L124 50.0L128 52.1L132 54.3L136 56.6L140 59.0L144 61.5L148 64.2L152 66.8L156 69.3L160 71.7L164 73.9L168 75.7L172 77.0L176 77.9L180 78.1L184 77.9L188 77.0L192 75.7L196 73.9L200 71.7L204 69.3L208 66.8L212 64.2L216 61.5L220 59.0L224 56.6L228 54.3L232 52.1L236 50.0L240 48.0M0 37.6L4 35.1L8 32.4L12 29.5L16 26.7L20 23.8L24 21.0L28 18.4L32 16.1L36 14.2L40 12.9L44 12.2L48 12.1L52 12.7L56 14.0L60 15.8L64 18.2L68 21.1L72 24.2L76 27.5L80 30.9L84 34.3L88 37.5L92 40.6L96 43.5L100 46.2L104 48.7L108 51.1L112 53.5L116 55.9L120 58.4L124 60.9L128 63.6L132 66.5L136 69.3L140 72.2L144 75.0L148 77.6L152 79.9L156 81.8L160 83.1L164 83.8L168 83.9L172 83.3L176 82.0L180 80.2L184 77.8L188 74.9L192 71.8L196 68.5L200 65.1L204 61.7L208 58.5L212 55.4L216 52.5L220 49.8L224 47.3L228 44.9L232 42.5L236 40.1L240 37.6M0 27.1L4 24.5L8 21.8L12 19.3L16 17.0L20 14.9L24 13.3L28 12.3L32 11.8L36 12.0L40 12.9L44 14.5L48 16.7L52 19.4L56 22.6L60 26.1L64 29.7L68 33.4L72 37.0L76 40.5L80 43.8L84 46.8L88 49.6L92 52.1L96 54.5L100 56.9L104 59.1L108 61.4L112 63.8L116 66.3L120 68.9L124 71.5L128 74.2L132 76.7L136 79.0L140 81.1L144 82.7L148 83.7L152 84.2L156 84.0L160 83.1L164 81.5L168 79.3L172 76.6L176 73.4L180 69.9L184 66.3L188 62.6L192 59.0L196 55.5L200 52.2L204 49.2L208 46.4L212 43.9L216 41.5L220 39.1L224 36.9L228 34.6L232 32.2L236 29.7L240 27.1M0 22.7L4 21.0L8 19.5L12 18.5L16 17.8L20 17.7L24 18.2L28 19.2L32 20.8L36 22.9L40 25.5L44 28.5L48 31.7L52 35.0L56 38.4L60 41.6L64 44.7L68 47.6L72 50.2L76 52.6L80 54.8L84 56.7L88 58.5L92 60.3L96 62.0L100 63.8L104 65.7L108 67.6L112 69.5L116 71.5L120 73.3L124 75.0L128 76.5L132 77.5L136 78.2L140 78.3L144 77.8L148 76.8L152 75.2L156 73.1L160 70.5L164 67.5L168 64.3L172 61.0L176 57.6L180 54.4L184 51.3L188 48.4L192 45.8L196 43.4L200 41.2L204 39.3L208 37.5L212 35.7L216 34.0L220 32.2L224 30.3L228 28.4L232 26.5L236 24.5L240 22.7M0 25.9L4 25.7L8 25.8L12 26.4L16 27.4L20 28.8L24 30.7L28 32.9L32 35.3L36 37.9L40 40.6L44 43.3L48 45.9L52 48.3L56 50.6L60 52.6L64 54.3L68 55.9L72 57.2L76 58.5L80 59.6L84 60.7L88 61.8L92 62.9L96 64.1L100 65.3L104 66.5L108 67.7L112 68.7L116 69.5L120 70.1L124 70.3L128 70.2L132 69.6L136 68.6L140 67.2L144 65.3L148 63.1L152 60.7L156 58.1L160 55.4L164 52.7L168 50.1L172 47.7L176 45.4L180 43.4L184 41.7L188 40.1L192 38.8L196 37.5L200 36.4L204 35.3L208 34.2L212 33.1L216 31.9L220 30.7L224 29.5L228 28.3L232 27.3L236 26.5L240 25.9M0 31.9L4 32.9L8 34.2L12 35.9L16 37.8L20 39.9L24 42.2L28 44.5L32 46.7L36 48.9L40 50.9L44 52.7L48 54.3L52 55.7L56 56.8L60 57.8L64 58.6L68 59.3L72 60.0L76 60.6L80 61.2L84 61.9L88 62.6L92 63.3L96 64.0L100 64.5L104 64.9L108 65.2L112 65.1L116 64.8L120 64.1L124 63.1L128 61.8L132 60.1L136 58.2L140 56.1L144 53.8L148 51.5L152 49.3L156 47.1L160 45.1L164 43.3L168 41.7L172 40.3L176 39.2L180 38.2L184 37.4L188 36.7L192 36.0L196 35.4L200 34.8L204 34.1L208 33.4L212 32.7L216 32.0L220 31.5L224 31.1L228 30.8L232 30.9L236 31.2L240 31.9M0 37.8L4 40.0L8 42.3L12 44.8L16 47.3L20 49.7L24 52.0L28 54.1L32 56.0L36 57.6L40 58.9L44 59.9L48 60.7L52 61.3L56 61.8L60 62.2L64 62.5L68 62.9L72 63.2L76 63.6L80 64.0L84 64.4L88 64.6L92 64.8L96 64.8L100 64.5L104 63.9L108 63.0L112 61.7L116 60.1L120 58.2L124 56.0L128 53.7L132 51.2L136 48.7L140 46.3L144 44.0L148 41.9L152 40.0L156 38.4L160 37.1L164 36.1L168 35.3L172 34.7L176 34.2L180 33.8L184 33.5L188 33.1L192 32.8L196 32.4L200 32.0L204 31.6L208 31.4L212 31.2L216 31.2L220 31.5L224 32.1L228 33.0L232 34.3L236 35.9L240 37.8'/%3E%3C/svg%3E") 0 50%/240px 96px repeat-x;
  -webkit-mask-image:linear-gradient(90deg,#0000,#000 14%,#000 70%,#0000);mask-image:linear-gradient(90deg,#0000,#000 14%,#000 70%,#0000)}
.gt-name{position:relative;text-wrap:balance;font-family:var(--display);font-weight:600;font-size:clamp(44px,4.6vw,74px);line-height:.98;letter-spacing:-.028em;color:var(--navy);
  text-shadow:0 1px 0 rgba(255,255,255,.95)}
.gt-tag{position:relative;text-wrap:balance;margin-top:10px;font-family:var(--display);font-style:italic;font-weight:500;font-size:clamp(18px,1.55vw,23px);line-height:1.3;color:var(--text-2)}
.gt-facts{margin-top:clamp(20px,2.2vw,30px);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.gt-facts div{padding:14px 18px 15px 0;min-width:0}
.gt-facts div+div{padding-left:18px;border-left:1px solid var(--ink)}
.gt-facts dt,.gt-k{font:700 10.5px/1.3 var(--body);letter-spacing:.22em;text-transform:uppercase;color:var(--amber-deep)}
.gt-facts dd{margin:6px 0 0;font-size:15.5px;font-weight:600;line-height:1.4;color:var(--navy)}
.gt-facts small{display:block;margin-top:2px;font-size:13px;font-weight:500;color:var(--text-3)}
.gt-adds{margin-top:clamp(16px,1.8vw,24px)}
.gt-adds ul{margin-top:8px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(20px,2.6vw,40px)}
.gt-adds li{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px dashed rgba(19,28,46,.2);min-width:0}
.gt-adds li span{min-width:0;font-size:14.5px;line-height:1.4;color:var(--text-2)}
.gt-adds li b{display:block;font-weight:700;color:var(--navy)}
.gt-adds em{flex:0 0 auto;font-style:normal;font-family:var(--display);font-weight:600;font-size:22px;letter-spacing:-.01em;color:var(--navy)}
/* the stub: ADMIT ONE printed up its edge, then the price and the way in */
.gt-admit{writing-mode:vertical-rl;transform:rotate(180deg);align-self:stretch;text-align:center;margin:26px 0 26px 26px;padding-left:12px;
  border-left:1px solid var(--ink);font:700 11px/1 var(--body);letter-spacing:.42em;text-transform:uppercase;color:var(--text-3)}
.gt-buy{position:relative;display:flex;flex-direction:column;justify-content:center;padding:clamp(28px,3vw,44px) clamp(26px,2.6vw,40px) clamp(28px,3vw,44px) clamp(16px,1.6vw,24px)}
.gt .t-price{position:relative;margin-top:8px;display:flex;align-items:baseline;gap:8px}
.gt .t-price::before{content:"";position:absolute;left:-14px;right:-30px;top:-14px;bottom:-14px;z-index:-1;pointer-events:none;opacity:.3;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='96'%3E%3Cpath fill='none' stroke='%230F1B33' stroke-opacity='.5' stroke-width='.6' d='M0 48.0L4 51.1L8 54.1L12 57.0L16 59.5L20 61.6L24 63.4L28 64.8L32 65.9L36 66.6L40 67.0L44 67.2L48 67.2L52 67.2L56 67.2L60 67.2L64 67.2L68 67.2L72 67.2L76 67.2L80 67.0L84 66.6L88 65.9L92 64.8L96 63.4L100 61.6L104 59.5L108 57.0L112 54.1L116 51.1L120 48.0L124 44.9L128 41.9L132 39.0L136 36.5L140 34.4L144 32.6L148 31.2L152 30.1L156 29.4L160 29.0L164 28.8L168 28.8L172 28.8L176 28.8L180 28.8L184 28.8L188 28.8L192 28.8L196 28.8L200 29.0L204 29.4L208 30.1L212 31.2L216 32.6L220 34.4L224 36.5L228 39.0L232 41.9L236 44.9L240 48.0M0 63.5L4 66.3L8 68.8L12 70.7L16 72.1L20 73.0L24 73.4L28 73.5L32 73.3L36 72.8L40 72.3L44 71.7L48 71.1L52 70.6L56 70.0L60 69.5L64 68.9L68 68.2L72 67.3L76 66.0L80 64.5L84 62.5L88 60.1L92 57.3L96 54.1L100 50.6L104 46.9L108 43.1L112 39.4L116 35.8L120 32.5L124 29.7L128 27.2L132 25.3L136 23.9L140 23.0L144 22.6L148 22.5L152 22.7L156 23.2L160 23.7L164 24.3L168 24.9L172 25.4L176 26.0L180 26.5L184 27.1L188 27.8L192 28.7L196 30.0L200 31.5L204 33.5L208 35.9L212 38.7L216 41.9L220 45.4L224 49.1L228 52.9L232 56.6L236 60.2L240 63.5M0 75.5L4 76.7L8 77.2L12 77.3L16 76.9L20 76.2L24 75.2L28 74.1L32 72.9L36 71.7L40 70.6L44 69.5L48 68.4L52 67.3L56 66.1L60 64.7L64 63.0L68 61.1L72 58.8L76 56.1L80 53.0L84 49.6L88 45.9L92 42.0L96 38.1L100 34.2L104 30.6L108 27.3L112 24.5L116 22.2L120 20.5L124 19.3L128 18.8L132 18.7L136 19.1L140 19.8L144 20.8L148 21.9L152 23.1L156 24.3L160 25.4L164 26.5L168 27.6L172 28.7L176 29.9L180 31.3L184 33.0L188 34.9L192 37.2L196 39.9L200 43.0L204 46.4L208 50.1L212 54.0L216 57.9L220 61.8L224 65.4L228 68.7L232 71.5L236 73.8L240 75.5M0 76.0L4 75.3L8 74.2L12 72.9L16 71.5L20 70.0L24 68.4L28 67.0L32 65.5L36 64.1L40 62.7L44 61.3L48 59.7L52 58.0L56 56.0L60 53.8L64 51.3L68 48.4L72 45.3L76 42.0L80 38.6L84 35.2L88 31.9L92 28.8L96 26.0L100 23.7L104 21.9L108 20.6L112 19.9L116 19.7L120 20.0L124 20.7L128 21.8L132 23.1L136 24.5L140 26.0L144 27.6L148 29.0L152 30.5L156 31.9L160 33.3L164 34.7L168 36.3L172 38.0L176 40.0L180 42.2L184 44.7L188 47.6L192 50.7L196 54.0L200 57.4L204 60.8L208 64.1L212 67.2L216 70.0L220 72.3L224 74.1L228 75.4L232 76.1L236 76.3L240 76.0M0 68.1L4 66.6L8 65.1L12 63.5L16 62.0L20 60.6L24 59.2L28 57.8L32 56.4L36 54.9L40 53.4L44 51.7L48 49.8L52 47.7L56 45.4L60 42.9L64 40.3L68 37.7L72 35.0L76 32.5L80 30.1L84 28.1L88 26.4L92 25.1L96 24.3L100 23.9L104 24.0L108 24.5L112 25.4L116 26.5L120 27.9L124 29.4L128 30.9L132 32.5L136 34.0L140 35.4L144 36.8L148 38.2L152 39.6L156 41.1L160 42.6L164 44.3L168 46.2L172 48.3L176 50.6L180 53.1L184 55.7L188 58.3L192 61.0L196 63.5L200 65.9L204 67.9L208 69.6L212 70.9L216 71.7L220 72.1L224 72.0L228 71.5L232 70.6L236 69.5L240 68.1M0 60.3L4 58.8L8 57.3L12 55.9L16 54.5L20 53.2L24 51.8L28 50.4L32 48.9L36 47.3L40 45.5L44 43.6L48 41.5L52 39.4L56 37.2L60 35.1L64 33.1L68 31.2L72 29.6L76 28.3L80 27.4L84 26.9L88 26.7L92 27.0L96 27.6L100 28.6L104 29.8L108 31.1L112 32.6L116 34.2L120 35.7L124 37.2L128 38.7L132 40.1L136 41.5L140 42.8L144 44.2L148 45.6L152 47.1L156 48.7L160 50.5L164 52.4L168 54.5L172 56.6L176 58.8L180 60.9L184 62.9L188 64.8L192 66.4L196 67.7L200 68.6L204 69.1L208 69.3L212 69.0L216 68.4L220 67.4L224 66.2L228 64.9L232 63.4L236 61.8L240 60.3M0 54.8L4 53.2L8 51.6L12 50.1L16 48.5L20 46.8L24 45.0L28 43.2L32 41.1L36 39.0L40 36.8L44 34.6L48 32.4L52 30.4L56 28.5L60 26.9L64 25.7L68 24.9L72 24.5L76 24.5L80 25.0L84 25.9L88 27.1L92 28.6L96 30.3L100 32.1L104 34.0L108 35.9L112 37.7L116 39.5L120 41.2L124 42.8L128 44.4L132 45.9L136 47.5L140 49.2L144 51.0L148 52.8L152 54.9L156 57.0L160 59.2L164 61.4L168 63.6L172 65.6L176 67.5L180 69.1L184 70.3L188 71.1L192 71.5L196 71.5L200 71.0L204 70.1L208 68.9L212 67.4L216 65.7L220 63.9L224 62.0L228 60.1L232 58.3L236 56.5L240 54.8M0 48.0L4 46.0L8 43.9L12 41.7L16 39.4L20 37.0L24 34.5L28 31.8L32 29.2L36 26.7L40 24.3L44 22.1L48 20.3L52 19.0L56 18.1L60 17.9L64 18.1L68 19.0L72 20.3L76 22.1L80 24.3L84 26.7L88 29.2L92 31.8L96 34.5L100 37.0L104 39.4L108 41.7L112 43.9L116 46.0L120 48.0L124 50.0L128 52.1L132 54.3L136 56.6L140 59.0L144 61.5L148 64.2L152 66.8L156 69.3L160 71.7L164 73.9L168 75.7L172 77.0L176 77.9L180 78.1L184 77.9L188 77.0L192 75.7L196 73.9L200 71.7L204 69.3L208 66.8L212 64.2L216 61.5L220 59.0L224 56.6L228 54.3L232 52.1L236 50.0L240 48.0M0 37.6L4 35.1L8 32.4L12 29.5L16 26.7L20 23.8L24 21.0L28 18.4L32 16.1L36 14.2L40 12.9L44 12.2L48 12.1L52 12.7L56 14.0L60 15.8L64 18.2L68 21.1L72 24.2L76 27.5L80 30.9L84 34.3L88 37.5L92 40.6L96 43.5L100 46.2L104 48.7L108 51.1L112 53.5L116 55.9L120 58.4L124 60.9L128 63.6L132 66.5L136 69.3L140 72.2L144 75.0L148 77.6L152 79.9L156 81.8L160 83.1L164 83.8L168 83.9L172 83.3L176 82.0L180 80.2L184 77.8L188 74.9L192 71.8L196 68.5L200 65.1L204 61.7L208 58.5L212 55.4L216 52.5L220 49.8L224 47.3L228 44.9L232 42.5L236 40.1L240 37.6M0 27.1L4 24.5L8 21.8L12 19.3L16 17.0L20 14.9L24 13.3L28 12.3L32 11.8L36 12.0L40 12.9L44 14.5L48 16.7L52 19.4L56 22.6L60 26.1L64 29.7L68 33.4L72 37.0L76 40.5L80 43.8L84 46.8L88 49.6L92 52.1L96 54.5L100 56.9L104 59.1L108 61.4L112 63.8L116 66.3L120 68.9L124 71.5L128 74.2L132 76.7L136 79.0L140 81.1L144 82.7L148 83.7L152 84.2L156 84.0L160 83.1L164 81.5L168 79.3L172 76.6L176 73.4L180 69.9L184 66.3L188 62.6L192 59.0L196 55.5L200 52.2L204 49.2L208 46.4L212 43.9L216 41.5L220 39.1L224 36.9L228 34.6L232 32.2L236 29.7L240 27.1M0 22.7L4 21.0L8 19.5L12 18.5L16 17.8L20 17.7L24 18.2L28 19.2L32 20.8L36 22.9L40 25.5L44 28.5L48 31.7L52 35.0L56 38.4L60 41.6L64 44.7L68 47.6L72 50.2L76 52.6L80 54.8L84 56.7L88 58.5L92 60.3L96 62.0L100 63.8L104 65.7L108 67.6L112 69.5L116 71.5L120 73.3L124 75.0L128 76.5L132 77.5L136 78.2L140 78.3L144 77.8L148 76.8L152 75.2L156 73.1L160 70.5L164 67.5L168 64.3L172 61.0L176 57.6L180 54.4L184 51.3L188 48.4L192 45.8L196 43.4L200 41.2L204 39.3L208 37.5L212 35.7L216 34.0L220 32.2L224 30.3L228 28.4L232 26.5L236 24.5L240 22.7M0 25.9L4 25.7L8 25.8L12 26.4L16 27.4L20 28.8L24 30.7L28 32.9L32 35.3L36 37.9L40 40.6L44 43.3L48 45.9L52 48.3L56 50.6L60 52.6L64 54.3L68 55.9L72 57.2L76 58.5L80 59.6L84 60.7L88 61.8L92 62.9L96 64.1L100 65.3L104 66.5L108 67.7L112 68.7L116 69.5L120 70.1L124 70.3L128 70.2L132 69.6L136 68.6L140 67.2L144 65.3L148 63.1L152 60.7L156 58.1L160 55.4L164 52.7L168 50.1L172 47.7L176 45.4L180 43.4L184 41.7L188 40.1L192 38.8L196 37.5L200 36.4L204 35.3L208 34.2L212 33.1L216 31.9L220 30.7L224 29.5L228 28.3L232 27.3L236 26.5L240 25.9M0 31.9L4 32.9L8 34.2L12 35.9L16 37.8L20 39.9L24 42.2L28 44.5L32 46.7L36 48.9L40 50.9L44 52.7L48 54.3L52 55.7L56 56.8L60 57.8L64 58.6L68 59.3L72 60.0L76 60.6L80 61.2L84 61.9L88 62.6L92 63.3L96 64.0L100 64.5L104 64.9L108 65.2L112 65.1L116 64.8L120 64.1L124 63.1L128 61.8L132 60.1L136 58.2L140 56.1L144 53.8L148 51.5L152 49.3L156 47.1L160 45.1L164 43.3L168 41.7L172 40.3L176 39.2L180 38.2L184 37.4L188 36.7L192 36.0L196 35.4L200 34.8L204 34.1L208 33.4L212 32.7L216 32.0L220 31.5L224 31.1L228 30.8L232 30.9L236 31.2L240 31.9M0 37.8L4 40.0L8 42.3L12 44.8L16 47.3L20 49.7L24 52.0L28 54.1L32 56.0L36 57.6L40 58.9L44 59.9L48 60.7L52 61.3L56 61.8L60 62.2L64 62.5L68 62.9L72 63.2L76 63.6L80 64.0L84 64.4L88 64.6L92 64.8L96 64.8L100 64.5L104 63.9L108 63.0L112 61.7L116 60.1L120 58.2L124 56.0L128 53.7L132 51.2L136 48.7L140 46.3L144 44.0L148 41.9L152 40.0L156 38.4L160 37.1L164 36.1L168 35.3L172 34.7L176 34.2L180 33.8L184 33.5L188 33.1L192 32.8L196 32.4L200 32.0L204 31.6L208 31.4L212 31.2L216 31.2L220 31.5L224 32.1L228 33.0L232 34.3L236 35.9L240 37.8'/%3E%3C/svg%3E") 0 50%/240px 96px repeat-x;
  -webkit-mask-image:linear-gradient(90deg,#0000,#000 20%,#000 70%,#0000);mask-image:linear-gradient(90deg,#0000,#000 20%,#000 70%,#0000)}
.gt .t-price span,.gt .t-price small{position:relative}
.gt .t-price span{font-family:var(--display);font-weight:700;font-size:clamp(54px,4.8vw,74px);line-height:.92;letter-spacing:-.035em;color:var(--navy);text-shadow:0 1px 0 rgba(255,255,255,.95)}
.gt .t-price small{font:700 11.5px/1 var(--body);letter-spacing:.2em;text-transform:uppercase;color:var(--text-3)}
.gt-new{margin-top:12px;font-size:14.5px;line-height:1.45;color:var(--text-2)}
.gt-new b{display:block;color:var(--navy);font-weight:700}
/* the brand-new price is itself the way in: it opens the popup with that seat chosen (44 px tall to a finger) */
.gt-newbtn{display:inline-flex;align-items:center;min-height:44px;margin:-10px 0 -12px;padding:0;border:0;background:none;cursor:pointer;
  font:inherit;color:var(--text-2);text-align:left}
.gt-newbtn strong{margin-left:.3em;color:var(--red-deep);font-weight:700;border-bottom:1px solid rgba(200,16,46,.4);transition:border-color .2s ease}
.gt-newbtn:hover strong{border-bottom-color:var(--red)}
/* round 9: a day can be bought on its own; the line under "Add a day" opens the popup on that choice (44 px to a finger) */
.gt-alone{display:inline-flex;align-items:center;min-height:44px;margin-top:4px;padding:0;border:0;background:none;cursor:pointer;
  font:inherit;font-size:14.5px;color:var(--text-2);text-align:left}
.gt-alone b{margin-left:.3em;color:var(--red-deep);font-weight:700;border-bottom:1px solid rgba(200,16,46,.4);transition:border-color .2s ease}
.gt-alone:hover b{border-bottom-color:var(--red)}
.gt .btn{margin-top:18px}
.gt-newbtn:focus-visible{outline:3px solid var(--amber);outline-offset:2px;border-radius:6px}
.gt-g{margin-top:12px;text-align:center;font-size:13px;line-height:1.45;color:var(--text-3)}
.gt-g b{color:var(--navy)}
@media (min-width:901px) and (max-width:1199px){
  .gt-facts{grid-template-columns:1fr 1fr}
  .gt-facts div:nth-child(3){grid-column:1/-1;padding-left:0;border-left:0;border-top:1px solid var(--ink)}
  .gt-adds ul{grid-template-columns:1fr}
}
/* upright: tablets and phones */
@media (max-width:900px){
  .gt-paper{grid-template-columns:minmax(0,1fr)}
  .gt-main{border-radius:20px 20px 0 0;padding:28px 26px 24px;
    -webkit-mask-image:radial-gradient(circle var(--notch) at 0 100%,#0000 97%,#000 100%),radial-gradient(circle var(--notch) at 100% 100%,#0000 97%,#000 100%);
    mask-image:radial-gradient(circle var(--notch) at 0 100%,#0000 97%,#000 100%),radial-gradient(circle var(--notch) at 100% 100%,#0000 97%,#000 100%)}
  .gt-stub{border-radius:0 0 20px 20px;border-left:0;border-top:2px dotted rgba(19,28,46,.34);grid-template-columns:minmax(0,1fr);
    -webkit-mask-image:radial-gradient(circle var(--notch) at 0 0,#0000 97%,#000 100%),radial-gradient(circle var(--notch) at 100% 0,#0000 97%,#000 100%);
    mask-image:radial-gradient(circle var(--notch) at 0 0,#0000 97%,#000 100%),radial-gradient(circle var(--notch) at 100% 0,#0000 97%,#000 100%)}
  .gt-main::before,.gt-main::after{right:11px;bottom:13px}
  .gt-main::after{right:15px}
  .gt-stub::before,.gt-stub::after{left:11px;top:13px}
  .gt-stub::after{left:15px}
  .gt-admit{display:none}
  .gt-buy{padding:26px 26px 24px}
  .gt-facts{grid-template-columns:1fr}
  .gt-facts div,.gt-facts div+div{padding:12px 0;border-left:0}
  .gt-facts div+div{border-top:1px solid var(--ink)}
  .gt-adds ul{grid-template-columns:1fr}
}
@media (max-width:520px){
  .gt-top{letter-spacing:.2em;gap:9px;font-size:10px}
  .gt-name{font-size:clamp(36px,10.5vw,44px)}
  .gt-main{padding:24px 22px 20px}
  .gt-buy{padding:22px 22px 20px}
}

/* ---------- THE GUARANTEE: the band wears the accent (maple red). Round 7: it is the red sheet laid over the navy room,
   directly under the room film (a sheet on the night needs a deeper shadow and no white top light) ---------- */
.guarantee-sec .wrap{text-align:left}
.guarantee-sec.sheet-top{box-shadow:0 -30px 60px -28px rgba(0,0,0,.6)}
/* THE 110%: one typographic treatment for the whole site. The number enormous in the display face, "money back" as a
   small upright word under an amber hairline. No disc, no ring, no dashed edge, no shadow. --g sets the size. */
.g110{--g:clamp(96px,11vw,168px);display:inline-flex;flex-direction:column;align-items:stretch;line-height:1;color:var(--navy);vertical-align:top}
.g110-n{font-family:var(--display);font-weight:700;font-size:var(--g);line-height:.82;letter-spacing:-.05em;white-space:nowrap}
.g110-n i{font-style:normal;font-size:.46em;vertical-align:.66em;margin-left:.03em;letter-spacing:-.02em}
.g110-t{margin-top:.12em;padding-top:.11em;border-top:1px solid var(--amber);font:700 calc(var(--g) * .105)/1.2 var(--body);letter-spacing:.22em;text-transform:uppercase;opacity:.86}
.band-accent .g110,.roomfilm .g110,.ticket .g110,.close .g110{color:#fff}
.g110-sm{--g:60px}
.g-lock{margin-top:clamp(26px,3.2vw,40px);display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:clamp(36px,5vw,80px);align-items:center}
.g-copy h2{font-family:var(--display);font-weight:600;font-size:clamp(30px,4.2vw,56px);line-height:1.02;letter-spacing:-.02em;color:#fff}
.g-lead{margin-top:16px;font-size:clamp(16px,1.35vw,18px);line-height:1.55;font-weight:600;color:rgba(255,255,255,.92);max-width:52ch}
.g-quote{margin-top:22px;border-left:3px solid var(--amber);padding-left:18px;font-size:16px;line-height:1.55;color:rgba(255,255,255,.88);max-width:64ch}
.g-quote cite{display:block;margin-top:10px;font:700 11px/1.3 var(--body);font-style:normal;letter-spacing:.2em;text-transform:uppercase;color:var(--amber)}
.g-points{margin-top:clamp(30px,3.6vw,44px);display:flex;flex-wrap:wrap;gap:12px 32px}
.g-points li{position:relative;padding-left:26px;font-size:15px;font-weight:600;color:#fff}
.g-points li::before{content:"";position:absolute;left:3px;top:.45em;width:9px;height:5px;border-left:2px solid var(--amber);border-bottom:2px solid var(--amber);transform:rotate(-45deg)}
.g-cta{margin-top:clamp(30px,3.6vw,44px);display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.g-cta p{font-size:13.5px;color:rgba(255,255,255,.82)}
.g-cta strong{color:#fff}
@media (max-width:760px){
  .g-lock{grid-template-columns:1fr;row-gap:26px}
  .g110{--g:clamp(84px,22vw,110px)}
}

/* ---------- FREQUENTLY ASKED QUESTIONS: paper ---------- */
.acc{margin-top:clamp(22px,2.8vw,36px);border-bottom:1px solid var(--line)}
.acc details{border-top:1px solid var(--line)}
.acc summary{list-style:none;cursor:pointer;position:relative;padding:20px 44px 20px 0;font-family:var(--display);font-weight:500;font-size:clamp(19px,1.7vw,23px);line-height:1.3;color:var(--navy)}
.acc summary::-webkit-details-marker{display:none}
.acc summary::after{content:"";position:absolute;right:4px;top:50%;width:12px;height:12px;margin-top:-6px;
  background:linear-gradient(var(--red),var(--red)) center/12px 2px no-repeat,linear-gradient(var(--red),var(--red)) center/2px 12px no-repeat;transition:transform .25s ease}
.acc details[open] summary::after{transform:rotate(45deg)}
.acc details p{padding:0 0 22px;font-size:16px;line-height:1.65;color:var(--text-2);max-width:64ch}
.acc details a{color:var(--red);border-bottom:1px solid rgba(200,16,46,.35);font-weight:600}

/* ---------- THE CLOSE: navy over the room ---------- */
.close{position:relative;overflow:hidden;padding:clamp(96px,12vw,170px) 0;text-align:center}
.close.under-top{padding-top:calc(clamp(96px,12vw,170px) + var(--r-sheet))}
.faq{background:var(--paper)}
.close-media{position:absolute;inset:0;z-index:0}
.close-media img{width:100%;height:100%;object-fit:cover;filter:saturate(.7)}
.close-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,27,51,.86),rgba(15,27,51,.72) 50%,var(--navy) 100%)}
.close-body{position:relative;z-index:1}
.close h2{font-family:var(--display);font-weight:600;font-size:clamp(36px,5.2vw,72px);line-height:1;letter-spacing:-.024em;color:var(--on-navy);text-wrap:balance;max-width:16ch;margin-inline:auto}
.close-body>p{margin:22px auto 0;font-size:clamp(16.5px,1.4vw,19px);line-height:1.6;color:var(--on-navy-2);max-width:52ch}
.close .btn{margin-top:30px}
.close-note{margin-top:16px;font-size:13.5px;color:var(--on-navy-3)}

/* ---------- FOOTER ---------- */
.foot{border-top:1px solid var(--line-navy);padding:clamp(36px,4vw,56px) 0 calc(clamp(36px,4vw,56px) + var(--bar))}
.foot-in{text-align:center}
.foot-logo{height:44px;width:auto;margin:0 auto 20px;opacity:.92}
.foot p{font-size:14px;line-height:1.6;color:var(--on-navy-2)}
.foot p+p{margin-top:8px}
.foot .fine{font-size:12.5px;color:var(--on-navy-3)}
.foot a{color:var(--on-navy-2);border-bottom:1px solid var(--line-navy)}

/* ---------- STICKY BAR, round 4: a floating ticket on desktop (face · name · facts · the button that opens the details
   step), a full-width bar on phones. No frosted-glass blur behind it (that effect cost frames, see verify.py). ---------- */
.sticky-bar{position:fixed;left:0;right:0;bottom:0;z-index:70;padding:0 16px calc(16px + env(safe-area-inset-bottom));pointer-events:none;
  transform:translateY(130%);transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.sticky-bar.show{transform:translateY(0)}
.sticky-in{pointer-events:auto;max-width:880px;margin:0 auto;display:flex;align-items:center;gap:16px;padding:10px 10px 10px 12px;
  background:var(--navy);color:var(--on-navy);border-radius:18px;
  box-shadow:0 26px 60px -24px rgba(15,27,51,.7),0 0 0 1px rgba(255,255,255,.07),inset 0 1px 0 rgba(240,162,2,.35)}
.sticky-face{width:44px;height:44px;border-radius:50%;object-fit:cover;flex:0 0 44px;box-shadow:0 0 0 2px rgba(240,162,2,.55)}
.sticky-info{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1 1 auto}
.sticky-info strong{font-family:var(--display);font-weight:600;font-size:18px;line-height:1.1;color:var(--on-navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sticky-info>span{font-size:13px;color:var(--on-navy-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sticky-info>span b{color:var(--on-navy);font-weight:600}
.sb-sep{font-style:normal}
.sticky-bar .btn{flex:0 0 auto;padding:15px 22px;border-radius:12px}
@media (max-width:640px){
  .sticky-bar{padding:0}
  .sticky-in{max-width:none;border-radius:16px 16px 0 0;padding:10px var(--gutter) calc(10px + env(safe-area-inset-bottom));gap:12px}
  .sticky-face{width:38px;height:38px;flex-basis:38px}
  .sticky-info strong{display:none}
  .sticky-info>span{font-size:12.5px;white-space:normal;line-height:1.35}
  .sticky-info>span b{display:block;font-family:var(--display);font-size:16px;margin-bottom:1px}
  .sb-sep{display:none}
  .sticky-bar .btn{padding:14px 16px;font-size:15px}
  .sticky-bar .btn em{display:none}
}

/* ---------- STEP 1 OF 2: the details popup ---------- */
.modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:16px}
.modal[hidden]{display:none}
.modal-scrim{position:absolute;inset:0;background:rgba(15,27,51,.66)}
.modal-card{position:relative;width:min(560px,100%);max-height:calc(100svh - 32px);overflow:auto;background:var(--snow);border-radius:20px;
  padding:clamp(24px,3vw,36px);box-shadow:0 50px 100px -40px rgba(0,0,0,.6)}
.modal-x{position:absolute;top:14px;right:14px;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:var(--paper);cursor:pointer;display:grid;place-items:center;padding:0}
.modal-x svg{width:16px;height:16px;fill:none;stroke:var(--navy);stroke-width:2;stroke-linecap:round}
.modal-x:hover{background:var(--paper-2)}
.modal-step{font:700 11px/1.3 var(--body);letter-spacing:.2em;text-transform:uppercase;color:var(--amber-deep)}
.modal-title{margin-top:8px;font-family:var(--display);font-weight:600;font-size:clamp(24px,2.6vw,32px);line-height:1.08;letter-spacing:-.015em;color:var(--navy)}
.modal-sub{margin-top:6px;font-size:15px;line-height:1.5;color:var(--text-2)}
.modal-tier{margin-top:16px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--paper-2);border:1px solid var(--line);border-radius:12px;padding:12px 16px}
.mt-label{font-size:14px;font-weight:600;color:var(--navy)}
.mt-price b{font-family:var(--display);font-weight:600;font-size:20px;color:var(--red);white-space:nowrap}
.modal-form{margin-top:18px}
/* round 8: THE CHOICE. One seat (the seminar, or the same three days for someone brand new to GP) and either extra
   day; the total in red, like a price tag. Real radio and check inputs fill each card (44 px+ targets). */
.m-choice{margin-bottom:18px}
.m-pick{border:0;margin:0;padding:0;min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.m-pick+.m-pick{margin-top:14px}
.m-k{grid-column:1/-1;float:none;padding:0;margin-bottom:2px;font:700 11.5px/1.3 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--text-3)}
.m-k span{text-transform:none;letter-spacing:0;font-weight:500}
.m-opt{position:relative;display:grid;grid-template-columns:20px minmax(0,1fr);column-gap:10px;align-content:start;min-height:64px;padding:12px 14px;
  border:1.5px solid var(--line);border-radius:12px;background:var(--paper);cursor:pointer;transition:border-color .2s ease,background-color .2s ease,box-shadow .2s ease}
.m-opt:hover{border-color:rgba(15,27,51,.35)}
.m-opt input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.m-dot,.m-box{position:relative;width:20px;height:20px;margin-top:1px;border:2px solid rgba(15,27,51,.35);transition:border-color .2s ease,background-color .2s ease}
.m-dot{border-radius:50%}
.m-dot::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--navy);transform:scale(0);transition:transform .2s ease}
.m-box{border-radius:5px}
.m-box::after{content:"";position:absolute;left:5px;top:1px;width:6px;height:11px;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg) scale(0);transition:transform .2s ease}
.m-opt span{min-width:0}
.m-opt b{display:block;font-weight:700;font-size:14.5px;line-height:1.3;color:var(--navy)}
.m-opt small{display:block;margin-top:2px;font-size:12.5px;line-height:1.35;color:var(--text-3)}
.m-opt em{grid-column:2;margin-top:6px;font-style:normal;font-family:var(--display);font-weight:600;font-size:19px;line-height:1;color:var(--navy)}
.m-opt:has(input:checked){background:var(--snow);border-color:var(--navy);box-shadow:0 12px 24px -18px rgba(15,27,51,.55)}
.m-opt:has(input:checked) .m-dot{border-color:var(--navy)}
.m-opt:has(input:checked) .m-dot::after{transform:scale(1)}
.m-opt:has(input:checked) .m-box{background:var(--navy);border-color:var(--navy)}
.m-opt:has(input:checked) .m-box::after{transform:rotate(45deg) scale(1)}
.m-opt:has(input:focus-visible){outline:3px solid var(--amber);outline-offset:2px}
/* round 9: the third seat choice, "Just the day, no seminar seat", a full row under the two seats; it has no price */
.m-opt.is-none{grid-column:1/-1;min-height:0}
.m-opt.is-none small{margin-top:1px}
.m-total{margin-top:14px;padding-top:12px;border-top:1px dashed rgba(19,28,46,.22);display:flex;align-items:baseline;gap:8px}
.m-total span{margin-right:auto;font:700 11.5px/1.3 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--text-3)}
.m-total b{font-family:var(--display);font-weight:600;font-size:30px;line-height:1;letter-spacing:-.02em;color:var(--red)}
.m-total small{font:700 11px/1 var(--body);letter-spacing:.18em;text-transform:uppercase;color:var(--text-3)}
@media (max-width:480px){.m-pick{grid-template-columns:1fr}.m-opt{min-height:0}}
.m-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.m-wide{grid-column:1/-1}
.m-f{display:block;min-width:0}
.m-f>span{display:block;font:700 11.5px/1.3 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--text-3)}
.m-f em{font-style:normal;text-transform:none;letter-spacing:0;font-weight:500;color:var(--text-3)}
.m-f input{width:100%;margin-top:6px;padding:13px 14px;border:1px solid rgba(19,28,46,.24);border-radius:10px;background:var(--snow);font:500 16px/1.2 var(--body);color:var(--navy);
  transition:border-color .15s ease,box-shadow .15s ease}
.m-f input:focus{outline:0;border-color:var(--red);box-shadow:0 0 0 3px var(--red-soft)}
.m-f input.is-bad{border-color:var(--red);box-shadow:0 0 0 3px var(--red-soft)}
.m-f input::placeholder{color:rgba(19,28,46,.35)}
.m-err{margin-top:12px;padding:10px 12px;border-radius:8px;background:var(--red-soft);color:var(--red-deep);font-size:14px;font-weight:600;line-height:1.4}
.m-err[hidden]{display:none}
#buySubmit{margin-top:16px}
.m-fine{margin-top:12px;font-size:12.5px;line-height:1.5;color:var(--text-3)}
.m-fine b{color:var(--text-2)}
.m-step2 .modal-title{margin-top:0}
.m-step2 ul{margin-top:16px}
.m-step2 li{position:relative;padding-left:26px;font-size:15px;line-height:1.5;color:var(--text-2)}
.m-step2 li+li{margin-top:8px}
.m-step2 li b{color:var(--navy)}
.m-step2 li::before{content:"";position:absolute;left:3px;top:.5em;width:9px;height:5px;border-left:2px solid var(--red);border-bottom:2px solid var(--red);transform:rotate(-45deg)}
@media (max-width:560px){.m-grid{grid-template-columns:1fr}.modal{padding:10px}.modal-card{border-radius:16px}}

/* ---------- reveals: the initial state only; tor.js (GSAP ScrollTrigger) animates them in and adds .in ---------- */
.reveal{opacity:0;transform:translateY(18px)}
.reveal.in{opacity:1;transform:none}
html.no-motion .reveal{opacity:1;transform:none}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
  .vid-track,.dot,.ticker-in span:last-child{animation:none}
  .ticker-in span:last-child{white-space:normal}
  .btn,.chapters .num,.chapters h3,.vid-thumb img{transition:none}
  .filmbox-scrim,.filmbox-in{animation:none}
  .nav-prog{transition:none}
}
