/* ============================================================================
   TT CHOPPERS, cinematic charter site
   Design grammar cloned from At Glacier's End (Chris Burkard, Awwwards SOTD):
   pinned video, layered 2D parallax, clip/scale scene-expand, horizontal
   kinetic serif headlines, split-word reveals, film grain. Brand kit from
   design/brands/tt-choppers.md (role-mapped; one bespoke accent = clay red).
   ============================================================================ */

:root{
  /* palette, provenance: design/brands/tt-choppers.md */
  --paper:#FBF4E8;            /* kit: warm cream canvas */
  --paper-2:#F2E7D3;          /* kit: deeper warm panel */
  --ink:#241D1A;             /* kit: primary text on paper */
  --ink-soft:#6B5F58;        /* kit: secondary text */
  --line:#E4D7C0;            /* kit: warm hairline */
  --night:#120D0B;           /* kit: night plate, deepened toward ref bg rgb(18,19,19) */
  --night-2:#1C1512;         /* kit: raised dark surface */
  --night-3:#0B0807;         /* bespoke: deepest scrim */
  --paper-on-night:#F4ECDF;  /* kit: warm off-white on dark */
  --muted-on-night:#A99C8E;  /* kit: muted text on dark */
  --accent:#C8412B;          /* kit: THE signal, burnt Zimbabwean clay red */
  --accent-deep:#A4321E;     /* kit: accent pressed */
  --accent-warm:#E07A4E;     /* bespoke: lighter clay for fine detail/text on dark */
  --metal:#9A938A;           /* kit: brushed-aluminium detail */
  --serif:'Gambetta',Georgia,'Times New Roman',serif;   /* kit display */
  --sans:'Switzer',system-ui,-apple-system,'Segoe UI',sans-serif; /* kit body */
  --r-pill:999px;
  --pad:clamp(22px,5vw,120px);     /* horizontal gutter */
  --vpad:clamp(72px,11vw,180px);   /* vertical section rhythm */
  --maxw:1320px;
  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
}

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:auto; }
html:not(.lenis){ scroll-behavior:auto; }      /* never fight Lenis */
.lenis.lenis-smooth{ scroll-behavior:auto !important; }
.lenis.lenis-smooth [data-lenis-prevent]{ overscroll-behavior:contain; }
.lenis.lenis-stopped{ overflow:hidden; }
body{
  font-family:var(--sans);
  background:var(--night);
  color:var(--paper-on-night);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:clip;                              /* contain, never create a scroll container */
}
img,video{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:none; cursor:pointer; }
::selection{ background:var(--accent); color:#fff; }

/* ---- type scale ---- */
.display{ font-family:var(--serif); font-weight:400; line-height:.94; letter-spacing:-.01em; }
h1,h2,h3{ font-family:var(--serif); font-weight:400; line-height:1.0; letter-spacing:-.01em; }
.h-xl{ font-size:clamp(3rem,11.5vw,9.5rem); }
.h-lg{ font-size:clamp(2.4rem,6.8vw,5.6rem); }
.h-md{ font-size:clamp(1.9rem,4.4vw,3.4rem); }
.h-sm{ font-size:clamp(1.35rem,2.6vw,2rem); }
.lead{ font-size:clamp(1.05rem,1.5vw,1.35rem); line-height:1.55; }
.fine{ font-size:.8rem; letter-spacing:.16em; text-transform:uppercase; font-weight:600; }
em{ font-style:italic; color:var(--accent-warm); }
.wrap{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--pad); }

