:root{
  --bg:#050505; --bg-alt:#0b0b0b; --panel:#0e0e0e; --panel-tint:#15130a;
  --line:rgba(255,255,255,.1); --line-strong:rgba(255,255,255,.2);
  --text:#f5f5f2; --muted:#8d8d92; --faint:#55555b;
  --accent:#f7de21; --accent-dim:rgba(247,222,33,.12); --accent-text:#000;
  --radius:10px; --maxw:1240px;
  --font-head:'Archivo',sans-serif; --font-serif:'Instrument Serif',serif;
  --font-mono:'JetBrains Mono',monospace; --font-body:'Inter Tight',sans-serif;
}
html[data-theme="light"]{
  --bg:#f4f2ea; --bg-alt:#ece8dc; --panel:#fff; --panel-tint:#fbf4d9;
  --line:rgba(0,0,0,.1); --line-strong:rgba(0,0,0,.22);
  --text:#111; --muted:#5c5b56; --faint:#8f8d84;
  --accent:#c99400; --accent-dim:rgba(201,148,0,.12); --accent-text:#000;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:16px;line-height:1.6;overflow-x:hidden;transition:background .4s,color .4s;}
*{cursor:none;}
@media(hover:none){*{cursor:auto;}}
::selection{background:var(--accent);color:#000;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;background:none;border:none;color:inherit;}
img,svg{max-width:100%;display:block;}
.section-inner,.footer-inner{max-width:var(--maxw);margin:0 auto;padding:0 32px;}
.mono{font-family:var(--font-mono);}
.serif{font-family:var(--font-serif);font-style:italic;font-weight:400;color:var(--accent);}
.ital{font-family:var(--font-serif);font-style:italic;font-weight:400;color:var(--accent);}
.accent{color:var(--text);font-weight:600;}
h1,h2,h3{font-family:var(--font-head);font-weight:800;letter-spacing:-.02em;line-height:1.05;}
.h-section{font-size:clamp(28px,4vw,46px);}
.section-num{font-family:var(--font-mono);font-size:12px;color:var(--accent);letter-spacing:.06em;text-transform:uppercase;display:block;margin-bottom:8px;}
.eyebrow{font-family:var(--font-mono);font-size:11px;color:var(--faint);letter-spacing:.05em;text-transform:uppercase;display:inline-flex;margin-bottom:20px;}
.body-tiny{font-size:12px;color:var(--muted);}

/* cursor */
.cursor,.cursor-follower{position:fixed;top:0;left:0;pointer-events:none;z-index:999;border-radius:50%;transform:translate(-50%,-50%);}
.cursor{width:7px;height:7px;background:var(--accent);opacity:0;transition:opacity .3s;}
.cursor-follower{width:32px;height:32px;border:1px solid var(--accent);opacity:0;transition:opacity .3s,width .25s,height .25s,background .25s;}
.cursor-follower.hovering{width:54px;height:54px;background:var(--accent-dim);}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:9px;background:var(--accent);color:var(--accent-text);font-family:var(--font-mono);font-weight:500;font-size:12.5px;letter-spacing:.03em;text-transform:uppercase;padding:15px 24px;border-radius:100px;cursor:none;transition:transform .2s,box-shadow .2s;}
.btn .arrow{width:11px;height:11px;transition:transform .2s;}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 26px -8px rgba(247,222,33,.5);}
.btn:hover .arrow{transform:translate(2px,-2px);}
.btn:active{transform:translateY(0) scale(.96);}
.btn-ghost{background:transparent;color:var(--text);border:1px solid var(--line-strong);}
.btn-ghost:hover{border-color:var(--accent);background:var(--accent-dim);box-shadow:none;}

