/* ============ HORIZONTAL ENGINE ============ */
.h-scroll{position:relative;overflow:hidden}
.h-track{display:flex;flex-wrap:nowrap;height:100vh;will-change:transform;transition:transform .75s cubic-bezier(.16,1,.3,1)}
.panel{position:relative;flex:0 0 auto;width:var(--gl-vw,100vw);height:100vh;overflow:hidden}
.panel--wide{width:auto;min-width:var(--gl-vw,100vw)}
.panel--dark{background:var(--navy-800)}
.panel--dark-alt{background:var(--navy-700)}
.panel--light{background:var(--paper);color:var(--ink)}
.panel__inner{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;justify-content:center;
  padding:var(--s12) var(--s10) var(--s12) calc(var(--s16) + var(--s10))}

/* ============ PRELOADER (fullscreen) ============ */
#preloader{position:fixed;inset:0;z-index:100;background:var(--navy-900);display:flex;align-items:center;justify-content:center}
#preloader video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
#preloader::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,transparent 45%,rgba(8,21,43,.6) 100%)}
#preloader.is-hidden{opacity:0;visibility:hidden;transition:opacity .8s var(--ease),visibility .8s}
html.skip-preloader #preloader{display:none}

/* ============ LEFT ACCENT BAR + RAIL ============ */
.edge{position:fixed;top:0;left:0;width:5px;height:100vh;background:var(--gold-400);z-index:60}
.rail{position:fixed;top:0;left:5px;z-index:50;width:calc(var(--s16) - 5px);height:100vh;background:var(--navy-900);
  border-right:var(--stroke) solid rgba(255,255,255,.08);
  display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:var(--s5) 0}
.rail__logo{width:46px;height:46px;object-fit:contain}
.rail__menu{writing-mode:vertical-rl;transform:rotate(180deg);font-size:var(--fs-nav);font-weight:700;
  letter-spacing:.34em;text-transform:uppercase;color:var(--snow);transition:color var(--dur) var(--ease)}
.rail__menu:hover{color:var(--gold-400)}
.rail__search{width:46px;height:46px;border:var(--stroke) solid rgba(255,255,255,.25);border-radius:50%;
  display:flex;align-items:center;justify-content:center;color:var(--snow-muted);font-size:var(--fs-md);
  transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease)}
.rail__search:hover{border-color:var(--gold-400);color:var(--gold-400)}

/* ============ TOP BAR ============ */
.topbar{position:fixed;top:0;left:var(--s16);right:0;z-index:45;height:88px;
  display:flex;align-items:center;justify-content:flex-end;gap:var(--s4);padding:0 var(--s10);
  font-size:var(--fs-nav);font-weight:500;color:var(--snow);text-shadow:0 1px 12px rgba(0,0,0,.5)}
.topbar a{color:inherit;transition:color var(--dur) var(--ease)}
.topbar a:hover{color:var(--gold-400)}
.topbar__ico,.topbar__lang{width:44px;height:44px;border:var(--stroke) solid rgba(255,255,255,.55);border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-size:var(--fs-cap);font-weight:600}
.topbar__lang-wrap{position:relative}
.topbar__lang{cursor:pointer}
.topbar__lang-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:44px;list-style:none;margin:0;padding:8px;
  background:rgba(8,21,43,.96);border:var(--stroke) solid rgba(255,255,255,.14);backdrop-filter:blur(10px);
  opacity:0;visibility:hidden;pointer-events:none;z-index:50;
  transition:opacity .35s var(--ease),visibility .35s}
.topbar__lang-wrap.is-open .topbar__lang-menu{opacity:1;visibility:visible;pointer-events:auto}
.topbar__lang-menu li + li{margin-top:6px}
.topbar__lang-menu a{display:flex;align-items:center;justify-content:center;width:44px;height:44px;
  border:var(--stroke) solid rgba(255,255,255,.55);border-radius:50%;font-size:var(--fs-cap);font-weight:600;
  color:inherit;transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.topbar__lang-menu a:hover{color:var(--gold-400);border-color:var(--gold-400)}
.topbar__lang-menu a.is-active{color:var(--gold-400);border-color:var(--gold-400);pointer-events:none}

/* ============ HERO ============ */
.hero__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;filter:grayscale(1) contrast(1.05)}
.hero__overlay{position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg,rgba(6,17,35,.95) 0%,rgba(6,17,35,.72) 40%,rgba(6,17,35,.3) 74%,rgba(6,17,35,.55) 100%)}
.hero .panel__inner{justify-content:space-between;padding-top:120px;padding-bottom:104px}
.hero__pag{position:absolute;top:112px;right:var(--s10);display:flex;align-items:center;gap:var(--s2);z-index:3}
.hero__pag b{font-size:var(--fs-2xl);font-weight:800;color:var(--gold-400)}
.hero__pag i{width:80px;height:1px;background:rgba(255,255,255,.35)}
.hero__top{max-width:46ch}
.hero__eyebrow{display:block;font-size:var(--fs-nav);font-weight:600;letter-spacing:.36em;text-transform:uppercase;color:var(--snow-muted)}
.hero__link{display:inline-flex;align-items:center;gap:8px;margin:var(--s4) 0 var(--s5);font-size:var(--fs-cap);
  font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-400)}
.hero__stat{position:relative;padding:var(--s3) var(--s4);max-width:38ch}
.hero__stat::before,.hero__stat::after{content:"";position:absolute;width:22px;height:22px;border:2px solid var(--gold-400)}
.hero__stat::before{top:0;left:0;border-right:0;border-bottom:0}
.hero__stat::after{bottom:0;right:0;border-left:0;border-top:0}
.hero__stat b{display:block;font-size:var(--fs-3xl);font-weight:800;color:var(--gold-400);line-height:1;margin-bottom:10px;white-space:nowrap}
.hero__stat > span{font-size:var(--fs-base);color:var(--snow-muted);max-width:32ch;display:block}
.hero__title{font-size:clamp(34px,3.9vw,62px);font-weight:300;line-height:1.05;letter-spacing:-.015em;max-width:20ch}
.hero__foot{position:absolute;right:var(--s10);bottom:var(--s8);z-index:3;display:flex;flex-direction:column;align-items:flex-end;gap:var(--s5);max-width:40ch}
.hero__cta{display:flex;align-items:center;gap:var(--s2)}
.hero__bubble{width:60px;height:60px;border-radius:50%;background:var(--gold-400);color:var(--navy-900);
  display:flex;align-items:center;justify-content:center;font-size:var(--fs-lg);
  transition:background var(--dur) var(--ease),transform var(--dur) var(--ease)}
a.hero__bubble:hover{background:var(--gold-300);transform:scale(1.05)}

/* Shared utils */
.u-eyebrow{font-size:var(--fs-nav);font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-400)}
.u-muted{color:var(--snow-muted)}

/* ---- Frame contrast on light panels ---- */
body.on-light .topbar{color:var(--ink);text-shadow:none}
body.on-light .topbar a:hover{color:var(--gold-500)}
body.on-light .topbar__ico,body.on-light .topbar__lang,body.on-light .topbar__lang-menu a{border-color:rgba(10,25,48,.32)}
body.on-light .topbar__lang-menu{background:rgba(245,242,234,.98);border-color:rgba(10,25,48,.12)}
body.on-light .topbar__lang-menu a:hover,body.on-light .topbar__lang-menu a.is-active{color:var(--gold-500);border-color:var(--gold-500)}
body.on-light .rail{border-right-color:rgba(10,25,48,.08)}