/* ---- film grain (cinematic texture, like the reference) ---- */
.grain{
  position:fixed; inset:0; z-index:9000; pointer-events:none;
  opacity:.05; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ============================ PRELOADER (cinematic intro, NOT a gate) ====== */
.preloader{
  position:fixed; inset:0; z-index:9500; background:var(--night-3);
  display:grid; place-items:center; transition:opacity .8s var(--ease),visibility .8s;
}
.preloader.done{ opacity:0; visibility:hidden; }
.pl-inner{ text-align:center; }
.pl-mark{ width:46px; height:46px; animation:spin 1.5s linear infinite; }
.pl-mark path,.pl-mark rect,.pl-mark circle{ fill:var(--accent); }
.pl-word{ margin-top:18px; font-family:var(--serif); font-size:1.1rem; letter-spacing:.46em; color:var(--paper-on-night); text-indent:.46em; }
.pl-bar{ width:140px; height:1px; margin:18px auto 0; background:rgba(255,255,255,.16); overflow:hidden; }
.pl-bar i{ display:block; height:100%; width:0; background:var(--accent); transition:width .2s linear; }
@keyframes spin{ to{ transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce){ .pl-mark{ animation:none; } }

/* ============================ NAV ========================================= */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:1000;
  display:flex; align-items:center; justify-content:space-between;
  padding:18px var(--pad);
  transition:background .4s var(--ease),padding .4s var(--ease),border-color .4s;
  border-bottom:1px solid transparent;
}
.nav--solid{ background:rgba(12,8,7,.78); backdrop-filter:blur(10px); padding-top:12px; padding-bottom:12px; border-bottom-color:rgba(255,255,255,.08); }
.nav--light.nav--solid{ background:rgba(251,244,232,.86); border-bottom-color:var(--line); }
.logo{ display:flex; align-items:center; gap:11px; font-family:var(--serif); font-size:1.18rem; letter-spacing:.02em; z-index:2; }
.logo .mark{ width:30px; height:30px; color:var(--accent); }
.nav, .nav a{ color:var(--paper-on-night); }
.nav--light, .nav--light a, .nav--light .logo{ color:var(--ink); }
.nav-links{ display:flex; gap:30px; }
.nav-links a{ font-size:.84rem; letter-spacing:.12em; text-transform:uppercase; font-weight:500; position:relative; opacity:.82; transition:opacity .25s; }
.nav-links a::after{ content:""; position:absolute; left:0; bottom:-6px; width:0; height:1px; background:var(--accent); transition:width .3s var(--ease); }
.nav-links a:hover{ opacity:1; } .nav-links a:hover::after{ width:100%; }
.nav-right{ display:flex; align-items:center; gap:18px; z-index:2; }
.nav-wa{ font-size:.84rem; letter-spacing:.1em; text-transform:uppercase; font-weight:600; opacity:.9; }
.burger{ display:none; width:30px; height:20px; position:relative; }
.burger span{ position:absolute; left:0; height:2px; width:100%; background:currentColor; transition:transform .35s var(--ease),opacity .25s; }
.burger span:nth-child(1){ top:0; } .burger span:nth-child(2){ top:9px; } .burger span:nth-child(3){ top:18px; }
body.menu-open .burger span:nth-child(1){ transform:translateY(9px) rotate(45deg); }
body.menu-open .burger span:nth-child(2){ opacity:0; }
body.menu-open .burger span:nth-child(3){ transform:translateY(-9px) rotate(-45deg); }

/* mobile panel */
.mobile-panel{
  position:fixed; inset:0; z-index:990; background:var(--night-3);
  display:flex; flex-direction:column; justify-content:center; gap:6px; padding:0 var(--pad);
  transform:translateY(-100%); transition:transform .55s var(--ease); }
body.menu-open .mobile-panel{ transform:translateY(0); }
.mobile-panel a{ font-family:var(--serif); font-size:clamp(2rem,9vw,3rem); line-height:1.2; color:var(--paper-on-night); }
.mobile-panel a:active{ color:var(--accent); }
.m-contact{ margin-top:34px; font-size:.95rem; color:var(--muted-on-night); line-height:1.8; letter-spacing:.02em; }

/* ============================ BUTTONS ===================================== */
.btn{ display:inline-flex; align-items:center; gap:10px; padding:15px 28px; border-radius:var(--r-pill);
  font-size:.82rem; letter-spacing:.14em; text-transform:uppercase; font-weight:600; transition:transform .3s var(--ease),background .3s,color .3s,border-color .3s; }
.btn svg{ width:17px; height:17px; }
.btn-primary{ background:var(--accent); color:#fff; }
.btn-primary:hover{ background:var(--accent-deep); transform:translateY(-2px); }
.btn-ghost{ border:1px solid currentColor; color:inherit; }
.btn-ghost:hover{ background:var(--paper-on-night); color:var(--night); border-color:var(--paper-on-night); }
.nav--light .btn-ghost:hover{ background:var(--ink); color:var(--paper); }
.btn-block{ width:100%; justify-content:center; }
.btn-line{ display:inline-flex; align-items:center; gap:14px; font-size:.82rem; letter-spacing:.14em; text-transform:uppercase; font-weight:600; }
.btn-line .ln{ width:46px; height:1px; background:currentColor; transition:width .35s var(--ease); }
.btn-line:hover .ln{ width:72px; }
.btn-line .ar{ color:var(--accent); }

/* ============================ HERO (pinned cinematic video) =============== */
.hero{ position:relative; height:100svh; min-height:600px; overflow:hidden; }
.hero-media{ position:absolute; inset:0; }
.hero-media video,.hero-media img{ width:100%; height:100%; object-fit:cover; }
.hero-veil{ position:absolute; inset:0; background:
  linear-gradient(180deg,rgba(11,8,7,.55) 0%,rgba(11,8,7,.12) 32%,rgba(11,8,7,.28) 62%,rgba(11,8,7,.86) 100%); }
.hero-grade{ position:absolute; inset:0; background:radial-gradient(120% 80% at 50% 30%,transparent 40%,rgba(11,8,7,.5) 100%); mix-blend-mode:multiply; }
.hero-inner{ position:absolute; inset:0; display:flex; flex-direction:column; justify-content:flex-end; padding:0 var(--pad) clamp(54px,9vh,110px); }
.hero-title{ max-width:18ch; }
.hero-title .ln{ display:block; overflow:hidden; }
.hero-title .word{ display:inline-block; will-change:transform; }
.hero-sub{ margin-top:26px; max-width:46ch; color:var(--paper-on-night); }
.hero-cta{ margin-top:34px; display:flex; flex-wrap:wrap; gap:16px; }
.hero-meta{ position:absolute; top:clamp(86px,12vh,120px); right:var(--pad); text-align:right;
  font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted-on-night); line-height:1.9; }
.hero-meta b{ color:var(--accent-warm); font-weight:600; }
.scroll-cue{ position:absolute; bottom:26px; left:50%; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:10px;
  font-size:.68rem; letter-spacing:.3em; text-transform:uppercase; color:var(--muted-on-night); }
.scroll-cue .rail{ width:1px; height:46px; background:rgba(255,255,255,.22); position:relative; overflow:hidden; }
.scroll-cue .rail::after{ content:""; position:absolute; top:-50%; left:0; width:100%; height:50%; background:var(--accent); animation:cue 2s var(--ease) infinite; }
@keyframes cue{ 0%{ transform:translateY(-100%);} 60%,100%{ transform:translateY(300%);} }

/* ============================ STATEMENT (split-word, dark) ================ */
.statement{ padding:var(--vpad) 0; background:var(--night); }
.statement .big{ font-family:var(--serif); font-size:clamp(1.8rem,4.6vw,3.7rem); line-height:1.12; max-width:20ch; letter-spacing:-.01em; }
.statement .big .w{ display:inline-block; }
.statement-grid{ display:grid; grid-template-columns:1.4fr .9fr; gap:clamp(30px,5vw,90px); align-items:end; }
.statement .aside{ color:var(--muted-on-night); font-size:1rem; line-height:1.75; }
.statement .aside p+p{ margin-top:16px; }
.label{ font-size:.74rem; letter-spacing:.22em; text-transform:uppercase; color:var(--accent-warm); font-weight:600; margin-bottom:22px; display:flex; align-items:center; gap:12px; }
.label::before{ content:""; width:30px; height:1px; background:var(--accent); }

/* ============================ FLIGHT (layered 2D parallax) ================ */
.flight{ position:relative; height:118vh; min-height:760px; overflow:hidden; background:var(--night-3); }
.flight-layer{ position:absolute; inset:-12% 0; will-change:transform; }
.flight-bg img{ width:100%; height:124%; object-fit:cover; opacity:.9; }
.flight-veil{ position:absolute; inset:0; background:linear-gradient(180deg,rgba(11,8,7,.45),rgba(11,8,7,.2) 40%,rgba(11,8,7,.7)); }
.flight-heli{ position:absolute; top:34%; left:-18%; width:min(46vw,560px); will-change:transform; }
.flight-heli img{ width:100%; filter:drop-shadow(0 30px 50px rgba(0,0,0,.4)); }
.flight-copy{ position:absolute; bottom:clamp(60px,11vh,140px); left:0; right:0; }
.flight-copy h2{ max-width:16ch; }
.flight-copy p{ margin-top:20px; max-width:40ch; color:var(--paper-on-night); }

/* ============================ SCENE-EXPAND (the dominant moment) ========== */
.expand{ position:relative; height:300vh; background:var(--night); }   /* tall = scrub runway */
.expand-sticky{ position:sticky; top:0; height:100svh; overflow:hidden; display:grid; place-items:center; }
.expand-frame{ position:absolute; inset:0; display:grid; place-items:center; }
.expand-img{ position:relative; width:46vw; height:58vh; overflow:hidden; will-change:width,height; }
.expand-img img{ width:100%; height:100%; object-fit:cover; }
.expand-shade{ position:absolute; inset:0; background:rgba(11,8,7,.32); }
.expand-head{ position:relative; z-index:3; pointer-events:none; white-space:nowrap; will-change:transform;
  font-family:var(--serif); font-size:clamp(3.4rem,15vw,15rem); line-height:.9; color:var(--paper-on-night); mix-blend-mode:difference; }
.expand-tag{ position:absolute; z-index:4; bottom:9vh; left:50%; transform:translateX(-50%); text-align:center; opacity:0; will-change:opacity,transform; }
.expand-tag .lead{ max-width:30ch; margin:0 auto; }

/* ============================ EXPERIENCES (cinematic full-bleed rows) ===== */
.exp{ background:var(--night); }
.exp-head{ padding:var(--vpad) 0 clamp(30px,5vw,60px); }
.exp-head h2{ max-width:14ch; }
.exp-head .lead{ margin-top:24px; max-width:42ch; color:var(--muted-on-night); }
.exp-scene{ position:relative; height:92vh; min-height:560px; overflow:hidden; display:flex; align-items:flex-end; }
.exp-scene .bg{ position:absolute; inset:-10% 0; will-change:transform; }
.exp-scene .bg img{ width:100%; height:120%; object-fit:cover; }
.exp-scene .veil{ position:absolute; inset:0; background:linear-gradient(180deg,rgba(11,8,7,.25),rgba(11,8,7,.15) 45%,rgba(11,8,7,.82)); }
.exp-scene .body{ position:relative; padding:0 var(--pad) clamp(48px,8vh,96px); width:100%; }
.exp-scene .ix{ font-family:var(--serif); font-size:1rem; color:var(--accent-warm); letter-spacing:.1em; }
.exp-scene h3{ margin-top:8px; font-size:clamp(2.2rem,5.6vw,4.6rem); max-width:16ch; }
.exp-scene p{ margin-top:18px; max-width:44ch; color:var(--paper-on-night); }

/* ============================ CHARTER (operations world, warm daylight) == */
.charter{ background:var(--paper); color:var(--ink); padding:var(--vpad) 0; }
.charter .label{ color:var(--accent); } .charter .label::before{ background:var(--accent); }
.charter-head{ display:grid; grid-template-columns:1.3fr .9fr; gap:clamp(24px,4vw,70px); align-items:end; margin-bottom:clamp(40px,6vw,80px); }
.charter-head h2{ max-width:13ch; }
.charter-head .lead{ color:var(--ink-soft); }
.charter-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(20px,2.6vw,40px); }
.cc{ position:relative; overflow:hidden; background:var(--paper-2); }   /* single surface, no border */
.cc-media{ overflow:hidden; aspect-ratio:16/10; }
.cc-media img{ width:100%; height:100%; object-fit:cover; transition:transform 1s var(--ease-out); }
.cc:hover .cc-media img{ transform:scale(1.06); }
.cc-body{ padding:26px clamp(22px,2vw,34px) 34px; }
.cc-body .ix{ font-size:.78rem; letter-spacing:.18em; color:var(--accent); font-weight:700; }
.cc-body h3{ margin-top:12px; font-size:clamp(1.5rem,2.4vw,2.05rem); }
.cc-body p{ margin-top:12px; color:var(--ink-soft); font-size:.98rem; line-height:1.6; }
.cc-go{ margin-top:20px; color:var(--ink); }