/* NAV */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:20px 32px;background:rgba(5,5,5,.55);backdrop-filter:blur(12px);border-bottom:1px solid transparent;transition:border-color .3s,background .3s;}
html[data-theme="light"] .nav{background:rgba(244,242,234,.7);}
.nav.scrolled{border-bottom-color:var(--line);background:rgba(5,5,5,.9);}
html[data-theme="light"] .nav.scrolled{background:rgba(244,242,234,.92);}
.nav-logo{font-family:var(--font-head);font-weight:800;font-size:19px;display:flex;align-items:center;}
.nav-logo .e{color:var(--accent);}
.nav-logo-img{height:48px;}
.nav-logo-fallback{display:inline;}
.nav-links{display:flex;gap:28px;font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);}
.nav-link{position:relative;padding:4px 0;transition:color .2s;}
.nav-link::after{content:'';position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--accent);transition:width .25s;}
.nav-link:hover,.nav-link.active{color:var(--text);}
.nav-link.active{color:var(--accent);}
.nav-link:hover::after,.nav-link.active::after{width:100%;}
.nav-cta{display:flex;align-items:center;gap:8px;background:var(--accent);color:#000;font-family:var(--font-mono);font-size:11px;letter-spacing:.03em;text-transform:uppercase;padding:11px 18px;border-radius:100px;transition:transform .2s;}
.nav-cta:hover{transform:translateY(-2px);}
.theme-toggle{width:46px;height:24px;border-radius:20px;border:1px solid var(--line-strong);position:relative;margin-left:16px;flex-shrink:0;background:var(--panel);padding:0;overflow:visible;}
.theme-toggle-track{display:block;width:100%;height:100%;position:relative;}
.theme-toggle-thumb{position:absolute;top:50%;left:3px;width:16px;height:16px;border-radius:50%;background:var(--accent);transition:left .28s cubic-bezier(.4,0,.2,1);transform:translateY(-50%);z-index:2;}
html[data-theme="light"] .theme-toggle-thumb{left:27px;}
.theme-toggle-icon{position:absolute;top:50%;transform:translateY(-50%);color:var(--faint);font-size:10px;line-height:1;display:flex;align-items:center;justify-content:center;width:14px;height:14px;}
.theme-toggle-icon.sun{left:5px;} .theme-toggle-icon.moon{right:5px;}
.burger{display:none;width:22px;height:15px;position:relative;flex-shrink:0;margin-left:14px;}
.burger span{position:absolute;left:0;right:0;height:1.6px;background:var(--text);transition:transform .25s,opacity .25s,top .25s;}
.burger span:nth-child(1){top:0;} .burger span:nth-child(2){top:6.5px;} .burger span:nth-child(3){top:13px;}
.burger.is-open span:nth-child(1){top:6.5px;transform:rotate(45deg);}
.burger.is-open span:nth-child(2){opacity:0;}
.burger.is-open span:nth-child(3){top:6.5px;transform:rotate(-45deg);}
.mobile-menu{position:fixed;top:0;right:0;height:100vh;width:min(78vw,320px);background:var(--bg-alt);border-left:1px solid var(--line);z-index:95;display:flex;flex-direction:column;gap:4px;padding:100px 28px 40px;transform:translateX(100%);transition:transform .35s cubic-bezier(.4,0,.2,1);overflow-y:auto;}
.mobile-menu.is-open{transform:translateX(0);}
.mobile-menu-link{font-family:var(--font-mono);font-size:13px;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);padding:14px 0;border-bottom:1px solid var(--line);transition:color .2s;}
.mobile-menu-link:hover,.mobile-menu-link.active{color:var(--accent);}
.mobile-menu-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:94;opacity:0;pointer-events:none;transition:opacity .3s;}
.mobile-menu-backdrop.is-open{opacity:1;pointer-events:auto;}

