@import url('../fonts/montserrat-alt.css');
/* ============================================================
   THANGARD — shared stylesheet (main + agent subpages)
   ============================================================ */
:root{
  --bg:#070605; --bg2:#0c0a08; --ink:#f3efe7;
  --mut:rgba(243,239,231,.58); --mut2:rgba(243,239,231,.34);
  --line:rgba(243,239,231,.08); --edge:rgba(243,239,231,.15);
  --glass:rgba(16,13,10,.50); --glassline:rgba(243,239,231,.11);
  --warm:#b98f57;
}
*{ box-sizing:border-box; margin:0; padding:0; }
html,body{ overflow-x:clip; max-width:100%; }
html{ scroll-behavior:smooth; }
body{ background:var(--bg); color:var(--ink); font-family:'Montserrat',sans-serif; font-weight:300;
  -webkit-font-smoothing:antialiased; line-height:1.5; position:relative; }
a{ color:inherit; text-decoration:none; }
img{ display:block; max-width:100%; }
.container{ max-width:1220px; margin:0 auto; padding:0 clamp(22px,5vw,60px); }
.eyebrow{ font-size:10.5px; font-weight:600; letter-spacing:.42em; text-transform:uppercase; color:var(--warm); }
h1,h2,h3{ font-weight:200; letter-spacing:-.015em; line-height:1.05; }
.brand .bw, #bootword, .future .k{ font-family:'Montserrat Alternates','Montserrat',sans-serif; }
strong,b{ font-weight:500; color:var(--ink); }
.mut{ color:var(--mut); font-weight:300; }
.reveal{ opacity:0; transform:translateY(28px); }
.mono{ font-family:ui-monospace,'SFMono-Regular',Menlo,Consolas,monospace; }

.btn{ display:inline-flex; align-items:center; gap:10px; font-size:12.5px; font-weight:600; letter-spacing:.06em;
  text-transform:uppercase; padding:15px 30px; border-radius:2px; border:1px solid var(--edge); color:var(--ink);
  background:rgba(243,239,231,.02); transition:background .35s, color .35s, border-color .35s, transform .25s; }