/* ============================ FLEET (the aircraft, dark) ================== */
.fleet{ background:var(--night-2); padding:var(--vpad) 0; }
.fleet-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(30px,5vw,80px); align-items:center; }
.fleet-media{ overflow:hidden; }
.fleet-media img{ width:100%; aspect-ratio:5/4; object-fit:cover; }
.fleet-text h2{ max-width:14ch; }
.fleet-text>p{ margin-top:20px; color:var(--muted-on-night); max-width:46ch; line-height:1.7; }
.spec{ margin-top:34px; border-top:1px solid rgba(255,255,255,.1); }
.spec .row{ display:flex; justify-content:space-between; align-items:baseline; padding:16px 0; border-bottom:1px solid rgba(255,255,255,.1); }
.spec dt{ font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted-on-night); }
.spec dd{ font-family:var(--serif); font-size:1.15rem; color:var(--paper-on-night); }
.spec dd.tbc{ font-family:var(--sans); font-size:.82rem; letter-spacing:.06em; text-transform:uppercase; color:var(--metal); }
.fleet-note{ margin-top:20px; font-size:.84rem; font-style:italic; color:var(--metal); }

/* ============================ SAFETY (full-bleed cockpit) ================= */
.safety{ position:relative; min-height:92vh; display:flex; align-items:center; overflow:hidden; }
.safety-media{ position:absolute; inset:-10% 0; will-change:transform; }
.safety-media img{ width:100%; height:120%; object-fit:cover; }
.safety-veil{ position:absolute; inset:0; background:linear-gradient(90deg,rgba(11,8,7,.9) 0%,rgba(11,8,7,.6) 50%,rgba(11,8,7,.3) 100%); }
.safety-grid{ position:relative; display:grid; grid-template-columns:1.1fr 1fr; gap:clamp(24px,4vw,70px); align-items:center; padding:var(--vpad) 0; }
.safety-grid h2{ max-width:15ch; }
.safety-grid p{ color:var(--paper-on-night); line-height:1.8; font-size:1.04rem; }