/* HERO */
.hero{position:relative;min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding-top:100px;overflow:hidden;}
.hero-grid{position:absolute;inset:-20% 0 0 0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:64px 64px;opacity:.35;mask-image:radial-gradient(ellipse 70% 60% at 60% 40%,#000 40%,transparent 90%);}
.hero-canvas{position:absolute;top:50%;right:2%;width:min(64vw,860px);height:min(64vw,860px);transform:translateY(-50%);}
@media(max-width:960px){.hero-canvas{width:min(95vw,560px);height:min(95vw,560px);right:50%;transform:translate(50%,-46%);opacity:.45;}}
.hero-vignette{position:absolute;inset:0;background:radial-gradient(ellipse 60% 50% at 50% 100%,var(--bg) 0%,transparent 60%);pointer-events:none;}
.hero-content{position:relative;z-index:2;max-width:var(--maxw);width:100%;margin:0 auto;padding:0 32px;}
.hero-title-block{overflow:visible;}
.hero-title{font-size:clamp(40px,6.2vw,76px);}
.hero-title .ln{display:block;overflow:hidden;}
.hero-title .ln > span{display:block;transform:translateY(110%);opacity:0;animation:lnup .8s cubic-bezier(.19,1,.22,1) forwards;}
.hero-title .ln:nth-child(1) > span{animation-delay:.15s;}
.hero-title .ln:nth-child(2) > span{animation-delay:.32s;}
.hero-title .ln:nth-child(3) > span{animation-delay:.48s;}
@keyframes lnup{to{transform:translateY(0);opacity:1;}}
.hero-title .glow{color:var(--text);text-shadow:0 0 40px rgba(247,222,33,.25);}
.hero-bottom{margin-top:34px;max-width:600px;}
.hero-rotator{color:var(--muted);font-size:16.5px;max-width:440px;}
.hero-actions{margin-top:30px;}
.hero-actions .body-tiny{margin-bottom:18px;text-transform:uppercase;letter-spacing:.03em;font-family:var(--font-mono);}
.scroll-cue{position:absolute;left:32px;bottom:36px;display:flex;flex-direction:column;align-items:center;gap:10px;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;color:var(--faint);text-transform:uppercase;z-index:2;}
.scroll-cue .ln{width:1px;height:38px;background:linear-gradient(var(--faint),transparent);animation:cue 1.8s ease-in-out infinite;}
@keyframes cue{0%,100%{transform:scaleY(1);opacity:.6;}50%{transform:scaleY(.5);opacity:1;}}

/* MARQUEE */
.marquee{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:26px 0;overflow:hidden;white-space:nowrap;}
.marquee-track{display:inline-flex;animation:mq 32s linear infinite;font-family:var(--font-head);font-weight:600;font-size:22px;color:var(--muted);letter-spacing:.01em;}
.marquee-track .star{color:var(--accent);padding:0 8px;font-size:16px;}
@media(max-width:960px){.marquee-track{font-size:16px;} .marquee{padding:18px 0;}}
@keyframes mq{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* SECTIONS */
.section{padding:120px 0;border-top:1px solid var(--line);position:relative;}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;flex-wrap:wrap;margin-bottom:54px;}
.section-head-meta{display:flex;flex-direction:column;}

/* ABOUT / KPIs */
.manifesto-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start;}
.manifesto-body{color:var(--muted);font-size:17px;max-width:520px;}
.kpis{display:grid;grid-template-columns:1fr 1fr;gap:34px;}
.kpi{border-top:1px solid var(--line);padding-top:20px;transition:transform .25s;}
.kpi:hover{transform:translateY(-3px);}
.kpi .num{font-family:var(--font-head);font-weight:800;font-size:clamp(26px,3vw,38px);}
.kpi .num .accent{color:var(--accent);}
.kpi:hover .num span{text-shadow:0 0 22px rgba(247,222,33,.45);}
.kpi .lbl{font-family:var(--font-mono);font-size:11.5px;color:var(--faint);text-transform:uppercase;margin-top:8px;line-height:1.5;letter-spacing:.02em;}

/* SPLIT */
.split{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);}
.split-pane{padding:56px 32px;border-left:1px solid var(--line);transition:background .3s;}
.split-pane:first-child{border-left:none;}
.split-pane.is-active{background:linear-gradient(155deg,var(--accent-dim),transparent 60%),var(--panel-tint);}
.split-pane:hover{background:linear-gradient(155deg,var(--accent-dim),transparent 60%),var(--panel-tint);}
.split-pane .tag{display:flex;align-items:center;gap:9px;font-family:var(--font-mono);font-size:11px;color:var(--accent);text-transform:uppercase;letter-spacing:.05em;margin-bottom:18px;}
.pulse{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:pulse 1.6s ease-in-out infinite;}
@keyframes pulse{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(247,222,33,.5);}50%{opacity:.6;box-shadow:0 0 0 6px rgba(247,222,33,0);}}
.split-pane .title{font-family:var(--font-head);font-weight:800;font-size:28px;line-height:1.18;margin-bottom:16px;max-width:360px;}
.split-pane .desc{color:var(--muted);font-size:14.5px;max-width:400px;margin-bottom:30px;}
.split-products{max-width:460px;}
.split-product{display:flex;align-items:center;gap:14px;padding:15px 0;border-top:1px solid var(--line);cursor:none;transition:padding-left .2s;}
.split-product:hover{padding-left:8px;}
.split-product .num{font-family:var(--font-mono);color:var(--accent);font-size:12.5px;min-width:26px;}
.split-product .name{font-size:14px;flex:1;}
.split-product .arrow{color:var(--faint);transition:transform .2s,color .2s;}
.split-product:hover .arrow{transform:translate(3px,-3px);color:var(--accent);}

