/* =========================================================================
   AEGIS CONSORTIUM GLOBAL — Base layer
   Tokens · Reset · Typography · Buttons · Header · Footer · Forms
   Palette sampled directly from the brand shield (gold #D9A83F / silver
   #C6CBD2 on a near-black navy #02080F) so the site and the logo share
   one continuous surface.
   ========================================================================= */

/* -------------------------------------------------- 1. Design tokens */
:root{
  /* Surfaces — darkest to lightest */
  --void:      #02080f;
  --base:      #050d18;
  --raised:    #0a1524;
  --card:      #0d1c2e;
  --card-hi:   #12253b;

  /* Metal */
  --gold-deep: #8a6519;
  --gold:      #d9a83f;
  --gold-lit:  #f2ca6b;
  --gold-peak: #ffefa3;
  --silver:    #c6cbd2;
  --silver-dim:#8b95a3;

  --metal: linear-gradient(122deg,#8a6519 0%,#d9a83f 18%,#f7dc91 40%,#c9962e 58%,#f2ca6b 78%,#a2761f 100%);
  --metal-soft: linear-gradient(122deg,#c9962e 0%,#f2ca6b 45%,#a2761f 100%);
  --steel: linear-gradient(122deg,#7d8794 0%,#e8ebef 42%,#9aa6b6 70%,#f4f6f9 100%);

  /* Type */
  /* Silver rather than white. Pure #fff on a near-black ground glares and
     reads as "web page"; these are pulled toward the silver in the shield,
     which is what makes the whole surface feel like one material.
     Every step still clears WCAG AA (4.5:1) on every background we use. */
  --ink:       #d7dee8;  /* 14.9 : 1 — headings, emphasis */
  --ink-soft:  #b6c0cd;  /* 10.9 : 1 — body copy */
  --ink-mute:  #909cab;  /*  7.2 : 1 — secondary copy */
  --ink-faint: #7b8798;  /*  5.5 : 1 — meta, captions */
  --ink-bright:#e8ebef;  /* 16.4 : 1 — hover only, still not pure white */

  /* Lines & glass */
  --line:      rgba(198,203,210,.13);
  --line-soft: rgba(198,203,210,.07);
  --line-gold: rgba(217,168,63,.30);
  --glass:     rgba(255,255,255,.028);
  --glass-hi:  rgba(255,255,255,.055);

  /* Elevation */
  --shadow-sm: 0 2px 10px rgba(0,0,0,.4);
  --shadow-md: 0 18px 50px -18px rgba(0,0,0,.85);
  --shadow-lg: 0 44px 110px -40px rgba(0,0,0,.95);
  --glow-gold: 0 0 60px -12px rgba(217,168,63,.42);

  /* Families */
  --sans: "Inter","Inter Tight",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --serif:"Instrument Serif",Georgia,"Times New Roman",serif;

  /* Fluid type scale — one system, no ad-hoc sizes */
  --t-eyebrow: .72rem;
  --t-micro:   .8rem;
  --t-small:   .92rem;
  --t-body:    clamp(1rem, .96rem + .2vw, 1.09rem);
  --t-lead:    clamp(1.09rem, 1rem + .45vw, 1.32rem);
  --t-h4:      clamp(1.12rem, 1.04rem + .4vw, 1.4rem);
  --t-h3:      clamp(1.35rem, 1.18rem + .75vw, 1.95rem);
  --t-h2:      clamp(2.1rem, 1.5rem + 2.7vw, 4.15rem);
  --t-h1:      clamp(2.7rem, 1.6rem + 4.9vw, 6.5rem);
  --t-mega:    clamp(3.4rem, 1.3rem + 9vw, 11rem);

  /* Spacing rhythm — 4px base, used everywhere */
  --s1:.25rem; --s2:.5rem;  --s3:.75rem; --s4:1rem;   --s5:1.5rem;
  --s6:2rem;   --s7:3rem;   --s8:4rem;   --s9:6rem;   --s10:8rem;
  --section-y: clamp(5rem, 3rem + 9vw, 11rem);
  --gutter:    clamp(1.15rem, .6rem + 2.4vw, 3.5rem);
  --maxw:      1320px;
  --maxw-wide: 1560px;
  --maxw-text: 62ch;

  --r-sm:8px; --r-md:14px; --r-lg:22px; --r-xl:32px; --r-pill:999px;

  --ease:      cubic-bezier(.22,1,.36,1);
  --ease-soft: cubic-bezier(.4,0,.2,1);
  --dur:       .6s;

  --header-h: 78px;
}

/* -------------------------------------------------- 2. Reset */
*,*::before,*::after{box-sizing:border-box}
*{margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 24px)}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

body{
  font-family:var(--sans);
  font-size:var(--t-body);
  line-height:1.68;
  color:var(--ink-soft);
  background:var(--void);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
  font-feature-settings:"cv11","ss01";
}
body.is-locked{overflow:hidden}

img,svg,video,canvas{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit;background:none;border:none}
button{cursor:pointer}
ul,ol{list-style:none}
table{border-collapse:collapse;width:100%}
::selection{background:rgba(217,168,63,.32);color:var(--ink-bright)}

:focus-visible{outline:2px solid var(--gold-lit);outline-offset:3px;border-radius:4px}
:focus:not(:focus-visible){outline:none}

.skip-link{
  position:absolute;left:var(--s4);top:-100px;z-index:9999;
  background:var(--gold);color:#0b0f16;padding:.7rem 1.2rem;border-radius:var(--r-sm);
  font-weight:600;transition:top .25s var(--ease);
}
.skip-link:focus{top:var(--s4)}
.sr-only{
  position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}

/* -------------------------------------------------- 3. Typography */
h1,h2,h3,h4,h5,h6{
  font-family:var(--sans);
  color:var(--ink);
  font-weight:600;
  line-height:1.06;
  letter-spacing:-.032em;
  text-wrap:balance;
}
h1{font-size:var(--t-h1)}
h2{font-size:var(--t-h2)}
h3{font-size:var(--t-h3);line-height:1.18;letter-spacing:-.022em}
h4{font-size:var(--t-h4);line-height:1.3;letter-spacing:-.015em}
p{text-wrap:pretty}
p + p{margin-top:var(--s4)}
strong,b{color:var(--ink);font-weight:600}

/* Serif italic accent — used on one or two words per headline, never more */
.accent{
  font-family:var(--serif);
  font-style:italic;
  font-weight:400;
  letter-spacing:-.01em;
  background:var(--metal);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  padding-right:.06em;
}
.gold{
  background:var(--metal);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}

.eyebrow{
  display:inline-flex;align-items:center;gap:.62rem;
  font-size:var(--t-eyebrow);font-weight:600;
  letter-spacing:.22em;text-transform:uppercase;
  color:var(--gold-lit);
  margin-bottom:var(--s5);
}
.eyebrow::before{
  content:"";width:32px;height:1px;flex:none;
  background:linear-gradient(90deg,transparent,var(--gold));
}
.eyebrow--center{justify-content:center}
.eyebrow--center::after{
  content:"";width:32px;height:1px;flex:none;
  background:linear-gradient(270deg,transparent,var(--gold));
}

.lead{
  font-size:var(--t-lead);
  line-height:1.6;
  color:var(--ink-soft);
  max-width:var(--maxw-text);
}
.muted{color:var(--ink-mute)}
.small{font-size:var(--t-small)}
.mono-num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}

/* -------------------------------------------------- 4. Layout */
.wrap{
  width:100%;max-width:var(--maxw);
  margin-inline:auto;
  padding-inline:var(--gutter);
}
.wrap--narrow{max-width:900px}
.wrap--wide{max-width:1560px}
.section{position:relative;padding-block:var(--section-y)}
.section--tight{padding-block:calc(var(--section-y) * .62)}
.section--void{background:var(--void)}
.section--base{background:var(--base)}
.section--raised{background:var(--raised)}

/* Hairline separators that read as intentional, not accidental */
.rule{height:1px;border:0;background:linear-gradient(90deg,transparent,var(--line),transparent)}

.sec-head{max-width:900px;margin-bottom:clamp(2.6rem,1.6rem+3vw,5rem)}
.sec-head--center{margin-inline:auto;text-align:center}
.sec-head h2{margin-bottom:var(--s5)}
.sec-head .lead{margin-inline:0}
.sec-head--center .lead{margin-inline:auto}

.sec-head--split{
  display:grid;gap:var(--s6);align-items:end;
  grid-template-columns:minmax(0,1fr);
  max-width:none;
}
@media (min-width:900px){
  .sec-head--split{grid-template-columns:minmax(0,1.35fr) minmax(0,.85fr);gap:var(--s8)}
  .sec-head--split .sec-head__aside{padding-bottom:.4rem}
}

.grid{display:grid;gap:var(--s5)}
@media (min-width:700px){ .grid--2{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (min-width:700px){ .grid--3{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (min-width:1040px){ .grid--3{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media (min-width:700px){ .grid--4{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (min-width:1040px){ .grid--4{grid-template-columns:repeat(4,minmax(0,1fr))} }

/* -------------------------------------------------- 5. Ambient backdrop */
.aurora{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.aurora::before,.aurora::after{
  content:"";position:absolute;border-radius:50%;filter:blur(90px);opacity:.5;
}
.aurora::before{
  width:60vw;height:60vw;max-width:820px;max-height:820px;
  top:-22%;right:-14%;
  background:radial-gradient(circle,rgba(217,168,63,.16),transparent 66%);
}
.aurora::after{
  width:52vw;height:52vw;max-width:700px;max-height:700px;
  bottom:-24%;left:-16%;
  background:radial-gradient(circle,rgba(120,150,200,.12),transparent 66%);
}
.grid-lines{
  position:absolute;inset:0;pointer-events:none;z-index:0;
  background-image:
    linear-gradient(to right,var(--line-soft) 1px,transparent 1px),
    linear-gradient(to bottom,var(--line-soft) 1px,transparent 1px);
  background-size:clamp(60px,7vw,110px) clamp(60px,7vw,110px);
  mask-image:radial-gradient(ellipse 90% 70% at 50% 40%,#000 30%,transparent 78%);
  -webkit-mask-image:radial-gradient(ellipse 90% 70% at 50% 40%,#000 30%,transparent 78%);
  opacity:.7;
}
.noise{
  position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.032;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  mix-blend-mode:overlay;
}
.section > .wrap{position:relative;z-index:2}

/* -------------------------------------------------- 6. Buttons */
.btn{
  --btn-bg:transparent;
  position:relative;display:inline-flex;align-items:center;justify-content:center;
  gap:.6rem;
  padding:1rem 1.9rem;
  border-radius:var(--r-pill);
  font-size:var(--t-small);font-weight:600;letter-spacing:.01em;
  line-height:1;white-space:nowrap;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease),background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease);
  will-change:transform;
  isolation:isolate;
}
.btn svg{width:1em;height:1em;flex:none;transition:transform .45s var(--ease)}
.btn:hover svg{transform:translateX(4px)}

.btn--gold{
  background:var(--metal);
  background-size:180% 100%;
  color:#0b0f16;
  box-shadow:0 12px 34px -14px rgba(217,168,63,.7);
  font-weight:700;
}
.btn--gold:hover{background-position:100% 0;box-shadow:0 20px 48px -14px rgba(217,168,63,.85);transform:translateY(-2px)}

.btn--ghost{
  border:1px solid var(--line);
  background:var(--glass);
  color:var(--ink);
  backdrop-filter:blur(10px);
}
.btn--ghost:hover{border-color:var(--line-gold);background:var(--glass-hi);color:var(--ink-bright);transform:translateY(-2px)}

.btn--plain{padding-inline:0;color:var(--gold-lit);font-weight:600}
.btn--plain:hover{color:var(--gold-peak)}

.btn--sm{padding:.72rem 1.35rem;font-size:var(--t-micro)}
.btn--lg{padding:1.15rem 2.3rem;font-size:1rem}
.btn--block{display:flex;width:100%}

.btn-row{display:flex;flex-wrap:wrap;gap:var(--s3) var(--s4);align-items:center}

/* Underline-on-hover text link */
.tlink{
  position:relative;color:var(--gold-lit);font-weight:600;
  background-image:linear-gradient(var(--gold),var(--gold));
  background-size:0% 1px;background-position:0 100%;background-repeat:no-repeat;
  transition:background-size .45s var(--ease),color .3s;
  padding-bottom:2px;
}
.tlink:hover{background-size:100% 1px;color:var(--gold-peak)}

/* -------------------------------------------------- 7. Site header */
/* Always visible, at every scroll position. It never hides on scroll-down:
   the primary navigation and the booking button stay one click away. */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:600;
  height:var(--header-h);
  display:flex;align-items:center;
  transition:background .45s var(--ease),backdrop-filter .45s var(--ease),
             border-color .45s var(--ease),height .45s var(--ease),box-shadow .45s var(--ease);
  border-bottom:1px solid transparent;
}
.site-header.is-stuck{
  height:66px;
  background:rgba(2,8,15,.86);
  backdrop-filter:blur(20px) saturate(140%);
  -webkit-backdrop-filter:blur(20px) saturate(140%);
  border-bottom-color:var(--line-soft);
  box-shadow:0 10px 34px -22px rgba(0,0,0,.9);
}
/* Fallback for browsers without backdrop-filter, so the bar never becomes
   an unreadable overlay on top of a bright card. */
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .site-header.is-stuck{background:rgba(2,8,15,.97)}
}
.site-header__inner{
  width:100%;max-width:var(--maxw-wide,1560px);
  margin-inline:auto;padding-inline:var(--gutter);
  display:flex;align-items:center;justify-content:space-between;gap:var(--s5);
}

.brand{display:flex;align-items:center;gap:.72rem;flex:none}
.brand__mark{
  width:auto;height:38px;
  filter:drop-shadow(0 2px 12px rgba(217,168,63,.35));
  transition:height .45s var(--ease),transform .6s var(--ease);
}
.is-stuck .brand__mark{height:32px}
.brand:hover .brand__mark{transform:scale(1.05)}
.brand__text{display:flex;flex-direction:column;line-height:1.05}
.brand__name{
  font-size:1.02rem;font-weight:700;letter-spacing:.17em;text-transform:uppercase;
  background:var(--metal);-webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}
.brand__sub{
  font-size:.56rem;letter-spacing:.34em;text-transform:uppercase;
  color:var(--silver-dim);margin-top:3px;
}
@media (max-width:420px){ .brand__text{display:none} }

/* Desktop nav */
.nav{display:none}
@media (min-width:1080px){
  .nav{display:flex;align-items:center;gap:.15rem}
}
.nav a{
  position:relative;display:inline-flex;align-items:center;gap:.35rem;
  padding:.62rem .95rem;border-radius:var(--r-pill);
  font-size:var(--t-small);font-weight:500;color:var(--ink-soft);
  transition:color .3s var(--ease),background .3s var(--ease);
}
.nav a::after{
  content:"";position:absolute;left:50%;bottom:.34rem;translate:-50% 0;
  width:0;height:1px;background:var(--metal-soft);
  transition:width .45s var(--ease);
}
.nav a:hover,.nav .current-menu-item > a,.nav a[aria-current="page"],.nav a.is-current{color:var(--ink-bright)}
.nav a:hover::after,.nav .current-menu-item > a::after,.nav a.is-current::after{width:calc(100% - 1.9rem)}
/* The section you are actually looking at gets the gold marker. */
.nav a.is-current{background:rgba(217,168,63,.07)}
.nav a.is-current::after{background:var(--metal)}

.nav li{position:relative}
.nav .sub-menu{
  position:absolute;top:calc(100% + 12px);left:50%;translate:-50% 0;
  min-width:290px;padding:.6rem;
  background:rgba(10,21,36,.96);
  backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);
  border:1px solid var(--line);border-radius:var(--r-lg);
  box-shadow:var(--shadow-lg);
  opacity:0;visibility:hidden;transform:translateY(10px);
  transition:opacity .35s var(--ease),transform .35s var(--ease),visibility .35s;
  z-index:20;
}
.nav li:hover > .sub-menu,.nav li:focus-within > .sub-menu{opacity:1;visibility:visible;transform:translateY(0)}
.nav .sub-menu a{
  display:block;padding:.7rem .9rem;border-radius:var(--r-sm);width:100%;
  font-size:var(--t-small);
}
.nav .sub-menu a::after{display:none}
.nav .sub-menu a:hover{background:var(--glass-hi);color:var(--gold-lit)}
.menu-item-has-children > a::before{
  content:"";width:5px;height:5px;order:2;flex:none;
  border-right:1.4px solid currentColor;border-bottom:1.4px solid currentColor;
  transform:rotate(45deg) translateY(-1px);opacity:.6;
}

.header__cta{display:none}
@media (min-width:760px){ .header__cta{display:inline-flex} }

/* Burger */
.burger{
  display:flex;flex-direction:column;justify-content:center;gap:5px;
  width:44px;height:44px;padding:0 10px;flex:none;
  border:1px solid var(--line);border-radius:var(--r-pill);
  background:var(--glass);
  transition:border-color .3s,background .3s;
}
.burger:hover{border-color:var(--line-gold)}
@media (min-width:1080px){ .burger{display:none} }
.burger span{
  display:block;height:1.5px;width:100%;background:var(--ink);border-radius:2px;
  transition:transform .45s var(--ease),opacity .3s var(--ease),width .45s var(--ease);
}
.burger span:nth-child(2){width:64%;margin-left:auto}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0;width:100%}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

/* Mobile drawer */
.drawer{
  position:fixed;inset:0;z-index:590;
  background:linear-gradient(180deg,rgba(2,8,15,.985),rgba(5,13,24,.985));
  backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
  padding:calc(var(--header-h) + 2rem) var(--gutter) 3rem;
  overflow-y:auto;overscroll-behavior:contain;
  opacity:0;visibility:hidden;
  clip-path:circle(0% at calc(100% - 46px) 38px);
  transition:clip-path .7s var(--ease),opacity .4s var(--ease),visibility .7s;
}
.drawer.is-open{opacity:1;visibility:visible;clip-path:circle(150% at calc(100% - 46px) 38px)}
@media (min-width:1080px){ .drawer{display:none} }
.drawer ul{display:flex;flex-direction:column}
.drawer > ul > li{border-bottom:1px solid var(--line-soft)}
.drawer > ul > li > a{
  display:block;padding:1.05rem 0;
  font-size:clamp(1.4rem,5.5vw,1.9rem);font-weight:600;letter-spacing:-.025em;
  color:var(--ink);
  opacity:0;transform:translateY(22px);
}
.drawer.is-open > ul > li > a{
  animation:drawerIn .6s var(--ease) forwards;
  animation-delay:calc(var(--i,0) * 60ms + 140ms);
}
@keyframes drawerIn{to{opacity:1;transform:translateY(0)}}
.drawer .sub-menu{padding:0 0 1rem .2rem}
.drawer .sub-menu a{
  display:block;padding:.5rem 0;font-size:var(--t-small);color:var(--ink-mute);
}
.drawer .sub-menu a:hover{color:var(--gold-lit)}
.drawer a.is-current{color:var(--gold-lit)}
.drawer__foot{margin-top:2.4rem;display:grid;gap:1rem}
.drawer__meta{font-size:var(--t-small);color:var(--ink-mute);display:grid;gap:.4rem}
.drawer__meta a:hover{color:var(--gold-lit)}

/* Scroll progress */
.progress{
  position:fixed;top:0;left:0;height:2px;width:100%;z-index:700;
  transform-origin:0 50%;transform:scaleX(0);
  background:var(--metal);
  box-shadow:0 0 14px rgba(217,168,63,.6);
  pointer-events:none;
}

/* -------------------------------------------------- 8. Preloader */
.preloader{
  position:fixed;inset:0;z-index:9000;
  display:grid;place-items:center;
  background:var(--void);
  transition:opacity .8s var(--ease),visibility .8s;
}
.preloader.is-done{opacity:0;visibility:hidden;pointer-events:none}
/* Already seen this session: never render it at all, so navigation is instant. */
.aegis-intro-done .preloader{display:none!important}
.preloader__stage{position:relative;display:grid;place-items:center;gap:1.6rem;text-align:center;padding:var(--s5)}
.preloader__halo{
  position:absolute;top:38%;left:50%;translate:-50% -50%;
  width:min(78vw,540px);aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,rgba(217,168,63,.20),transparent 62%);
  filter:blur(38px);opacity:0;
  animation:haloIn 2.6s var(--ease) forwards .25s;
}
@keyframes haloIn{0%{opacity:0;scale:.6}55%{opacity:1;scale:1}100%{opacity:.72;scale:1.06}}

.preloader__ring{
  position:absolute;top:38%;left:50%;translate:-50% -50%;
  width:min(62vw,376px);aspect-ratio:1;border-radius:50%;
  border:1px solid rgba(217,168,63,.2);
  opacity:0;animation:ringIn 2.4s var(--ease) forwards .5s;
}
.preloader__ring::after{
  content:"";position:absolute;inset:-1px;border-radius:50%;
  border:1px solid transparent;border-top-color:var(--gold-lit);
  animation:spin 1.5s linear infinite;
}
@keyframes ringIn{0%{opacity:0;scale:.82;rotate:-30deg}100%{opacity:1;scale:1;rotate:0deg}}
@keyframes spin{to{rotate:360deg}}

.preloader__logo{
  position:relative;width:min(46vw,220px);
  opacity:0;
  filter:drop-shadow(0 12px 44px rgba(217,168,63,.4));
  animation:markIn 1.5s var(--ease) forwards .2s;
}
@keyframes markIn{
  0%{opacity:0;transform:translateY(26px) scale(.72);filter:blur(14px) drop-shadow(0 0 0 rgba(217,168,63,0))}
  60%{opacity:1;filter:blur(0) drop-shadow(0 12px 44px rgba(217,168,63,.5))}
  100%{opacity:1;transform:translateY(0) scale(1);filter:blur(0) drop-shadow(0 12px 44px rgba(217,168,63,.4))}
}
/* Sheen sweeping across the shield */
.preloader__sheen{
  position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;
  background:linear-gradient(105deg,transparent 38%,rgba(255,255,255,.55) 50%,transparent 62%);
  mix-blend-mode:overlay;
  transform:translateX(-130%);
  animation:sheen 1.5s var(--ease) 1.05s 2;
}
@keyframes sheen{to{transform:translateX(130%)}}

.preloader__word{
  display:flex;gap:.42em;justify-content:center;
  font-size:clamp(1.5rem,7vw,2.6rem);font-weight:700;
  letter-spacing:.3em;text-indent:.3em;
}
.preloader__word span{
  display:inline-block;opacity:0;transform:translateY(24px) rotateX(-60deg);
  background:var(--metal);-webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  animation:letterIn .85s var(--ease) forwards;
  animation-delay:calc(.9s + var(--i,0) * 75ms);
}
@keyframes letterIn{to{opacity:1;transform:translateY(0) rotateX(0)}}

.preloader__tag{
  font-size:.68rem;letter-spacing:.42em;text-transform:uppercase;color:var(--silver-dim);
  opacity:0;animation:fadeUp .9s var(--ease) forwards 1.6s;
}
.preloader__bar{
  width:min(58vw,260px);height:1px;background:var(--line);
  position:relative;overflow:hidden;border-radius:2px;
  opacity:0;animation:fadeUp .6s var(--ease) forwards 1.15s;
}
.preloader__bar i{
  position:absolute;inset:0;transform-origin:0 50%;transform:scaleX(0);
  background:var(--metal);
  transition:transform .45s var(--ease);
}
.preloader__pct{
  font-size:.68rem;letter-spacing:.3em;color:var(--ink-faint);
  font-variant-numeric:tabular-nums;
  opacity:0;animation:fadeUp .6s var(--ease) forwards 1.25s;
}
@keyframes fadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}

/* Curtain that lifts to reveal the page */
.preloader__curtain{
  position:absolute;inset:0;background:var(--void);
  transform-origin:50% 100%;
}
.preloader.is-lifting .preloader__curtain{
  transform:scaleY(0);
  transition:transform 1s var(--ease);
}

/* -------------------------------------------------- 9. Cursor glow (pointer devices only) */
.cursor-glow{
  position:fixed;top:0;left:0;width:460px;height:460px;
  margin:-230px 0 0 -230px;border-radius:50%;
  background:radial-gradient(circle,rgba(217,168,63,.10),transparent 62%);
  pointer-events:none;z-index:2;opacity:0;
  transition:opacity .6s var(--ease);
  will-change:transform;
}
@media (hover:hover) and (pointer:fine){ .cursor-glow.is-on{opacity:1} }

/* -------------------------------------------------- 10. Forms */
.field{display:grid;gap:.5rem;position:relative}
.field label{
  font-size:var(--t-eyebrow);font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ink-mute);
}
.field .req{color:var(--gold)}
.field input,.field select,.field textarea{
  width:100%;
  padding:.92rem 1.05rem;
  background:rgba(255,255,255,.035);
  border:1px solid var(--line);
  border-radius:var(--r-md);
  color:var(--ink);
  font-size:var(--t-small);
  transition:border-color .3s var(--ease),background .3s var(--ease),box-shadow .3s var(--ease);
  appearance:none;
}
.field textarea{min-height:140px;resize:vertical;line-height:1.6}
.field select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%237f8b9b' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 1.05rem center;
  padding-right:2.6rem;cursor:pointer;
}
.field select option{background:#0a1524;color:var(--ink)}
.field input::placeholder,.field textarea::placeholder{color:var(--ink-faint)}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--line-gold);
  background:rgba(255,255,255,.055);
  box-shadow:0 0 0 3px rgba(217,168,63,.10);
}
.field.has-error input,.field.has-error select,.field.has-error textarea{
  border-color:rgba(230,110,110,.55);box-shadow:0 0 0 3px rgba(230,110,110,.09);
}
.field__err{font-size:var(--t-micro);color:#e88c8c;display:none}
.field.has-error .field__err{display:block}
.hp-field{position:absolute!important;left:-9999px;opacity:0;height:0;width:0;overflow:hidden}

.form-note{font-size:var(--t-micro);color:var(--ink-faint);line-height:1.55}
.form-status{
  display:none;padding:.9rem 1.1rem;border-radius:var(--r-md);
  font-size:var(--t-small);border:1px solid transparent;
}
.form-status.is-ok{display:block;border-color:rgba(217,168,63,.35);background:rgba(217,168,63,.08);color:var(--gold-lit)}
.form-status.is-bad{display:block;border-color:rgba(230,110,110,.4);background:rgba(230,110,110,.08);color:#e88c8c}

.btn.is-busy{pointer-events:none;opacity:.72}
.btn.is-busy::after{
  content:"";width:14px;height:14px;border-radius:50%;
  border:2px solid currentColor;border-top-color:transparent;
  animation:spin .7s linear infinite;
}

/* -------------------------------------------------- 11. Footer */
.site-footer{
  position:relative;
  background:var(--void);
  border-top:1px solid var(--line-soft);
  padding-top:clamp(3.5rem,2rem+5vw,6rem);
  overflow:hidden;
}
.site-footer::before{
  content:"";position:absolute;top:-1px;left:50%;translate:-50% 0;
  width:min(760px,88%);height:1px;
  background:linear-gradient(90deg,transparent,var(--line-gold),transparent);
}
.footer__grid{
  display:grid;gap:var(--s7);
  grid-template-columns:minmax(0,1fr);
  padding-bottom:var(--s7);
}
@media (min-width:760px){ .footer__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s6) var(--s7)} }
@media (min-width:1080px){ .footer__grid{grid-template-columns:1.6fr .9fr .9fr 1.2fr} }
.footer__about{max-width:34ch;color:var(--ink-mute);font-size:var(--t-small);margin-top:var(--s4)}
.footer h4,.footer .footer__h{
  font-size:var(--t-eyebrow);letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold-lit);margin-bottom:var(--s4);font-weight:600;
}
.footer__list{display:grid;gap:.62rem}
.footer__list a,.footer__contact a,.footer__contact span{
  font-size:var(--t-small);color:var(--ink-mute);
  transition:color .3s var(--ease),transform .3s var(--ease);
  display:inline-block;
}
.footer__list a:hover,.footer__contact a:hover{color:var(--gold-lit);transform:translateX(3px)}
.footer__contact{display:grid;gap:.7rem}
.footer__contact strong{display:block;color:var(--ink);font-size:var(--t-small);margin-bottom:.15rem;font-weight:600}
.socials{display:flex;gap:.6rem;margin-top:var(--s4)}
.socials a{
  width:38px;height:38px;display:grid;place-items:center;
  border:1px solid var(--line);border-radius:50%;color:var(--ink-mute);
  transition:all .35s var(--ease);
}
.socials a:hover{border-color:var(--line-gold);color:var(--gold-lit);transform:translateY(-3px)}
.socials svg{width:15px;height:15px}