/* ============================ GALLERY (horizontal draggable) ============== */
.gallery{ background:var(--night); padding:var(--vpad) 0; overflow:hidden; }
.gallery .wrap{ display:flex; justify-content:space-between; align-items:end; gap:24px; margin-bottom:40px; }
.gallery h2{ max-width:16ch; }
.g-hint{ font-size:.76rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted-on-night); display:flex; align-items:center; gap:10px; }
.g-hint svg{ width:22px; }
.g-track{ display:flex; gap:18px; padding-inline:var(--pad); cursor:grab; user-select:none; will-change:transform; }
.g-track.drag{ cursor:grabbing; }
.g-item{ position:relative; flex:0 0 auto; width:min(64vw,440px); height:min(72vh,560px); overflow:hidden; }
.g-item img{ width:100%; height:100%; object-fit:cover; pointer-events:none; transition:transform 1.1s var(--ease-out); }
.g-item:hover img{ transform:scale(1.05); }
.g-item .cap{ position:absolute; left:18px; bottom:16px; font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color:var(--paper-on-night); text-shadow:0 1px 12px rgba(0,0,0,.6); }
.g-item.tall{ height:min(80vh,640px); }

/* lightbox */
.lb{ position:fixed; inset:0; z-index:9600; background:rgba(8,6,5,.94); display:none; place-items:center; padding:5vw; }
.lb.open{ display:grid; }
.lb img{ max-width:92vw; max-height:88vh; object-fit:contain; }
.lb-close{ position:absolute; top:24px; right:28px; font-size:.8rem; letter-spacing:.18em; text-transform:uppercase; color:var(--paper-on-night); }