/* OSPIRA */
.ospira-hero{border:1px solid rgba(247,222,33,.28);border-radius:var(--radius);background:linear-gradient(155deg,var(--accent-dim),transparent 55%),var(--panel-tint);padding:50px;display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;margin-bottom:22px;overflow:hidden;}
.ospira-flag{display:flex;align-items:center;gap:9px;font-family:var(--font-mono);font-size:11px;color:var(--accent);text-transform:uppercase;letter-spacing:.05em;margin-bottom:16px;}
.ospira-flag .dot{width:6px;height:6px;border-radius:50%;background:var(--accent);}
.ospira-name{font-family:var(--font-head);font-weight:800;font-size:34px;}
.ospira-promise{font-family:var(--font-serif);font-style:italic;color:var(--accent);font-size:16px;margin-top:8px;max-width:380px;}
.ospira-what{color:var(--muted);font-size:14.5px;margin:20px 0 28px;max-width:420px;}
.ospira-actions{display:flex;gap:14px;flex-wrap:wrap;}
.ospira-stage{position:relative;height:340px;perspective:1000px;}
.ospira-grid3d{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .1s ease-out;}
.ospira-module{position:absolute;border:1px solid var(--line-strong);border-radius:9px;padding:14px 16px;background:rgba(0,0,0,.5);font-size:12px;transform:translateZ(var(--z)) translateY(0);animation:mfloat 5s ease-in-out infinite;animation-delay:var(--delay);transition:border-color .2s,background .2s;cursor:none;backdrop-filter:blur(2px);}
html[data-theme="light"] .ospira-module{background:rgba(255,255,255,.7);}
.ospira-module:hover{border-color:var(--accent);background:var(--accent-dim);z-index:5;}
@keyframes mfloat{0%,100%{translate:0 0;}50%{translate:0 -8px;}}
.m-label{display:block;font-family:var(--font-head);font-weight:700;font-size:14.5px;}
.m-sub{display:block;color:var(--faint);font-size:10.5px;font-family:var(--font-mono);margin-top:3px;}

.products-gallery-head{margin:56px 0 22px;}
.products-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.pcard{text-align:left;border:1px solid var(--line);border-radius:var(--radius);padding:26px;background:var(--panel);cursor:none;transform-style:preserve-3d;transition:border-color .2s,transform .1s;position:relative;}
.pcard:hover{border-color:var(--accent);}
.p-badge{display:inline-block;font-family:var(--font-mono);font-size:10px;color:var(--accent);background:var(--accent-dim);padding:3px 9px;border-radius:100px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:10px;}
.p-num{display:block;font-family:var(--font-mono);font-size:12px;color:var(--faint);margin-bottom:12px;}
.p-name{display:block;font-family:var(--font-head);font-weight:700;font-size:18px;margin-bottom:8px;}
.p-promise{display:block;color:var(--muted);font-size:13.5px;margin-bottom:18px;min-height:36px;}
.p-more{display:inline-flex;gap:6px;font-family:var(--font-mono);font-size:12px;color:var(--accent);}

