/* ============================================================
   CESTE 2027 — Redesign
   Black + Vibrant Orange (PANTONE 16-1364) duotone system
   ============================================================ */

:root{
  --orange:#ee6a24;          /* PANTONE 16-1364 Vibrant Orange (approx) */
  --orange-soft:#f2854a;
  --bg:#0c0a09;              /* warm near-black */
  --bg-2:#141110;
  --bg-3:#1b1715;
  --ink:#f5f1ea;             /* warm white */
  --ink-dim:rgba(245,241,234,.62);
  --ink-faint:rgba(245,241,234,.38);
  --line:rgba(245,241,234,.13);
  --line-soft:rgba(245,241,234,.07);

  --paper:#f4f0e9;           /* light section bg */
  --paper-ink:#15110f;
  --paper-dim:rgba(21,17,15,.58);
  --paper-line:rgba(21,17,15,.14);

  --f-disp:"Archivo",system-ui,sans-serif;
  --f-cond:"Archivo Narrow",system-ui,sans-serif;
  --f-body:"Archivo",system-ui,sans-serif;

  --pad:clamp(20px,5vw,90px);
  --maxw:1480px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:var(--f-body);
  font-weight:400;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
::selection{background:var(--orange);color:#000}

/* ---------- Duotone images ---------- */
.duo{filter:url(#ceste-duotone);}
.duo-wrap{position:relative;overflow:hidden;background:var(--bg)}
.duo-wrap img{width:100%;height:100%;object-fit:cover}

/* ============================================================
   TYPE
   ============================================================ */
.kicker{
  font-family:var(--f-cond);
  text-transform:uppercase;
  letter-spacing:.32em;
  font-weight:600;
  font-size:clamp(11px,.85vw,13px);
  color:var(--orange);
  display:inline-flex;align-items:center;gap:.7em;
}
.kicker::before{content:"";width:26px;height:2px;background:var(--orange);display:inline-block}
.kicker.center::after{content:"";width:26px;height:2px;background:var(--orange);display:inline-block}

h1,h2,h3{font-family:var(--f-disp);font-weight:800;line-height:.96;letter-spacing:-.01em}
.display{
  font-family:var(--f-disp);
  font-weight:900;
  text-transform:uppercase;
  line-height:.9;
  letter-spacing:-.015em;
}
.cond{font-family:var(--f-cond);font-weight:700;text-transform:uppercase;letter-spacing:.01em}

.sec-title{
  font-size:clamp(34px,5.4vw,84px);
  font-weight:800;
  text-transform:uppercase;
  line-height:.92;
  letter-spacing:-.02em;
}
.lead{font-size:clamp(16px,1.35vw,20px);line-height:1.6;color:var(--ink-dim);font-weight:400;max-width:60ch}

/* ============================================================
   HEADER (visible top bar — no off-canvas)
   ============================================================ */
.topbar{
  position:fixed;top:0;left:0;right:0;z-index:80;
  display:flex;align-items:center;justify-content:space-between;
  gap:24px;
  padding:18px var(--pad);
  background:linear-gradient(180deg,rgba(12,10,9,.92),rgba(12,10,9,.55) 70%,transparent);
  backdrop-filter:blur(2px);
  transition:background .4s var(--ease),padding .4s var(--ease),border-color .4s;
  border-bottom:1px solid transparent;
}
.topbar.solid{
  background:rgba(10,8,7,.9);
  backdrop-filter:blur(14px) saturate(120%);
  border-bottom:1px solid var(--line);
  padding-top:13px;padding-bottom:13px;
}
.brand{display:flex;align-items:center;gap:13px;flex-shrink:0}
.brand img{height:54px;width:auto;filter:brightness(0) invert(1);transition:height .4s var(--ease)}
.topbar.solid .brand img{height:44px}

.nav{display:flex;align-items:center;gap:clamp(11px,1.3vw,24px)}
.nav a{
  font-family:var(--f-cond);text-transform:uppercase;font-weight:600;
  font-size:15px;letter-spacing:.05em;color:var(--ink-dim);
  position:relative;padding:6px 0;transition:color .25s;white-space:nowrap;
}
.nav a::after{
  content:"";position:absolute;left:0;bottom:0;height:2px;width:100%;
  background:var(--orange);transform:scaleX(0);transform-origin:left;
  transition:transform .35s var(--ease);
}
.nav a:hover{color:var(--ink)}
.nav a:hover::after,.nav a.active::after{transform:scaleX(1)}
.nav a.active{color:var(--ink)}

.topbar-right{display:flex;align-items:center;gap:18px;flex-shrink:0}
.lang{
  font-family:var(--f-cond);text-transform:uppercase;font-weight:700;font-size:13px;
  letter-spacing:.12em;color:var(--ink-dim);display:flex;gap:7px;align-items:center;
}
.lang button{padding:2px 0;transition:color .2s}
.lang button.on{color:var(--orange)}
.lang span{color:var(--line)}

.btn{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--f-cond);text-transform:uppercase;font-weight:700;
  font-size:13.5px;letter-spacing:.1em;
  padding:13px 22px;border-radius:2px;
  background:var(--orange);color:#1a0c03;
  position:relative;overflow:hidden;isolation:isolate;
  transition:color .35s var(--ease);
}
.btn::before{
  content:"";position:absolute;inset:0;z-index:-1;background:var(--ink);
  transform:translateY(101%);transition:transform .4s var(--ease);
}
.btn:hover{color:#000}
.btn:hover::before{transform:translateY(0)}
.btn .ar{transition:transform .35s var(--ease)}
.btn:hover .ar{transform:translate(4px,-4px)}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}
.btn.ghost::before{background:var(--orange)}
.btn.ghost:hover{color:#1a0c03}
.btn.lg{padding:17px 30px;font-size:15px}
.btn.dark{background:var(--paper-ink);color:var(--paper)}
.btn.dark::before{background:var(--orange)}
.btn.dark:hover{color:#1a0c03}

.menu-toggle{display:none}

/* ============================================================
   HERO
   ============================================================ */
.hero{
  position:relative;min-height:112svh;display:flex;flex-direction:column;
  justify-content:flex-end;padding:0 var(--pad) clamp(104px,15vh,170px);
  overflow:hidden;isolation:isolate;
}
.hero-bg{position:absolute;inset:0;z-index:-3;background:var(--bg)}
.hero-bg .duo-wrap{position:absolute;inset:0}
.hero-bg img{
  position:absolute;inset:0;
  width:100%;height:100%;object-fit:cover;
  transform:scale(1.12);
  transition:transform 8s linear, opacity 1.4s var(--ease);
  opacity:0;
}
.hero-bg img.show{opacity:1}
.hero.ready .hero-bg img.show{transform:scale(1)}
.hero-bg::after{ /* legibility + brand gradient */
  content:"";position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(180deg,rgba(12,10,9,.66) 0%,rgba(12,10,9,.18) 32%,rgba(12,10,9,.5) 72%,var(--bg) 100%),
    linear-gradient(90deg,rgba(12,10,9,.85) 0%,rgba(12,10,9,.3) 48%,transparent 78%);
}
.hero-grain{position:absolute;inset:0;z-index:-2;opacity:.5;mix-blend-mode:overlay;
  background-image:radial-gradient(rgba(255,255,255,.06) 1px,transparent 1px);background-size:3px 3px}

.hero-top{
  position:absolute;top:clamp(96px,12vh,150px);left:var(--pad);z-index:2;
  display:flex;align-items:center;gap:16px;
}
.hero-edition{
  font-family:var(--f-cond);font-weight:700;text-transform:uppercase;letter-spacing:.2em;
  font-size:clamp(12px,1vw,15px);color:var(--ink-dim);
}
.hero-edition b{color:var(--orange)}

.hero-inner{position:relative;z-index:2;width:100%;max-width:var(--maxw);margin:0 auto}
.hero-title{
  font-family:var(--f-disp);font-weight:900;text-transform:uppercase;
  line-height:.84;letter-spacing:-.02em;
  font-size:clamp(48px,10.5vw,176px);
}
.hero-title .l{display:block;overflow:hidden}
.hero-title .l>span{display:block;transform:translateY(108%);transition:transform 1s var(--ease)}
.hero.ready .hero-title .l>span{transform:translateY(0)}
.hero-title .l:nth-child(2)>span{transition-delay:.08s}
.hero-title .l:nth-child(3)>span{transition-delay:.16s}
.hero-title .road{color:var(--orange);font-size:1.12em;letter-spacing:-.03em}
.hero-title sup{font-size:.36em;vertical-align:super;font-weight:800;color:var(--orange)}

/* hero wordmark (image headline) */
.hero-wm{display:flex;flex-direction:column;align-items:flex-start;gap:0}
.hero-wm .hw-line{
  font-family:var(--f-cond);text-transform:uppercase;font-weight:700;color:var(--ink);
  line-height:.95;letter-spacing:.02em;
  opacity:0;transform:translateY(22px);transition:opacity .8s var(--ease),transform .8s var(--ease);
}
.hero-wm .hw-line.top{font-size:clamp(17px,3vw,50px);margin-bottom:clamp(2px,.5vw,6px);margin-left:.1em}
.hero-wm .hw-line.bot{font-size:clamp(18px,3.5vw,60px);margin-top:clamp(2px,.5vw,8px)}
.hero-wm .hw-img{display:block;overflow:hidden;clip-path:inset(0 0 102% 0);transition:clip-path 1.05s var(--ease) .12s;max-width:100%}
.hero-wordmark{width:clamp(218px,42vw,615px);height:auto;display:block}
.hero.ready .hero-wm .hw-img{clip-path:inset(0 0 0 0)}
.hero.ready .hero-wm .hw-line{opacity:1;transform:none}
.hero.ready .hero-wm .hw-line.top{transition-delay:.34s}
.hero.ready .hero-wm .hw-line.bot{transition-delay:.5s}

.hero-meta{
  display:flex;flex-wrap:wrap;align-items:center;gap:clamp(20px,4vw,64px);
  margin-top:clamp(22px,3vw,40px);
}
.hero-meta .when{
  font-family:var(--f-disp);font-weight:800;text-transform:uppercase;
  font-size:clamp(20px,2.4vw,38px);letter-spacing:-.01em;line-height:1;
}
.hero-meta .when b{color:var(--orange)}
.hero-meta .where{
  font-family:var(--f-cond);text-transform:uppercase;font-weight:600;
  letter-spacing:.16em;font-size:clamp(12px,1vw,15px);color:var(--ink-dim);
  border-left:2px solid var(--orange);padding-left:16px;
}
.hero-meta .where b{color:var(--ink);font-weight:700;display:block;letter-spacing:.05em;font-size:clamp(16px,1.9vw,28px);line-height:1.12;margin-bottom:5px}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:clamp(26px,3vw,40px)}

.hero-reveal>*{opacity:0;transform:translateY(26px);transition:all .9s var(--ease)}
.hero.ready .hero-reveal>*{opacity:1;transform:none}
.hero.ready .hero-reveal>*:nth-child(1){transition-delay:.45s}
.hero.ready .hero-reveal>*:nth-child(2){transition-delay:.58s}
.hero.ready .hero-reveal>*:nth-child(3){transition-delay:.7s}

.hero-slides-dots{position:absolute;bottom:clamp(28px,4vh,46px);right:var(--pad);z-index:3;display:flex;gap:9px}
.hero-slides-dots button{width:34px;height:3px;background:var(--line);overflow:hidden;position:relative}
.hero-slides-dots button.on{background:rgba(245,241,234,.3)}
.hero-slides-dots button.on::after{content:"";position:absolute;inset:0;background:var(--orange);transform-origin:left;animation:dotfill 6s linear forwards}
@keyframes dotfill{from{transform:scaleX(0)}to{transform:scaleX(1)}}

.scroll-hint{position:absolute;bottom:clamp(28px,4vh,46px);left:50%;transform:translateX(-50%);z-index:3;
  font-family:var(--f-cond);text-transform:uppercase;letter-spacing:.25em;font-size:11px;color:var(--ink-faint);
  display:flex;flex-direction:column;align-items:center;gap:8px}
.scroll-hint .ln{width:1px;height:34px;background:linear-gradient(var(--orange),transparent);animation:scrolly 1.8s var(--ease) infinite}
@keyframes scrolly{0%{transform:scaleY(0);transform-origin:top}40%{transform:scaleY(1);transform-origin:top}60%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ============================================================
   SECTION SHELL
   ============================================================ */
.section{padding:clamp(70px,9vw,150px) var(--pad);position:relative}
.wrap{max-width:var(--maxw);margin:0 auto}
.sec-head{display:flex;flex-direction:column;gap:18px;margin-bottom:clamp(40px,5vw,72px)}
.sec-head.row{flex-direction:row;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:24px}
.divider{height:1px;background:var(--line);width:100%}

/* ---------- INTRO / ABOUT ---------- */
.intro{background:var(--bg)}
.intro-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(36px,5vw,90px);align-items:stretch}
.intro-grid.solo{grid-template-columns:1fr;max-width:none}
.intro-cols{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,64px);margin-top:6px}
@media(max-width:860px){.intro-cols{grid-template-columns:1fr;gap:0}}
.intro-copy p{color:var(--ink-dim);font-size:clamp(15px,1.15vw,17.5px);margin-bottom:1.1em;max-width:54ch}
.intro-copy p.big{color:var(--ink);font-size:clamp(20px,1.8vw,27px);line-height:1.4;font-weight:500;font-family:var(--f-disp)}
.hours-badge{
  display:inline-flex;align-items:center;gap:16px;margin-top:14px;
  border:1px solid var(--line);border-left:3px solid var(--orange);
  padding:16px 22px;background:var(--bg-2);
}
.hours-badge .n{font-family:var(--f-disp);font-weight:900;font-size:44px;color:var(--orange);line-height:1}
.hours-badge .t{font-family:var(--f-cond);text-transform:uppercase;letter-spacing:.1em;font-size:13px;color:var(--ink-dim);line-height:1.3}
.intro-media{position:relative;min-height:320px}
.intro-media .duo-wrap{position:absolute;inset:0}
.intro-media .tag{position:absolute;left:18px;bottom:18px;z-index:2;font-family:var(--f-cond);text-transform:uppercase;
  letter-spacing:.18em;font-size:12px;font-weight:700;background:var(--orange);color:#1a0c03;padding:8px 14px}

/* ---------- STATS ---------- */
.stats-band-sec{background:var(--orange);padding:clamp(8px,1.6vw,22px) var(--pad)}
.stats.band{display:grid;grid-template-columns:repeat(4,1fr);gap:0;background:transparent;border:none;margin:0}
.stats.band .stat{background:transparent;text-align:center;padding:clamp(28px,4vw,58px) clamp(8px,1.6vw,24px);position:relative}
.stats.band .stat+.stat::before{content:"";position:absolute;left:0;top:20%;bottom:20%;width:2px;background:rgba(20,8,1,.16)}
.stats.band .n{font-family:var(--f-disp);font-weight:900;color:#140802;font-size:clamp(40px,6.2vw,108px);line-height:.86;letter-spacing:-.045em;font-variant-numeric:tabular-nums}
.stats.band .lab{font-family:var(--f-disp);font-weight:800;color:#1a0c03;font-size:clamp(13px,1.25vw,20px);letter-spacing:-.01em;margin-top:clamp(8px,1vw,16px);text-transform:none}
@media(max-width:680px){.stats.band{grid-template-columns:1fr 1fr;row-gap:0}.stats.band .stat:nth-child(3)::before,.stats.band .stat:nth-child(2)::before{}.stats.band .stat:nth-child(odd)::before{display:none}.stats.band .stat:nth-child(3)::after,.stats.band .stat:nth-child(4)::after{content:"";position:absolute;top:0;left:15%;right:15%;height:2px;background:rgba(20,8,1,.16)}}

/* ============================================================
   TOPICS
   ============================================================ */
.topics{background:var(--bg-2)}
.topics-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px}
.topic{
  position:relative;overflow:hidden;background:var(--bg);
  min-height:clamp(220px,26vw,340px);display:flex;flex-direction:column;justify-content:flex-end;
  padding:24px;isolation:isolate;text-transform:uppercase;
}
.topic .duo-wrap{position:absolute;inset:0;z-index:-2}
.topic img{transition:transform 1s var(--ease)}
.topic::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(12,10,9,.15),rgba(12,10,9,.4) 50%,rgba(12,10,9,.88));transition:background .4s}
.topic:hover img{transform:scale(1.1)}
.topic:hover::after{background:linear-gradient(180deg,rgba(238,106,36,.12),rgba(12,10,9,.45) 50%,rgba(12,10,9,.92))}
.topic .num{font-family:var(--f-cond);font-weight:700;font-size:13px;letter-spacing:.1em;color:var(--orange);margin-bottom:auto;position:relative;z-index:2}
.topic-logo{
  position:absolute;top:50%;left:50%;z-index:2;
  width:min(78%,340px);height:auto;pointer-events:none;
  transform:translate(-50%,-50%);
  filter:drop-shadow(0 8px 26px rgba(0,0,0,.45));
  opacity:.94;
  transition:transform .6s var(--ease),opacity .45s var(--ease),filter .45s var(--ease);
}
.topic:hover .topic-logo{
  transform:translate(-50%,-50%) scale(1.09);
  opacity:1;
  filter:drop-shadow(0 12px 36px rgba(0,0,0,.6));
}
/* span pattern */
.topic.s4{grid-column:span 4}
.topic.s3{grid-column:span 3}
.topic.s5{grid-column:span 5}
.topic.s6{grid-column:span 6}
.topic.s7{grid-column:span 7}
.topic.tall{min-height:clamp(300px,34vw,460px)}

/* ============================================================
   SPEAKERS  (clean — no boxes)
   ============================================================ */
.speakers{background:var(--bg)}
.spk-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(20px,2.4vw,40px) clamp(16px,2vw,32px)}
.spk{position:relative;cursor:pointer}
.spk-ph{position:relative;aspect-ratio:3/4;overflow:hidden;background:var(--bg-3)}
.spk-ph img{width:100%;height:100%;object-fit:cover;object-position:center top;filter:grayscale(1) contrast(1.04)}
.spk-ph .idx{position:absolute;top:12px;left:12px;font-family:var(--f-cond);font-weight:700;font-size:12px;letter-spacing:.1em;color:var(--orange);
  background:rgba(12,10,9,.55);padding:4px 8px}
.spk-ph .plus{position:absolute;bottom:12px;right:12px;width:34px;height:34px;border:1px solid var(--ink);
  display:grid;place-items:center;opacity:1;background:rgba(12,10,9,.4)}
.spk-nm{font-family:var(--f-disp);font-weight:800;font-size:clamp(16px,1.2vw,19px);line-height:1.05;margin-top:16px;letter-spacing:-.01em}
.spk-ti{font-family:var(--f-cond);text-transform:uppercase;letter-spacing:.08em;font-size:11.5px;color:var(--ink-dim);margin-top:7px;line-height:1.4}
.spk-ti .ln{height:1px;background:var(--line);margin-bottom:9px;width:100%}

/* speaker modal */
.spk-modal{position:fixed;inset:0;z-index:120;display:none;align-items:center;justify-content:center;padding:24px}
.spk-modal.open{display:flex}
.spk-modal-bg{position:absolute;inset:0;background:rgba(7,5,4,.86);backdrop-filter:blur(8px);opacity:0;transition:opacity .4s}
.spk-modal.open .spk-modal-bg{opacity:1}
.spk-modal-card{position:relative;z-index:2;max-width:920px;width:100%;background:var(--bg-2);border:1px solid var(--line);
  display:grid;grid-template-columns:300px 1fr;transform:translateY(24px) scale(.98);opacity:0;transition:all .5s var(--ease);max-height:88vh;overflow:hidden}
.spk-modal.open .spk-modal-card{transform:none;opacity:1}
.spk-modal-card .ph{position:relative;overflow:hidden;background:var(--bg-3)}
.spk-modal-card .ph img{width:100%;height:100%;object-fit:cover;object-position:center top;filter:grayscale(1) contrast(1.04)}
.spk-modal-card .body{padding:clamp(26px,3vw,44px);overflow:auto}
.spk-modal-card .body .role{font-family:var(--f-cond);text-transform:uppercase;letter-spacing:.16em;font-size:12px;color:var(--orange)}
.spk-modal-card .body h3{font-size:clamp(24px,2.4vw,34px);margin:12px 0 6px}
.spk-modal-card .body .org{font-family:var(--f-cond);text-transform:uppercase;letter-spacing:.06em;font-size:13px;color:var(--ink-dim);line-height:1.5}
.spk-modal-card .body p{color:var(--ink-dim);font-size:15px;line-height:1.65;margin-top:20px}
.spk-modal-close{position:absolute;top:14px;right:14px;z-index:3;width:42px;height:42px;border:1px solid var(--line);
  display:grid;place-items:center;background:rgba(12,10,9,.5);transition:all .3s}
.spk-modal-close:hover{background:var(--orange);border-color:var(--orange);color:#1a0c03;transform:rotate(90deg)}

/* ============================================================
   AUSPICES
   ============================================================ */
.auspices{background:var(--bg-2)}
.aus-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border-top:1px solid var(--line)}
.aus{padding:26px 30px 26px 0;border-bottom:1px solid var(--line);display:flex;gap:22px;align-items:flex-start}
.aus:nth-child(odd){border-right:1px solid var(--line);padding-right:40px}
.aus:nth-child(even){padding-left:40px}
.aus .mk{font-family:var(--f-disp);font-weight:900;font-size:20px;color:var(--orange);line-height:1;flex-shrink:0;width:42px}
.aus .tx{font-family:var(--f-cond);text-transform:uppercase;letter-spacing:.05em;font-size:clamp(14px,1.1vw,16px);line-height:1.45;color:var(--ink);font-weight:600}
.aus .tx b{color:var(--ink-dim);font-weight:500;display:block;font-size:.85em;letter-spacing:.04em}

/* ============================================================
   SPONSORS + PARTNERS  (light paper section — logos as-is, no boxes)
   ============================================================ */
.partners-sec{background:var(--paper);color:var(--paper-ink)}
.partners-sec .kicker{color:#c0531a}
.partners-sec .kicker::before,.partners-sec .kicker.center::after{background:#c0531a}
.partners-sec .sec-title{color:var(--paper-ink)}
.partners-sec .lead{color:var(--paper-dim)}
.tier{margin-top:clamp(38px,4.5vw,64px)}
.tier-head{display:flex;align-items:center;gap:18px;margin-bottom:clamp(22px,2.6vw,38px)}
.tier-head .lab{font-family:var(--f-cond);text-transform:uppercase;font-weight:700;letter-spacing:.18em;font-size:clamp(13px,1.05vw,16px)}
.tier-head .lab .dot{color:var(--orange)}
.tier-head .rule{flex:1;height:1px;background:var(--paper-line)}
.logos{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(24px,3.5vw,64px);row-gap:clamp(20px,2.5vw,44px)}
.logos.center{justify-content:center}
.logo{position:relative;display:flex;flex-direction:column;align-items:center;gap:10px}
.logo img{height:var(--lh,64px);width:auto;max-width:230px;object-fit:contain;
  transition:transform .45s var(--ease),filter .45s;filter:saturate(.55)}
.logo:hover img{transform:translateY(-4px) scale(1.04);filter:saturate(1)}
.logo .web{font-family:var(--f-cond);text-transform:uppercase;letter-spacing:.16em;font-size:10.5px;font-weight:700;
  color:var(--paper-dim);opacity:0;transform:translateY(4px);transition:all .35s var(--ease);display:inline-flex;gap:5px;align-items:center}
.logo:hover .web{opacity:1;transform:none;color:#c0531a}
.tier.platinum .logo img{--lh:86px}
.tier.gold .logo img{--lh:62px}
.tier.silver .logo img{--lh:50px}
.tier.bronze .logo img{--lh:44px}
.tier.partners .logo img{--lh:62px;filter:saturate(.5)}

/* ---- DARK SPONSORS BLOCK (image bg, white logos) ---- */
.sponsors-dark{position:relative;isolation:isolate;background:#160a02;overflow:hidden}
.sponsors-dark .sec-title,.sponsors-dark .kicker{color:var(--ink)}
.sponsors-dark .kicker{color:var(--orange)}
.sponsors-bg{position:absolute;inset:0;z-index:0;background:url('../assets/sponsors-bg.webp') center center/cover no-repeat fixed;filter:brightness(1.18) saturate(1.12)}
.sponsors-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,6,1,.46),rgba(18,9,2,.2) 42%,rgba(10,5,1,.58))}
.sponsors-dark .wrap{position:relative;z-index:1}
.sponsors-dark .tier{margin-top:clamp(42px,5vw,76px)}
.sponsors-dark .tier-head{justify-content:center;text-align:center}
.sponsors-dark .tier-head .rule{display:none}
.sponsors-dark .tier-head .lab{color:var(--ink);position:relative;padding-bottom:15px}
.sponsors-dark .tier-head .lab .dot{color:var(--orange)}
.sponsors-dark .tier-head .lab::after{content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:42px;height:2px;background:var(--orange)}
.sponsors-dark .logos{justify-content:center;gap:clamp(36px,5vw,84px);row-gap:clamp(30px,3.5vw,58px)}
.sponsors-dark .logo img{filter:none;opacity:.96;max-width:720px;transition:transform .45s var(--ease),opacity .45s;filter:drop-shadow(0 3px 16px rgba(0,0,0,.6))}
.sponsors-dark .logo:hover img{transform:translateY(-5px) scale(1.05);opacity:1}
.sponsors-dark .logo .web{color:rgba(245,241,234,.7)}
.sponsors-dark .logo:hover .web{color:#fff}
/* white→color crossfade on hover */
.logo-media{position:relative;display:inline-flex;line-height:0}
.logo-media .lw{transition:opacity .5s var(--ease)}
.sponsors-dark .logo-media .lc{position:absolute;left:0;top:0;height:100%;width:auto;max-width:none;opacity:0;transition:opacity .5s var(--ease)}
.sponsors-dark .logo:hover .lw{opacity:0}
.sponsors-dark .logo:hover .lc{opacity:1}
.sponsors-dark .tier.platinum .logo img{--lh:300px}
.sponsors-dark .tier.gold .logo img{--lh:210px}
.sponsors-dark .tier.silver .logo img{--lh:178px}
.sponsors-dark .tier.bronze .logo img{--lh:160px}
.sponsors-dark .tier.silver .logos{max-width:1400px;margin-inline:auto}
.sponsors-dark .tier.partners .logo img{--lh:104px;max-width:340px}
.sponsors-dark .tier.partners .logos{gap:clamp(34px,4vw,64px);row-gap:clamp(28px,3vw,48px);max-width:1180px;margin-inline:auto}
.sponsors-dark .tier.media .logo img{--lh:96px;max-width:300px}
.sponsors-dark .tier.media .logos{gap:clamp(40px,5vw,80px);row-gap:clamp(28px,3vw,44px);max-width:1000px;margin-inline:auto}
/* exhibitors — two-row marquee, white logos on dark */
.marquee-dark{margin-top:clamp(16px,2vw,28px)}
.marquee-dark .marquee-row img{filter:none;opacity:.66;height:clamp(96px,11vw,168px);transition:opacity .3s}
.marquee-dark .marquee-row{gap:clamp(70px,8vw,140px)}
.marquee-dark .marquee-row.reverse{animation-direction:reverse;animation-duration:46s}
.marquee-dark:hover .marquee-row img{opacity:.85}
@media(max-width:760px){
  .sponsors-dark .tier.partners .logo img{--lh:64px}
  .marquee-dark .marquee-row img{height:clamp(72px,12vw,104px)}
}
@media(max-width:760px){
  .sponsors-dark .tier.platinum .logo img{--lh:160px}
  .sponsors-dark .tier.gold .logo img{--lh:120px}
  .sponsors-dark .tier.silver .logo img{--lh:104px}
  .sponsors-dark .tier.bronze .logo img{--lh:96px}
}

/* marquee exhibitors */
.marquee{overflow:hidden;position:relative;margin-top:clamp(30px,3.5vw,50px);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee-row{display:flex;gap:clamp(40px,5vw,80px);width:max-content;animation:marq 38s linear infinite}
.marquee:hover .marquee-row{animation-play-state:paused}
.marquee-row img{height:46px;width:auto;object-fit:contain;filter:saturate(.5) opacity(.85)}
@keyframes marq{to{transform:translateX(-50%)}}

/* ============================================================
   COUNTDOWN / CTA band
   ============================================================ */
.cta-band{background:var(--orange);color:#1a0c03;position:relative;overflow:hidden}
.cta-band .wrap{position:relative;z-index:2;display:grid;grid-template-columns:1.3fr 1fr;gap:40px;align-items:center}
.cta-band h2{font-size:clamp(30px,4.2vw,68px);text-transform:uppercase;line-height:.94;color:#190b02}
.cta-band p{font-family:var(--f-cond);text-transform:uppercase;letter-spacing:.12em;font-weight:600;font-size:14px;margin-top:16px;color:rgba(25,11,2,.7)}
.cta-band .ghost-word{position:absolute;right:-2%;bottom:-26%;font-family:var(--f-disp);font-weight:900;font-size:34vw;line-height:1;
  color:rgba(25,11,2,.07);z-index:1;pointer-events:none;text-transform:uppercase}
.countdown{display:flex;gap:14px}
.cd-unit{background:rgba(25,11,2,.9);color:var(--orange);padding:18px 8px;text-align:center;min-width:78px;flex:1}
.cd-unit .v{font-family:var(--f-disp);font-weight:900;font-size:clamp(28px,3.2vw,46px);line-height:1;color:#fff}
.cd-unit .l{font-family:var(--f-cond);text-transform:uppercase;letter-spacing:.14em;font-size:10.5px;margin-top:8px;color:rgba(255,255,255,.55)}
.cta-band .btn{margin-top:26px}

/* top countdown strip */
.cd-strip{background:var(--bg-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:clamp(40px,5.5vw,80px) var(--pad)}
.cd-strip .wrap{display:flex;flex-direction:column;align-items:center;gap:clamp(20px,3vw,38px);text-align:center}
.cd-strip-grid{display:flex;align-items:flex-start;justify-content:center;gap:clamp(10px,2.5vw,44px)}
.cd-big{display:flex;flex-direction:column;align-items:center;min-width:clamp(50px,7vw,108px)}
.cd-big .v{font-family:var(--f-disp);font-weight:900;font-size:clamp(38px,6.8vw,96px);line-height:.86;letter-spacing:-.03em;color:var(--ink);font-variant-numeric:tabular-nums}
.cd-big .l{font-family:var(--f-cond);text-transform:uppercase;letter-spacing:.2em;font-size:clamp(10px,.9vw,13px);color:var(--orange);margin-top:12px}
.cd-sep{font-family:var(--f-disp);font-weight:900;font-size:clamp(30px,5vw,74px);line-height:.86;color:var(--line);align-self:flex-start}
@media(max-width:560px){.cd-sep{display:none}.cd-strip-grid{gap:20px 28px;flex-wrap:wrap}.cd-big{min-width:40%}}

/* ============================================================
   FOOTER
   ============================================================ */
.footer{background:#070504;padding:clamp(60px,7vw,100px) var(--pad) 30px;border-top:1px solid var(--line)}
.foot-top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:40px}
.foot-brand img{height:80px;filter:brightness(0) invert(1);margin-bottom:22px}
.foot-brand p{color:var(--ink-dim);font-size:14px;max-width:32ch;line-height:1.6}
.foot-col h4{font-family:var(--f-cond);text-transform:uppercase;letter-spacing:.16em;font-size:12px;color:var(--orange);margin-bottom:18px;font-weight:700}
.foot-col a,.foot-col p{display:block;color:var(--ink-dim);font-size:14px;margin-bottom:11px;transition:color .25s;line-height:1.5}
.foot-col a:hover{color:var(--ink)}
.foot-organiser{display:block;margin-top:14px}
.foot-organiser img{height:54px;width:auto;opacity:.92;transition:opacity .3s}
.foot-organiser:hover img{opacity:1}
.foot-news{display:flex;border:1px solid var(--line);margin-top:6px}
.foot-news input{flex:1;background:transparent;border:none;color:var(--ink);padding:13px 14px;font-family:var(--f-body);font-size:14px;outline:none}
.foot-news input::placeholder{color:var(--ink-faint)}
.foot-news button{background:var(--orange);color:#1a0c03;padding:0 18px;font-family:var(--f-cond);text-transform:uppercase;font-weight:700;letter-spacing:.1em;font-size:12px;transition:background .3s}
.foot-news button:hover{background:var(--ink);color:#000}
.foot-social{display:flex;gap:10px;margin-top:20px}
.foot-social a{width:40px;height:40px;border:1px solid var(--line);display:grid;place-items:center;transition:all .3s}
.foot-social a:hover{background:var(--orange);border-color:var(--orange);color:#1a0c03}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;
  margin-top:clamp(46px,5vw,72px);padding-top:26px;border-top:1px solid var(--line);
  font-family:var(--f-cond);text-transform:uppercase;letter-spacing:.1em;font-size:11.5px;color:var(--ink-faint)}
.foot-bottom a:hover{color:var(--orange)}

/* ============================================================
   REVEAL ANIMATIONS
   ============================================================ */
[data-reveal]{opacity:0;transform:translateY(34px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
[data-reveal="left"]{transform:translateX(-40px)}
[data-reveal="right"]{transform:translateX(40px)}
[data-reveal="scale"]{transform:scale(.94)}
[data-reveal="clip"]{opacity:1;clip-path:inset(0 0 100% 0);transform:none;transition:clip-path 1s var(--ease)}
[data-reveal].in{opacity:1;transform:none;clip-path:inset(0 0 0 0)}
[data-stagger]>*{opacity:0;transform:translateY(30px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
[data-stagger].in>*{opacity:1;transform:none}
[data-stagger].in>*{transition-delay:calc(var(--d,.06s)*var(--i,0))}

/* line-mask headline reveal */
.mask-lines .l{overflow:hidden;display:block}
.mask-lines .l>span{display:block;transform:translateY(110%);transition:transform .9s var(--ease)}
.mask-lines.in .l>span{transform:translateY(0)}
.mask-lines.in .l:nth-child(2)>span{transition-delay:.08s}
.mask-lines.in .l:nth-child(3)>span{transition-delay:.16s}

@media (prefers-reduced-motion:reduce){
  *{animation:none!important}
  [data-reveal],[data-stagger]>*,.mask-lines .l>span,.hero-title .l>span,.hero-wm .hw-line,.hero-wm .hw-img,.hero-reveal>*,.hero-bg img{opacity:1!important;transform:none!important;clip-path:none!important}
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:1080px){
  .intro-grid{grid-template-columns:1fr}
  .intro-media{aspect-ratio:16/10}
  .spk-grid{grid-template-columns:repeat(3,1fr)}
  .cta-band .wrap{grid-template-columns:1fr}
  .foot-top{grid-template-columns:1fr 1fr}
}
@media(max-width:1024px){
  .nav,.brand .brand-tag,.lang{display:none}
  .menu-toggle{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);gap:5px}
  .menu-toggle span{width:20px;height:2px;background:var(--ink);display:block;transition:.3s}
  .menu-toggle.x span:nth-child(1){transform:translateY(3.5px) rotate(45deg)}
  .menu-toggle.x span:nth-child(2){transform:translateY(-3.5px) rotate(-45deg)}
  .mobile-nav{position:fixed;inset:0;z-index:90;background:var(--bg);transform:translateY(-100%);
    transition:transform .5s var(--ease);display:flex;flex-direction:column;justify-content:center;gap:6px;padding:var(--pad)}
  .mobile-nav.open{transform:none}
  .mobile-nav a{font-family:var(--f-disp);font-weight:800;text-transform:uppercase;font-size:30px;color:var(--ink-dim);padding:8px 0}
  .mobile-nav a:hover{color:var(--orange)}
  .stats{grid-template-columns:repeat(2,1fr)}
  .topics-grid .topic{grid-column:span 6!important;min-height:240px}
  .spk-grid{grid-template-columns:repeat(2,1fr)}
  .aus-grid{grid-template-columns:1fr}
  .aus:nth-child(odd){border-right:none;padding-right:0}
  .aus:nth-child(even){padding-left:0}
  .spk-modal-card{grid-template-columns:1fr;max-height:90vh}
  .spk-modal-card .ph{height:240px}
  .foot-top{grid-template-columns:1fr}
}
@media(max-width:520px){
  .topics-grid .topic{grid-column:span 12!important}
  .spk-grid{grid-template-columns:1fr 1fr}
  .countdown{flex-wrap:wrap}
  .cd-unit{min-width:64px}
}
.mobile-nav{display:none}
@media(max-width:1024px){.mobile-nav{display:flex}}

/* ============================================================
   SUBPAGE SHELL
   ============================================================ */
.page-hero{position:relative;min-height:62svh;display:flex;flex-direction:column;justify-content:flex-end;
  padding:clamp(110px,16vh,180px) var(--pad) clamp(40px,5vw,70px);overflow:hidden;isolation:isolate}
.page-hero .duo-wrap{position:absolute;inset:0;z-index:-2}
.page-hero img{width:100%;height:100%;object-fit:cover;transform:scale(1.08);transition:transform 9s linear}
.page-hero.ready img{transform:scale(1)}
.page-hero::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(12,10,9,.6),rgba(12,10,9,.35) 45%,var(--bg) 99%),linear-gradient(90deg,rgba(12,10,9,.78),transparent 70%)}
.page-hero.light::after{background:linear-gradient(180deg,rgba(12,10,9,.08),transparent 30%,transparent 68%,var(--bg) 100%)}
.page-hero.light img{filter:url(#ceste-duotone) brightness(1.34) contrast(1.02)}
.page-hero .wrap{max-width:var(--maxw);margin:0 auto;width:100%}
.page-hero h1{font-size:clamp(44px,8vw,128px);text-transform:uppercase;line-height:.9;letter-spacing:-.02em;
  margin-top:18px}
.page-hero h1 .o{color:var(--orange)}
.page-hero .pcrumb{font-family:var(--f-cond);text-transform:uppercase;letter-spacing:.18em;font-size:12px;color:var(--ink-dim)}
.page-hero .pcrumb a:hover{color:var(--orange)}

.prose{max-width:74ch}
.prose p{color:var(--ink-dim);font-size:clamp(15px,1.15vw,17.5px);line-height:1.75;margin-bottom:1.3em}
.prose p.lead-p{color:var(--ink);font-size:clamp(19px,1.7vw,26px);line-height:1.5;font-family:var(--f-disp);font-weight:500}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,4vw,70px)}
@media(max-width:860px){.two-col{grid-template-columns:1fr}}

/* committee / list cards */
.namelist{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 40px;margin-top:20px}
.namelist li{list-style:none;padding:12px 0;border-bottom:1px solid var(--line);color:var(--ink);font-size:15px;display:flex;gap:12px;align-items:baseline}
.namelist li .mk{color:var(--orange);font-family:var(--f-cond);font-weight:700;font-size:12px}
@media(max-width:680px){.namelist{grid-template-columns:1fr}}

/* committees */
.committee{border-top:2px solid var(--orange);padding-top:24px}
.cm-title{font-family:var(--f-disp);font-weight:800;text-transform:uppercase;font-size:clamp(20px,1.9vw,28px);letter-spacing:-.01em;line-height:1}
.cm-pres{margin-top:18px;font-size:clamp(16px,1.25vw,19px);color:var(--ink);font-weight:500;font-family:var(--f-disp)}
.cm-role{display:block;font-family:var(--f-cond);text-transform:uppercase;letter-spacing:.18em;font-size:11.5px;font-weight:700;color:var(--orange);margin-bottom:4px}
.cm-lab{display:block;margin-top:24px;margin-bottom:4px;font-family:var(--f-cond);text-transform:uppercase;letter-spacing:.18em;font-size:11.5px;font-weight:700;color:var(--ink-dim)}

/* program timeline */
.day{border-top:1px solid var(--line);padding:clamp(24px,3vw,40px) 0;display:grid;grid-template-columns:240px 1fr;gap:30px}
.day .dlabel{font-family:var(--f-disp);font-weight:800;text-transform:uppercase;font-size:clamp(18px,1.5vw,24px);line-height:1.1}
.day .dlabel span{display:block;font-family:var(--f-cond);font-weight:600;font-size:13px;letter-spacing:.14em;color:var(--orange);margin-top:6px}
.events{display:flex;flex-direction:column}
.event{display:flex;gap:24px;padding:16px 0;border-bottom:1px solid var(--line-soft);align-items:baseline}
.event:last-child{border-bottom:none}
.event .tm{font-family:var(--f-cond);font-weight:700;letter-spacing:.06em;color:var(--orange);font-size:15px;min-width:120px;flex-shrink:0}
.event .ev{font-size:clamp(15px,1.2vw,18px);color:var(--ink);font-weight:500}
@media(max-width:680px){.day{grid-template-columns:1fr;gap:14px}.event{flex-direction:column;gap:4px}.event .tm{min-width:0}}

/* pricing / cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.card{background:var(--bg-2);padding:clamp(24px,2.6vw,38px)}
.card h3{font-size:22px;text-transform:uppercase;margin-bottom:10px}
.card .price{font-family:var(--f-disp);font-weight:900;font-size:clamp(34px,3.4vw,52px);color:var(--orange);line-height:1;margin:14px 0}
.card .price small{font-size:14px;color:var(--ink-dim);font-weight:600}
.card ul{list-style:none;margin-top:16px}
.card li{padding:9px 0;border-top:1px solid var(--line-soft);color:var(--ink-dim);font-size:14px;display:flex;gap:10px}
.card li::before{content:"→";color:var(--orange)}
@media(max-width:860px){.cards{grid-template-columns:1fr}}

/* info rows */
.inforow{display:flex;justify-content:space-between;gap:20px;padding:15px 0;border-bottom:1px solid var(--line);font-size:15px}
.inforow .k{font-family:var(--f-cond);text-transform:uppercase;letter-spacing:.1em;font-size:13px;color:var(--ink-dim)}
.inforow .v{color:var(--ink);font-weight:600;text-align:right}

/* gallery grid */
.gal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.gal-card{position:relative;overflow:hidden;aspect-ratio:4/3;background:var(--bg-3);display:flex;align-items:flex-end;padding:22px;isolation:isolate}
.gal-card .duo-wrap{position:absolute;inset:0;z-index:-2}
.gal-card img{transition:transform 1s var(--ease)}
.gal-card::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,transparent 40%,rgba(12,10,9,.9))}
.gal-card:hover img{transform:scale(1.06)}
.gal-card .yr{font-family:var(--f-disp);font-weight:900;font-size:clamp(26px,3vw,44px);line-height:1}
.gal-card .ct{font-family:var(--f-cond);text-transform:uppercase;letter-spacing:.1em;font-size:12px;color:var(--ink-dim);margin-top:4px}
@media(max-width:860px){.gal-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.gal-grid{grid-template-columns:1fr}}
.gal-grid.clean .gal-card::after{display:none}
.gal-grid.clean .gal-card img{filter:none}

/* gallery archive — clean images, caption below */
.gallery-archive{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.4vw,34px)}
.ga-link{display:block;color:inherit;text-decoration:none}
.ga-card{cursor:zoom-in}
.ga-ph{position:relative;overflow:hidden;aspect-ratio:3/2;background:var(--bg-3)}
.ga-ph img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.ga-card:hover .ga-ph img{transform:scale(1.045)}
.ga-cap{display:flex;align-items:baseline;gap:14px;margin-top:14px}
.ga-cap .yr{font-family:var(--f-disp);font-weight:900;font-size:clamp(22px,2vw,32px);color:var(--orange);line-height:1;letter-spacing:-.02em}
.ga-cap .yr sup{font-size:.42em;font-weight:800}
.ga-cap .ct{font-family:var(--f-cond);text-transform:uppercase;letter-spacing:.1em;font-size:12.5px;color:var(--ink-dim)}
@media(max-width:860px){.gallery-archive{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.gallery-archive{grid-template-columns:1fr}}

/* lightbox */
.lightbox{position:fixed;inset:0;z-index:300;display:none;align-items:center;justify-content:center;padding:clamp(20px,5vw,72px);background:rgba(7,4,2,.93);backdrop-filter:blur(7px)}
.lightbox.open{display:flex}
.lb-img{max-width:100%;max-height:100%;object-fit:contain;box-shadow:0 30px 90px rgba(0,0,0,.65);animation:lbin .4s var(--ease)}
@keyframes lbin{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}
.lb-close{position:absolute;top:clamp(16px,2.5vw,28px);right:clamp(16px,2.5vw,32px);width:48px;height:48px;border:1px solid var(--line);color:var(--ink);display:grid;place-items:center;font-size:17px;background:rgba(12,10,9,.5);transition:all .25s}
.lb-close:hover{background:var(--orange);border-color:var(--orange);color:#1a0c03;transform:rotate(90deg)}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:56px;height:56px;border:1px solid var(--line);color:var(--ink);display:grid;place-items:center;font-size:30px;line-height:1;background:rgba(12,10,9,.5);transition:all .25s}
.lb-nav:hover{background:var(--orange);border-color:var(--orange);color:#1a0c03}
.lb-prev{left:clamp(12px,3vw,40px)}
.lb-next{right:clamp(12px,3vw,40px)}
.lb-count{position:absolute;bottom:clamp(18px,3vw,34px);left:50%;transform:translateX(-50%);font-family:var(--f-cond);text-transform:uppercase;letter-spacing:.2em;font-size:12px;color:var(--ink-dim)}
@media(max-width:600px){.lb-nav{width:44px;height:44px;font-size:24px}}

/* contact */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,4vw,64px)}
.contact-grid.one-col{grid-template-columns:1fr;max-width:760px}
.contact-grid .map{position:relative;overflow:hidden;min-height:340px;background:var(--bg-3)}
.contact-grid .map .duo-wrap{position:absolute;inset:0}
@media(max-width:860px){.contact-grid{grid-template-columns:1fr}}

/* ============================================================
   TWEAKS PANEL
   ============================================================ */
body.no-anim [data-reveal],body.no-anim [data-stagger]>*,body.no-anim .mask-lines .l>span,
body.no-anim .hero-wm .hw-img,body.no-anim .hero-reveal>*,body.no-anim .hero-meta,body.no-anim .hero-cta{
  opacity:1!important;transform:none!important;clip-path:none!important}
body.orig-img .duo{filter:none!important}
.tweaks{position:fixed;top:0;right:0;z-index:200;width:312px;max-width:92vw;height:100vh;
  background:rgba(12,10,9,.93);backdrop-filter:blur(16px) saturate(120%);border-left:1px solid var(--line);
  display:flex;flex-direction:column;transform:translateX(102%);transition:transform .45s var(--ease);
  font-family:var(--f-body)}
.tweaks.show{transform:none}
.tweaks-head{display:flex;align-items:center;justify-content:space-between;padding:20px 22px;border-bottom:1px solid var(--line)}
.tweaks-head span{font-family:var(--f-cond);text-transform:uppercase;letter-spacing:.22em;font-weight:700;font-size:14px;color:var(--ink)}
.tweaks-head button{width:32px;height:32px;border:1px solid var(--line);display:grid;place-items:center;color:var(--ink);transition:all .25s}
.tweaks-head button:hover{background:var(--orange);border-color:var(--orange);color:#1a0c03;transform:rotate(90deg)}
.tweaks-body{padding:22px;overflow:auto;display:flex;flex-direction:column;gap:24px}
.tw-group>label{display:block;font-family:var(--f-cond);text-transform:uppercase;letter-spacing:.16em;font-size:11px;color:var(--ink-dim);margin-bottom:11px}
.tw-swatches{display:flex;gap:10px}
.tw-swatches button{width:38px;height:38px;border-radius:50%;background:var(--s);border:2px solid transparent;outline:1px solid var(--line);transition:transform .2s,border-color .2s}
.tw-swatches button:hover{transform:scale(1.1)}
.tw-swatches button.on{border-color:var(--ink);outline-color:var(--ink)}
.tw-seg{display:flex;gap:6px;flex-wrap:wrap}
.tw-seg button{flex:1;min-width:fit-content;padding:10px 12px;border:1px solid var(--line);background:transparent;color:var(--ink-dim);
  font-family:var(--f-cond);text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:600;transition:all .25s}
.tw-seg button:hover{color:var(--ink);border-color:var(--ink-dim)}
.tw-seg button.on{background:var(--orange);border-color:var(--orange);color:#1a0c03}
.tweaks-foot{padding:16px 22px;border-top:1px solid var(--line);font-family:var(--f-cond);text-transform:uppercase;letter-spacing:.1em;font-size:10.5px;color:var(--ink-faint)}

/* ============ Ported tables & forms (redesign) ============ */
.data-table{width:100%;border-collapse:collapse;font-family:var(--f-body);color:var(--ink);margin:28px 0}
.data-table th,.data-table td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.data-table thead th{font-family:var(--f-cond);text-transform:uppercase;letter-spacing:.12em;font-size:12px;color:var(--ink-dim);background:var(--bg-2)}
.data-table tbody tr:hover{background:var(--bg-2)}
.data-table .active-period,.data-table .active-price{color:var(--orange);font-weight:700}
.data-table .price-row td,.data-table .price{font-family:var(--f-disp);font-weight:800;color:var(--orange)}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
@media(max-width:720px){.data-table.responsive thead{display:none}
  .data-table.responsive tr{display:block;border:1px solid var(--line);margin-bottom:14px;padding:10px}
  .data-table.responsive td{display:flex;justify-content:space-between;border:0;padding:8px 4px}
  .data-table.responsive td::before{content:attr(data-label);color:var(--ink-dim);font-family:var(--f-cond);text-transform:uppercase;font-size:11px;letter-spacing:.1em}}

.form-card{background:var(--bg-2);border:1px solid var(--line);padding:clamp(20px,4vw,40px);margin:28px 0}
.form-row{display:grid;gap:18px;grid-template-columns:1fr 1fr}
@media(max-width:640px){.form-row{grid-template-columns:1fr}}
.form-field{display:flex;flex-direction:column;gap:7px;margin-bottom:16px}
.form-field label{font-family:var(--f-cond);text-transform:uppercase;letter-spacing:.1em;font-size:12px;color:var(--ink-dim)}
.form-field input,.form-field select,.form-field textarea{background:var(--bg-3);border:1px solid var(--line);color:var(--ink);padding:12px 14px;font-family:var(--f-body);font-size:15px;border-radius:0}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:none;border-color:var(--orange)}
.form-field input[type=file]{padding:10px}
.form-note{color:var(--ink-faint);font-size:13px;margin-top:6px}
.form-msg{padding:12px 16px;margin:14px 0;border:1px solid var(--line)}
.form-msg.error{border-color:#c0392b;color:#e88}
.form-msg.success{border-color:var(--orange);color:var(--orange)}
.pkg-radio{display:flex;gap:12px;align-items:flex-start;padding:14px;border:1px solid var(--line);margin-bottom:10px;cursor:pointer}
.pkg-radio:hover{border-color:var(--orange)}
.pkg-radio input{margin-top:4px}

/* ============ Per-year photo gallery grid (full-color originals, no duotone) ============ */
.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:860px){.photo-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.photo-grid{grid-template-columns:1fr}}
.photo-grid figure{margin:0;aspect-ratio:4/3;overflow:hidden;background:var(--bg-3);cursor:zoom-in}
.photo-grid img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s var(--ease)}
.photo-grid figure:hover img{transform:scale(1.04)}