.btn:hover{ background:var(--ink); color:#120d06; border-color:var(--ink); transform:translateY(-2px); }
.btn.solid{ background:var(--ink); color:#120d06; border-color:var(--ink); }
.btn.solid:hover{ background:transparent; color:var(--ink); }
.link{ display:inline-flex; align-items:center; gap:10px; font-size:12px; font-weight:600; letter-spacing:.1em;
  text-transform:uppercase; color:var(--mut); transition:gap .3s, color .3s; }
.link:hover{ gap:16px; color:var(--ink); }
.hero .cta a.link::after{ content:"↓"; font-size:1.05em; line-height:1; }

/* ambient liquid */
.ambient{ position:fixed; inset:0; z-index:0; overflow:hidden; pointer-events:none; }
.ambient .blob{ position:absolute; border-radius:50%; filter:blur(120px); mix-blend-mode:screen; will-change:transform; }
.blob.a{ width:72vw; height:72vw; top:-20%; left:-14%; background:radial-gradient(circle, rgba(170,124,72,.20), transparent 68%); animation:drift1 44s ease-in-out infinite; }
.blob.b{ width:60vw; height:60vw; bottom:-22%; right:-12%; background:radial-gradient(circle, rgba(120,72,42,.17), transparent 66%); animation:drift2 52s ease-in-out infinite; }
.blob.c{ width:52vw; height:52vw; top:42%; left:48%; background:radial-gradient(circle, rgba(86,62,48,.15), transparent 70%); animation:drift3 60s ease-in-out infinite; }
@keyframes drift1{ 0%,100%{ transform:translate(0,0) scale(1); } 50%{ transform:translate(7vw,5vh) scale(1.12); } }
@keyframes drift2{ 0%,100%{ transform:translate(0,0) scale(1.05); } 50%{ transform:translate(-6vw,-4vh) scale(.92); } }
@keyframes drift3{ 0%,100%{ transform:translate(-50%,-50%) scale(1); } 50%{ transform:translate(-56%,-44%) scale(1.16); } }
.grain{ position:fixed; inset:0; z-index:70; pointer-events:none; opacity:.045; mix-blend-mode:soft-light;
  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='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }

/* custom cursor */
.cursor{ position:fixed; top:0; left:0; width:22px; height:22px; border:1px solid rgba(243,239,231,.5); border-radius:50%;
  pointer-events:none; z-index:200; mix-blend-mode:difference; will-change:transform;
  transition:width .28s cubic-bezier(.4,0,.1,1), height .28s cubic-bezier(.4,0,.1,1), background .28s, border-color .28s, opacity .3s; }
.cursor.hot{ width:52px; height:52px; background:rgba(243,239,231,.08); border-color:rgba(243,239,231,.9); }
body.has-cursor{ cursor:none; }
body.has-cursor a, body.has-cursor button, body.has-cursor input{ cursor:none; }

.stage{ position:relative; z-index:1; }

/* NAV */
.nav{ position:fixed; top:0; left:0; right:0; z-index:60; display:flex; align-items:center; justify-content:space-between;
  padding:22px clamp(22px,5vw,60px); transition:background .5s, backdrop-filter .5s, border-color .5s, padding .5s; border-bottom:1px solid transparent; }
.nav.scrolled{ background:rgba(7,6,5,.70); backdrop-filter:blur(16px); border-bottom:1px solid var(--line); padding-top:15px; padding-bottom:15px; }
.brand{ display:flex; align-items:center; gap:12px; }
.brand img{ height:26px; width:auto; }
.brand .bw{ font-size:14px; font-weight:500; letter-spacing:.42em; padding-left:2px; }
.navlinks{ display:flex; align-items:center; gap:clamp(16px,2.2vw,34px); }
.navlinks a{ color:var(--mut); font-size:12px; font-weight:500; letter-spacing:.06em; transition:color .3s; }
.navlinks a:hover{ color:var(--ink); }
.pill{ border:1px solid var(--edge); border-radius:2px; padding:11px 20px; color:var(--ink)!important; font-size:11px; text-transform:uppercase; letter-spacing:.12em; transition:background .3s,color .3s; }
.pill:hover{ background:var(--ink); color:#120d06!important; }
.langsw{ display:flex; align-items:center; gap:2px; border:1px solid var(--line); border-radius:2px; padding:3px; }
.langsw button{ background:none; border:0; color:var(--mut2); font-family:inherit; font-size:10.5px; font-weight:600; letter-spacing:.1em;
  padding:5px 8px; border-radius:1px; cursor:pointer; text-transform:uppercase; transition:color .3s, background .3s; }
.langsw button:hover{ color:var(--ink); }
.langsw button.on{ color:#120d06; background:var(--warm); }

/* HERO */
.hero{ position:relative; min-height:100svh; overflow:hidden; display:flex; flex-direction:column; }
.hero .bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.hero canvas.bg{ background:var(--bg); }
.hero .scrim{ position:absolute; inset:0; z-index:1; background:linear-gradient(to top, var(--bg) 0%, rgba(7,6,5,.28) 44%, rgba(7,6,5,.05) 64%, rgba(7,6,5,.55) 100%); }
.hero .wrap{ position:relative; z-index:3; margin-top:auto; padding-bottom:clamp(60px,10vh,120px); width:100%; max-width:1040px; }
.hero h1{ font-size:clamp(38px,6.2vw,84px); font-weight:200; max-width:16ch; margin-top:26px; letter-spacing:-.02em; }
.hero .sub{ margin-top:28px; font-size:clamp(15px,1.5vw,19px); line-height:1.66; max-width:54ch; color:var(--mut); font-weight:300; }
.hero .cta{ margin-top:40px; display:flex; gap:20px; align-items:center; flex-wrap:wrap; }

section{ position:relative; }
.band{ padding:clamp(96px,15vh,190px) 0; overflow-x:clip; }
.head{ max-width:680px; }
.head.center{ max-width:760px; margin:0 auto; text-align:center; }
.head h2{ font-size:clamp(30px,4.8vw,62px); margin-top:18px; font-weight:200; }
.head p{ margin-top:20px; font-size:clamp(15px,1.4vw,18px); line-height:1.66; color:var(--mut); max-width:52ch; }
.head.center p{ margin-left:auto; margin-right:auto; }

/* THESIS (dark text, no image) */
.thesis-sec{ padding:clamp(130px,22vh,260px) 0; text-align:center; position:relative; z-index:1; }
.thesis-h{ font-size:clamp(28px,5vw,66px); font-weight:200; letter-spacing:-.02em; margin:22px auto 0; max-width:24ch; line-height:1.1; }
.thesis-p{ margin:26px auto 0; font-size:clamp(15px,1.5vw,18px); color:var(--mut); font-weight:300; max-width:56ch; }

/* ============================================================
   PRODUCT + DISPLAY-BOOT (the wall display in the room powers on)
   ============================================================ */
.roomsec{ padding:clamp(90px,13vh,150px) 0 clamp(80px,11vh,130px); position:relative; z-index:1; }
.roomwrap{ margin:clamp(44px,6vh,72px) auto 0; padding:0 clamp(14px,3vw,40px); max-width:1360px; }
.room{ position:relative; width:100%; aspect-ratio:16/9; border-radius:6px; overflow:hidden;
  box-shadow:0 50px 130px -60px rgba(0,0,0,.9); background:#050403; }
.roomposter,.roomcanvas,.roomvideo{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.roomposter{ z-index:0; }
.roomcanvas{ z-index:1; opacity:0; transition:opacity .4s; }
.roomvideo{ z-index:1; opacity:0; transition:opacity .4s; }
.room-cap{ margin:clamp(34px,5vh,56px) auto 0; text-align:center; font-size:clamp(15px,1.5vw,19px); color:var(--mut); font-weight:300; max-width:46ch; }
.prodmeta{ margin:clamp(30px,4vh,44px) auto 0; display:flex; gap:clamp(26px,5vw,64px); flex-wrap:wrap; justify-content:center; }
.prodmeta .k{ font-size:clamp(20px,2.4vw,26px); font-weight:200; color:var(--ink); }
.prodmeta .v{ font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--mut2); margin-top:6px; }

/* CINEMA background sections + edge fades (staff) */
.staff{ position:relative; overflow:hidden; }
.staff .cbg{ position:absolute; inset:0; width:100%; height:100%; z-index:0; }
.staff .cbg img{ width:100%; height:100%; object-fit:cover; opacity:.20; }
.staff .cscrim{ position:absolute; inset:0; z-index:1; background:linear-gradient(180deg, var(--bg) 0%, rgba(7,6,5,.80) 30%, rgba(7,6,5,.80) 70%, var(--bg) 100%); }
.staff .container{ position:relative; z-index:3; }
.staff::before,.staff::after{ content:""; position:absolute; left:0; right:0; height:14vh; z-index:2; pointer-events:none; }
.staff::before{ top:0; background:linear-gradient(var(--bg),transparent); }
.staff::after{ bottom:0; background:linear-gradient(transparent,var(--bg)); }

/* STAFF picker cards */
.staffgrid{ margin-top:clamp(40px,6vh,68px); display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(14px,1.6vw,22px); }
.scard{ position:relative; display:flex; flex-direction:column; overflow:hidden; border:1px solid var(--line); border-radius:4px;
  background:linear-gradient(180deg, rgba(243,239,231,.028), rgba(243,239,231,.006)); color:inherit; min-height:230px;
  transition:border-color .4s, transform .4s, background .4s; }
a.scard:hover{ border-color:var(--edge); transform:translateY(-4px); background:linear-gradient(180deg, rgba(243,239,231,.06), rgba(243,239,231,.012)); }
.scard-viz{ position:relative; height:118px; border-bottom:1px solid var(--line); overflow:hidden;
  background:radial-gradient(80% 120% at 50% 0%, rgba(185,143,87,.10), transparent 70%); display:grid; place-items:center; }
.scard-body{ padding:20px clamp(18px,1.6vw,24px) 22px; display:flex; flex-direction:column; flex:1; }
.scard .no{ font-size:12px; color:var(--warm); letter-spacing:.16em; }
.scard h3{ font-size:clamp(19px,1.9vw,24px); font-weight:200; margin:8px 0 10px; letter-spacing:-.01em; }
.scard p{ font-size:13px; line-height:1.6; color:var(--mut); font-weight:300; flex:1; }
.scard-go{ margin-top:16px; font-size:10.5px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--warm);
  opacity:.0; transform:translateY(4px); transition:opacity .35s, transform .35s; }
a.scard:hover .scard-go{ opacity:1; transform:none; }
.scard .arw{ position:absolute; top:18px; right:20px; color:var(--mut2); font-size:16px; opacity:0; transform:translateX(-6px); transition:opacity .35s, transform .35s; }
a.scard:hover .arw{ opacity:1; transform:none; color:var(--ink); }
.scard.one{ justify-content:center; background:none; border-style:dashed; }
.scard.one .scard-body{ flex:none; }
.scard.one h3{ color:var(--warm); }

/* mini signature vizes inside cards */
.mini{ position:relative; width:84px; height:84px; display:block; }
.viz-flow.mini{ display:flex; align-items:flex-end; gap:5px; height:60px; width:84px; }
.viz-flow.mini i{ flex:1; border-radius:2px 2px 0 0; background:linear-gradient(var(--warm),rgba(185,143,87,.12)); height:30%; animation:eq 2.4s ease-in-out infinite; }
.viz-flow.mini i:nth-child(2){ animation-delay:.2s } .viz-flow.mini i:nth-child(3){ animation-delay:.4s } .viz-flow.mini i:nth-child(4){ animation-delay:.1s } .viz-flow.mini i:nth-child(5){ animation-delay:.5s } .viz-flow.mini i:nth-child(6){ animation-delay:.3s } .viz-flow.mini i:nth-child(7){ animation-delay:.15s }
.viz-scan.mini{ width:84px; height:84px; }
.viz-scan.mini .ring{ position:absolute; border:1px solid var(--line); border-radius:50%; }
.viz-scan.mini .ring.r1{ inset:0 } .viz-scan.mini .ring.r2{ inset:26% }
.viz-scan.mini .sweep{ position:absolute; inset:0; border-radius:50%; overflow:hidden;
  background:conic-gradient(from 0deg, rgba(185,143,87,.32), transparent 60deg, transparent 360deg); animation:radar 4.5s linear infinite; }
.viz-light.mini{ width:84px; height:84px; border:1px solid var(--line); border-radius:50%; }
.viz-light.mini .orb{ position:absolute; width:40%; height:40%; border-radius:50%; filter:blur(9px); left:12%; top:18%;
  background:radial-gradient(circle, rgba(243,239,231,.5), transparent 70%); animation:floaty 9s ease-in-out infinite; }
.viz-light.mini .orb.w{ left:auto; right:12%; top:auto; bottom:16%; background:radial-gradient(circle, rgba(185,143,87,.55), transparent 70%); animation-delay:1.5s; }
.viz-pulse.mini{ width:84px; height:84px; display:grid; place-items:center; }
.viz-pulse.mini .pr{ position:absolute; inset:26%; border:1px solid var(--warm); border-radius:50%; animation:pulsering 3.2s ease-out infinite; }
.viz-pulse.mini .core{ width:16%; aspect-ratio:1; border-radius:50%; background:var(--warm); box-shadow:0 0 22px var(--warm); }
.viz-chart.mini{ display:flex; align-items:flex-end; gap:7px; height:60px; width:84px; border-bottom:1px solid var(--line); }
.viz-chart.mini i{ flex:1; border-radius:2px 2px 0 0; background:linear-gradient(var(--warm),rgba(185,143,87,.14)); animation:grow 2.6s cubic-bezier(.4,0,.1,1) infinite alternate; }
.viz-chart.mini i:nth-child(2){ animation-delay:.3s } .viz-chart.mini i:nth-child(3){ animation-delay:.6s } .viz-chart.mini i:nth-child(4){ animation-delay:.2s } .viz-chart.mini i:nth-child(5){ animation-delay:.5s }

/* WHERE IT RUNS */
.wheregrid{ margin-top:clamp(40px,6vh,64px); display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:4px; overflow:hidden; }
.wcell{ background:var(--bg); padding:clamp(26px,3vw,40px) clamp(22px,2.4vw,32px); transition:background .4s; }
.wcell:hover{ background:var(--bg2); }
.wcell .wn{ font-size:12px; color:var(--warm); letter-spacing:.16em; }
.wcell h4{ font-size:clamp(20px,2.2vw,27px); font-weight:200; margin:12px 0 12px; }
.wcell p{ font-size:14px; color:var(--mut); font-weight:300; line-height:1.6; }

/* GOVERNANCE ladder */
.ladder{ margin-top:clamp(40px,6vh,64px); position:relative; padding-left:34px; }
.ladder::before{ content:""; position:absolute; left:6px; top:8px; bottom:8px; width:1px; background:var(--line); }
.ladder .fill{ position:absolute; left:6px; top:8px; width:1px; background:linear-gradient(var(--warm),rgba(185,143,87,.15)); height:0; }
.rung{ position:relative; padding:clamp(16px,2.4vh,26px) 0; display:grid; grid-template-columns:88px 1fr; gap:24px; align-items:baseline; }
.rung::before{ content:""; position:absolute; left:-31px; top:calc(clamp(16px,2.4vh,26px) + 8px); width:9px; height:9px; border-radius:50%; background:var(--bg); border:1px solid var(--edge); transition:background .4s, box-shadow .4s; }
.rung.hot::before{ background:var(--warm); border-color:var(--warm); box-shadow:0 0 16px rgba(185,143,87,.5); }
.rung .lv{ font-size:13px; font-weight:600; letter-spacing:.14em; color:var(--warm); }
.rung h4{ font-size:clamp(18px,2vw,24px); font-weight:300; }
.rung p{ font-size:13.5px; color:var(--mut); font-weight:300; margin-top:6px; line-height:1.6; }

/* FIGURES / MARKET */
.figures{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(20px,4vw,64px); align-items:start; }
.figures.three{ grid-template-columns:repeat(3,1fr); }
.fig .n{ font-size:clamp(46px,7vw,92px); font-weight:100; line-height:.95; letter-spacing:-.04em; }
.fig .pct{ font-size:.5em; font-weight:200; }
.fig p{ margin-top:16px; font-size:14.5px; color:var(--mut); font-weight:300; max-width:32ch; }
.trust-line{ margin-top:clamp(48px,7vh,84px); font-size:clamp(24px,3.4vw,44px); font-weight:200; letter-spacing:-.015em; color:var(--ink); max-width:22ch; }
.kpis{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,2vw,28px); margin-top:clamp(36px,5vh,60px); }
.kpi{ padding-top:24px; border-top:1px solid var(--edge); transition:border-color .4s; }
.kpi:hover{ border-color:var(--warm); }
.kpi .lbl{ font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--mut2); }
.kpi .big{ font-size:clamp(26px,3.4vw,44px); font-weight:200; margin-top:14px; letter-spacing:-.02em; }
.kpi .cap{ margin-top:12px; font-size:13px; color:var(--mut); font-weight:300; }

/* FUTURE */
.future{ position:relative; min-height:90svh; display:flex; align-items:center; justify-content:center; text-align:center; overflow:hidden; background:var(--bg); }
.future .glow{ position:absolute; inset:0; z-index:0; background:radial-gradient(58% 46% at 50% 44%, rgba(185,143,87,.16), transparent 72%); }
.future .mk{ position:absolute; top:50%; left:50%; transform:translate(-50%,-52%); width:min(48vw,560px); z-index:0; opacity:.05; }
.future .inner{ position:relative; z-index:3; padding:0 24px; }
.future .k{ font-size:11px; letter-spacing:.5em; text-transform:uppercase; color:var(--warm); }
.future h2{ font-size:clamp(44px,9vw,128px); font-weight:100; letter-spacing:-.03em; margin:24px 0; line-height:.98; }
.future p{ font-size:clamp(16px,1.7vw,22px); color:var(--mut); font-weight:300; max-width:44ch; margin:0 auto; line-height:1.66; }
.future .sig{ margin-top:26px; font-size:clamp(15px,1.5vw,19px); color:var(--ink); font-weight:300; }

/* ASK */
.ask-wrap{ max-width:760px; margin:0 auto; text-align:center; }
.ask-wrap h2{ font-size:clamp(32px,5vw,66px); font-weight:200; }
.ask-wrap p{ margin:22px auto 38px; font-size:clamp(15px,1.5vw,19px); color:var(--mut); font-weight:300; max-width:48ch; }
.form{ display:flex; gap:12px; max-width:480px; margin:0 auto; flex-wrap:wrap; justify-content:center; }
.form input{ flex:1; min-width:220px; background:rgba(7,6,5,.5); border:1px solid var(--glassline); border-radius:2px; padding:16px 20px; color:var(--ink); font-family:inherit; font-size:14px; font-weight:300; }
.form input::placeholder{ color:var(--mut2); }
.form input:focus{ outline:none; border-color:var(--warm); }
.form button{ background:var(--ink); color:#120d06; border:none; border-radius:2px; padding:16px 30px; font-family:inherit; font-size:12px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; transition:background .3s; }
.form button:hover{ background:var(--warm); }
.dl{ margin:26px auto 0; display:inline-flex; align-items:center; gap:11px; font-size:11.5px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--mut); border:1px solid var(--line); border-radius:2px; padding:12px 22px; transition:color .3s, border-color .3s, background .3s; }
.dl:hover{ color:var(--ink); border-color:var(--edge); background:rgba(243,239,231,.03); }
.dl .dl-ic{ color:var(--warm); font-size:14px; }
.partners{ margin-top:40px; display:flex; gap:clamp(18px,3vw,40px); justify-content:center; flex-wrap:wrap; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--mut2); }

/* FOOTER */
footer{ border-top:1px solid var(--line); padding:clamp(64px,9vh,100px) 0 52px; position:relative; z-index:1; text-align:center; }
.flogo{ height:clamp(110px,15vw,170px); width:auto; margin:0 auto clamp(34px,5vh,54px); opacity:.95; }
.foot{ display:flex; justify-content:space-between; align-items:center; gap:28px; flex-wrap:wrap; }
.foot .fl{ display:flex; gap:clamp(16px,2vw,26px); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--mut2); flex-wrap:wrap; justify-content:center; }
.foot .fl a:hover{ color:var(--ink); }
.foot .cf{ font-size:10px; letter-spacing:.24em; text-transform:uppercase; color:var(--mut2); }

/* Lenis */
html.lenis,html.lenis body{ height:auto; }
.lenis.lenis-smooth{ scroll-behavior:auto !important; }
.lenis.lenis-stopped{ overflow:hidden; }

/* ============================================================
   INTRO: logo build-up + drone video
   ============================================================ */
#intro{ position:fixed; inset:0; z-index:9999; background:#050403; }
html.skip-intro #intro{ display:none !important; }
#boot{ position:absolute; inset:0; display:grid; place-content:center; justify-items:center; gap:22px; z-index:2; }
#bootmark{ position:relative; width:clamp(64px,8vw,96px); aspect-ratio:1094/694; }
#bootmark .bstripe{ position:absolute; inset:0; width:100%; height:100%; object-fit:contain; opacity:0; will-change:transform,opacity,filter; }
#bootmark .s1{ clip-path:inset(0 66% 0 0); }
#bootmark .s2{ clip-path:inset(0 33% 0 33%); }
#bootmark .s3{ clip-path:inset(0 0 0 66%); }
#bootword{ font-weight:200; letter-spacing:.62em; padding-left:.62em; font-size:clamp(15px,2.2vw,23px); color:var(--ink); opacity:0; }
#bootline{ font-size:9.5px; letter-spacing:.34em; text-transform:uppercase; color:var(--mut2); opacity:0; }
#hairline{ position:absolute; left:0; bottom:0; height:1px; width:100%; background:linear-gradient(90deg,transparent,var(--warm),transparent); transform:scaleX(0); transform-origin:left; z-index:3; }
#boot::after{ content:""; position:absolute; inset:0; pointer-events:none; background:repeating-linear-gradient(0deg,transparent 0 2px,rgba(255,255,255,.02) 2px 3px); z-index:1; }
#introVideo{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:1; opacity:0; }
#skipIntro{ position:absolute; bottom:26px; right:28px; z-index:4; background:none; border:1px solid var(--edge); color:var(--mut);
  font-family:inherit; font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; padding:9px 16px; border-radius:2px; cursor:pointer; opacity:0; transition:color .3s,border-color .3s; }