/* ============================ CTA band ==================================== */
.cta{ position:relative; min-height:78vh; display:grid; place-items:center; text-align:center; overflow:hidden; }
.cta-media{ position:absolute; inset:-10% 0; will-change:transform; }
.cta-media img{ width:100%; height:120%; object-fit:cover; }
.cta-veil{ position:absolute; inset:0; background:rgba(11,8,7,.62); }
.cta-inner{ position:relative; padding:0 var(--pad); }
.cta-inner h2{ font-size:clamp(2.4rem,7vw,6rem); max-width:18ch; margin-inline:auto; }
.cta-row{ margin-top:38px; display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }

/* ============================ FAQ (operations, warm) ====================== */
.faq{ background:var(--paper); color:var(--ink); padding:var(--vpad) 0; }
.faq .label{ color:var(--accent); } .faq .label::before{ background:var(--accent); }
.faq-grid{ display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(30px,5vw,80px); align-items:start; }
.faq-grid h2{ max-width:12ch; }
.faq-item{ border-bottom:1px solid var(--line); }
.faq-q{ width:100%; display:flex; justify-content:space-between; align-items:center; gap:24px; padding:24px 0; text-align:left;
  font-family:var(--serif); font-size:clamp(1.15rem,1.9vw,1.5rem); color:var(--ink); }
