/* AFFD 3D · demo by Velare
   "Premiere night": one continuous camera move behind the page (red carpet, premiere, stage, trophy,
   fireworks), kept calm under a deep shade and film grain; the festival identity on top
   (Playfair Display + Jost, AFFD yellow, the logo's green / saffron / magenta). */
:root{
  --y:#FDDE09; --y-deep:#E7A800; --cream:#F7EFDA; --cream-2:#EFE3C4;
  --ink:#141108; --black:#0B0A07; --white:#FAFAF8;
  --green:#1E9A48; --saffron:#F7931E; --magenta:#E5177E; --red:#C40C18;
  --serif:"Playfair Display",Georgia,"Times New Roman",serif;
  --sans:"Jost","Avenir Next","Futura",Helvetica,Arial,sans-serif;
  --ease:cubic-bezier(.22,1,.36,1);
  --gut:clamp(16px,3.6vw,56px);
  --sat:env(safe-area-inset-top,0px); --sab:env(safe-area-inset-bottom,0px);
  --sal:env(safe-area-inset-left,0px); --sar:env(safe-area-inset-right,0px);
  color-scheme:dark;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;overflow-x:clip;background:var(--black)}
body{margin:0;font:16px/1.6 var(--sans);color:rgba(250,250,248,.86);background:var(--black);-webkit-font-smoothing:antialiased;overflow-x:clip}
a{color:inherit;text-decoration:none}
p{margin:0}
h1,h2,h3{margin:0;font-family:var(--serif);font-weight:700;color:var(--white);letter-spacing:-.01em}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--y);outline-offset:3px}
::selection{background:var(--y);color:var(--ink)}
.skip{position:fixed;left:12px;top:-80px;z-index:100;background:var(--y);color:var(--ink);padding:10px 14px;border-radius:999px;font-weight:600}
.skip:focus{top:calc(12px + var(--sat))}

/* ---------------- the film ---------------- */
/* sized to the LARGE viewport: when Safari retracts its bars or bounces at the end of the page,
   a film sized to the default viewport left a band of bare page under it */
html,body{overscroll-behavior-y:none}
.film{position:fixed;top:0;left:0;right:0;height:100vh;height:100lvh;z-index:0;overflow:hidden;background:#120d08}
.film .poster img,.bgvid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:62% 50%}
/* desktop: frame the film a little to the right so the trophy of the jury scene sits in the right third, clear of the carousel and the text */
@media (min-width:761px) and (min-aspect-ratio:9/10){.film .poster img,.bgvid{object-position:12% 50%}}
.bgvid{opacity:0;transition:opacity .8s}
.film.live .bgvid{opacity:1}
.shade{position:absolute;inset:0;pointer-events:none;transition:background-color .8s;
  background:linear-gradient(90deg,rgba(11,10,7,.86) 0%,rgba(11,10,7,.55) 36%,rgba(11,10,7,.12) 64%,rgba(11,10,7,.25) 100%),
             radial-gradient(120% 90% at 70% 50%,transparent 40%,rgba(11,10,7,.55) 100%)}
.grain{position:absolute;inset:-50%;pointer-events:none;opacity:.07;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 1s steps(4) infinite}
@keyframes grain{0%{transform:translate(0,0)}25%{transform:translate(-3%,2%)}50%{transform:translate(2%,-3%)}75%{transform:translate(-2%,-1%)}100%{transform:translate(0,0)}}
@media (prefers-reduced-motion:reduce){.grain{animation:none}}
/* letterbox: two thin cinema bars, the bottom one carries the logo's three colours */
.bars{position:fixed;inset:0;z-index:3;pointer-events:none}
.bars i{position:absolute;left:0;right:0;height:14px;background:var(--black)}
.bars i:first-child{top:0}
.bars i:last-child{bottom:0;height:calc(14px + var(--sab))}
.bars i:last-child::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,var(--green) 0 33.3%,var(--saffron) 33.3% 66.6%,var(--magenta) 66.6%)}