.footer__bar{
  border-top:1px solid var(--line-soft);
  padding-block:var(--s5);
  display:flex;flex-wrap:wrap;gap:var(--s3) var(--s5);
  align-items:center;justify-content:space-between;
  font-size:var(--t-micro);color:var(--ink-faint);
}
.footer__bar a:hover{color:var(--gold-lit)}

/* Oversized watermark wordmark */
.footer__mark{
  font-size:clamp(3.4rem,15vw,15rem);font-weight:800;letter-spacing:.02em;
  line-height:.8;text-align:center;
  background:linear-gradient(180deg,rgba(217,168,63,.12),transparent 78%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  user-select:none;pointer-events:none;
  margin-top:var(--s5);
  translate:0 12%;
}

/* Back to top */
.to-top{
  position:fixed;right:clamp(1rem,3vw,2rem);bottom:clamp(1rem,3vw,2rem);z-index:500;
  width:48px;height:48px;border-radius:50%;
  display:grid;place-items:center;
  border:1px solid var(--line-gold);
  background:rgba(10,21,36,.8);backdrop-filter:blur(12px);
  color:var(--gold-lit);
  opacity:0;visibility:hidden;transform:translateY(14px) scale(.9);
  transition:all .5s var(--ease);
}
.to-top.is-on{opacity:1;visibility:visible;transform:none}
.to-top:hover{background:var(--gold);color:#0b0f16;transform:translateY(-3px)}
.to-top svg{width:16px;height:16px}

/* -------------------------------------------------- 12. Motion primitives */
[data-reveal]{
  opacity:0;
  transform:translateY(30px);
  transition:opacity .9s var(--ease),transform .9s var(--ease);
  transition-delay:var(--d,0ms);
  will-change:opacity,transform;
}
[data-reveal="fade"]{transform:none}
[data-reveal="left"]{transform:translateX(-38px)}
[data-reveal="right"]{transform:translateX(38px)}
[data-reveal="scale"]{transform:scale(.94)}
[data-reveal="clip"]{opacity:1;transform:none;clip-path:inset(0 100% 0 0);transition:clip-path 1.1s var(--ease)}
.is-in[data-reveal]{opacity:1;transform:none}
.is-in[data-reveal="clip"]{clip-path:inset(0 0 0 0)}

/* Word-by-word headline reveal */
.split-line{display:block;overflow:hidden}
.split-word{
  display:inline-block;
  transform:translateY(105%) rotate(2.2deg);
  opacity:0;
  transition:transform 1s var(--ease),opacity .8s var(--ease);
  transition-delay:calc(var(--i,0) * 55ms);
}
.is-in .split-word{transform:none;opacity:1}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;scroll-behavior:auto!important;
  }
  [data-reveal],.split-word{opacity:1!important;transform:none!important;clip-path:none!important}
  .preloader{display:none}
}

/* -------------------------------------------------- 13. WP core alignment classes */
.alignwide{width:min(100%,1160px);margin-inline:auto}
.alignfull{width:100%}
.aligncenter{margin-inline:auto;text-align:center}
.alignleft{float:left;margin:0 var(--s5) var(--s4) 0}
.alignright{float:right;margin:0 0 var(--s4) var(--s5)}
.wp-caption-text,figcaption{font-size:var(--t-micro);color:var(--ink-faint);margin-top:.6rem;text-align:center}
.screen-reader-text{
  position:absolute!important;width:1px;height:1px;overflow:hidden;
  clip:rect(1px,1px,1px,1px);white-space:nowrap;
}