#skipIntro:hover{ color:var(--ink); border-color:var(--ink); }

/* ============================================================
   FLY-THROUGH page transitions (agent navigation) + page veil
   ============================================================ */
#fly{ position:fixed; inset:0; z-index:10000; background:#000; opacity:0; visibility:hidden; pointer-events:none; }
#fly.on{ opacity:1; visibility:visible; }
#flyVideo{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
#flyveil{ position:absolute; inset:0; background:#000; opacity:0; }
#pageveil{ position:fixed; inset:0; z-index:9998; background:#050403; opacity:0; visibility:hidden; pointer-events:none; }
#pageveil.show{ opacity:1; visibility:visible; }

/* ============================================================
   AGENT SUBPAGES
   ============================================================ */
.subhero{ position:relative; min-height:100svh; display:flex; align-items:center; overflow:hidden; padding:130px 0 64px; background:#050403; }
.subback{ position:absolute; top:98px; left:clamp(22px,5vw,60px); z-index:5; display:inline-flex; align-items:center; gap:9px; font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--mut); border:1px solid var(--line); border-radius:2px; padding:10px 18px; transition:color .3s,border-color .3s,background .3s; }
.subback:hover{ color:var(--ink); border-color:var(--edge); background:rgba(243,239,231,.04); }
.subback .ar{ color:var(--warm); }
.subhero .container{ position:relative; z-index:3; width:100%; }
.subhero-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(30px,5vw,72px); align-items:center; }
.subhero .no{ font-size:13px; letter-spacing:.3em; color:var(--warm); text-transform:uppercase; }
.subhero h1{ font-size:clamp(40px,6.4vw,92px); font-weight:200; margin:18px 0 22px; letter-spacing:-.02em; }
.subhero .lead{ font-size:clamp(17px,1.8vw,23px); font-weight:300; color:var(--ink); max-width:22ch; line-height:1.3; }
.viz{ position:relative; aspect-ratio:1; width:min(80%,440px); margin:0 auto; }