/* ---------------- film leader (scene counter) ---------------- */
.leader{position:fixed;left:calc(var(--gut) + var(--sal));bottom:calc(30px + var(--sab));z-index:4;pointer-events:none;display:flex;align-items:center;gap:14px;
  font:500 11px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:rgba(250,250,248,.7)}
.lead-n{color:var(--y);display:inline-flex;align-items:center;gap:8px}
.lead-n::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--y);box-shadow:0 0 12px var(--y)}
.lead-t{font-family:var(--serif);font-style:italic;text-transform:none;letter-spacing:.02em;font-size:14px;color:var(--white)}
.lead-tc{font-variant-numeric:tabular-nums;opacity:.6}

/* ---------------- header ---------------- */
.hdr{position:fixed;left:0;right:0;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding:calc(24px + var(--sat)) calc(var(--gut) + var(--sar)) 12px calc(var(--gut) + var(--sal));transition:background .4s}
.brand{display:block;min-height:44px}
.brand img{display:block;width:clamp(112px,10vw,150px);height:auto}
.nav{display:flex;align-items:center;gap:4px}
.nav>a:not(.btn){padding:12px 14px;font-size:13px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:rgba(250,250,248,.8);position:relative}
.nav>a:not(.btn)::after{content:"";position:absolute;left:14px;right:14px;bottom:6px;height:1.5px;background:var(--y);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.nav>a:not(.btn):hover{color:#fff}
.nav>a:not(.btn):hover::after{transform:none}
.menu-btn{display:none;width:48px;height:48px;border:1px solid rgba(250,250,248,.3);border-radius:50%;background:rgba(11,10,7,.35);cursor:pointer;position:relative}
.menu-btn i,.menu-btn i::before,.menu-btn i::after{position:absolute;left:13px;width:20px;height:1.5px;background:#fff;transition:transform .3s var(--ease)}
.menu-btn i{top:23px}.menu-btn i::before{content:"";left:0;top:-6px}.menu-btn i::after{content:"";left:0;top:6px}
.menu-btn[aria-expanded=true] i{background:transparent}
.menu-btn[aria-expanded=true] i::before{transform:translateY(6px) rotate(45deg)}
.menu-btn[aria-expanded=true] i::after{transform:translateY(-6px) rotate(-45deg)}
.menu{position:fixed;inset:0;z-index:19;background:rgba(11,10,7,.97);padding:calc(110px + var(--sat)) calc(var(--gut) + var(--sar)) calc(32px + var(--sab)) calc(var(--gut) + var(--sal));
  display:flex;flex-direction:column;gap:28px;visibility:hidden;opacity:0;transition:opacity .3s,visibility 0s .3s;overflow-y:auto}
.menu[data-open]{visibility:visible;opacity:1;transition:opacity .3s}
.menu ol{list-style:none;margin:0;padding:0}
.menu li a{display:flex;align-items:baseline;gap:16px;padding:12px 0;border-bottom:1px solid rgba(250,250,248,.1);font-family:var(--serif);font-style:italic;font-size:30px;color:#fff}
.menu li a span{font:500 11px var(--sans);letter-spacing:.2em;color:var(--y);font-style:normal}
.menu-open .hdr,[data-ch=tickets] .hdr{background:rgba(11,10,7,.96);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding-bottom:12px}

/* ---------------- buttons ---------------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:52px;padding:0 26px;border-radius:999px;border:0;cursor:pointer;
  font:600 13px var(--sans);letter-spacing:.18em;text-transform:uppercase;white-space:nowrap;transition:transform .35s var(--ease),background .25s,color .25s,box-shadow .3s}
.btn{max-width:100%}
.btn .ico{flex:none;width:17px;height:17px;transition:transform .35s var(--ease)}
.btn:hover .ico{transform:translateX(4px)}
.btn:active{transform:scale(.97)}
.btn-sm{min-height:44px;padding:0 20px;font-size:12px}
.btn-y{background:var(--y);color:var(--ink);box-shadow:0 12px 40px -12px rgba(253,222,9,.55)}
.btn-y:hover{background:#fff}
.btn-ghost{color:#fff;box-shadow:inset 0 0 0 1px rgba(250,250,248,.45)}
.btn-ghost:hover{box-shadow:inset 0 0 0 1px var(--y);color:var(--y)}

/* ---------------- chapter rail ---------------- */
.rail{position:fixed;right:calc(var(--gut) + var(--sar) - 8px);top:50%;transform:translateY(-50%);z-index:10;display:flex;flex-direction:column;gap:4px}
.rail a{display:flex;align-items:center;justify-content:flex-end;gap:12px;height:34px;padding:0 8px;color:rgba(250,250,248,.45);font:500 11px var(--sans);letter-spacing:.18em}
.rail a em{font-family:var(--serif);font-style:italic;font-size:14px;letter-spacing:0;color:#fff;opacity:0;transform:translateX(6px);transition:opacity .25s,transform .25s;white-space:nowrap}
.rail a span{display:inline-flex;align-items:center;gap:10px}
.rail a span::after{content:"";width:16px;height:1.5px;background:currentColor;transition:width .4s var(--ease),background .3s}
.rail a.on{color:var(--y)}
.rail a.on span::after{width:34px;background:var(--y)}
.rail a:hover em,.rail a.on em{opacity:1;transform:none}

/* ---------------- chapters ---------------- */
main{position:relative;z-index:5}
.chapter{position:relative;height:175svh;padding:22svh calc(var(--gut) + var(--sar)) 0 calc(var(--gut) + var(--sal) + 8px)}
.panel{position:sticky;top:max(110px,calc(50svh - var(--h,520px) / 2 + 20px));width:min(600px,46vw)}
[data-rv]{opacity:0;transform:translateY(22px);transition:opacity .9s var(--ease),transform 1s var(--ease);transition-delay:calc(var(--i,0) * 80ms)}
.chapter.seen [data-rv]{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){[data-rv]{transition:none;opacity:1;transform:none}}

.eyebrow{display:flex;align-items:center;gap:14px;font:500 12px var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--y);margin-bottom:22px}
.eyebrow::before{content:"";width:42px;height:2px;background:linear-gradient(90deg,var(--green) 0 33.3%,var(--saffron) 33.3% 66.6%,var(--magenta) 66.6%);flex:none}
h2{font-size:clamp(38px,4.4vw,72px);line-height:1.02}
h2 em{font-style:italic;color:var(--y);font-weight:500}
.lede{margin-top:20px;font-size:17px;font-weight:300;line-height:1.65;color:rgba(250,250,248,.82);max-width:48ch}
.cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}

/* hero */
.hero{height:150svh;padding-top:0}
.hero-panel{top:max(120px,calc(50svh - var(--h,600px) / 2 + 30px));width:min(760px,56vw)}
.kicker{font:500 12px var(--sans);letter-spacing:.42em;text-transform:uppercase;color:rgba(250,250,248,.75)}
.hero h1{margin-top:18px;display:flex;flex-direction:column;line-height:.92}
.t1{font-style:italic;font-weight:500;font-size:clamp(64px,9vw,150px);color:var(--y);letter-spacing:-.02em}
.t2{font-weight:900;font-size:clamp(40px,5.4vw,88px);letter-spacing:-.015em;margin-top:.06em}
.t3{font-style:italic;font-weight:500;font-size:clamp(32px,4.2vw,68px);color:rgba(250,250,248,.9);margin-top:.08em}
.spot{display:flex;align-items:center;gap:12px;margin-top:22px;font:500 13px var(--sans);letter-spacing:.3em;text-transform:uppercase;color:#fff}
.spot i{width:42px;height:2px;background:linear-gradient(90deg,var(--green) 0 33.3%,var(--saffron) 33.3% 66.6%,var(--magenta) 66.6%)}
.when{display:flex;align-items:center;gap:18px;margin-top:26px}
.when b{font-family:var(--serif);font-weight:900;font-size:clamp(40px,4vw,62px);line-height:1;color:#fff}
.when span{display:flex;flex-direction:column;font:500 14px var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--y);padding-left:18px;border-left:1px solid rgba(250,250,248,.3)}
.when small{font-size:12px;color:rgba(250,250,248,.7);letter-spacing:.3em;margin-top:4px}
.count{display:flex;gap:6px;margin-top:26px}
.count div{min-width:74px;padding:10px 12px;border:1px solid rgba(250,250,248,.22);border-radius:12px;background:rgba(11,10,7,.35);display:flex;flex-direction:column;align-items:center}
.count b{font-family:var(--serif);font-weight:700;font-size:26px;line-height:1.1;color:#fff;font-variant-numeric:tabular-nums}
.count small{font:500 10px var(--sans);letter-spacing:.24em;text-transform:uppercase;color:rgba(250,250,248,.6)}
.cue{position:absolute;left:50%;top:calc(100svh - 92px);transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;font:500 10px var(--sans);letter-spacing:.34em;text-transform:uppercase;color:rgba(250,250,248,.7)}
.cue span{width:1.5px;height:34px;background:linear-gradient(var(--y),transparent);animation:cue 2s var(--ease) infinite}
@keyframes cue{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* days: cream ticket stubs */
.tickets{list-style:none;margin:26px 0 0;padding:0;display:grid;gap:10px}
.tk{display:grid;grid-template-columns:118px 1fr;background:var(--cream);color:var(--ink);border-radius:12px;position:relative;overflow:hidden;
  -webkit-mask:radial-gradient(circle 9px at 118px 0,#0000 98%,#000) top/100% 51% no-repeat,radial-gradient(circle 9px at 118px 100%,#0000 98%,#000) bottom/100% 51% no-repeat;
          mask:radial-gradient(circle 9px at 118px 0,#0000 98%,#000) top/100% 51% no-repeat,radial-gradient(circle 9px at 118px 100%,#0000 98%,#000) bottom/100% 51% no-repeat}
.tk-n{padding:14px 14px;display:flex;flex-direction:column;justify-content:center;border-right:1.5px dashed rgba(20,17,8,.25)}
.tk-n b{font-family:var(--serif);font-weight:900;font-size:26px;line-height:1}
.tk-n small{font:600 10px var(--sans);letter-spacing:.14em;text-transform:uppercase;margin-top:6px;opacity:.7}
.tk-b{padding:13px 18px}
.tk-b h3{font-size:18px;color:var(--ink);line-height:1.15}
.tk-b p{font-size:13.5px;line-height:1.45;color:rgba(20,17,8,.72);margin-top:4px}
.tk-b span{display:inline-block;margin-top:6px;font:600 10px var(--sans);letter-spacing:.2em;text-transform:uppercase}
.tk-green .tk-n b,.tk-green .tk-b span{color:var(--green)}
.tk-saffron .tk-n b,.tk-saffron .tk-b span{color:#C8690A}
.tk-magenta .tk-n b,.tk-magenta .tk-b span{color:var(--magenta)}
.tk-yellow{background:var(--y)}
.tk-yellow .tk-b span{color:var(--ink)}

/* awards */
.big3{display:grid;grid-template-columns:repeat(3,1fr);margin-top:28px;border-top:1px solid rgba(250,250,248,.25)}
.big3 div{padding:16px 0 0}
.big3 b{display:block;font-family:var(--serif);font-weight:900;font-size:clamp(46px,4.4vw,72px);line-height:1;color:var(--y)}
.big3 small{font:500 12px var(--sans);letter-spacing:.28em;text-transform:uppercase;color:rgba(250,250,248,.75)}
.indie{margin-top:28px;padding:22px 24px;border-radius:16px;background:rgba(11,10,7,.55);border:1px solid rgba(253,222,9,.35)}
.indie-k{font:500 11px var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--y)}
.indie h3{font-size:24px;margin-top:6px}
.indie p:not(.indie-k){font-size:14.5px;font-weight:300;margin-top:8px}
.indie ul{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.indie li{padding:7px 13px;border-radius:999px;border:1px solid rgba(250,250,248,.3);font:500 11px var(--sans);letter-spacing:.16em;text-transform:uppercase}

/* jury: a ring of portraits that turns with the scroll */
.jury{height:260svh;padding:0}
.jury-stage{position:sticky;top:0;height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(14px,2.4vh,28px);padding:calc(96px + var(--sat)) var(--gut) calc(40px + var(--sab));text-align:center}
.jury-head .eyebrow{justify-content:center;margin-bottom:12px}
.jury-head h2{font-size:clamp(36px,4vw,64px)}
.jury-head .lede{margin:10px auto 0;font-size:15px;max-width:56ch}
.carousel{margin-top:clamp(10px,3vh,34px);--cw:clamp(118px,11vw,170px);width:100%;height:calc(var(--cw) * 1.4);display:grid;place-items:center}
.ring{position:relative;width:var(--cw);height:calc(var(--cw) * 1.333)}
.jc{position:absolute;inset:0;padding:0;border:0;border-radius:14px;overflow:hidden;cursor:pointer;background:#222;
  will-change:transform,opacity;box-shadow:0 30px 60px -20px rgba(0,0,0,.8);transition:filter .4s,box-shadow .4s}
.jc img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(.85) contrast(1.05) brightness(.7);transition:filter .5s}
.jc-n{position:absolute;left:0;right:0;bottom:0;padding:26px 10px 10px;background:linear-gradient(transparent,rgba(11,10,7,.9));font-family:var(--serif);font-style:italic;font-size:14px;color:#fff;text-align:left;line-height:1.15}
.jc.front{box-shadow:0 0 0 2px var(--y),0 30px 70px -20px rgba(253,222,9,.35)}
.jc.front img{filter:none}
.jury-info{display:grid;grid-template-columns:48px minmax(0,560px) 48px;align-items:center;gap:14px;min-height:150px}
.ji-i{font:500 11px var(--sans);letter-spacing:.3em;color:var(--y)}
.ji h3{font-size:clamp(24px,2.4vw,34px);margin-top:6px}
.ji-r{font:500 12px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:rgba(250,250,248,.8);margin-top:6px}
.ji-c{font-size:14.5px;font-weight:300;margin-top:8px;color:rgba(250,250,248,.75);font-style:italic;font-family:var(--serif)}
.jarrow{width:48px;height:48px;border-radius:50%;border:1px solid rgba(250,250,248,.35);background:rgba(11,10,7,.4);cursor:pointer;display:grid;place-items:center;transition:border-color .25s,color .25s}
.jarrow svg{width:18px;height:18px}
.jarrow:hover{border-color:var(--y);color:var(--y)}

/* partners */
.tiers{list-style:none;margin:26px 0 0;padding:0;border-top:1px solid rgba(250,250,248,.2)}
.tiers li{display:grid;grid-template-columns:44px 1fr;gap:12px;padding:14px 0;border-bottom:1px solid rgba(250,250,248,.2)}
.tiers span{font:500 12px var(--sans);letter-spacing:.2em;color:var(--y);padding-top:4px}
.tiers b{display:block;font-family:var(--serif);font-size:20px;color:#fff;font-weight:700}
.tiers small{display:block;font-size:14px;font-weight:300;color:rgba(250,250,248,.72);margin-top:2px}

/* tickets + footer */
.chapter.end{height:auto;min-height:100svh;padding-top:62svh;padding-bottom:calc(8svh + var(--sab))}
.end .panel{position:relative;top:auto}
.admit{display:grid;grid-template-columns:1fr auto;margin-top:26px;border-radius:14px;overflow:hidden;color:var(--ink);
  -webkit-mask:radial-gradient(circle 10px at calc(100% - 118px) 0,#0000 98%,#000) top/100% 51% no-repeat,radial-gradient(circle 10px at calc(100% - 118px) 100%,#0000 98%,#000) bottom/100% 51% no-repeat;
          mask:radial-gradient(circle 10px at calc(100% - 118px) 0,#0000 98%,#000) top/100% 51% no-repeat,radial-gradient(circle 10px at calc(100% - 118px) 100%,#0000 98%,#000) bottom/100% 51% no-repeat}
.ad-l{background:var(--cream);padding:20px 22px;display:flex;flex-direction:column;gap:4px}
.ad-l small,.ad-r small{font:600 10px var(--sans);letter-spacing:.3em;text-transform:uppercase;opacity:.7}
.ad-l b{font-family:var(--serif);font-size:24px;line-height:1.1}
.ad-l span{font:500 12px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#6b5a1d}
.ad-r{width:118px;background:var(--y);border-left:1.5px dashed rgba(20,17,8,.35);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}
.ad-r b{font-family:var(--serif);font-weight:900;font-size:26px}
.foot{margin-top:38px;padding-top:22px;border-top:1px solid rgba(250,250,248,.18);display:grid;gap:12px;font-size:14px}
.pres a{color:var(--y);font-weight:600;letter-spacing:.14em}
.pres i{font-family:var(--serif)}
.links{display:flex;flex-wrap:wrap;gap:4px 18px}
.links a{min-height:44px;display:inline-flex;align-items:center;border-bottom:1px solid rgba(253,222,9,.5)}
.fine{font-size:12px;color:rgba(250,250,248,.5)}

/* laptop screens: the programme and the partners must fit between the header and the scene counter */
@media (min-width:761px) and (min-aspect-ratio:9/10) and (max-height:1000px){
  #days .lede,#partners .lede{display:none}
  .tk-b{padding:10px 16px}
  .tk-b p{font-size:12.5px;line-height:1.4}
  .tickets{margin-top:18px;gap:8px}
  .tiers li{padding:10px 0}
  .panel{top:max(100px,calc(50svh - var(--h,520px) / 2))}
}

/* ---------------- loader ---------------- */
html.is-loading,html.is-loading body{overflow:hidden;height:100%}
.loader{position:fixed;inset:0;z-index:50;display:grid;place-items:center;touch-action:none;overscroll-behavior:contain;background:var(--black);transition:opacity 1s var(--ease),visibility 0s 1s}
.ld-in{display:flex;flex-direction:column;align-items:center;gap:18px;width:min(260px,68vw)}
.ld-logo{width:96px;height:auto;animation:breathe 2.4s ease-in-out infinite}
@keyframes breathe{50%{opacity:.55;transform:scale(.96)}}
.ld-t{font-family:var(--serif);font-style:italic;font-size:18px;color:#fff}
.ld-bar{width:100%;height:2px;background:rgba(250,250,248,.15);border-radius:2px;overflow:hidden}
.ld-bar i{display:block;height:100%;width:100%;background:linear-gradient(90deg,var(--green),var(--saffron),var(--magenta),var(--y));transform:scaleX(var(--p,0));transform-origin:left;transition:transform .25s linear}
.ld-n{font:500 11px var(--sans);letter-spacing:.3em;color:var(--y);font-variant-numeric:tabular-nums}
.loader.out{opacity:0;visibility:hidden}
@media (prefers-reduced-motion:reduce){.ld-logo{animation:none}}

/* ---------------- tablet + phone ---------------- */
@media (max-width:1080px){.nav>a:not(.btn){display:none}}
@media (max-width:760px), (max-aspect-ratio:9/10){
  .nav,.rail{display:none}
  .menu-btn{display:block}
  .hdr{padding-top:calc(16px + var(--sat))}
  .bars{display:none}
  .leader{left:auto;right:calc(var(--gut) + var(--sar));top:calc(28px + var(--sat));bottom:auto;display:none}
  .shade{background:linear-gradient(0deg,rgba(11,10,7,.92) 0%,rgba(11,10,7,.62) 42%,rgba(11,10,7,.1) 70%),linear-gradient(180deg,rgba(11,10,7,.6) 0%,rgba(11,10,7,0) 20%),rgba(11,10,7,.3)}
  [data-ch=partners] .shade,[data-ch=tickets] .shade{background-color:rgba(11,10,7,.55)}
  .chapter{height:160svh;padding:40svh calc(var(--gut) + var(--sar)) 0 calc(var(--gut) + var(--sal))}
  .panel,.hero-panel{width:auto;top:max(calc(84px + var(--sat)),calc(100svh - var(--h,420px) - 22px - var(--sab)))}
  .hero{height:130svh;padding-top:0}
  .hero h1{margin-top:12px}
  .t1{font-size:clamp(58px,17vw,84px)}
  .t2{font-size:clamp(34px,10vw,50px)}
  .t3{font-size:clamp(26px,8vw,38px)}
  .spot{font-size:11px;letter-spacing:.24em;margin-top:14px}
  .when{margin-top:16px}
  .when b{font-size:40px}
  .count{margin-top:16px}
  .count div{min-width:0;flex:1;padding:8px 6px}
  .count b{font-size:20px}
  .cta{margin-top:18px}
  .cta .btn{flex:1 1 auto}
  .btn{letter-spacing:.12em;padding:0 18px;white-space:normal;text-align:center;line-height:1.25}
  .cue{display:none}
  h2{font-size:clamp(32px,9.4vw,44px)}
  .lede{font-size:15px;margin-top:12px}
  .eyebrow{margin-bottom:14px;font-size:11px;letter-spacing:.24em}
  .tickets{margin-top:16px;gap:8px}
  .tk{grid-template-columns:92px 1fr;
    -webkit-mask:radial-gradient(circle 8px at 92px 0,#0000 98%,#000) top/100% 51% no-repeat,radial-gradient(circle 8px at 92px 100%,#0000 98%,#000) bottom/100% 51% no-repeat;
            mask:radial-gradient(circle 8px at 92px 0,#0000 98%,#000) top/100% 51% no-repeat,radial-gradient(circle 8px at 92px 100%,#0000 98%,#000) bottom/100% 51% no-repeat}
  .tk-n{padding:10px}
  .tk-n b{font-size:21px}
  .tk-n small{font-size:9px;letter-spacing:.08em}
  .tk-b{padding:10px 14px}
  .tk-b h3{font-size:15.5px}
  .tk-b p{display:none}
  #days .lede,#awards .lede{display:none}
  .big3{margin-top:16px}
  .big3 b{font-size:42px}
  .indie{margin-top:16px;padding:16px 18px}
  .indie h3{font-size:20px}
  .indie p:not(.indie-k){font-size:13.5px}
  .jury{height:240svh;padding:0}
  .jury-stage{padding-top:calc(84px + var(--sat));justify-content:flex-start;gap:12px}
  /* phone: a soft dark veil behind the name and the bio, fading out on both sides (no visible edge; the trophy base stays visible below) */
  .jury-stage{isolation:isolate}
  .jury-stage::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,rgba(8,5,2,0) 18%,rgba(8,5,2,.55) 40%,rgba(8,5,2,.7) 55%,rgba(8,5,2,.55) 70%,rgba(8,5,2,0) 88%)}
  .jury-head .lede{display:none}
  .carousel{--cw:31vw;margin-top:6px}
  .jury-info{grid-template-columns:44px minmax(0,1fr) 44px;gap:8px;min-height:0}
  .jarrow{width:44px;height:44px}
  .ji h3{font-size:22px}
  .ji-r{font-size:10.5px}
  .ji-c{font-size:13.5px}
  .tiers li{padding:10px 0}
  .tiers small{display:none}
  .tiers b{font-size:17px}
  .chapter.end{padding-top:55svh}
  .ad-l b{font-size:19px}
}
@media (hover:none){.rail a em{display:none}}