.faq-q .ico{ position:relative; flex:0 0 18px; width:18px; height:18px; }
.faq-q .ico::before,.faq-q .ico::after{ content:""; position:absolute; background:var(--accent); transition:transform .35s var(--ease); }
.faq-q .ico::before{ top:50%; left:0; width:100%; height:1.5px; transform:translateY(-50%); }
.faq-q .ico::after{ left:50%; top:0; width:1.5px; height:100%; transform:translateX(-50%); }
.faq-item.open .faq-q .ico::after{ transform:translateX(-50%) scaleY(0); }
.faq-a{ overflow:hidden; height:0; }
.faq-a p{ padding-bottom:24px; color:var(--ink-soft); line-height:1.7; max-width:62ch; }

/* ============================ CONTACT preview ============================= */
.contact{ background:var(--night); padding:var(--vpad) 0; }
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(34px,5vw,90px); align-items:start; }
.contact-info h2{ max-width:13ch; }
.contact-info>p{ margin-top:22px; color:var(--muted-on-night); line-height:1.75; max-width:46ch; }
.channel{ margin-top:34px; display:flex; flex-direction:column; gap:2px; }
.channel a,.channel span.ch{ display:flex; align-items:center; gap:16px; padding:18px 0; border-bottom:1px solid rgba(255,255,255,.1); font-size:1.02rem; color:var(--paper-on-night); transition:color .25s,padding-left .3s var(--ease); }
.channel a:hover{ color:var(--accent-warm); padding-left:8px; }
.channel .ic{ width:22px; height:22px; color:var(--accent); flex:0 0 22px; }
.channel .ic svg{ width:100%; height:100%; }
.ph{ color:var(--metal); font-style:italic; }

/* form */
.form{ background:var(--night-2); padding:clamp(26px,3vw,44px); }
.field{ margin-bottom:18px; }
.field label{ display:block; font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted-on-night); margin-bottom:9px; }
.field input,.field select,.field textarea{ width:100%; background:var(--night); border:1px solid rgba(255,255,255,.14); color:var(--paper-on-night); padding:14px 16px; font-family:var(--sans); font-size:.98rem; transition:border-color .25s; }
.field input:focus,.field select:focus,.field textarea:focus{ outline:none; border-color:var(--accent); }
.field textarea{ min-height:108px; resize:vertical; }
.two{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.form .note{ margin-top:14px; font-size:.82rem; color:var(--muted-on-night); }
.form-msg{ margin-top:12px; font-size:.9rem; color:var(--accent-warm); min-height:1.2em; }

/* ============================ FOOTER ====================================== */
.footer{ background:var(--night-3); padding:clamp(60px,8vw,110px) 0 40px; }
.footer-top{ display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:40px; padding-bottom:54px; border-bottom:1px solid rgba(255,255,255,.08); }
.f-logo{ display:flex; align-items:center; gap:11px; font-family:var(--serif); font-size:1.4rem; }
.f-logo .mark{ width:30px; height:30px; color:var(--accent); }
.f-tag{ margin-top:18px; color:var(--muted-on-night); max-width:30ch; line-height:1.6; font-size:.95rem; }
.footer h3{ font-family:var(--sans); font-size:.74rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted-on-night); font-weight:600; margin-bottom:18px; }
.footer ul{ list-style:none; display:flex; flex-direction:column; gap:11px; }
.footer ul a,.footer ul li{ color:var(--paper-on-night); font-size:.96rem; opacity:.85; transition:opacity .2s,color .2s; }
.footer ul a:hover{ opacity:1; color:var(--accent-warm); }
.footer-bottom{ display:flex; justify-content:space-between; align-items:center; padding-top:28px; color:var(--muted-on-night); font-size:.84rem; flex-wrap:wrap; gap:14px; }
.socials{ display:flex; gap:22px; }