/* radar (security) */
.viz-scan .ring{ position:absolute; border:1px solid var(--line); border-radius:50%; }
.viz-scan .ring.r1{ inset:0; } .viz-scan .ring.r2{ inset:16%; } .viz-scan .ring.r3{ inset:33%; } .viz-scan .ring.r4{ inset:50%; }
.viz-scan .cx,.viz-scan .cy{ position:absolute; background:var(--line); }
.viz-scan .cx{ left:0; right:0; top:50%; height:1px; } .viz-scan .cy{ top:0; bottom:0; left:50%; width:1px; }
.viz-scan .sweep{ position:absolute; inset:0; border-radius:50%; overflow:hidden;
  background:conic-gradient(from 0deg, rgba(185,143,87,.28), transparent 55deg, transparent 360deg); animation:radar 4.5s linear infinite; }
.viz-scan .dot{ position:absolute; width:8px; height:8px; margin:-4px; border-radius:50%; background:var(--warm); box-shadow:0 0 14px var(--warm); opacity:0; animation:blip 4.5s ease-in-out infinite; }

/* equalizer (energy) */
.viz-flow{ display:flex; align-items:flex-end; gap:clamp(5px,1.4vw,10px); }
.viz-flow .bar{ flex:1; border-radius:2px 2px 0 0; background:linear-gradient(var(--warm),rgba(185,143,87,.12)); height:30%; animation:eq 2.4s ease-in-out infinite; }