/* MODALS shared */
.product-modal,.faq-modal{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;pointer-events:none;transition:opacity .3s;}
.product-modal.is-open,.faq-modal.is-open{opacity:1;pointer-events:auto;}
.product-modal-backdrop,.faq-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.75);backdrop-filter:blur(8px);cursor:none;}
.product-modal-panel{position:relative;background:var(--panel);border:1px solid var(--line-strong);border-radius:var(--radius);max-width:620px;width:100%;max-height:84vh;overflow:auto;padding:46px;transform:translateY(16px) scale(.98);transition:transform .3s;}
.faq-modal-panel{position:relative;background:var(--panel);border:1px solid var(--line-strong);border-radius:var(--radius);max-width:560px;width:100%;padding:46px;transform:translateY(16px) scale(.98);transition:transform .3s;}
.product-modal.is-open .product-modal-panel,.faq-modal.is-open .faq-modal-panel{transform:translateY(0) scale(1);}
.product-modal-close,.faq-modal-close{position:absolute;top:20px;right:22px;font-size:24px;color:var(--muted);cursor:none;}
.pm-badge{font-family:var(--font-mono);font-size:10.5px;color:var(--accent);text-transform:uppercase;letter-spacing:.05em;}
.pm-num{font-family:var(--font-mono);font-size:11px;color:var(--faint);margin-left:10px;}
.pm-name{font-family:var(--font-head);font-weight:800;font-size:28px;margin:8px 0 6px;}
.pm-promise{font-family:var(--font-serif);font-style:italic;color:var(--accent);font-size:16px;}
.pm-block{margin-top:22px;}
.pm-block h4{font-family:var(--font-mono);font-size:11px;color:var(--accent);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;}
.pm-block p{color:var(--muted);font-size:14.5px;}
.pm-features,.pm-how{list-style:none;color:var(--muted);font-size:14px;}
.pm-features li,.pm-how li{padding:6px 0;border-top:1px solid var(--line);}
.pm-features li:first-child,.pm-how li:first-child{border-top:none;}
.pm-features li::before{content:'— ';color:var(--accent);}
.pm-how{counter-reset:step;}
.pm-how li::before{counter-increment:step;content:counter(step) '. ';color:var(--accent);font-family:var(--font-mono);}
.pm-cta{margin-top:28px;}
.faq-modal-eyebrow{font-family:var(--font-mono);font-size:11px;color:var(--accent);text-transform:uppercase;letter-spacing:.05em;}
.faq-modal-q{font-family:var(--font-head);font-weight:800;font-size:24px;margin:10px 0 16px;}
.faq-modal-a{color:var(--muted);font-size:14.5px;margin-bottom:26px;}

/* SERVICES */
.services{border-top:1px solid var(--line);}
.service{display:grid;grid-template-columns:70px 1fr 30px;align-items:start;gap:24px;padding:30px 0;border-bottom:1px solid var(--line);transition:padding-left .25s;cursor:none;}
.service:hover{padding-left:10px;background:var(--accent-dim);}
.service .num{font-family:var(--font-mono);color:var(--faint);font-size:13px;}
.service .name{display:block;font-family:var(--font-head);font-weight:700;font-size:19px;margin-bottom:8px;}
.service .desc{display:block;color:var(--muted);font-size:14px;max-width:520px;}
.service .arrow{color:var(--faint);font-size:18px;align-self:center;transition:transform .2s,color .2s;}
.service:hover .arrow{color:var(--accent);transform:translate(4px,-4px);}

/* TEAM */
.leaders{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:56px;}
.leader-card{border:1px solid var(--line);border-radius:var(--radius);padding:28px;background:var(--panel);transform-style:preserve-3d;transition:border-color .2s,transform .1s;cursor:none;}
.leader-card:hover{border-color:var(--accent);}
.leader-name{font-family:var(--font-head);font-weight:700;font-size:18px;margin-bottom:6px;}
.leader-title{font-family:var(--font-mono);font-size:11px;color:var(--accent);text-transform:uppercase;letter-spacing:.04em;}
.spartners-head{margin-bottom:20px;}
.partners-desc{color:var(--muted);font-size:14px;margin-top:6px;}
.spartners{display:flex;gap:14px;flex-wrap:wrap;}
.spartner-card{border:1px solid var(--line);border-radius:100px;padding:14px 26px;background:var(--panel);transition:border-color .2s,transform .15s;cursor:none;}
.spartner-card:hover{border-color:var(--accent);transform:translateY(-3px);}
.spartner-name{font-family:var(--font-head);font-weight:600;font-size:14.5px;}