/* ============================ REVEAL primitives =========================== */
.r-up{ opacity:0; transform:translateY(34px); transition:opacity .9s var(--ease-out),transform .9s var(--ease-out); }
.r-up.in{ opacity:1; transform:none; }
.r-up.d1{ transition-delay:.1s; } .r-up.d2{ transition-delay:.2s; } .r-up.d3{ transition-delay:.3s; }
.r-line{ display:inline-block; overflow:hidden; vertical-align:top; }
.r-line>span{ display:inline-block; transform:translateY(105%); transition:transform 1s var(--ease-out); }
.r-line.in>span{ transform:none; }
.media-zoom{ overflow:hidden; }
.media-zoom img{ transition:transform 1.6s var(--ease-out); }

/* ============================ CONTACT PAGE (typographic hero variant) ===== */
.page-hero{ position:relative; min-height:60vh; display:flex; align-items:flex-end; overflow:hidden;
  padding:calc(var(--vpad) + 30px) 0 clamp(40px,6vw,80px); background:var(--night-3); }
.page-hero::before{ content:""; position:absolute; inset:0;
  background:radial-gradient(80% 120% at 80% 0%,rgba(200,65,43,.16),transparent 60%); }
.page-hero .inner{ position:relative; }
.page-hero h1{ font-size:clamp(2.6rem,9vw,7rem); line-height:.96; max-width:15ch; }
.page-hero p{ margin-top:24px; max-width:48ch; color:var(--muted-on-night); line-height:1.7; }
.page-back{ display:inline-flex; align-items:center; gap:10px; margin-bottom:28px; font-size:.78rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted-on-night); }
.page-back:hover{ color:var(--accent-warm); }
.contact-page{ padding:var(--vpad) 0; background:var(--night); }

/* ============================ RESPONSIVE ================================== */
@media (max-width:1024px){
  .statement-grid,.charter-head,.fleet-grid,.safety-grid,.faq-grid,.contact-grid,.footer-top{ grid-template-columns:1fr; }
  .footer-top{ gap:46px; }
  .safety-veil{ background:linear-gradient(180deg,rgba(11,8,7,.5),rgba(11,8,7,.85)); }
  .expand-img{ width:64vw; height:50vh; }
}
@media (max-width:760px){
  .nav-links,.nav-wa{ display:none; }
  .burger{ display:block; }
  .nav .btn-primary{ display:none; }
  .charter-grid{ grid-template-columns:1fr; }
  .two{ grid-template-columns:1fr; }
  .hero-meta{ display:none; }
  .hero-inner{ justify-content:flex-end; padding-bottom:96px; }
  .flight{ height:96vh; }
  .flight-heli{ width:74vw; top:30%; }
  .expand{ height:230vh; }
  .expand-img{ width:78vw; height:44vh; }
  .exp-scene{ height:86vh; }
  .g-item{ width:80vw; height:62vh; }
  .footer-bottom{ flex-direction:column; align-items:flex-start; }
}

/* ============================ REDUCED MOTION ============================== */
@media (prefers-reduced-motion:reduce){
  *{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
  .r-up,.hero-title .word{ opacity:1 !important; transform:none !important; }
  .r-line>span{ transform:none !important; }
  .grain{ display:none; }
  .flight-layer,.flight-heli,.exp-scene .bg,.safety-media,.cta-media{ transform:none !important; }
  .scroll-cue .rail::after{ animation:none; }
}