/* ambient light (concierge) */
.viz-light{ border:1px solid var(--line); border-radius:50%; }
.viz-light .orb{ position:absolute; border-radius:50%; filter:blur(14px); background:radial-gradient(circle, rgba(243,239,231,.45), transparent 70%); animation:floaty 9s ease-in-out infinite; }
.viz-light .orb.w{ background:radial-gradient(circle, rgba(185,143,87,.5), transparent 70%); }

/* pulse (facilities) */
.viz-pulse{ display:grid; place-items:center; }
.viz-pulse .pr{ position:absolute; inset:20%; border:1px solid var(--warm); border-radius:50%; animation:pulsering 3.2s ease-out infinite; }
.viz-pulse .core{ width:14%; aspect-ratio:1; border-radius:50%; background:var(--warm); box-shadow:0 0 26px var(--warm); }
.viz-pulse .tick{ position:absolute; inset:0; border-radius:50%; border-top:1px solid rgba(185,143,87,.5); animation:radar 8s linear infinite; }

/* chart (cfo) */
.viz-chart{ display:flex; align-items:flex-end; gap:clamp(6px,1.6vw,12px); border-bottom:1px solid var(--line); border-left:1px solid var(--line); padding:6px; }
.viz-chart .col{ flex:1; border-radius:2px 2px 0 0; background:linear-gradient(var(--warm),rgba(185,143,87,.14)); animation:grow 2.6s cubic-bezier(.4,0,.1,1) infinite alternate; }

