:root{
  --night:#0c1633;--night-2:#15214d;--night-line:rgba(255,255,255,.16);
  --paper:#f4efe6;--paper-2:#ebe3d4;--ink:#17161b;--muted:#57525c;--line:rgba(23,22,27,.18);
  --on-night:#f7f3ea;--on-night-muted:#b9c0d8;
  --sun:#f6be1a;--ember:#e2412b;--ember-ink:#b8301c;--teal:#129c93;--sky:#5b8af0;
  --display:"Bricolage Grotesque",system-ui,sans-serif;--body:"Figtree",system-ui,sans-serif;
  --max:1240px;--gut:clamp(16px,4vw,48px);--sec:clamp(64px,9vw,120px);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1.0625rem/1.6 var(--body);overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3{font-family:var(--display);font-weight:700;line-height:1.05;margin:0;letter-spacing:-.01em}
h1{font-size:clamp(2.6rem,5.6vw,4.5rem)}
h2{font-size:clamp(2rem,3.6vw,3rem)}
h3{font-size:clamp(1.25rem,1.8vw,1.5rem);line-height:1.2}
p{margin:0}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px}
.sec{padding:var(--sec) 0}
.night{background:var(--night);color:var(--on-night)}
.night .muted{color:var(--on-night-muted)}
.muted{color:var(--muted)}
.lead{font-size:clamp(1.1rem,1.4vw,1.25rem);max-width:38em}
.skip{position:absolute;left:-9000px;top:8px;background:var(--sun);color:var(--ink);padding:10px 14px;z-index:100;border-radius:4px}
.skip:focus{left:8px}
:focus-visible{outline:3px solid var(--sun);outline-offset:3px}
.paper :focus-visible,.sec:not(.night) :focus-visible{outline-color:var(--ember-ink)}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:10px;font:600 1rem/1 var(--body);padding:15px 22px;border-radius:6px;text-decoration:none;border:1.5px solid currentColor;transition:background .2s,color .2s,border-color .2s;cursor:pointer}
.btn-sun{background:var(--sun);border-color:var(--sun);color:var(--ink)}
.btn-sun:hover{background:#ffd34d;border-color:#ffd34d}
.btn-ink{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.btn-ink:hover{background:#000}
.btn-line:hover{background:rgba(127,127,127,.12)}
.btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.link{font-weight:600;text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:4px}
.link:hover{text-decoration-color:var(--ember)}

/* header */
.hdr{position:sticky;top:0;z-index:50;background:var(--night);color:var(--on-night);border-bottom:1px solid var(--night-line)}
.hdr .wrap{display:flex;align-items:center;justify-content:space-between;height:72px;gap:24px}
.logo img{height:44px;width:auto}
.nav{display:flex;align-items:center;gap:28px}
.nav a{text-decoration:none;font-weight:500;font-size:.98rem;color:var(--on-night-muted);padding:6px 0;border-bottom:2px solid transparent}
.nav a:hover,.nav a[aria-current=page]{color:var(--on-night);border-bottom-color:var(--sun)}
.nav .lang{border:1px solid var(--night-line);border-radius:4px;padding:5px 9px;font-size:.85rem}
.nav .lang:hover{border-color:var(--on-night)}
.hdr .btn{padding:11px 16px;font-size:.95rem}
.menu-btn{display:none;background:none;border:1px solid var(--night-line);color:inherit;border-radius:6px;padding:10px 12px;font:600 .95rem var(--body)}
@media (max-width:960px){
  .menu-btn{display:block}
  .nav{position:absolute;left:0;right:0;top:72px;background:var(--night);flex-direction:column;align-items:flex-start;gap:0;padding:8px var(--gut) 24px;border-bottom:1px solid var(--night-line);display:none}
  .nav.open{display:flex}
  .nav a{padding:14px 0;width:100%;font-size:1.1rem}
  .hdr .wrap>.btn{display:none}
}

/* hero */
.hero{position:relative;background:var(--night);color:var(--on-night);overflow:hidden;min-height:min(calc(100svh - 72px),820px);display:flex;flex-direction:column;justify-content:flex-start}
.hero canvas{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:crosshair;touch-action:pan-y}
.hero-in{position:relative;z-index:2;width:100%;padding-top:clamp(56px,9vh,110px);pointer-events:none}
.hero-in>*{pointer-events:auto}
.hero h1{max-width:12ch}
.hero .lead{margin-top:22px;color:#dfe3f0;max-width:34em}
.hero-meta{position:absolute;z-index:2;left:0;right:0;bottom:clamp(20px,4vh,40px);pointer-events:none}
.hero-meta .wrap{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.hero-meta p{font-size:.95rem;color:#dfe3f0;max-width:32em;text-shadow:0 1px 8px rgba(0,0,0,.6)}
.fire-btn{pointer-events:auto;background:rgba(12,22,51,.7);color:var(--on-night);border:1px solid var(--night-line);border-radius:6px;padding:10px 14px;font:600 .95rem var(--body);cursor:pointer}
.fire-btn:hover{border-color:var(--sun)}

/* facts strip */
.facts{border-bottom:1px solid var(--line)}
.facts .grid{gap:0}
.fact{grid-column:span 3;padding:36px 24px 36px 0;border-right:1px solid var(--line)}
.fact+.fact{padding-left:24px}
.fact:last-child{border-right:0}
.fact b{display:block;font:700 clamp(2rem,3.2vw,2.75rem)/1 var(--display);margin-bottom:10px}
.fact span{color:var(--muted);font-size:.98rem;display:block;max-width:22ch}
.fact i{display:inline-block;width:12px;height:12px;border-radius:2px;margin-right:8px;vertical-align:.1em}
@media (max-width:900px){.fact{grid-column:span 6;border-right:0;border-bottom:1px solid var(--line);padding:24px 0!important}.fact:nth-child(odd){padding-right:16px!important}}

/* section head */
.head{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;align-items:end;margin-bottom:clamp(36px,5vw,56px)}
.head h2{grid-column:1/8}
.head p{grid-column:8/13}
@media (max-width:900px){.head h2,.head p{grid-column:1/-1}}

/* timeline */
.tl{border-top:1.5px solid var(--ink)}
.night-row{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;padding:28px 0;border-bottom:1px solid var(--line)}
.night-row .date{grid-column:1/4}
.night-row .date b{display:block;font:700 clamp(2.4rem,4vw,3.5rem)/1 var(--display)}
.night-row .date span{color:var(--muted);font-size:.95rem}
.night-row .shows{grid-column:4/10;display:grid;gap:18px}
.night-row .res{grid-column:10/13;font-size:.95rem}
.show{display:grid;grid-template-columns:62px 1fr;gap:14px}
.show time{font:700 1.05rem/1.5 var(--display)}
.show h3{font-size:1.25rem}
.show p{color:var(--muted);font-size:.98rem;margin-top:2px}
.tag{display:inline-block;font-size:.85rem;font-weight:600;padding:2px 8px;border-radius:3px;margin-right:6px;vertical-align:.12em}
.tag-fire{background:var(--ember);color:#fff}
.tag-drone{background:#2f5fc9;color:#fff}
.tag-prelude{background:var(--teal);color:#fff}
.res .award{display:block;border-left:3px solid var(--sun);padding:2px 0 2px 12px;margin-bottom:8px}
.res .award b{display:block}
.res .award span{color:var(--muted)}
.badge150{display:inline-block;margin-top:8px;font:700 .9rem var(--display);background:var(--ink);color:var(--sun);padding:4px 8px;border-radius:3px}
@media (max-width:900px){
  .night-row .date,.night-row .shows,.night-row .res{grid-column:1/-1}
  .night-row .date{display:flex;align-items:baseline;gap:12px}
}

/* video */
.vids{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px}
.vid{grid-column:span 4;text-decoration:none;color:inherit;display:block}
.vid.big{grid-column:span 8;grid-row:span 2}
.vid figure{margin:0;position:relative;overflow:hidden;border-radius:4px;aspect-ratio:16/9;background:#000}
.vid img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.vid:hover img{transform:scale(1.03)}
.vid .play{position:absolute;left:14px;bottom:14px;background:var(--sun);color:var(--ink);font:700 .9rem var(--body);padding:8px 12px;border-radius:4px}
.vid h3{margin-top:12px;font-size:1.1rem}
.vid p{font-size:.95rem}
@media (max-width:900px){.vid,.vid.big{grid-column:1/-1;grid-row:auto}}

/* split blocks */
.split{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;align-items:center}
.split .txt{grid-column:1/6}
.split .media{grid-column:7/13}
.split.rev .txt{grid-column:8/13;order:2}
.split.rev .media{grid-column:1/7;order:1}
.media img{border-radius:4px;width:100%;aspect-ratio:3/2;object-fit:cover}
.media figcaption{font-size:.88rem;margin-top:10px}
.split h2{margin-bottom:20px}
.split .txt p+p{margin-top:14px}
@media (max-width:900px){.split .txt,.split .media,.split.rev .txt,.split.rev .media{grid-column:1/-1;order:0}}

/* tickets */
.tix{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px}
.tix-card{grid-column:span 6;border:1.5px solid var(--ink);border-radius:6px;padding:clamp(24px,3vw,40px);display:flex;flex-direction:column;gap:14px}
.tix-card.sun{background:var(--sun);border-color:var(--sun)}
.tix-card h3{font-size:clamp(1.5rem,2.4vw,2rem)}
.tix-card ul{margin:0;padding-left:20px}
.tix-card li{margin:4px 0}
.tix-card .btns{margin-top:auto;padding-top:12px}
@media (max-width:900px){.tix-card{grid-column:1/-1}}

/* drones */
.drone-num{font:800 clamp(5rem,13vw,10rem)/.9 var(--display);color:var(--sky);letter-spacing:-.01em}

/* winners */
.win{width:100%;border-collapse:collapse;font-size:1rem}
.win th,.win td{text-align:left;padding:16px 12px 16px 0;border-bottom:1px solid var(--line);vertical-align:top}
.win th{font-weight:600;color:var(--muted);font-size:.92rem}
.win td:first-child{font:700 1.4rem var(--display);width:90px}
.tbl{overflow-x:auto}
.tbl .win{min-width:640px}

/* gallery */
.gal{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px}
.gal figure{margin:0}
.gal img{width:100%;height:100%;object-fit:cover;border-radius:4px}
.gal .g1{grid-column:1/8;grid-row:1/3}
.gal .g2{grid-column:8/13}
.gal .g3{grid-column:8/13}
@media (max-width:700px){.gal .g1,.gal .g2,.gal .g3{grid-column:1/-1;grid-row:auto}}

/* partners */
.partners{display:grid;grid-template-columns:repeat(5,1fr);gap:0;border-top:1px solid var(--night-line);border-left:1px solid var(--night-line)}
.partners div{border-right:1px solid var(--night-line);border-bottom:1px solid var(--night-line);padding:32px 24px;display:flex;flex-direction:column;justify-content:space-between;gap:20px;min-height:150px}
.partners img{max-height:38px;width:auto;max-width:100%;opacity:.92}
.partners span{font-size:.9rem;color:var(--on-night-muted)}
@media (max-width:900px){.partners{grid-template-columns:repeat(2,1fr)}}

/* page hero (subpages) */
.phero{background:var(--night);color:var(--on-night);position:relative;overflow:hidden}
.phero .wrap{padding-top:clamp(56px,8vw,104px);padding-bottom:clamp(48px,6vw,80px);position:relative;z-index:1}
.phero h1{max-width:16ch}
.phero .lead{margin-top:20px;color:#dfe3f0}
.phero img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.38}
.phero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--night) 25%,rgba(12,22,51,.4));z-index:0}
.crumb{font-size:.92rem;color:var(--on-night-muted);margin-bottom:18px}
.crumb a{color:var(--on-night)}

/* map */
.map{background:var(--paper-2);border-radius:6px;padding:16px}
.map svg{width:100%;height:auto;display:block}
.spots{list-style:none;margin:0;padding:0;counter-reset:s}
.spots li{padding:16px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:36px 1fr;gap:12px}
.spots li::before{counter-increment:s;content:counter(s);width:28px;height:28px;border-radius:4px;background:var(--ember);color:#fff;font:700 .95rem/28px var(--display);text-align:center}
.cols3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.cols3>div{border-top:1.5px solid var(--ink);padding-top:20px}
.cols3 h3{margin-bottom:10px}
@media (max-width:900px){.cols3{grid-template-columns:1fr}}
.note{background:var(--paper-2);border-left:4px solid var(--sun);padding:20px 24px;border-radius:0 4px 4px 0}

/* cta band */
.band{background:var(--sun);color:var(--ink)}
.band .wrap{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;padding-top:48px;padding-bottom:48px}
.band h2{font-size:clamp(1.6rem,2.8vw,2.4rem);max-width:22ch}

/* footer */
.ftr{background:#080f24;color:var(--on-night-muted);padding:64px 0 32px;font-size:.95rem}
.ftr .grid{row-gap:32px}
.ftr .c1{grid-column:1/5}
.ftr .c2{grid-column:6/9}
.ftr .c3{grid-column:9/13}
.ftr h3{color:var(--on-night);font-size:1rem;margin-bottom:12px;font-family:var(--body);font-weight:600}
.ftr ul{list-style:none;margin:0;padding:0}
.ftr li{margin:6px 0}
.ftr a{color:var(--on-night)}
.ftr img{height:52px;width:auto;margin-bottom:16px}
.credit{border-top:1px solid var(--night-line);margin-top:48px;padding-top:24px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.88rem}
@media (max-width:900px){.ftr .c1,.ftr .c2,.ftr .c3{grid-column:1/-1}}
