@font-face{font-family:Erode;src:url(assets/fonts/Erode-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Erode;src:url(assets/fonts/Erode-Italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:Erode;src:url(assets/fonts/Erode-Medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Erode;src:url(assets/fonts/Erode-Semibold.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}
/* Cap Cana Concours d'Élégance · v2 «The invitation opens»
   Identity from B: Erode, putty #dedad3, black, petrol #256f82; the invitation as the object.
   The scale changes: full screen, footage, scroll. */
:root{
  --bg:#dedad3; --surface:#d3cec6; --paper:#e8e6e2; --ink:#0a0a0a; --muted:#57534d;
  --accent:#256f82; --accent-strong:#1d5a6a; --accent-ink:#fff;
  --night:#0f1a22; --night-2:#18262f; --on-night:#dedad3;
  --t-col:#0a0a0a; --t-lad:#7fb3c2; --t-golf:#4f7a3f; --t-sea:#256f82;
  --t1:clamp(.875rem,.84rem + .15vw,.9375rem);
  --t2:clamp(1.0625rem,1rem + .25vw,1.1875rem);
  --t3:clamp(1.3rem,1.12rem + .75vw,1.75rem);
  --t4:clamp(2.1rem,1.3rem + 3.4vw,4.25rem);
  --t5:clamp(2.5rem,1rem + 6.4vw,7.5rem);
  --m:clamp(1rem,2.6vw,2.5rem);
  --g:clamp(.75rem,1.6vw,1.5rem);
  --bar:72px;
  --ease-out:cubic-bezier(.22,1,.36,1);
  --ease-io:cubic-bezier(.76,0,.24,1);
  --ease-soft:cubic-bezier(.33,1,.68,1);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none!important}
html{background:var(--night);-webkit-text-size-adjust:100%}
html:not(.motion){scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{font-family:Erode,Georgia,serif;font-size:var(--t2);line-height:1.5;color:var(--ink);background:var(--bg);font-kerning:normal;overflow-x:clip}
a{color:inherit}
img,video,canvas{display:block;max-width:100%}
img{height:auto}
h1,h2,h3,h4{font-weight:500;letter-spacing:-.025em;line-height:.98;text-wrap:balance}
p{text-wrap:pretty}
ul,ol{list-style:none}
::selection{background:var(--accent);color:#fff}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.tab,time{font-variant-numeric:tabular-nums}
.skip{position:fixed;left:16px;top:-80px;z-index:200;background:var(--ink);color:#fff;padding:14px 20px;text-decoration:none}
.skip:focus{top:16px}
.js:not(.has-js) [data-js-only]{display:none}
html:not(.js) [data-js-only]{display:none!important}

/* buttons: square, one fill */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 28px;background:var(--accent);color:var(--accent-ink);font:600 var(--t2)/1 Erode,Georgia,serif;text-decoration:none;border:0;border-radius:0;cursor:pointer;transition:transform 140ms var(--ease-out),background-color 180ms ease,color 180ms ease;white-space:nowrap}
.btn:active{transform:scale(.97)}
.btn.ghost{background:var(--paper);color:var(--ink)}
@media (hover:hover) and (pointer:fine){.btn:hover{background:var(--accent-strong)}.btn.ghost:hover{background:#fff}}
.btn[disabled]{opacity:.4;cursor:default}
.link{text-decoration:underline;text-decoration-color:transparent;text-underline-offset:.22em;text-decoration-thickness:.07em;transition:text-decoration-color 180ms ease}
@media (hover:hover) and (pointer:fine){.link:hover{text-decoration-color:currentColor}}

/* ---------- 0 · the envelope ---------- */
.envelope{display:none}
.motion.has-js .envelope{display:block;position:relative;height:175vh;background:var(--bg)}
.env-stage{position:sticky;top:0;height:100svh;min-height:560px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:var(--bar) 24px 24px;overflow:hidden}
.env-line{font-size:var(--t4);font-style:italic;line-height:1.05;color:var(--ink);text-align:center}
.env{position:relative;width:min(560px,84vw);aspect-ratio:1.55;perspective:1400px}
.env-back{position:absolute;inset:0;background:var(--surface)}
.env-card{position:absolute;left:6%;right:6%;top:7%;height:88%;background:var(--paper);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:24px;z-index:1}
.ec-1{font-size:var(--t4);font-weight:500;letter-spacing:-.025em;line-height:1}
.ec-2{font-style:italic;font-size:var(--t2);max-width:22ch;line-height:1.25}
.ec-3{font-size:var(--t3);font-weight:500}
.motion.has-js .env-card>span{visibility:hidden}
.motion.has-js .env-card.out>span{visibility:visible}
.env-front{position:absolute;inset:0;background:#e3e0da;clip-path:polygon(0 0,50% 54%,100% 0,100% 100%,0 100%);z-index:2}
.env-flap{position:absolute;left:0;right:0;top:0;height:60%;background:#cfc9c0;clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:50% 0;z-index:3;backface-visibility:visible}
.env-wrap{position:relative}
.seal{position:absolute;left:50%;top:60%;border-radius:50%;width:118px;height:118px;margin:-59px 0 0 -59px;border:0;background:none;cursor:pointer;z-index:4;transition:transform 160ms var(--ease-out)}
.seal:active{transform:scale(.96)}
@media (hover:hover) and (pointer:fine){.seal:hover{transform:scale(1.04) rotate(-3deg)}}
.seal-half{position:absolute;inset:0}
.seal-half svg{width:100%;height:100%;display:block}
.seal-l{clip-path:polygon(0 0,53% 0,47% 22%,56% 41%,46% 60%,54% 79%,48% 100%,0 100%)}
.seal-r{clip-path:polygon(53% 0,100% 0,100% 100%,48% 100%,54% 79%,46% 60%,56% 41%,47% 22%)}
.env-act{display:flex;flex-direction:column;align-items:center;gap:10px;font-size:var(--t2)}
.env-go{font-weight:600}
.env-skip{color:var(--muted)}

/* ---------- the bar ---------- */
.bar{position:fixed;top:0;left:0;right:0;z-index:90;height:var(--bar);display:flex;align-items:center;gap:26px;padding:0 var(--m);color:#fff;font-size:var(--t1);transition:background-color 300ms ease,color 300ms ease,transform 400ms var(--ease-out)}
.bar.solid{background:var(--bg);color:var(--ink)}
.bar.dark{background:var(--night);color:var(--on-night)}
.bar .mark{font-size:var(--t2);font-weight:600;text-decoration:none;margin-right:auto;letter-spacing:-.01em}
.bar .sm{display:none}
.bar .btn{min-height:44px;padding:0 20px;font-size:var(--t1)}
.snd{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 6px;background:none;border:0;color:inherit;font:500 var(--t1)/1 Erode,Georgia,serif;cursor:pointer}
.snd-bars{display:inline-flex;align-items:flex-end;gap:3px;height:14px}
.snd-bars i{display:block;width:3px;height:4px;background:currentColor;transition:height 300ms var(--ease-out)}
.snd[aria-pressed="true"] .snd-bars i:nth-child(1){height:9px}
.snd[aria-pressed="true"] .snd-bars i:nth-child(2){height:14px}
.snd[aria-pressed="true"] .snd-bars i:nth-child(3){height:6px}
.motion .snd[aria-pressed="true"] .snd-bars i{animation:eq 900ms ease-in-out infinite alternate}
.motion .snd[aria-pressed="true"] .snd-bars i:nth-child(2){animation-delay:-300ms}
.motion .snd[aria-pressed="true"] .snd-bars i:nth-child(3){animation-delay:-600ms}
@keyframes eq{from{transform:scaleY(.5)}to{transform:scaleY(1)}}
.snd-bars i{transform-origin:bottom}

/* ---------- 1 · ouverture ---------- */
.hero{position:relative;height:100svh;min-height:620px;background:var(--night);color:#fff;overflow:hidden}
.hero-media{position:absolute;inset:0}
.hero-media video,.hero-media img{width:100%;height:100%;object-fit:cover}
.hero-media::before{content:"";position:absolute;inset:0 0 auto 0;height:42%;z-index:1;background:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,0))} /* taste-skill-ignore: neutral scrim under the nav and title */
.hero-media::after{content:"";position:absolute;inset:auto 0 0 0;height:55%;z-index:1;background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.62))} /* taste-skill-ignore: neutral scrim under text on footage */
.hero-in{position:absolute;inset:0;z-index:2;padding:calc(var(--bar) + 4vh) var(--m) clamp(28px,5vh,56px);display:grid;grid-template-columns:1fr auto;grid-template-rows:1fr auto;column-gap:40px}
.title{grid-column:1/3;align-self:start;color:#fff}
.title .t1{display:block;font-size:clamp(5rem,1rem + 17vw,19rem);line-height:.8;letter-spacing:-.045em;white-space:nowrap}
.title .w{display:inline-block}
.title .t2{display:block;font-size:var(--t4);line-height:1;margin-top:.12em;letter-spacing:-.02em}
.hero-foot{grid-column:1;grid-row:2;align-self:end;max-width:640px}
.claim{font-size:var(--t3);line-height:1.12;letter-spacing:-.015em;font-weight:500}
.claim-sub{font-size:var(--t2);margin-top:12px;max-width:46ch}
.hero-act{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-top:26px}
.factline{font-size:var(--t1)}
.ticket{grid-column:2;grid-row:2;align-self:end;width:250px;aspect-ratio:5/7;background:var(--bg);color:var(--ink);text-align:center;display:flex;flex-direction:column;align-items:center;padding:26px 18px 0;transform:rotate(2.5deg)}
.tk-name{font-size:var(--t3);font-weight:500;letter-spacing:-.03em;line-height:1}
.tk-inv{font-style:italic;font-size:var(--t1);line-height:1.3;margin-top:8px;max-width:20ch}
.tk-when{font-weight:500;line-height:1.2;margin-top:14px;white-space:pre-line;font-size:var(--t2)}
.tk-where{font-size:var(--t1);color:var(--muted);margin-top:6px}
.tk-stub{margin-top:auto;align-self:stretch;margin-inline:-18px;background:var(--surface);border-top:5px dotted var(--bg);padding:12px 14px 14px;font-size:var(--t1);line-height:1.35}

/* ---------- opening statement ---------- */
.statement{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g);padding:clamp(110px,12vw,190px) var(--m);align-items:center;background:var(--bg)}
.st-in{grid-column:1/8}
.st-h{font-size:var(--t5);font-weight:400}
.st-p{font-size:var(--t3);line-height:1.3;margin-top:28px;max-width:38ch}
.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 24px;margin-top:clamp(48px,5vw,72px);max-width:560px}
.facts b{display:block;font-weight:400;font-size:var(--t4);line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.facts span{display:block;font-size:var(--t2);margin-top:8px}
.st-fig{grid-column:9/13;overflow:hidden;aspect-ratio:4/5;background:var(--surface)}
.st-fig video{width:100%;height:100%;object-fit:cover;object-position:42% 50%}

/* ---------- 2 · the flight ---------- */
.flight{position:relative;background:var(--night);color:#fff}
.flight-stage{position:relative;height:100svh;min-height:600px;overflow:hidden}
.map-box{position:absolute;inset:0;background:#0b1620}
.map-box .map-still{width:100%;height:100%;object-fit:cover;object-position:28% 60%}
.map-box.gl .map-still{display:none}
.map-gl,.map-ov{position:absolute;inset:0;width:100%;height:100%}
.flight-stage::after{content:"";position:absolute;inset:0 auto 0 0;width:min(720px,70%);z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(0,0,0,.55),rgba(0,0,0,0))} /* taste-skill-ignore: neutral scrim under text on the map */
.fl-a,.fl-c{position:absolute;z-index:2;left:var(--m);max-width:700px}
.fl-a{top:calc(var(--bar) + 7vh)}
.fl-a h2{font-size:var(--t4);color:#fff;max-width:13ch}
.cities{display:flex;flex-wrap:wrap;gap:6px;margin-top:26px;border:0}
.city{position:relative;display:inline-flex;align-items:center;min-height:44px;padding:0 16px;background:var(--night-2);color:var(--on-night);cursor:pointer;font-size:var(--t2);transition:background-color 180ms ease,color 180ms ease,transform 140ms var(--ease-out)}
.city:active{transform:scale(.97)}
.city input{position:absolute;opacity:0;width:1px;height:1px}
.city:has(input:checked){background:var(--bg);color:var(--ink)}
.city:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:2px}
@media (hover:hover) and (pointer:fine){.city:not(:has(input:checked)):hover{background:#24343f}}
.readout{font-size:var(--t4);line-height:1.05;margin-top:30px;letter-spacing:-.02em}
.readout b{font-weight:500}
.readout .ro{display:block}
.readout-sub{font-size:var(--t3);line-height:1.3;margin-top:12px;max-width:30ch}
.fl-c{bottom:clamp(36px,8vh,80px)}
.fl-c h2{font-size:var(--t5);color:#fff}
.fl-c p{font-size:var(--t3);line-height:1.3;margin-top:16px;max-width:40ch}
.motion .flight.live{height:160vh}
.motion .flight.live .flight-stage{position:sticky;top:0}
.motion .flight.live .fl-c{opacity:0}

/* ---------- the season ---------- */
.season{background:var(--night);color:var(--on-night);padding:clamp(110px,12vw,180px) var(--m)}
.season-in{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g)}
.se-head{grid-column:1/6}
.season h2{font-size:var(--t4);color:#fff}
.season .sub{font-size:var(--t3);line-height:1.3;margin-top:20px;max-width:30ch}
.mini{margin-top:56px;width:min(340px,100%);aspect-ratio:5/7;background:var(--bg);color:var(--ink);text-align:center;padding:36px 28px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;transform:rotate(-2deg)}
.mini .nm{font-size:var(--t3);font-weight:600;letter-spacing:-.02em}
.mini .inv{font-style:italic;line-height:1.25;max-width:20ch}
.mini .when{font-size:var(--t3);font-weight:500;line-height:1.2;margin-top:12px;max-width:20ch;white-space:pre-line}
.mini .gl{font-size:var(--t2);margin-top:6px}
.mini .note{font-size:var(--t1);font-style:italic;color:var(--muted);max-width:28ch}
.reply{grid-column:7/13;background:var(--paper);color:var(--ink);padding:40px clamp(20px,3vw,44px);align-self:start}
.reply h3{font-size:var(--t3);font-weight:600;letter-spacing:-.01em}
.reply .hint{margin-top:6px;font-size:var(--t2)}
.opts{display:grid;gap:6px;margin-top:24px}
.opt{position:relative;display:grid;grid-template-columns:64px 1fr 28px;align-items:center;gap:6px 16px;min-height:88px;padding:14px 18px;background:var(--surface);cursor:pointer;transition:background-color 200ms ease,color 200ms ease,transform 140ms var(--ease-out)}
.opt:active{transform:scale(.99)}
.opt input{position:absolute;opacity:0;width:1px;height:1px}
.opt .rn{font-size:var(--t4);line-height:1;font-weight:500;letter-spacing:-.02em}
.opt .m{font-size:var(--t3);font-weight:600;letter-spacing:-.01em;line-height:1.15;display:block}
.opt .d{font-size:var(--t2);line-height:1.3;display:block}
.opt .n{font-size:var(--t1);line-height:1.4;display:block;margin-top:3px}
.opt .box{width:28px;height:28px;background:var(--bg);position:relative;transition:background-color 200ms ease}
.opt .box::after{content:"";position:absolute;left:9px;top:4px;width:8px;height:15px;border:solid var(--ink);border-width:0 3px 3px 0;opacity:0;transform:rotate(45deg) scale(.6);transition:transform 220ms var(--ease-out),opacity 160ms ease}
.opt:has(input:checked){background:var(--ink);color:var(--on-night)}
.opt:has(input:checked) .box{background:var(--on-night)}
.opt:has(input:checked) .box::after{opacity:1;transform:rotate(45deg) scale(1)}
.opt:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:2px}
.opt.none{min-height:64px}
.opt.none .rn{font-size:var(--t3)}
@media (hover:hover) and (pointer:fine){.opt:not(:has(input:checked)):hover{background:#c9c3ba}}
.reply .go{display:flex;align-items:center;gap:20px;margin-top:28px;flex-wrap:wrap}
.reply .go p{font-size:var(--t1);max-width:30ch}
.reprint{animation:fade 320ms ease both}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes reprint{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.motion .reprint{animation:reprint 520ms var(--ease-out) both}

/* ---------- 3 · the car ---------- */
.car{position:relative;background:var(--night);color:#fff}
.car-stage{position:relative;height:100svh;min-height:600px;overflow:hidden}
.car-view{position:absolute;inset:0}
.car-still,.car-cv{position:absolute;inset:0;width:100%;height:100%}
.car-still{object-fit:cover;object-position:60% 60%}
.car-cv{opacity:0;transition:opacity 500ms ease;touch-action:pan-y;cursor:grab}
.car-cv.drawn{opacity:1}
.car-cv.drag{cursor:grabbing}
.car-view::before{content:"";position:absolute;inset:0 0 auto 0;height:34%;z-index:1;pointer-events:none;background:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,0))} /* taste-skill-ignore: neutral scrim under the heading */
.car-head{position:absolute;z-index:3;left:var(--m);top:calc(var(--bar) + 3vh);max-width:620px}
.car-head h2{font-size:var(--t4);color:#fff}
.car-head p{font-size:var(--t3);margin-top:10px}
.car-dots{position:absolute;inset:0;z-index:2;pointer-events:none}
.dot{position:absolute;left:0;top:0;width:48px;height:48px;margin:-24px 0 0 -24px;border:0;background:none;cursor:pointer;pointer-events:auto;opacity:0;transform:scale(.6);transition:opacity 300ms ease,transform 400ms var(--ease-out)}
.dot::before{content:"";position:absolute;left:17px;top:17px;width:14px;height:14px;border-radius:50%;background:#fff}
.dot::after{content:"";position:absolute;left:6px;top:6px;width:36px;height:36px;border-radius:50%;border:2px solid rgba(255,255,255,.85)}
.dot.on{opacity:1;transform:scale(1)}
.car-card{position:absolute;z-index:3;right:var(--m);top:calc(var(--bar) + 3vh);width:min(430px,calc(100% - 2 * var(--m)));background:var(--bg);color:var(--ink);padding:28px 28px 26px;min-height:200px}
.car-card h3{font-size:var(--t3);font-weight:600;letter-spacing:-.015em;line-height:1.1}
.car-card .where{font-size:var(--t1);margin-bottom:8px}
.car-card p{margin-top:10px;font-size:var(--t2)}
.car-card .num{margin-top:16px;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.car-card .num b{font-size:var(--t4);font-weight:500;line-height:1;letter-spacing:-.02em}
.car-card.swap{animation:reprint 480ms var(--ease-out) both}
.car-hint{position:absolute;z-index:3;left:var(--m);bottom:clamp(28px,6vh,64px);font-size:var(--t1);color:#fff;max-width:20ch}
.car-flat{padding:clamp(56px,7vw,110px) var(--m) 0;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g)}
.car-stills{grid-column:1/7;display:grid;gap:var(--g);align-content:start}
.car-stills img{width:100%;aspect-ratio:16/9;object-fit:cover}
.car-facts{grid-column:7/13;display:grid;gap:30px}
.car-facts h3{font-size:var(--t3);font-weight:600;letter-spacing:-.01em}
.car-facts p{margin-top:8px}
.car-facts .num b{font-size:var(--t3);font-weight:500;margin-right:8px}
.car-end{padding:clamp(56px,6vw,96px) var(--m) clamp(96px,10vw,150px);font-size:var(--t3);line-height:1.3;max-width:40ch}
.car-end a{display:inline-block;margin-top:10px;font-weight:600}
.js .car-card:empty{display:none}
html:not(.motion) .car-card,html:not(.motion) .car-hint,html:not(.motion) .car-dots,html:not(.motion) .car-cv{display:none}
.motion .car.live{height:520vh}
.motion .car.live .car-stage{position:sticky;top:0}
.motion .car.live .car-flat{display:none}
.motion .car.live .car-end{background:var(--night)}

/* ---------- 4 · the concours ---------- */
.concours{background:var(--bg)}
.lawn{position:relative;height:min(125vh,1100px);min-height:680px;overflow:hidden;background:var(--night);color:#fff}
.lawn-bg{position:absolute;inset:-8% 0}
.lawn-bg img{width:100%;height:100%;object-fit:cover;object-position:50% 60%}
.lawn-copy{position:relative;z-index:2;padding:clamp(110px,11vw,170px) var(--m) 0;max-width:820px}
.lawn-copy::before{content:"";position:absolute;inset:0 -20% -80px 0;background:linear-gradient(90deg,rgba(0,0,0,.6),rgba(0,0,0,.25) 70%,rgba(0,0,0,0));z-index:-1} /* taste-skill-ignore: neutral scrim under text on a photo */
.lawn h2{font-size:var(--t5);color:#fff}
.lawn-copy p{font-size:var(--t3);line-height:1.3;margin-top:22px;max-width:40ch}
.print{position:absolute;z-index:1;background:var(--paper);padding:10px 10px 0}
.print img{width:100%;aspect-ratio:4/5;object-fit:cover}
.print::after{content:"";display:block;height:34px}
.print-a{width:min(30vw,420px);right:6vw;bottom:8%;transform:rotate(2deg)}
.print-a img{object-position:62% 50%}
.print-b{width:min(22vw,300px);right:34vw;bottom:-2%;transform:rotate(-3deg)}
.print-b img{aspect-ratio:1;object-position:40% 50%}
.figs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;padding:clamp(80px,8vw,130px) var(--m) 0}
.figs b{display:block;font-size:var(--t5);font-weight:400;line-height:.95;letter-spacing:-.035em;font-variant-numeric:tabular-nums}
.figs p:nth-child(2) b{font-size:var(--t4);line-height:1.15}
.figs span{display:block;margin-top:10px;font-size:var(--t2);max-width:20ch}
.sheet-wrap{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g);padding:clamp(80px,8vw,130px) var(--m)}
.sheet{grid-column:1/9;background:var(--paper);padding:clamp(28px,3.4vw,52px)}
.sheet h3{font-size:var(--t4);font-weight:400}
.sheet .lede{font-size:var(--t2);margin-top:16px;max-width:58ch}
.judging{width:100%;border-collapse:collapse;margin-top:32px;font-size:var(--t2);font-variant-numeric:tabular-nums}
.judging th,.judging td{text-align:left;padding:14px 12px 14px 0;vertical-align:top;border-bottom:1px solid #bdb7ad}
.judging thead th{font-size:var(--t1);font-weight:600;color:var(--muted);border-bottom:2px solid var(--ink);padding-top:0}
.judging td:first-child{width:3ch;font-weight:600}
.judging td.cls{font-weight:600;width:34%}
.judging tr.here td{background:var(--bg)}
.judging tr.here td:first-child{padding-left:10px}
.judging tr.anniv td{background:var(--ink);color:var(--on-night);border-bottom-color:var(--ink)}
.judging tr.anniv td:first-child{padding-left:10px}
.prizes{grid-column:9/13;display:grid;gap:8px;align-content:start;margin-top:48px}
.prizes li{background:var(--surface);padding:18px 20px 20px;font-size:var(--t2);line-height:1.4}
.prizes li:nth-child(odd){transform:rotate(-1deg)}
.prizes li:nth-child(even){transform:rotate(.8deg)}
.prizes li:last-child{background:var(--ink);color:var(--on-night)}
.prizes b{display:block;font-size:var(--t3);font-weight:600;letter-spacing:-.01em;line-height:1.15;margin-bottom:6px}
.jury{background:var(--night);color:var(--on-night);padding:clamp(110px,11vw,170px) var(--m)}
.jury-head{display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.jury h2{font-size:var(--t5);color:#fff}
.stamp{display:inline-block;background:var(--accent);color:#fff;font-weight:600;font-size:var(--t2);padding:10px 16px;transform:rotate(-3deg)}
.jury-sub{font-size:var(--t3);line-height:1.3;margin-top:28px;max-width:44ch}
.judges{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:44px var(--g);margin-top:clamp(56px,6vw,96px)}
.judges dt{font-size:var(--t4);line-height:1;letter-spacing:-.025em;color:#fff}
.judges dt span{display:block;font-size:var(--t2);letter-spacing:0;margin-top:12px;color:var(--t-lad);font-weight:600}
.judges dd{font-size:var(--t2);margin-top:12px;max-width:46ch}
.judges .chief{grid-column:1/-1}
.judges .chief dt{font-size:var(--t5)}
.judges .chief dd{font-size:var(--t3);line-height:1.3;max-width:40ch}
.jury-end{margin-top:56px;font-size:var(--t3);font-style:italic}

/* ---------- 5 · five days ---------- */
.days{background:var(--bg)}
.days-intro{padding:clamp(110px,12vw,180px) var(--m) clamp(40px,4vw,64px);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g);row-gap:24px;align-items:end}
.days-intro h2{grid-column:1/7;font-size:var(--t5)}
.days-intro p{grid-column:8/13;font-size:var(--t3);line-height:1.3;max-width:34ch}
.days-intro .days-how{grid-column:8/13;font-size:var(--t2)}
.tracks{display:flex;gap:6px;flex-wrap:wrap;padding:10px var(--m);background:var(--bg)}
/* with script the filter is fixed under the bar and slides in only while the hour-by-hour days are on screen */
.has-js .prog-nav{position:fixed;left:0;right:0;top:var(--bar);z-index:85;transform:translateY(calc(-100% - var(--bar)));visibility:hidden;transition:transform 420ms var(--ease-out),visibility 0s linear 420ms,top 400ms var(--ease-out)}
.has-js .prog-nav.show{transform:none;visibility:visible;transition:transform 420ms var(--ease-out),visibility 0s,top 400ms var(--ease-out)}
.has-js .prog-nav.barless{top:0}
.trk{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 16px;background:var(--surface);border:0;font:500 var(--t2)/1 Erode,Georgia,serif;color:var(--ink);cursor:pointer;transition:background-color 180ms ease,color 180ms ease,transform 140ms var(--ease-out)}
.trk:active{transform:scale(.97)}
.trk.is-on{background:var(--ink);color:var(--on-night)}
@media (hover:hover) and (pointer:fine){.trk:not(.is-on):hover{background:#c9c3ba}}
.tm{display:inline-block;width:12px;height:12px}
.trk .sm{display:none}
.tm.col{background:var(--t-col)}.tm.lad{background:var(--t-lad)}.tm.golf{background:var(--t-golf)}.tm.sea{background:var(--t-sea)}
.trk.is-on .tm.col{background:var(--on-night)}
.day{position:relative}
.day-cover{position:relative;height:78svh;min-height:520px;overflow:hidden;background:var(--night);color:#fff}
.day-cover video,.day-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.day-cover::after{content:"";position:absolute;inset:auto 0 0 0;height:60%;background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.6))} /* taste-skill-ignore: neutral scrim under text on footage */
.day-title{position:absolute;z-index:1;left:var(--m);right:var(--m);bottom:clamp(36px,7vh,80px)}
.day-title h3{font-weight:500}
.day-title .dn{display:block;font-size:clamp(3.6rem,1rem + 10vw,12rem);line-height:.85;letter-spacing:-.045em}
.day-title .dt{display:block;font-size:var(--t4);line-height:1.05;margin-top:.15em}
.day-title .dd{font-size:var(--t3);margin-top:16px}
.day-body{--sky:#e4e1d9;--sky-ink:var(--ink);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g);padding:0 var(--m) clamp(80px,8vw,120px);background:var(--sky);color:var(--sky-ink);transition:background-color 900ms ease,color 600ms ease}
.day-frame{display:none}
.rows{grid-column:1/13;display:grid;padding-top:32px}
.row{position:relative;display:grid;grid-template-columns:minmax(110px,150px) 1fr;gap:4px 24px;padding:18px 0}
.row time{font-size:var(--t3);font-weight:500;line-height:1.1;padding-top:4px}
.row h4{font-size:var(--t3);font-weight:600;letter-spacing:-.015em;line-height:1.15}
.row .rw p{margin-top:8px;max-width:52ch}
.row .rw .tt{margin:0 0 8px;display:flex;gap:14px;flex-wrap:wrap;font-size:var(--t1)}
.tr{display:inline-flex;align-items:center;gap:8px}
.tr::before{content:"";width:10px;height:10px;background:currentColor}
.tr.col::before{background:var(--t-col)}.tr.lad::before{background:var(--t-lad)}.tr.golf::before{background:var(--t-golf)}.tr.sea::before{background:var(--t-sea)}.tr.all::before{background:var(--accent);width:22px}
.dark .tr.col::before{background:var(--on-night)}
.var{font-style:italic}
.row.sun h4{font-style:italic;font-weight:500}
.row .rp{grid-column:2;width:100%;max-width:560px;aspect-ratio:16/9;object-fit:cover;margin-top:16px}
.row.off,.row.novar{display:none}
.row.sig{box-shadow:none}
.row.sig::before{content:"";position:absolute;left:calc(-1 * var(--g));top:26px;bottom:26px;width:5px;background:var(--accent)}
.sigm{color:var(--accent);font-weight:600}
.dark .sigm{color:#7fc3d3}
.md{display:inline-block;margin:0 .12em}
.tbc{font-style:italic}
.row.sig h4{font-size:var(--t3)}
.day-foot{grid-column:1/-1;margin-top:20px}
.dress{font-size:var(--t2)}
.dress b{font-weight:600;margin-right:8px}
.day-foot .fine{margin-top:8px}
.tick{position:absolute;right:0;top:24px;display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 14px 0 10px;background:var(--surface);border:0;font:600 var(--t1)/1 Erode,Georgia,serif;color:var(--ink);cursor:pointer;transition:background-color 180ms ease,color 180ms ease,transform 140ms var(--ease-out)}
.tick:active{transform:scale(.95)}
.tick i{position:relative;display:block;width:22px;height:22px;background:var(--bg)}
.tick i::after{content:"";position:absolute;left:7px;top:2px;width:7px;height:13px;border:solid var(--ink);border-width:0 3px 3px 0;transform:rotate(45deg) scale(.6);opacity:0;transition:transform 200ms var(--ease-out),opacity 150ms ease}
.tick[aria-pressed="true"]{background:var(--ink);color:var(--on-night)}
.tick[aria-pressed="true"] i{background:var(--on-night)}
.tick[aria-pressed="true"] i::after{opacity:1;transform:rotate(45deg) scale(1)}
@media (hover:hover) and (pointer:fine){.tick[aria-pressed="false"]:hover{background:#c9c3ba}}
.dark .tick[aria-pressed="false"]{background:var(--night-2);color:var(--on-night)}
.dark .tick[aria-pressed="false"] i{background:#33444f}
.row .rw{padding-right:120px}
.fine{grid-column:1/-1;margin-top:28px;font-style:italic;font-size:var(--t2)}
@media (min-width:900px){
  .js .day-frame{display:block;grid-column:1/7;position:sticky;top:calc(var(--bar) + 64px + 16px);height:calc(100svh - var(--bar) - 64px - 48px);margin-top:32px;overflow:hidden;background:var(--night)}
  .js .day-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 500ms ease}
  .js .day-frame img.on{opacity:1}
  .motion .day-frame img.on{animation:kb 9s var(--ease-soft) both}
  .js .day-frame .df-cap{position:absolute;left:20px;bottom:16px;right:20px;color:#fff;font-size:var(--t1);z-index:1}
  .js .day-frame .df-cap.big{font-size:var(--t4);line-height:1;letter-spacing:-.025em;font-weight:500;bottom:24px}
  .js .day-foot{grid-column:8/13}
  .js .day-frame::after{content:"";position:absolute;inset:auto 0 0 0;height:45%;background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.5))} /* taste-skill-ignore: neutral scrim under the caption */
  .js .rows{grid-column:8/13}
  .js .row{grid-template-columns:96px 1fr;opacity:.5;transition:opacity 300ms ease}
  .js .row.cur{opacity:1}
  .js .row .rp{display:none}
  .js .tick{position:absolute;right:0;top:16px;min-height:40px}
  .js .row .rw{padding-right:120px}
  .js .rows{padding-top:40px}
  .js .row time{font-size:var(--t2);padding-top:6px}
}
@keyframes kb{from{transform:scale(1.08)}to{transform:scale(1)}}
.longer{background:var(--night);color:var(--on-night);padding:clamp(100px,10vw,160px) var(--m)}
.longer h3{font-size:var(--t5);color:#fff}
.ext{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:44px var(--g);margin-top:56px}
.ext h4{font-size:var(--t3);font-weight:600;color:#fff;letter-spacing:-.015em}
.ext p{margin-top:10px}

/* ---------- 5 · seven moments ---------- */
.moments{background:var(--night);color:#fff}
.mo-head{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g);align-items:end;padding:clamp(110px,12vw,180px) var(--m) clamp(64px,7vw,110px)}
.mo-head h2{grid-column:1/8;font-size:var(--t5);color:#fff}
.mo-head p{grid-column:8/13;font-size:var(--t3);line-height:1.3;max-width:30ch}
.mo{position:relative;height:100svh;min-height:560px;overflow:hidden;background:#05090c}
.mo-media{position:absolute;inset:0}
.mo-media img,.mo-media video{width:100%;height:100%;object-fit:cover}
.mo-media::after{content:"";position:absolute;inset:auto 0 0 0;height:60%;background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.62));z-index:1} /* taste-skill-ignore: neutral scrim under text on footage */
.mo-night .mo-media img{filter:brightness(.42) saturate(.8)}
.mo[data-fx="drones"] .mo-media img{filter:brightness(.3) saturate(.7)}
.mo[data-fx="lanterns"] .mo-media img{filter:brightness(.22) saturate(.5) hue-rotate(-10deg)}
.fx{position:absolute;inset:0;width:100%;height:100%;z-index:1}
.mo-text{position:absolute;z-index:2;left:var(--m);right:var(--m);bottom:clamp(40px,8vh,96px);max-width:900px}
.mo:nth-of-type(even) .mo-text{left:auto;text-align:right;margin-left:auto}
.mo:nth-of-type(even) .mo-text p:last-child{margin-left:auto}
.mo h3{font-size:var(--t4);font-weight:500;color:#fff}
.mo-when{font-size:var(--t2);font-style:italic;margin-top:12px}
.mo-text p:last-child{font-size:var(--t3);line-height:1.3;margin-top:10px;max-width:34ch}
.motion .days-intro{background:var(--bg)}

/* ---------- safety · behind one gate ---------- */
.gate{position:relative;background:var(--night);color:#fff}
.gate-stage{position:relative;min-height:100svh;overflow:hidden;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g);padding:calc(var(--bar) + 7vh) var(--m) 8vh;align-content:start}
.gate-bg{position:absolute;inset:0}
.gate-bg img,.gate-bg svg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.gate-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.58),rgba(0,0,0,.15) 45%,rgba(0,0,0,.6))} /* taste-skill-ignore: neutral scrim under text on a photo */
.gate-bg svg{z-index:1}
.perim{fill:none;stroke:#fff;stroke-width:3;stroke-linejoin:round;vector-effect:non-scaling-stroke;stroke-dasharray:1 1;stroke-dashoffset:0}
.gate-head{grid-column:1/6;position:relative;z-index:2;background:rgba(15,26,34,.86);padding:26px 28px 30px;margin-left:-28px;align-self:start}
.gate h2{font-size:var(--t5);color:#fff}
.gate-head p{font-size:var(--t3);line-height:1.3;margin-top:20px;max-width:30ch}
.gate-facts{grid-column:8/13;position:relative;z-index:2;display:grid;gap:22px;align-self:start;background:rgba(15,26,34,.86);padding:26px 28px 30px}
.gate-facts h3{font-size:var(--t3);font-weight:600;letter-spacing:-.015em;color:#fff;line-height:1.15}
.gate-facts p{margin-top:8px;max-width:44ch}
.gate-print{position:absolute;z-index:2;left:var(--m);bottom:7vh;width:min(22vw,280px);background:var(--paper);padding:8px 8px 26px;transform:rotate(-2.5deg)}
.gate-print img{width:100%;aspect-ratio:4/3;object-fit:cover}
.motion .gate.live{height:210vh}
.motion .gate.live .gate-stage{position:sticky;top:0;height:100svh}
.motion .gate.live .gate-facts li{transition:opacity 500ms ease,transform 600ms var(--ease-out)}
.motion .gate.live .gate-facts li:not(.seen){opacity:0;transform:translateY(16px)}
.motion .gate.live .gate-facts li.seen:not(.on) h3{opacity:.55}
.motion .gate.live .gate-facts li:not(.on) p{display:none}
.motion .gate.live .gate-facts li.on p{animation:rise 600ms var(--ease-out) both}

/* ---------- 6 · ladies: the thread from Wednesday to Saturday night ---------- */
.ladies{background:var(--paper);padding:clamp(110px,11vw,170px) var(--m)}
.la-head{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g);align-items:end}
.ladies h2{grid-column:1/8;font-size:var(--t5)}
.la-lede{grid-column:8/13;font-size:var(--t3);line-height:1.3;max-width:32ch}
.ph{overflow:hidden}
.ph img,.la-night img{width:100%;height:100%;object-fit:cover;filter:sepia(calc(.85 * (1 - var(--dev,1)))) saturate(calc(.4 + .6 * var(--dev,1))) brightness(calc(1.55 - .55 * var(--dev,1))) contrast(calc(.6 + .4 * var(--dev,1)))}
.thread{display:grid;gap:clamp(56px,6vw,96px);margin-top:clamp(56px,6vw,96px)}
.th{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g);align-items:end;position:relative}
.th .ph{grid-column:1/8;aspect-ratio:16/10}
.th-text{grid-column:9/13;padding-bottom:8px}
.th h3{font-size:var(--t4);font-weight:500}
.th-when{font-size:var(--t2);font-style:italic;margin-top:14px}
.th-text p:last-child{font-size:var(--t3);line-height:1.3;margin-top:14px;max-width:30ch}
.th:nth-child(even) .ph{grid-column:6/13;grid-row:1}
.th:nth-child(even) .th-text{grid-column:1/5;grid-row:1}
.th-1 .ph{aspect-ratio:16/10}
.th-2 .ph{grid-column:7/12!important;aspect-ratio:1}
.th-2 .ph-inset{grid-column:4/7!important;aspect-ratio:2/3;align-self:start;margin-top:12%;grid-row:1}
.th-2 .th-text{grid-column:1/4!important}
.th-3 .ph{grid-column:2/9;aspect-ratio:16/9}
.th-3 .th-text{grid-column:9/13}
.th-5 .ph{aspect-ratio:16/9}
.th-6 .ph{aspect-ratio:16/9}
.la-night{margin:clamp(80px,9vw,140px) calc(-1 * var(--m)) 0;position:relative;height:min(90vh,820px);overflow:hidden;background:var(--night)}
.la-night figcaption{position:absolute;left:var(--m);right:var(--m);bottom:clamp(28px,5vh,56px);color:#fff;font-size:var(--t3);line-height:1.3;max-width:36ch;z-index:1}
.la-night::after{content:"";position:absolute;inset:auto 0 0 0;height:50%;background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.6))} /* taste-skill-ignore: neutral scrim under the caption */
.la-well{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g);row-gap:20px;margin-top:clamp(80px,9vw,140px);align-items:start}
.lw-head{grid-column:1/6;display:flex;flex-direction:column;align-items:flex-start;gap:18px}
.lw-head h3{font-size:var(--t4);font-weight:500}
.lw-cred{grid-column:1/6;font-size:var(--t3);line-height:1.3;max-width:30ch}
.lw-pic{grid-column:7/13;grid-row:1/3;aspect-ratio:16/10}
.la-index{margin-top:clamp(80px,9vw,140px)}
.la-index h3{font-size:var(--t4);font-weight:500}
.glance{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(24px,4vw,64px);margin-top:36px}
.glance li{display:grid;grid-template-columns:1fr auto;gap:2px 20px;padding:16px 0;align-items:baseline}
.glance li:nth-child(4n+1),.glance li:nth-child(4n+2){background:#dfdbd4;margin-inline:-14px;padding-inline:14px}
.glance b{font-weight:600;font-size:var(--t2)}
.glance span{grid-column:1;font-size:var(--t1)}
.glance .gd{grid-column:2;grid-row:1;font-style:normal;font-size:var(--t1);font-variant-numeric:tabular-nums;white-space:nowrap}
.week-notes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(32px,4vw,64px);padding:clamp(90px,9vw,140px) var(--m);background:var(--surface)}
.wn h3{font-size:var(--t3);font-weight:600;letter-spacing:-.015em}
.wn p{margin-top:12px}
.wn-auction p:first-of-type{font-size:var(--t2)}
.nights{margin-top:14px;display:grid;gap:12px}
.nights dt{font-weight:600}
.nights dd{margin-top:2px}

/* ---------- 7 · the tour ---------- */
.tour{position:relative;background:var(--night);color:#fff}
.tour-stage{position:relative}
.tour .map-box{display:none}
.tour-open{padding:clamp(110px,11vw,170px) var(--m) 48px}
.tour-open h2{font-size:var(--t5);color:#fff}
.tour-open p{font-size:var(--t3);margin-top:16px}
.stops{display:grid;gap:clamp(64px,7vw,110px);padding:0 var(--m) clamp(80px,8vw,120px)}
.stop{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g);align-items:end}
.stop-media{grid-column:1/8;overflow:hidden;aspect-ratio:16/10;background:var(--night-2)}
.stop-media img,.stop-media video{width:100%;height:100%;object-fit:cover}
.stop-text{grid-column:8/13;background:var(--bg);color:var(--ink);padding:28px clamp(20px,2.4vw,34px)}
.stop-text h3{font-size:var(--t4)}
.stop-text .hook{font-style:italic;font-size:var(--t3);line-height:1.25;margin-top:10px}
.stop-text p{margin-top:12px}
.stop-text .big{display:flex;flex-direction:column;margin-top:20px}
.stop-text .big b{font-size:var(--t4);font-weight:500;line-height:1;letter-spacing:-.025em}
.stop-text .big span{font-size:var(--t1);margin-top:6px;max-width:34ch}
.tour-nav{display:flex;align-items:center;gap:8px}
.tour-count{font-size:var(--t2);margin-right:6px;font-variant-numeric:tabular-nums;background:var(--night);color:#fff;line-height:52px;display:inline-block;padding:0 16px;white-space:nowrap}
.tour-end{display:flex;gap:10px;flex-wrap:wrap;padding:0 var(--m) clamp(100px,10vw,150px)}
.motion .tour.live{height:calc(100svh + 10 * 32vh)}
.motion .tour.live .tour-stage{position:sticky;top:0;height:100svh;min-height:600px;overflow:hidden}
.motion .tour.live .map-box{display:block}
.motion .tour.live .tour-open{position:absolute;z-index:3;left:0;top:calc(var(--bar) + 2vh);transition:opacity 600ms ease,transform 800ms var(--ease-out)}
.motion .tour.live.started .tour-open{opacity:0;transform:translateY(-20px);pointer-events:none}
.motion .tour.live .stops{position:absolute;inset:0;padding:0;display:block}
.motion .tour.live .stop{position:absolute;inset:0;display:block;pointer-events:none}
.motion .tour.live .stop-media{position:absolute;inset:0;aspect-ratio:auto;opacity:0;transition:opacity 900ms ease}
.motion .tour.live .stop.shown .stop-media{opacity:1}
.motion .tour.live .stop.shown .stop-media>*{animation:kb 12s var(--ease-soft) both}
.motion .tour.live .stop-text{position:absolute;left:var(--m);bottom:clamp(96px,13vh,130px);width:min(470px,calc(100% - 2 * var(--m)));opacity:0;transform:translateY(24px);transition:opacity 500ms ease,transform 700ms var(--ease-out);pointer-events:auto}
.motion .tour.live .stop.on .stop-text{opacity:1;transform:none;transition-delay:250ms}
.motion .tour.live .tour-nav{position:absolute;z-index:4;right:var(--m);bottom:clamp(28px,5vh,48px)}
.motion .tour.live .tour-end{display:none}

/* ---------- 8 · who winters here ---------- */
.winters{background:var(--night);color:var(--on-night);padding:clamp(110px,11vw,170px) var(--m)}
.winters h2{font-size:var(--t5);color:#fff}
.names{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g);row-gap:52px;margin-top:clamp(56px,6vw,96px)}
.names li{grid-column:span 6;max-width:600px}
.names li:nth-child(even){margin-top:64px}
.names b{display:block;font-size:var(--t4);font-weight:500;line-height:1;letter-spacing:-.03em;color:#fff}
.names span{display:block;font-size:var(--t3);line-height:1.3;margin-top:14px;max-width:34ch}
.wi-end{font-size:var(--t4);line-height:1.08;color:#fff;margin-top:clamp(80px,8vw,130px);max-width:20ch;letter-spacing:-.02em}
/* ---------- 9 · the gala ---------- */
.gala{position:relative;background:#000;color:#fff}
.gala-stage{position:relative;height:100svh;min-height:620px;overflow:hidden}
.gala-media{position:absolute;inset:0}
.gala-media video{width:100%;height:100%;object-fit:cover}
.gala-media::after{content:"";position:absolute;inset:auto 0 0 0;height:60%;background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.66))} /* taste-skill-ignore: neutral scrim under text on footage */
.gala-dark{position:absolute;inset:0;background:#000;opacity:0;z-index:1}
.gala-in{position:absolute;z-index:2;left:var(--m);right:var(--m);bottom:clamp(40px,8vh,90px);display:flex;justify-content:space-between;align-items:flex-end;gap:40px}
.gala h2{font-size:var(--t5);color:#fff}
.gala-p{font-size:var(--t3);line-height:1.35;margin-top:22px;max-width:40ch}
.place{flex:0 0 auto;width:min(300px,100%);background:var(--bg);color:var(--ink);text-align:center;padding:26px 22px 24px;transform:rotate(2deg)}
.place .g{font-size:var(--t3);font-weight:600;letter-spacing:-.01em}
.place .dt{font-size:var(--t2);font-weight:500;margin-top:4px}
.hold{position:absolute;z-index:3;right:var(--m);top:calc(var(--bar) + 20px);display:flex;flex-direction:column;align-items:stretch;gap:10px;min-height:52px;padding:14px 20px;background:var(--bg);color:var(--ink);border:0;font:600 var(--t2)/1 Erode,Georgia,serif;cursor:pointer;user-select:none;-webkit-user-select:none;touch-action:none;transition:transform 140ms var(--ease-out)}
.hold:active{transform:scale(.97)}
.hold-bar{display:block;height:4px;background:var(--surface)}
.hold-bar i{display:block;height:100%;width:100%;background:var(--accent);transform:scaleX(var(--lit,0));transform-origin:left}
.motion .gala.live{height:175vh}
.motion .gala.live .gala-stage{position:sticky;top:0}
.motion .gala.live .gala-dark{opacity:calc(.9 - .9 * var(--lit,0))}
.motion .gala.live .gala-in{opacity:calc((var(--lit,0) - .35) * 2.2);transform:translateY(calc((1 - var(--lit,0)) * 40px))}
.motion .gala.live .gala-media video{transform:scale(calc(1.08 - .08 * var(--lit,0)))}

/* ---------- getting there ---------- */
.there{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g);padding:clamp(110px,11vw,170px) var(--m);background:var(--bg);align-items:center}
.th-fig{grid-column:1/7;overflow:hidden}
.th-fig img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:62% 50%;filter:sepia(calc(.85 * (1 - var(--dev,1)))) saturate(calc(.4 + .6 * var(--dev,1))) brightness(calc(1.55 - .55 * var(--dev,1))) contrast(calc(.6 + .4 * var(--dev,1)))}
.insert{grid-column:8/13}
.insert h2{font-size:var(--t4)}
.bars{display:grid;gap:6px;margin-top:32px}
.bars>div{display:grid;grid-template-columns:minmax(140px,30%) 1fr;gap:6px 24px;padding:18px 0}
.bars>div:nth-child(odd){background:var(--paper);margin-inline:-20px;padding-inline:20px}
.bars dt{font-weight:600;font-size:var(--t3);letter-spacing:-.01em}
.bars dd{max-width:56ch;padding-top:4px}

/* ---------- 10 · the answer ---------- */
.answer{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g);background:var(--night);color:var(--on-night);padding:clamp(110px,11vw,170px) var(--m)}
.an-head{grid-column:1/5;align-self:start;position:sticky;top:calc(var(--bar) + 40px)}
.answer h2{font-size:var(--t4);color:#fff}
.an-head p{font-size:var(--t3);line-height:1.3;margin-top:20px;max-width:22ch}
.rsvp-wrap{grid-column:5/13;position:relative}
.rsvp{background:var(--bg);color:var(--ink);border-top:8px dotted var(--night);padding:clamp(28px,3.6vw,56px)}
.rsvp fieldset{border:0;padding:0;min-width:0}
.rsvp fieldset+fieldset{margin-top:44px}
.rsvp legend{font-size:var(--t3);font-weight:600;letter-spacing:-.01em;line-height:1.2;padding:0;margin-bottom:6px}
.rsvp .q-note{margin-bottom:14px}
.rsvp .opts{margin-top:14px}
.rsvp .opt{min-height:68px;padding:12px 16px}
.rsvp .opt .rn{font-size:var(--t3)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.chip{position:relative;display:inline-flex;align-items:center;min-height:48px;padding:0 18px;background:var(--surface);cursor:pointer;transition:background-color 180ms ease,color 180ms ease,transform 140ms var(--ease-out)}
.chip:active{transform:scale(.97)}
.chip input{position:absolute;opacity:0;width:1px;height:1px}
.chip:has(input:checked){background:var(--ink);color:var(--on-night)}
.chip:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:2px}
@media (hover:hover) and (pointer:fine){.chip:not(:has(input:checked)):hover{background:#c9c3ba}}
.fields{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:22px 20px;margin-top:14px}
.f{display:flex;flex-direction:column;gap:4px;grid-column:span 3}
.f.s2{grid-column:span 2}
.f.s6{grid-column:span 6}
.f label{font-size:var(--t1)}
.f input,.f select{font:inherit;font-size:var(--t2);color:var(--ink);background:transparent;border:0;border-bottom:2px solid var(--ink);border-radius:0;padding:8px 0 6px;min-height:46px;width:100%;appearance:none;-webkit-appearance:none}
.f input:focus,.f select:focus{outline:none;border-bottom-color:var(--accent)}
.f input:focus-visible,.f select:focus-visible{outline:none;border-bottom:3px solid var(--accent)}
.other{margin-top:14px}
.yd-list{display:grid;gap:6px}
.yd-list li{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;background:var(--paper);padding:10px 10px 10px 16px}
.yd-list .yd-d{font-size:var(--t1);font-weight:600;min-width:9ch}
.yd-list button{min-height:40px;padding:0 12px;background:var(--surface);border:0;font:500 var(--t1)/1 Erode,Georgia,serif;cursor:pointer}
.consent{display:flex;gap:14px;align-items:flex-start;margin-top:40px;cursor:pointer}
.consent input{appearance:none;-webkit-appearance:none;flex:0 0 28px;width:28px;height:28px;background:var(--surface);position:relative;cursor:pointer;margin-top:2px}
.consent input:checked{background:var(--ink)}
.consent input:checked::after{content:"";position:absolute;left:9px;top:4px;width:8px;height:15px;border:solid var(--on-night);border-width:0 3px 3px 0;transform:rotate(45deg)}
.consent span{font-size:var(--t2);max-width:60ch}
.send{width:100%;min-height:58px;margin-top:32px}
.req{font-size:var(--t1);margin-top:12px}
.sealing{position:relative;height:80vh;min-height:520px;display:grid;place-items:center;pointer-events:none}
.sl-env{position:relative;width:min(520px,86%);aspect-ratio:1.55;perspective:1400px}
.sl-back{position:absolute;inset:0;background:var(--surface)}
.sl-card{position:absolute;left:7%;right:7%;top:6%;height:86%;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;font-size:var(--t2);z-index:1}
.sl-card span:first-child{font-size:var(--t4);line-height:1;letter-spacing:-.03em;font-weight:500}
.sl-front{position:absolute;inset:0;background:#e3e0da;clip-path:polygon(0 0,50% 54%,100% 0,100% 100%,0 100%);z-index:2}
.sl-flap{position:absolute;left:0;right:0;top:0;height:60%;background:#cfc9c0;clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:50% 0;transform:rotateX(180deg);z-index:0}
.sl-seal{position:absolute;left:50%;top:60%;width:96px;height:96px;margin:-48px 0 0 -48px;z-index:4;opacity:0}
.sl-seal svg{width:100%;height:100%}
.thanks{background:var(--bg);color:var(--ink);text-align:center;padding:72px 24px}
.thanks h3{font-size:var(--t4)}
.thanks p{font-size:var(--t3);line-height:1.3;margin:20px auto 0;max-width:28ch}
.thanks .chosen{font-size:var(--t2);margin-top:16px;max-width:44ch}

/* ---------- FAQ ---------- */
.faq{background:var(--bg);padding:clamp(110px,11vw,170px) var(--m)}
.faq h2{font-size:var(--t4);margin-bottom:40px}
.cards{display:grid;gap:6px;max-width:980px}
.fc{background:var(--paper);transition:background-color 180ms ease}
.fc:nth-child(even){background:var(--surface)}
.fc summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;align-items:center;min-height:64px;padding:16px 24px;font-size:var(--t3);font-weight:500;line-height:1.25;letter-spacing:-.01em}
.fc summary::-webkit-details-marker{display:none}
.fc summary::after{content:"+";font-size:var(--t3);transition:transform 240ms var(--ease-out)}
.fc[open] summary::after{transform:rotate(45deg)}
.fc .ans{padding:0 24px 24px;font-size:var(--t2);max-width:60ch}

/* ---------- footer: the back of the envelope ---------- */
.foot{background:var(--night);color:var(--on-night);padding:clamp(80px,9vw,140px) var(--m) 32px}
.env-back-card{position:relative;max-width:1100px;margin:0 auto;background:var(--bg);color:var(--ink);min-height:420px;padding:clamp(150px,15vw,210px) clamp(24px,4vw,56px) 36px;display:grid;grid-template-columns:1fr 1fr;gap:32px 48px;overflow:hidden}
.env-back-card .flap{position:absolute;inset:0 0 auto 0;height:clamp(120px,13vw,180px);background:var(--surface);clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top}
.env-back-card>*:not(.flap){position:relative;z-index:1}
.sign{font-size:var(--t4);font-weight:400;line-height:1}
.msg{margin-top:18px;max-width:34ch}
.msg+.msg{margin-top:8px}
.addr{display:flex;flex-direction:column;gap:12px;font-size:var(--t3);line-height:1.2;align-self:end}
.foot-name{font-size:var(--t5);color:#fff;text-align:center;margin-top:72px;letter-spacing:-.035em;line-height:1;font-weight:500}
.credits{text-align:center;font-size:var(--t1);margin-top:28px}

/* ---------- your days ---------- */
.mydays{position:fixed;right:var(--m);bottom:18px;z-index:95}
.md-btn{display:inline-flex;align-items:center;gap:14px;min-height:52px;padding:0 18px;background:var(--ink);color:var(--on-night);border:0;font:600 var(--t2)/1 Erode,Georgia,serif;cursor:pointer;transition:transform 140ms var(--ease-out),background-color 180ms ease}
.md-btn:active{transform:scale(.97)}
.md-btn b{display:inline-grid;place-items:center;min-width:28px;height:28px;background:var(--accent);color:#fff;font-variant-numeric:tabular-nums}
.md-btn.bump b{animation:bump 420ms var(--ease-out)}
@keyframes bump{from{transform:scale(1.5)}to{transform:none}}
.md-panel{position:absolute;right:0;bottom:62px;width:min(400px,calc(100vw - 2 * var(--m)));max-height:min(70vh,560px);overflow:auto;background:var(--paper);color:var(--ink);padding:22px;box-shadow:0 18px 50px rgba(0,0,0,.28);transform-origin:bottom right;animation:pop 240ms var(--ease-out)} /* taste-skill-ignore: a floating panel, a real overlay */
@keyframes pop{from{opacity:0;transform:scale(.97) translateY(6px)}to{opacity:1;transform:none}}
.md-h{font-size:var(--t3);font-weight:600;letter-spacing:-.01em}
.md-list{margin:12px 0 18px;display:grid;gap:14px}
.md-list .md-day{font-weight:600}
.md-list ul{display:grid;gap:4px;margin-top:4px}
.md-list li li{display:grid;grid-template-columns:72px 1fr;gap:8px;font-size:var(--t1)}
.md-panel .btn{width:100%}

/* ---------- tablet ---------- */
@media (max-width:1100px){
  .bar .lk{display:none}
  .th .ph,.th:nth-child(even) .ph,.th-2 .ph{grid-column:1/13!important;grid-row:auto}
  .th-text,.th:nth-child(even) .th-text,.th-2 .th-text{grid-column:1/13!important;grid-row:auto;margin-top:18px}
  .th-2 .ph-inset{display:none}
  .th:nth-child(even) .ph{width:86%;justify-self:end}
  .th-text p:last-child{max-width:44ch}

  .car-card{top:auto;bottom:clamp(16px,4vh,40px);right:var(--m)}
  .st-in{grid-column:1/8}.st-fig{grid-column:8/13}
  .se-head{grid-column:1/6}.reply{grid-column:6/13}
  .sheet{grid-column:1/13}.prizes{grid-column:1/13;grid-template-columns:repeat(3,1fr);margin-top:24px}
  .ext{grid-template-columns:repeat(2,minmax(0,1fr))}
  .an-head{grid-column:1/13;position:static;margin-bottom:40px}.rsvp-wrap{grid-column:1/13}
}
@media (max-width:860px){
  .statement{row-gap:56px}
  .st-in,.st-fig{grid-column:1/13}
  .st-fig{aspect-ratio:16/10}
  .se-head,.reply{grid-column:1/13}
  .se-head{display:grid;grid-template-columns:1fr auto;gap:0 32px;align-items:start}
  .se-head .mini{grid-row:1/3;grid-column:2;margin-top:0;width:240px}
  .reply{margin-top:56px}
  .car-flat{grid-template-columns:1fr}
  .car-stills,.car-facts{grid-column:1/-1}
  .car-facts{margin-top:40px}
  .figs{grid-template-columns:1fr 1fr;row-gap:40px}
  .judges{grid-template-columns:1fr}
  .days-intro h2,.days-intro p,.days-intro .days-how{grid-column:1/13}
  .ladies h2,.la-lede{grid-column:1/13}
  .mo-head h2,.mo-head p{grid-column:1/13}
  .mo-head p{margin-top:16px}
  .gate-head,.gate-facts{grid-column:1/13}
  .gate-facts{margin-top:20px}
  .gate-head{margin-left:0}
  .gate-print{display:none}
  .lw-head,.lw-cred,.lw-pic{grid-column:1/13;grid-row:auto}
  .la-lede{margin-top:18px}
  .week-notes{grid-template-columns:1fr}
  .stop-media,.stop-text{grid-column:1/13}
  .names li{grid-column:1/13}
  .names li:nth-child(even){margin-top:0}
  .th-fig,.insert{grid-column:1/13}
  .insert{margin-top:48px}
  .th-fig img{aspect-ratio:16/10}
  .gala-in{flex-direction:column;align-items:flex-start}
  .place{align-self:flex-end}
}

/* ---------- phone ---------- */
@media (max-width:640px){
  :root{--bar:60px}
  .bar{gap:14px}
  .bar .lg{display:none}.bar .sm{display:inline}
  .bar .mark{font-size:var(--t1)}
  .snd-t{display:none}
  .snd{padding:0 10px}
  .hero{min-height:560px}
  .hero-in{grid-template-columns:1fr;padding-top:calc(var(--bar) + 6vh)}
  .title .t1{font-size:25vw;line-height:.82}
  .title .t2{font-size:8.6vw}
  .ticket{display:none}
  .claim{font-size:var(--t3)}
  .hero-act{gap:14px}
  .hero-act .btn{width:100%}
  .facts{gap:28px 16px}
  .facts b{font-size:var(--t4)}
  .st-fig{aspect-ratio:4/5;margin-inline:calc(-1 * var(--m))}
  .flight-stage::after{width:100%;background:linear-gradient(rgba(0,0,0,.6),rgba(0,0,0,.1) 70%)} /* taste-skill-ignore: neutral scrim under text on the map */
  .fl-a{top:calc(var(--bar) + 3vh);right:var(--m)}
  .fl-a h2{font-size:var(--t4)}
  .cities{gap:5px;margin-top:18px}
  .city{min-height:44px;padding:0 12px;font-size:var(--t1)}
  .readout{font-size:var(--t4);margin-top:20px}
  .readout-sub{font-size:var(--t2)}
  .fl-c{right:var(--m)}
  .fl-c h2{font-size:var(--t5)}
  .fl-c p{font-size:var(--t2)}
  .se-head{display:block}
  .se-head .mini{width:min(300px,86%);margin:40px auto 0;transform:rotate(-1.5deg)}
  .reply{padding:28px 16px;margin-inline:-4px}
  .opt{grid-template-columns:40px 1fr 28px;gap:4px 12px;padding:12px 14px}
  .car-head h2{font-size:var(--t4)}
  .car-head p{font-size:var(--t2)}
  .car-card{left:0;right:0;width:auto;top:auto;bottom:0;padding:18px 18px 22px;min-height:0;max-height:44svh;overflow:auto}
  .car-card.swap{animation:sheet 420ms var(--ease-out) both}
  .car-card p{font-size:var(--t1)}
  .car-card .num b{font-size:var(--t4)}
  .car-hint{display:none}
  .lawn{height:auto;min-height:0;padding-bottom:0}
  .lawn-bg{position:relative;inset:auto;height:62svh}
  .lawn-copy{position:absolute;top:0;left:0;right:0;padding:84px 16px 0}
  .lawn-copy p{font-size:var(--t2)}
  .lawn-copy::before{inset:0 0 -60px 0;background:linear-gradient(rgba(0,0,0,.62),rgba(0,0,0,.35) 75%,rgba(0,0,0,0))} /* taste-skill-ignore: neutral scrim under text on a photo */
  .gala-media::after{height:100%;background:linear-gradient(rgba(0,0,0,.15),rgba(0,0,0,.72) 45%)} /* taste-skill-ignore: neutral scrim under text on footage */
  .print{display:none}
  .figs b{font-size:var(--t5)}
  .figs p:nth-child(2) b{font-size:var(--t4)}
  .sheet{padding:24px 16px}
  .judging thead{display:none}
  .judging tr{display:grid;grid-template-columns:3.4ch 1fr;border-bottom:1px solid #bdb7ad}
  .judging td{border-bottom:0;padding:12px 8px 0 0}
  .judging td:nth-child(3){grid-column:2;padding-top:4px;padding-bottom:12px}
  .judging td.cls{width:auto}
  .prizes{grid-template-columns:1fr 1fr}
  .prizes li:last-child{grid-column:1/3}
  .stamp{font-size:var(--t1)}
  .tracks{gap:5px;padding:8px var(--m)}
  .trk{flex:0 0 auto;font-size:var(--t1);padding:0 11px;gap:7px}
  .trk .lg{display:none}.trk .sm{display:inline}
  .bars>div{grid-template-columns:1fr}
  .day-title .dn{font-size:19vw}
  .row{grid-template-columns:1fr;padding:22px 0}
  .row time{font-size:var(--t2)}
  .row .rp{grid-column:1}
  .row .rw{padding-right:0}
  .tick{position:static;justify-self:start;margin-top:12px}
  .ext{grid-template-columns:1fr}
  .glance{grid-template-columns:1fr}
  .mo:nth-of-type(even) .mo-text{text-align:left;left:var(--m)}
  .mo:nth-of-type(even) .mo-text p:last-child{margin-left:0}
  .mo-text p:last-child{font-size:var(--t2)}
    .gate h2{font-size:var(--t4)}
  .gate-head p{font-size:var(--t2)}
  .gate-facts{gap:14px}
  .gate-facts h3{font-size:var(--t2)}
  .gate-facts p{font-size:var(--t1)}
  .glance li:nth-child(4n+1),.glance li:nth-child(4n+2){background:none;margin-inline:0;padding-inline:0}
  .glance li:nth-child(odd){background:#dfdbd4;margin-inline:-14px;padding-inline:14px}
  .la-night{height:70svh}
  .motion .tour.live .stop-text{left:12px;right:12px;width:auto;bottom:84px;padding:18px 18px 16px}
  .motion .tour.live .stop-text p:not(.hook):not(.big){display:none}
  .stop-text .hook{font-size:var(--t2)}
  .stop-text h3{font-size:var(--t4)}
  .stop-text .big b{font-size:var(--t4)}
  .motion .tour.live .tour-nav{left:12px;right:12px;bottom:16px}
  .tour-nav .btn{flex:1;min-height:48px;padding:0 12px}
  .tour-count{font-size:var(--t1);margin-right:0;white-space:nowrap;line-height:48px;padding:0 10px}
  .names b{font-size:var(--t4)}
  .names span{font-size:var(--t2)}
  .gala-p{font-size:var(--t2)}
  .place{transform:rotate(1deg);width:min(260px,100%)}
  .hold{left:12px;right:12px;top:auto;bottom:16px}
  .motion .gala.live .gala-in{bottom:96px}
  .rsvp{padding:24px 16px;margin-inline:-4px}
  .fields{grid-template-columns:1fr 1fr}
  .f,.f.s6{grid-column:1/3}
  .f.s2{grid-column:span 1}
  .f.s2:last-of-type{grid-column:1/3}
  .fc summary{font-size:var(--t2);font-weight:600;padding:14px 16px}
  .fc .ans{padding:0 16px 20px}
  .env-back-card{grid-template-columns:1fr;padding:150px 20px 24px;min-height:0}
  .env-back-card .flap{height:110px}
  .addr{font-size:var(--t2)}
  .mydays{right:12px;bottom:12px}
  .yd-list li{grid-template-columns:1fr auto;gap:4px 12px}
  .yd-list .yd-d{grid-column:1/-1}
  .md-btn{font-size:var(--t1);padding:0 12px;gap:10px}
  .md-btn{min-height:48px}
}

/* ---------- motion: the hero entrance and the entrances of each section ---------- */
@keyframes rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes lineup{from{transform:translateY(102%)}to{transform:none}}
@keyframes drop{from{opacity:0;transform:translateY(-70px) rotate(-6deg)}to{opacity:1;transform:rotate(2.5deg)}}
.motion.has-js .title .t1,.motion.has-js .title .t2{overflow:hidden;padding-bottom:.06em;margin-bottom:-.06em}
.motion.has-js .hero:not(.go) .title .w{transform:translateY(102%)}
.motion.has-js .hero:not(.go) .ticket{opacity:0}
.motion.has-js .hero:not(.go) [data-hero]{opacity:0}
.motion.has-js .hero.go .title .w{animation:lineup 1100ms var(--ease-out) both}
.motion.has-js .hero.go .title .w2{animation-delay:90ms}
.motion.has-js .hero.go .title .w3{animation-delay:240ms}
.motion.has-js .hero.go [data-hero]{animation:rise 900ms var(--ease-out) both;animation-delay:calc(var(--i,0) * 90ms + 500ms)}
.motion.has-js .hero.go .ticket{animation:drop 1300ms var(--ease-out) 900ms both}
.motion.has-js [data-reveal].pre,.motion.has-js [data-reveal-group].pre>*{opacity:0;transform:translateY(24px)}
.motion.has-js [data-reveal].in,.motion.has-js [data-reveal-group].in>*{opacity:1;transform:none;transition:opacity 800ms var(--ease-out),transform 900ms var(--ease-out);transition-delay:calc(var(--i,0) * 80ms)}
.motion .prizes.in>li:nth-child(odd){transform:rotate(-1deg)}
.motion .prizes.in>li:nth-child(even){transform:rotate(.8deg)}
.motion .mini.pre{transform:translateY(40px) rotate(-6deg)}
.motion .mini.in{transform:rotate(-2deg)}
.motion.has-js .kb{animation:kb 14s var(--ease-soft) both}
.mydays{transition:opacity 300ms ease,transform 400ms var(--ease-out)}
.mydays.away{opacity:0;transform:translateY(20px);pointer-events:none}
.bar.up{transform:translateY(-100%)}
@keyframes sheet{from{transform:translateY(24px);opacity:.4}to{transform:none;opacity:1}}

/* ---------- v2.1 · a shorter film: compact rows, lower covers ---------- */
.row .note{margin:6px 0 0;font-size:var(--t1)}
.row .note .var,.row .note .tbc{font-style:italic}
.row h4 .sigm{margin-right:.2em}
.has-js .row .tt{display:flex;gap:4px;margin:0}
.has-js .row .tt .tr{font-size:0;gap:0}
.has-js .row .tt .tr::before{width:10px;height:10px}
.day-cover{height:56svh;min-height:420px}
.day-title .dn{font-size:clamp(3.2rem,1rem + 7.4vw,9rem)}
.mo{height:86svh}
.motion.has-js .envelope{height:150vh}
.th .ph{aspect-ratio:2/1}
.th-2 .ph{aspect-ratio:4/5}
.la-night{height:min(64vh,620px)}
.judges{grid-template-columns:repeat(3,minmax(0,1fr));gap:36px var(--g)}
@media (min-width:900px){
  .js .day-frame{grid-column:1/6}
  .js .rows{grid-column:6/13;padding-top:28px}
  .js .row{grid-template-columns:84px 1fr;padding:13px 0;column-gap:20px}
  .js .row .tt{position:absolute;left:0;top:44px}
  .js .row .rw p:not(.note){margin-top:4px;max-width:60ch}
  .js .row .tick{top:10px}
}
@media (max-width:860px){
  .judges{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .judges{grid-template-columns:1fr}
  .row{grid-template-columns:62px 1fr;padding:14px 0;column-gap:12px}
  .row time{font-size:var(--t1);padding-top:3px}
  .has-js .row .tt{position:absolute;left:0;top:36px}
  .row .rw{grid-column:2}
  .row .rp{display:none}
  .row.sig .rp{display:block;grid-column:1/-1;margin-top:12px;max-width:none}
  .tick{grid-column:2;margin-top:8px;min-height:40px}
  .day-cover{height:52svh}
  .mo{height:82svh}
}
.mo{height:72svh;min-height:500px}
.day-cover{height:44svh;min-height:380px}
.day-body{padding-bottom:48px}
.thread{gap:clamp(48px,5vw,72px)}
.th-2 .ph{aspect-ratio:1}
.jury{padding-block:clamp(90px,9vw,140px)}
.judges dt{font-size:var(--t3)}
.judges .chief dt{font-size:var(--t4)}
.names{row-gap:36px}
.names li:nth-child(even){margin-top:36px}
.motion .car.live{height:480vh}
.motion .tour.live{height:calc(100svh + 10 * 28vh)}
.motion .gala.live{height:160vh}
@media (min-width:1101px){
  .sheet{grid-column:1/8}
  .prizes{grid-column:8/13;grid-template-columns:1fr 1fr;margin-top:0;align-self:start}
  .prizes li:last-child{grid-column:1/-1}
}
@media (min-width:900px){
  .js .row h4{font-size:var(--t2);font-weight:600;letter-spacing:-.005em;line-height:1.25}
  .js .row.sig h4{font-size:var(--t3);line-height:1.15}
  .js .row{padding:11px 0}
  .js .row .tt{top:38px}
}
@media (max-width:640px){
  .mo{height:76svh}
  .day-cover{height:46svh}
}
.row time{white-space:nowrap}
@media (min-width:900px){ .js .row{grid-template-columns:104px 1fr} }
@media (max-width:640px){ .row{grid-template-columns:78px 1fr} .row time{font-size:.875rem} }
@media (max-width:640px){ .seal{width:88px;height:88px;margin:-44px 0 0 -44px} }

/* ---------- v2.2 · the identity: wordmark, monogram, seal, emblem (brand/README.md) ---------- */
.caps,.glance .gd{font-family:Erode,Georgia,serif;font-size:13px;font-weight:600;font-style:normal;text-transform:uppercase;letter-spacing:.28em;line-height:1.4}
.bar .mark{display:flex;align-items:center;margin-right:auto;padding:6px 0}
.envelope .env-from{position:static;display:block;width:150px;height:auto;margin-top:2px}
.title .t2{font-size:clamp(.95rem,.55rem + 1.25vw,1.65rem);font-weight:600;text-transform:uppercase;letter-spacing:.28em;line-height:1.3;margin-top:.9em}
.tk-mark{display:block;width:170px;height:auto;margin:4px auto 0}
.mini img.nm{width:190px;height:auto}
.awards{grid-column:9/13;display:flex;flex-direction:column;align-items:center;gap:36px}
.awards .prizes{margin-top:0;align-self:stretch}
.rosette{width:200px;height:200px;margin:8px 0 0}
.rosette img{width:100%;height:100%;display:block}
@media (min-width:1101px){ .awards{grid-column:8/13} .awards .prizes{grid-column:auto} }
@media (max-width:1100px){ .awards{grid-column:1/13;margin-top:40px} }
.place-seal{display:block;margin:0 auto 10px}
.rsvp{position:relative}
.rsvp-stamp{position:absolute;top:22px;right:22px;transform:rotate(-8deg)}
.ty-mono{display:block;width:64px;height:64px;margin:0 auto 18px}
.foot-marks{display:flex;align-items:center;justify-content:center;gap:clamp(32px,5vw,72px);margin-top:72px;flex-wrap:wrap}
.foot-emblem{width:220px;height:220px}
.foot-wm{width:min(440px,80vw);height:auto}
@media (max-width:640px){
  .envelope .env-from{width:124px}
  .rsvp-stamp{width:60px;height:60px;top:14px;right:14px}
  .foot-emblem{width:132px;height:132px}
  .foot-wm{width:260px}
  .rosette{width:150px;height:150px}
}

/* ---------- v2.3 · the programme bar: days on the left, tracks on the right ---------- */
.prog-nav{display:flex;align-items:center;justify-content:space-between;gap:10px 24px;padding:10px var(--m);background:var(--bg)}
html:not(.js) .prog-nav{display:none}
.prog-nav .tracks{padding:0;background:none;flex-wrap:nowrap;gap:6px}
.daynav{display:flex;gap:4px;flex-wrap:nowrap}
.dchip{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:44px;min-width:56px;padding:0 12px;background:none;border:0;font:500 var(--t2)/1 Erode,Georgia,serif;color:var(--ink);cursor:pointer;font-variant-numeric:tabular-nums;transition:background-color 180ms ease,color 180ms ease,transform 140ms var(--ease-out)}
.dchip .dd2:empty{display:none}
.dchip:active{transform:scale(.97)}
.dchip[aria-current="true"]{background:var(--accent);color:#fff}
@media (hover:hover) and (pointer:fine){.dchip:not([aria-current="true"]):hover{background:var(--surface)}}
.dchip:focus-visible,.trk:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.dchip[aria-current="true"]:focus-visible{outline-color:var(--ink)}
@media (max-width:1560px){ .prog-nav .trk .lg{display:none} .prog-nav .trk .sm{display:inline} .prog-nav .trk{padding:0 13px} }
.trk,.dchip,.lg-b,.idx-btn,.bar .btn{white-space:nowrap}
@media (max-width:760px){
  .prog-nav{flex-direction:column;align-items:stretch;gap:6px;padding:6px 12px 8px}
  .daynav,.prog-nav .tracks{width:100%;gap:4px}
  .dchip{flex:1 1 0;min-width:0;padding:0 2px;font-size:.875rem;flex-direction:column;gap:1px;min-height:44px}
  .dchip .dd2{font-size:.8125rem}
  .prog-nav .trk{flex:1 1 0;justify-content:center;padding:0 4px;gap:6px;font-size:.875rem;min-height:44px}
}

/* ---------- v2.3 · the mark in the bar: monogram and stacked wordmark; the line wordmark over the envelope ---------- */
.bar .mark .mk{display:none;align-items:center;gap:16px}
.bar .mark .mk img{display:block;width:auto}
.bar .mark .mono{height:38px}
.bar .mark .stack{height:57px}
.bar .mark .mk-line img{height:20px}
.bar .mark .mk-putty{display:flex}
.bar.solid .mark .mk-putty{display:none}
.bar.solid .mark .mk-ink{display:flex}
.bar.env .mark .mk-ink,.bar.env .mark .mk-putty{display:none}
.bar.env .mark .mk-line{display:flex}
.idx-btn{min-height:44px;padding:0 16px;background:none;border:2px solid currentColor;color:inherit;font:600 var(--t1)/1 Erode,Georgia,serif;cursor:pointer;transition:transform 140ms var(--ease-out),background-color 180ms ease}
.idx-btn:active{transform:scale(.97)}
@media (max-width:1320px){ .bar .lk{display:none} }
@media (max-width:640px){
  .bar{gap:10px}
  .bar .mark .mk .stack{display:none}
  .bar .mark .mk .mono{height:40px}
  .bar.env .mark .mk-line{display:none}
  .bar.env .mark .mk-ink{display:flex}
  .idx-btn{padding:0 12px}
  .snd{padding:0 6px}
}
.index{position:fixed;inset:0;z-index:180;background:rgba(15,26,34,.55);display:flex;justify-content:center;align-items:flex-start;overflow:auto;padding:clamp(16px,4vh,48px) 16px}
.idx-paper{width:min(640px,100%);background:var(--paper);color:var(--ink);padding:clamp(24px,4vw,48px);border-radius:2px;box-shadow:0 24px 80px rgba(0,0,0,.35)} /* taste-skill-ignore: a dialog, a real overlay */
.motion .index:not([hidden]) .idx-paper{animation:rise 420ms var(--ease-out) both}
.idx-top{display:grid;grid-template-columns:56px 1fr auto;gap:18px;align-items:center;margin-bottom:22px}
.idx-top h2{font-size:var(--t4)}
.idx-close{min-height:44px;padding:0 16px;background:var(--surface);border:0;font:600 var(--t1)/1 Erode,Georgia,serif;cursor:pointer}
.idx-list{display:grid;gap:2px}
.idx-list a{display:flex;align-items:center;gap:14px;min-height:46px;padding:4px 10px;text-decoration:none;font-size:var(--t3);line-height:1.15;transition:background-color 160ms ease}
@media (hover:hover) and (pointer:fine){.idx-list a:hover{background:var(--surface)}}
.idx-m{flex:0 0 12px;width:12px;height:12px;background:var(--surface)}
.idx-list a.read .idx-m{background:var(--ink)}
.idx-list a.cur{background:var(--bg);font-weight:600}
.idx-list a.cur .idx-m{background:var(--accent)}
.idx-days{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;margin:2px 0 8px 36px}
.idx-days a{font-size:var(--t2);min-height:44px}
.idx-days a.cur{background:var(--bg);font-weight:600}
@media (max-width:640px){ .idx-days{grid-template-columns:1fr 1fr;margin-left:26px} .idx-list a{font-size:var(--t2)} }
.idx-days a{white-space:nowrap;min-width:0}
.idx-paper{min-width:0;overflow:hidden}

/* ---------- v2.4a · the language switcher ---------- */
.lang{display:flex;gap:2px;align-items:center}
.lg-b{min-width:36px;min-height:44px;padding:0 6px;background:none;border:0;color:inherit;font:600 var(--t1)/1 Erode,Georgia,serif;letter-spacing:.04em;cursor:pointer;opacity:.62;transition:opacity 160ms ease,background-color 160ms ease}
.lg-b[aria-pressed="true"]{opacity:1;text-decoration:underline;text-underline-offset:.3em;text-decoration-thickness:2px}
@media (hover:hover) and (pointer:fine){.lg-b:hover{opacity:1}}
.lg-b:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.lang-idx{display:none;margin:-6px 0 18px;color:var(--ink)}
@media (max-width:1560px){ .bar .lk{display:none} }
@media (max-width:900px){ .lang-bar{display:none} .lang-idx{display:flex} }

/* ---------- v2.5 · the quiet links to the other pages ---------- */
a.quiet{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.22em;text-decoration-color:currentColor;transition:text-decoration-thickness 160ms ease}
@media (hover:hover) and (pointer:fine){a.quiet:hover{text-decoration-thickness:2px}}
.ty-homes{font-size:var(--t2);margin-top:22px}
.idx-sep{margin-top:10px}
.judges .tbc-j{font-size:var(--t1);line-height:1.3;margin-top:10px;color:var(--t-lad);font-weight:600;letter-spacing:.01em}
/* «Some stay for life.»: the whole sentence opens the homes, in the colour of the text */
a.life{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.15em;text-decoration-color:currentColor;transition:text-decoration-thickness 160ms ease;border-radius:2px}
a.life:focus-visible{text-decoration-thickness:2px;outline:2px solid currentColor;outline-offset:4px}
@media (hover:hover) and (pointer:fine){a.life:hover{text-decoration-thickness:2px}}

/* ---------- v2.6 · what happens nearby, before and after each season ---------- */
.opt .nb{font-size:var(--t1);line-height:1.4;display:block;margin-top:8px;color:var(--muted);max-width:68ch}
.opt .nb b{font-weight:600;color:var(--ink);margin-right:.3em}
.opt:has(input:checked) .nb{color:#b9b4ac}
.opt:has(input:checked) .nb b{color:var(--on-night)}

/* 22/10: Homes of Cap Cana in the index, with its line */
.idx-homes .idx-sub{display:block;font-size:var(--t1);font-style:italic;opacity:.8;margin-top:2px;font-weight:400}
.idx-homes + .idx-sep{border-top:0}