@keyframes radar{ to{ transform:rotate(360deg); } }
@keyframes blip{ 0%,18%{opacity:0} 24%{opacity:1} 55%,100%{opacity:0} }
@keyframes eq{ 0%,100%{height:26%} 50%{height:82%} }
@keyframes floaty{ 0%,100%{transform:translate(0,0)} 50%{transform:translate(14px,-18px)} }
@keyframes pulsering{ 0%{transform:scale(.32);opacity:.85} 100%{transform:scale(1.5);opacity:0} }
@keyframes grow{ from{height:22%} to{height:88%} }

/* subpage body sections */
.subsec{ padding:clamp(70px,10vh,130px) 0; position:relative; z-index:1; }
.subsec .lbl{ font-size:10.5px; letter-spacing:.32em; text-transform:uppercase; color:var(--warm); margin-bottom:26px; }
.sub-split{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,5vw,72px); align-items:start; }
.sub-split h2{ font-size:clamp(26px,3.4vw,44px); font-weight:200; letter-spacing:-.015em; }
.sub-split .body p{ font-size:clamp(15px,1.4vw,17.5px); line-height:1.72; color:var(--mut); font-weight:300; }
.caps{ display:grid; grid-template-columns:1fr 1fr; gap:0 clamp(32px,5vw,72px); margin-top:clamp(30px,4vh,44px); }
.cap{ display:flex; gap:18px; align-items:baseline; padding:22px 0; border-top:1px solid var(--line); }
.cap .cn{ font-size:12px; color:var(--warm); letter-spacing:.1em; min-width:26px; }
.cap p{ font-size:clamp(14.5px,1.4vw,17px); color:var(--ink); font-weight:300; line-height:1.5; }
/* scene band (image + quote) */
.sceneband{ position:relative; overflow:hidden; min-height:62vh; display:flex; align-items:center; }
.sceneband .sc-bg{ position:absolute; inset:0; z-index:0; }
.sceneband .sc-bg img{ width:100%; height:100%; object-fit:cover; opacity:.5; }
.sceneband .sc-scrim{ position:absolute; inset:0; z-index:1; background:linear-gradient(180deg, var(--bg), rgba(7,6,5,.5) 40%, rgba(7,6,5,.5) 60%, var(--bg)); }
.sceneband .container{ position:relative; z-index:2; }
.sceneband .sc-quote{ font-size:clamp(22px,3vw,40px); font-weight:200; letter-spacing:-.015em; max-width:20ch; line-height:1.18; }
.subauth{ margin-top:clamp(30px,4vh,44px); display:flex; gap:10px; flex-wrap:wrap; }
.subauth .lvl{ border:1px solid var(--line); border-radius:2px; padding:12px 18px; font-size:12px; letter-spacing:.06em; color:var(--mut); }
.subauth .lvl.on{ border-color:var(--warm); color:var(--ink); background:rgba(185,143,87,.08); }
.subauth .lvl b{ color:var(--warm); font-weight:600; margin-right:8px; }
.subcta{ margin-top:clamp(30px,4vh,44px); display:flex; gap:16px; flex-wrap:wrap; align-items:center; }
.agent-nav{ border-top:1px solid var(--line); padding:clamp(40px,6vh,60px) 0; display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap; }
.agent-nav .an{ display:flex; flex-direction:column; gap:6px; }
.agent-nav .an .l{ font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:var(--mut2); }
.agent-nav a.big{ font-size:clamp(18px,2.4vw,30px); font-weight:200; color:var(--mut); transition:color .3s; }
.agent-nav a.big:hover{ color:var(--ink); }
.agent-nav .mid a{ font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--warm); }