/* WORLD MAP */
.world-map-container{position:relative;border:1px solid var(--line);border-radius:var(--radius);background:radial-gradient(ellipse 70% 90% at 68% 38%,var(--accent-dim),transparent 60%),var(--panel);aspect-ratio:2.1/1;overflow:hidden;margin-bottom:50px;}
.world-map-container svg{position:absolute;inset:0;width:100%;height:100%;}
@media(max-width:960px){.world-map-container{aspect-ratio:1.1/1;}}
.world-map-overlay{position:absolute;inset:0;}
.map-pin{position:absolute;left:var(--px);top:var(--py);transform:translate(-50%,-50%);}
.map-pin-dot{position:absolute;left:0;top:0;width:10px;height:10px;border-radius:50%;background:var(--accent);transform:translate(-50%,-50%);box-shadow:0 0 0 0 rgba(247,222,33,.6),0 0 12px rgba(247,222,33,.8);animation:pindot 2.2s ease-out infinite;z-index:2;}
@keyframes pindot{0%{box-shadow:0 0 0 0 rgba(247,222,33,.55),0 0 12px rgba(247,222,33,.8);}70%{box-shadow:0 0 0 16px rgba(247,222,33,0),0 0 12px rgba(247,222,33,.8);}100%{box-shadow:0 0 0 0 rgba(247,222,33,0),0 0 12px rgba(247,222,33,.8);}}
.map-pin--hq .map-pin-dot{width:15px;height:15px;background:var(--accent);}
.map-pin-pill{position:absolute;left:12px;top:-12px;display:flex;align-items:center;gap:6px;background:var(--bg);border:1px solid var(--line-strong);border-radius:100px;padding:6px 14px 6px 7px;font-family:var(--font-mono);font-size:11px;font-weight:500;white-space:nowrap;opacity:0;transform:translateX(-4px);transition:opacity .2s,transform .2s;box-shadow:0 6px 18px rgba(0,0,0,.4);z-index:3;}
.map-pin:hover .map-pin-pill,.map-pin--hq .map-pin-pill{opacity:1;transform:translateX(0);}
.map-pin--hq .map-pin-pill{background:var(--accent);color:#000;border-color:var(--accent);font-weight:600;}
.map-pin-flag{font-size:14px;}

.offices-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;}
.office-card{background:var(--panel);padding:24px 26px;transition:background .2s;}
.office-card:hover{background:var(--accent-dim);}
.office-badge{font-family:var(--font-mono);font-size:10px;color:var(--accent);text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px;}
.office-badge--sat{color:var(--faint);}
.office-city{font-family:var(--font-head);font-weight:700;font-size:15.5px;}
.office-phone{display:block;color:var(--muted);font-size:12.5px;margin-top:8px;font-family:var(--font-mono);}

/* CONTACT */
.contact-particles{position:absolute;inset:0;pointer-events:none;opacity:.5;}
.contact-grid{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;flex-wrap:wrap;position:relative;z-index:1;}

/* FAQ */
.faq-list{list-style:none;border-top:1px solid var(--line);}
.faq-item{border-bottom:1px solid var(--line);}
.faq-q{width:100%;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:26px 4px;cursor:none;font-family:var(--font-head);font-weight:700;font-size:17px;text-align:left;transition:color .2s;}
.faq-q:hover{color:var(--accent);}
.faq-q-icon{width:26px;height:26px;border-radius:50%;border:1px solid var(--line-strong);position:relative;flex-shrink:0;transition:border-color .2s;}
.faq-q-icon::before,.faq-q-icon::after{content:'';position:absolute;background:var(--accent);top:50%;left:50%;transform:translate(-50%,-50%);}
.faq-q-icon::before{width:10px;height:1.4px;} .faq-q-icon::after{width:1.4px;height:10px;}
.faq-q:hover .faq-q-icon{border-color:var(--accent);}

/* FOOTER */
.footer{padding:80px 0 30px;border-top:1px solid var(--line);}
.footer-inner{text-align:center;}
.footer-brand{font-family:var(--font-head);font-weight:800;font-size:clamp(50px,10vw,110px);letter-spacing:-.02em;line-height:1;}
.footer-brand .e{color:var(--accent);}
.footer-links{display:flex;justify-content:center;gap:26px;margin:30px 0;font-family:var(--font-mono);font-size:12.5px;color:var(--muted);}
.footer-links a:hover{color:var(--accent);}
.footer-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;max-width:var(--maxw);margin:0 auto;padding:26px 32px 0;border-top:1px solid var(--line);color:var(--faint);font-family:var(--font-mono);font-size:11.5px;}