/* large screens / TV */
@media (min-width:1700px){ .container{ max-width:1360px; } .hero .wrap{ max-width:1180px; } }
@media (min-height:1100px){ .hero{ justify-content:center; } .hero .wrap{ margin-top:0; padding-bottom:0; } }

@media (max-width:980px){
  .staffgrid{ grid-template-columns:1fr 1fr; }
  .wheregrid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:900px){
  .figures,.figures.three{ grid-template-columns:1fr; gap:40px; }
  .kpis{ grid-template-columns:1fr; }
  .subhero-grid{ grid-template-columns:1fr; gap:40px; }
  .viz{ width:min(66%,300px); order:-1; }
  .caps{ grid-template-columns:1fr; }
  .sub-split{ grid-template-columns:1fr; gap:24px; }
  .subhero{ padding-top:150px; }
}
@media (max-width:640px){
  .navlinks a:not(.pill):not(.langsw *){ display:none; }
  .staffgrid{ grid-template-columns:1fr; }
  .wheregrid{ grid-template-columns:1fr; }
  .foot{ flex-direction:column; text-align:center; }
  .brand .bw{ display:none; }
  .room{ border-radius:4px; }
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
  .reveal{ opacity:1; transform:none; }
  #intro,#fly,#pageveil{ display:none !important; }
  .ambient .blob{ animation:none !important; }
}