/* MOBILE NAV */
.mobile-nav{display:none;}

/* back to top */
.to-top{position:fixed;right:26px;bottom:26px;z-index:80;width:48px;height:48px;border-radius:50%;background:var(--accent);color:#000;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(0,0,0,.35);opacity:0;pointer-events:none;transform:translateY(10px);transition:opacity .3s,transform .3s;}
.to-top.is-visible{opacity:1;pointer-events:auto;transform:translateY(0);}
.to-top:hover{transform:translateY(-3px);}
.to-top svg{width:18px;height:18px;}
@media(max-width:960px){.to-top{right:16px;bottom:78px;width:42px;height:42px;}}

/* stagger reveal */
.stagger-item,.section-head,.manifesto-body,.kpis,.hero-actions{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease;}
.stagger-item.in-view,.section-head.in-view,.manifesto-body.in-view,.kpis.in-view,.hero-actions.in-view{opacity:1;transform:translateY(0);}

@media(max-width:960px){
  *{cursor:auto;} .cursor,.cursor-follower{display:none;}
  .nav{padding:16px 20px;}
  .nav-links{display:none;}
  .nav-cta{display:none;}
  .burger{display:block;}
  .hero{padding-top:88px;}
  .hero-content{padding:0 20px;}
  .hero-title{font-size:clamp(34px,9vw,52px);}
  .hero-rotator{font-size:15px;}
  .scroll-cue{display:none;}
  .hero-canvas{opacity:.4;}
  .section{padding:64px 0;}
  .section-inner{padding:0 20px;}
  .section-head{margin-bottom:36px;gap:20px;}
  .h-section{font-size:clamp(24px,6.5vw,34px);}
  .manifesto-grid{grid-template-columns:1fr;gap:30px;}
  .manifesto-body{font-size:15px;}
  .kpis{grid-template-columns:1fr 1fr;gap:22px;}
  .kpi .num{font-size:clamp(22px,5.5vw,28px);}
  .kpi .lbl{font-size:10.5px;}
  .split{grid-template-columns:1fr;}
  .split-pane{border-left:none;border-top:1px solid var(--line);padding:36px 20px;}
  .split-pane:first-child{border-top:none;}
  .split-pane .title{font-size:22px;}
  .ospira-hero{grid-template-columns:1fr;padding:24px;gap:28px;}
  .ospira-name{font-size:28px;}
  .ospira-stage{height:220px;}
  .ospira-module{padding:10px 12px;}
  .m-label{font-size:12.5px;} .m-sub{font-size:9.5px;}
  .products-gallery-head{margin:40px 0 16px;}
  .products-gallery{grid-template-columns:1fr 1fr;gap:12px;}
  .pcard{padding:20px;}
  .leaders{grid-template-columns:1fr;gap:14px;}
  .spartners{gap:10px;}
  .spartner-card{padding:12px 20px;}
  .world-map-container{margin-bottom:34px;}
  .offices-grid{grid-template-columns:1fr 1fr;}
  .office-card{padding:18px 18px;}
  .service{grid-template-columns:44px 1fr 18px;gap:14px;padding:22px 0;}
  .service .name{font-size:16.5px;}
  .service .desc{font-size:13px;}
  .footer{padding:56px 0 24px;}
  .footer-bottom{padding:20px 20px 0;flex-direction:column;text-align:center;}
  .mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:90;background:rgba(5,5,5,.92);backdrop-filter:blur(10px);border-top:1px solid var(--line);justify-content:space-around;padding:10px 0 max(10px,env(safe-area-inset-bottom));}
  html[data-theme="light"] .mobile-nav{background:rgba(244,242,234,.92);}
  .mobile-nav-item{display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--faint);font-size:10px;font-family:var(--font-mono);}
  .mobile-nav-item svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;}
  .mobile-nav-item.is-active{color:var(--accent);}
  body{padding-bottom:64px;}
}
@media(max-width:600px){
  .kpis{grid-template-columns:1fr 1fr;}
  .products-gallery{grid-template-columns:1fr;}
  .offices-grid{grid-template-columns:1fr;}
  .contact-grid{flex-direction:column;align-items:flex-start;}
  .footer-brand{font-size:clamp(42px,15vw,64px);}
}