/* Self-hosted variable fonts (SIL Open Font License). Latin subset. */
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:400 600;font-display:swap;src:url(../fonts/cormorant-garamond.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:400 500;font-display:swap;src:url(../fonts/cormorant-garamond-italic.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Jost';font-style:normal;font-weight:300 600;font-display:swap;src:url(../fonts/jost.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* ── IMS design system: tokens, reset, typography, layout ───────────────── */
:root {
  --navy-950: #06090f;
  --navy-900: #0b1a33;
  --navy-800: #112447;
  --navy-700: #1a3260;
  --paper: #f6f3ee;
  --bone: #fbf9f6;
  --stone: #ece7de;
  --line: #d9d2c5;
  --ink: #0b1a33;
  --ink-2: #38465e;
  --ink-3: #586580;
  --silver: #aeb5c0;
  --signal: #c9a96b;
  --signal-ink: #7a5b1d;
  --f-display: 'Cormorant Garamond', 'Iowan Old Style', Georgia, serif;
  --f-body: 'Jost', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --f-mono: 'Jost', system-ui, sans-serif;
  --header-h: 72px;
  --wrap: 1280px;
  --gutter: clamp(20px, 4vw, 56px);
  --ease: cubic-bezier(.2, .7, .2, 1);

  --fg: var(--ink);
  --fg-2: var(--ink-2);
  --fg-3: var(--ink-3);
  --rule: var(--line);
  --accent: var(--signal-ink);
}
.is-dark {
  --fg: var(--paper);
  --fg-2: rgba(246, 243, 238, .78);
  --fg-3: rgba(246, 243, 238, .62);
  --rule: rgba(246, 243, 238, .18);
  --accent: var(--signal);
  color: var(--fg);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--header-h) + 16px); }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink-2);
  font: 400 1.0625rem/1.68 var(--f-body);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img, svg, video { max-width: 100%; display: block; }
a { color: inherit; }
ul, ol { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, h4, p, figure, blockquote { margin: 0; }
button { font: inherit; color: inherit; }
:focus { outline: none; }
:focus-visible { outline: 3px solid var(--signal-ink); outline-offset: 3px; border-radius: 2px; }
.is-dark :focus-visible { outline-color: var(--signal); }
main:focus { outline: none; }
::selection { background: var(--signal); color: var(--navy-900); }

.sr-only { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip { position: fixed; left: 12px; top: -60px; z-index: 300; background: var(--navy-900); color: var(--paper); padding: 12px 18px; border-radius: 4px; text-decoration: none; transition: top .2s; }
.skip:focus { top: 12px; }

.wrap { width: 100%; max-width: calc(var(--wrap) + var(--gutter) * 2); margin-inline: auto; padding-inline: var(--gutter); }

/* Typography */
h1, h2, h3 { font-family: var(--f-display); font-weight: 500; color: var(--fg); letter-spacing: -.005em; line-height: 1.02; }
h1 { font-size: clamp(3.2rem, 7vw, 6.4rem); }
h2 { font-size: clamp(2.4rem, 4.8vw, 4.2rem); }
h3 { font-size: clamp(1.7rem, 2.5vw, 2.2rem); line-height: 1.1; }
h1 em, h2 em, h3 em { font-style: italic; }
p { max-width: 68ch; }
.mono { font-family: var(--f-mono); font-size: .76rem; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; }
.lead { font-size: clamp(1.1rem, 1.5vw, 1.3rem); line-height: 1.55; color: var(--fg-2); max-width: 56ch; }
strong { font-weight: 600; color: var(--fg); }

/* Sections */
.sec { padding-block: clamp(72px, 9vw, 132px); color: var(--fg-2); }
.sec--paper { background: var(--paper); }
.sec--bone { background: var(--bone); }
.sec--stone { background: var(--stone); }
.sec--navy { background: var(--navy-900); }
.sec--navy-deep { background: var(--navy-950); }

.sec-head { max-width: 62rem; margin-bottom: clamp(40px, 5vw, 72px); }
.sec-head__label { color: var(--accent); margin-bottom: 20px; display: flex; gap: 12px; align-items: center; }
.sec-head__label span { color: var(--fg-3); }
.sec-head__label::after { content: ''; flex: 0 0 56px; height: 1px; background: currentColor; opacity: .45; }
.sec-head__title { max-width: 18ch; }
.sec-head__lead { margin-top: 24px; font-size: clamp(1.08rem, 1.4vw, 1.25rem); color: var(--fg-2); max-width: 54ch; }
.sec-head--wide .sec-head__title { max-width: 24ch; }

/* Scroll reveal (content is visible without JS) */
.js .rv { opacity: 0; transform: translateY(22px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
.js .rv.in { opacity: 1; transform: none; }
.js .rv[data-d="1"] { transition-delay: .08s; }
.js .rv[data-d="2"] { transition-delay: .16s; }
.js .rv[data-d="3"] { transition-delay: .24s; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .js .rv { opacity: 1; transform: none; transition: none; }
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
}

/* ── Closing: one dark family into the footer, a calm footer, an immersive HMS ── */

/* Fewer tones: the beige "stone" is now just the warm white */
.sec--stone { background: var(--bone); }

/* The section before the footer flows into it: navy melts into near-black */
.sec--end { background: linear-gradient(180deg, var(--navy-900) 0%, var(--navy-950) 100%); padding-bottom: clamp(96px, 12vw, 180px); }
.sec--end .sec-head__title, .sec--end h3 { color: var(--paper); }

/* Footer */
.ft { background: var(--navy-950); color: rgba(246, 243, 238, .72); }
.ft__top { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 28px 64px; padding-block: clamp(32px, 5vw, 72px) clamp(40px, 5vw, 64px); }
.ft__title { font-size: clamp(2.6rem, 4.9vw, 4.7rem); line-height: .98; max-width: 14ch; color: var(--paper); letter-spacing: -.015em; }
.ft__title em { color: var(--signal); font-style: italic; font-weight: 400; }
.ft__grid { display: grid; grid-template-columns: 210px 1fr 1fr; gap: clamp(28px, 5vw, 80px); align-items: start; padding-block: 36px; border-top: 1px solid rgba(246, 243, 238, .12); }
.ft__logo { display: block; width: 190px; padding: 14px 18px; background: var(--bone); border-radius: 12px; }
.ft__list { display: grid; gap: 10px; padding: 0; }
.ft__list--nav { grid-template-columns: 1fr 1fr; gap: 10px 32px; }
.ft__list a, .ft__list li { color: var(--paper); font-size: 1.02rem; text-decoration: none; }
.ft__list a { background: linear-gradient(var(--signal), var(--signal)) 0 100% / 0 1px no-repeat; padding-bottom: 2px; transition: background-size .35s var(--ease), color .2s; }
.ft__list a:hover { background-size: 100% 1px; color: #fff; }
.ft__base { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px 28px; padding-block: 20px 28px; border-top: 1px solid rgba(246, 243, 238, .12); font-size: .86rem; color: rgba(246, 243, 238, .5); }
.ft__base ul { display: flex; gap: 22px; padding: 0; }
.ft__base a { color: inherit; text-decoration: none; }
.ft__base a:hover { color: var(--paper); }

/* HMS: immersive */
.hx { min-height: 100svh; }
.hx .hhero__img { transform: scale(1.18); will-change: transform; }
.hx__line { font: italic 400 clamp(1.6rem, 3vw, 2.6rem)/1.15 var(--f-display); color: var(--paper); margin: 0 0 30px; }
.hx__line em { color: var(--signal); }
.hv { position: relative; }
.hv__scene { position: sticky; top: 0; display: grid; align-items: end; min-height: 100svh; overflow: hidden; border-radius: 34px 34px 0 0; background: var(--navy-950); box-shadow: 0 -34px 70px -34px rgba(0, 0, 0, .6); }
.hv__img, .hz__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scale(1.18); will-change: transform; }
.hv__shade, .hz__shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(6, 9, 15, .15) 0%, rgba(6, 9, 15, .3) 45%, rgba(6, 9, 15, .88) 100%); }
.hv__in { position: relative; padding-block: 120px clamp(64px, 11vh, 120px); }
.hv__tag { color: var(--signal); margin-bottom: 18px; }
.hv__tag span { color: var(--paper); margin-right: 10px; }
.hv__title { font-size: clamp(3.4rem, 8.4vw, 8.6rem); line-height: .92; letter-spacing: -.025em; color: var(--paper); max-width: 12ch; }
.hv__title em { color: var(--signal); font-style: italic; font-weight: 400; }
.hv__credit { position: absolute; right: var(--gutter); bottom: 14px; color: rgba(246, 243, 238, .6); font-size: .66rem; text-transform: none; letter-spacing: .02em; }
.hv__credit a { color: inherit; }
.hz { position: relative; display: grid; place-items: center; min-height: 100svh; overflow: hidden; text-align: center; background: var(--navy-950); }
.hz__shade { background: radial-gradient(ellipse at center, rgba(6, 9, 15, .35), rgba(6, 9, 15, .8)); }
.hz__in { position: relative; display: grid; justify-items: center; gap: 22px; }
.hz__title { font-size: clamp(3.6rem, 9vw, 9rem); line-height: .92; letter-spacing: -.025em; color: var(--paper); }
.hz__title em { color: var(--signal); font-style: italic; font-weight: 400; }
.hz__line { max-width: 40ch; font-size: 1.2rem; color: rgba(246, 243, 238, .84); }

@media (max-width: 1080px) {
  .ft__top { grid-template-columns: 1fr; align-items: start; }
  .ft__grid { grid-template-columns: 1fr 1fr; }
  .ft__logo { grid-column: 1 / -1; }
  .hv__scene { position: relative; min-height: 86svh; border-radius: 0; box-shadow: none; }
}
@media (max-width: 720px) {
  .ft__grid { grid-template-columns: 1fr; }
  .ft__list--nav { grid-template-columns: 1fr 1fr; }
  .ft .btn { width: 100%; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
  .hx .hhero__img, .hv__img, .hz__img { transform: none; }
}

.ft__title { max-width: 11.5em; }
.sec--end { padding-bottom: clamp(56px, 7vw, 96px); }
.ft__base { padding-right: 84px; }
@media (max-width: 720px) { .ft__title { max-width: 9em; } .ft__base { padding-right: 0; padding-bottom: 84px; } }

.sec--end { padding-bottom: clamp(24px, 3vw, 48px); }
.ft__top { padding-top: clamp(40px, 5vw, 72px); }

/* HMS: the idea in pictures */
.hg{padding-block:clamp(24px,4vw,64px) clamp(56px,8vw,120px)}
.hg__grid{display:grid;grid-template-columns:1.25fr 1fr;grid-template-rows:auto auto;gap:clamp(10px,1.6vw,22px)}
.hg figure{margin:0;overflow:hidden;border-radius:var(--r-md,14px);background:var(--navy-900)}
.hg__grid img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.hg__grid figure:hover img{transform:scale(1.04)}
.hg__a{grid-row:1/3;aspect-ratio:4/5}
.hg__b,.hg__c{aspect-ratio:16/10}
.hg__console{position:relative;margin-top:clamp(40px,6vw,88px)!important;overflow:visible!important;background:none!important}
.hg__console img{width:100%;height:auto;display:block;border-radius:14px;opacity:.9;filter:saturate(.8) blur(1.5px);
 -webkit-mask-image:radial-gradient(ellipse 70% 62% at 50% 38%,#000 0,rgba(0,0,0,.55) 48%,transparent 82%);
 mask-image:radial-gradient(ellipse 70% 62% at 50% 38%,#000 0,rgba(0,0,0,.55) 48%,transparent 82%)}
.hg__console figcaption{position:absolute;left:0;right:0;bottom:6%;text-align:center;color:var(--ink-soft,#4b5565)}
@media (max-width:720px){.hg__grid{grid-template-columns:1fr}.hg__a{grid-row:auto;aspect-ratio:4/3}}
.hg__grid{grid-template-rows:1fr 1fr}
.hg__b,.hg__c{aspect-ratio:auto;min-height:0}
.hg__console img{opacity:.85;filter:grayscale(.75) contrast(.95) blur(3px);
 -webkit-mask-image:radial-gradient(ellipse 62% 56% at 50% 36%,#000 0,rgba(0,0,0,.45) 45%,transparent 78%);
 mask-image:radial-gradient(ellipse 62% 56% at 50% 36%,#000 0,rgba(0,0,0,.45) 45%,transparent 78%)}
@media (max-width:720px){.hg__b,.hg__c{aspect-ratio:16/10}}


/* ── Components ──────────────────────────────────────────────────────────── */

/* Buttons & links */
.btn { display: inline-flex; align-items: center; gap: .6em; padding: .95em 1.45em; border: 1px solid transparent; border-radius: 3px; font: 600 .95rem/1 var(--f-body); text-decoration: none; cursor: pointer; white-space: nowrap; transition: background-color .25s, color .25s, border-color .25s, transform .25s var(--ease); }
.btn .arr { transition: transform .3s var(--ease); flex: none; }
.btn:hover .arr { transform: translateX(3px); }
.btn--primary { background: var(--navy-900); color: var(--paper); }
.btn--primary:hover { background: var(--navy-700); }
.btn--signal { background: var(--signal); color: var(--navy-900); }
.btn--signal:hover { background: #dcc08a; }
.btn--ghost { border-color: var(--rule); color: var(--fg); background: transparent; }
.btn--ghost:hover { border-color: var(--fg); }
.btn--sm { padding: .78em 1.15em; font-size: .88rem; }
.btn--block { width: 100%; justify-content: center; }
.btn[disabled], .btn[aria-busy="true"] { opacity: .65; cursor: progress; }
.link { display: inline-flex; align-items: center; gap: .5em; font-weight: 600; color: var(--fg); text-decoration: none; border-bottom: 1px solid var(--rule); padding-bottom: 3px; transition: border-color .2s; }
.link:hover { border-bottom-color: var(--accent); }
.link .arr { transition: transform .3s var(--ease); }
.link:hover .arr { transform: translateX(3px); }

.tag { display: inline-block; font: 500 .75rem/1 var(--f-mono); letter-spacing: .05em; text-transform: uppercase; padding: .45em .7em; border: 1px solid var(--rule); border-radius: 2px; color: var(--fg-2); white-space: nowrap; }
.tag--live { color: var(--navy-900); background: var(--signal); border-color: var(--signal); }
.tag--soon { border-style: dashed; }

/* ── Header ── */
.site-header { position: sticky; top: 0; z-index: 100; background: var(--paper); border-bottom: 1px solid var(--line); }
.site-header__bar { display: flex; align-items: center; gap: 28px; height: var(--header-h); }
.brand { display: block; flex: none; width: 152px; text-decoration: none; }
.brand__crop { display: block; position: relative; overflow: hidden; aspect-ratio: 708 / 207; }
.brand__crop img { position: absolute; width: 180.8%; max-width: none; left: -36.16%; top: -218.4%; height: auto; mix-blend-mode: multiply; }
.nav { margin-left: auto; }
.nav__list { display: flex; align-items: center; gap: 4px; }
.nav__link { display: inline-flex; align-items: center; gap: 6px; padding: 10px 14px; font: 500 .95rem/1 var(--f-body); color: var(--ink); text-decoration: none; background: none; border: 0; cursor: pointer; position: relative; }
.nav__link::after { content: ''; position: absolute; left: 14px; right: 14px; bottom: 4px; height: 2px; background: var(--signal); transform: scaleX(0); transform-origin: left; transition: transform .3s var(--ease); }
.nav__link:hover::after, .nav__link.is-active::after, .nav__trigger[aria-expanded="true"]::after { transform: scaleX(1); }
.chev { transition: transform .25s var(--ease); }
[aria-expanded="true"] > .chev { transform: rotate(180deg); }
.site-header__cta { margin-left: 8px; }
.burger { display: none; margin-left: auto; width: 44px; height: 44px; background: none; border: 1px solid var(--line); border-radius: 3px; cursor: pointer; position: relative; }
.burger__bars, .burger__bars::before, .burger__bars::after { position: absolute; left: 12px; right: 12px; height: 2px; background: var(--ink); content: ''; transition: transform .3s var(--ease), opacity .2s; }
.burger__bars { top: 21px; }
.burger__bars::before { left: 0; right: 0; top: -6px; }
.burger__bars::after { left: 0; right: 0; top: 6px; }
.burger[aria-expanded="true"] .burger__bars { background: transparent; }
.burger[aria-expanded="true"] .burger__bars::before { transform: translateY(6px) rotate(45deg); }
.burger[aria-expanded="true"] .burger__bars::after { transform: translateY(-6px) rotate(-45deg); }

/* ── Mega menu ── */
.mega { position: absolute; left: 0; right: 0; top: 100%; background: var(--bone); border-bottom: 1px solid var(--line); box-shadow: 0 28px 60px -30px rgba(10, 26, 51, .35); animation: megaIn .28s var(--ease); }
@keyframes megaIn { from { opacity: 0; transform: translateY(-6px); } }
.mega__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; padding-block: 40px 28px; }
.mega__col { padding: 4px 28px; border-left: 1px solid var(--line); }
.mega__col:first-child { border-left: 0; padding-left: 0; }
.mega__n { color: var(--ink-3); margin-bottom: 14px; }
.mega__title { font-size: 1.6rem; margin-bottom: 10px; }
.mega__title a { text-decoration: none; }
.mega__title a:hover { text-decoration: underline; text-decoration-color: var(--signal); text-underline-offset: 6px; text-decoration-thickness: 2px; }
.mega__line { font-size: .95rem; line-height: 1.5; color: var(--ink-2); margin-bottom: 18px; }
.mega__list li { border-top: 1px solid var(--line); }
.mega__list a { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 11px 0; font-size: .95rem; font-weight: 500; text-decoration: none; color: var(--ink); }
.mega__list a:hover { color: var(--signal-ink); }
.mega__foot { display: flex; justify-content: space-between; gap: 24px; padding-block: 18px 22px; border-top: 1px solid var(--line); flex-wrap: wrap; }

/* ── Mobile nav ── */
.mnav { position: fixed; inset: var(--header-h) 0 0 0; background: var(--paper); overflow-y: auto; padding-block: 12px 40px; z-index: 99; }
.mnav__list > li { border-bottom: 1px solid var(--line); }
.mnav__list a, .mnav__acc { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 18px 0; font: 400 1.7rem/1.1 var(--f-display); color: var(--ink); text-decoration: none; background: none; border: 0; cursor: pointer; text-align: left; }
.mnav__sub { padding: 0 0 14px 4px; }
.mnav__sub a { font: 500 1rem/1.3 var(--f-body); padding: 12px 0; gap: 10px; justify-content: flex-start; }
.mnav__sub .mono { color: var(--ink-3); }
.mnav .btn { margin-top: 28px; }

/* ── Footer ── */
.site-footer { background: var(--paper); border-top: 1px solid var(--line); color: var(--ink-2); font-size: .98rem; }
.site-footer__grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: clamp(28px, 4vw, 64px); padding-block: 72px 56px; }
.site-footer__brand p { margin-top: 22px; max-width: 34ch; font-size: .98rem; }
.brand--footer { width: 190px; }
.site-footer__h { color: var(--ink-3); margin-bottom: 18px; font-weight: 500; }
.site-footer ul a { display: inline-block; padding: 5px 0; text-decoration: none; color: var(--ink); }
.site-footer ul a:hover { text-decoration: underline; text-decoration-color: var(--signal); text-underline-offset: 4px; text-decoration-thickness: 2px; }
.site-footer__base { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; padding-block: 24px 36px; border-top: 1px solid var(--line); font-size: .9rem; color: var(--ink-3); }
.site-footer__base ul { display: flex; gap: 22px; }
.site-footer__base a { color: var(--ink-3); }

/* ── Cards-free list patterns ── */
.idx { border-top: 1px solid var(--rule); }
.idx__row { border-bottom: 1px solid var(--rule); }
.idx__link { display: grid; grid-template-columns: 64px 1.4fr 1fr 40px; gap: 24px; align-items: center; padding: 34px 0; text-decoration: none; color: var(--fg); transition: padding .4s var(--ease), background-color .3s; }
.idx__link:hover { padding-inline: 20px; background: var(--paper); }
.idx__n { color: var(--fg-3); }
.idx__name { display: block; font: 400 clamp(1.7rem, 3vw, 2.7rem)/1.06 var(--f-display); letter-spacing: -.012em; }
.idx__line { display: block; margin-top: 10px; color: var(--fg-2); max-width: 50ch; font-size: 1rem; }
.idx__meta { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.idx__go { display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid var(--rule); border-radius: 50%; transition: background-color .25s, color .25s, border-color .25s; }
.idx__link:hover .idx__go { background: var(--signal); color: var(--navy-900); border-color: var(--signal); }

.statement { display: grid; grid-template-columns: 1fr; gap: 28px; }
.statement__title { font-size: clamp(2.2rem, 5vw, 4.4rem); max-width: 22ch; line-height: 1.04; }
.statement__body { max-width: 52ch; font-size: 1.15rem; display: grid; gap: 22px; }

.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(24px, 4vw, 56px); counter-reset: s; }
.steps li { border-top: 1px solid var(--ink); padding-top: 22px; }
.steps__n { color: var(--accent); display: block; margin-bottom: 38px; }
.steps h3 { font-size: clamp(1.5rem, 2.2vw, 2rem); margin-bottom: 14px; max-width: 16ch; }
.steps p { color: var(--ink-2); }

.principles { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(24px, 4vw, 56px); }
.principles li { border-top: 1px solid var(--ink); padding-top: 22px; }
.principles h3 { margin-bottom: 14px; }

.facts { display: grid; gap: 0; margin-block: 32px 36px; border-top: 1px solid var(--rule); }
.facts li { padding: 16px 0; border-bottom: 1px solid var(--rule); color: var(--fg-2); max-width: 52ch; }
.actions { display: flex; gap: 12px; flex-wrap: wrap; }

.cta-band { background: var(--navy-950); padding-block: clamp(72px, 9vw, 120px); }
.cta-band__inner { display: grid; grid-template-columns: 1.4fr 1fr; gap: 40px; align-items: end; }
.cta-band__title { font-size: clamp(2.2rem, 4.6vw, 4rem); max-width: 18ch; }
.cta-band__text { margin-top: 18px; color: var(--fg-2); }
.cta-band__actions { display: flex; gap: 12px; flex-wrap: wrap; justify-content: flex-end; }

/* ── Feature (BarMS on home) + phone frame ── */
.feature__grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: clamp(32px, 6vw, 96px); align-items: center; }
.feature__title { font-size: clamp(2.4rem, 5vw, 4.6rem); margin-bottom: 26px; }
.feature__title em { color: var(--signal); }
.feature__lead { font-size: 1.15rem; max-width: 52ch; color: var(--fg-2); }
.phone { justify-self: center; width: min(100%, 330px); }
.phone__frame { position: relative; border-radius: 42px; padding: 11px; background: linear-gradient(160deg, #3a4660, #0b1427 45%, #2a3550); box-shadow: 0 50px 80px -40px rgba(0, 0, 0, .7), inset 0 0 0 1px rgba(255, 255, 255, .12); }
.phone__frame::before { content: ''; position: absolute; top: 18px; left: 50%; transform: translateX(-50%); width: 76px; height: 20px; background: #05080f; border-radius: 12px; z-index: 3; }
.phone__screen, .phone video { width: 100%; height: auto; aspect-ratio: 9 / 16; object-fit: cover; border-radius: 32px; background: var(--navy-950); }
.phone__cap { margin-top: 18px; color: var(--fg-3); text-align: center; text-transform: none; letter-spacing: .02em; font-size: .8rem; }
.phone__cap a { color: var(--fg); }

/* ── Accordion ── */
.acc { border-top: 1px solid var(--rule); }
.acc__item { border-bottom: 1px solid var(--rule); }
.acc__h { font: inherit; }
.acc__btn { width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 24px; text-align: left; padding: 26px 0; background: none; border: 0; cursor: pointer; font: 400 clamp(1.3rem, 2vw, 1.7rem)/1.2 var(--f-display); color: var(--fg); }
.acc__btn:hover { color: var(--accent); }
.acc__ico { position: relative; flex: none; width: 22px; height: 22px; }
.acc__ico::before, .acc__ico::after { content: ''; position: absolute; left: 0; right: 0; top: 50%; height: 1.5px; background: currentColor; transition: transform .3s var(--ease); }
.acc__ico::after { transform: rotate(90deg); }
.acc__btn[aria-expanded="true"] .acc__ico::after { transform: rotate(0); }
.acc__panel { display: grid; grid-template-rows: 1fr; transition: grid-template-rows .4s var(--ease); }
.js .acc__panel { grid-template-rows: 0fr; }
.js .acc__panel.open { grid-template-rows: 1fr; }
.acc__panel > div { overflow: hidden; }
.acc__panel p { padding-bottom: 26px; max-width: 64ch; }

/* ── Forms ── */
.form { display: grid; gap: 22px; }
.form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.field { display: grid; gap: 8px; }
.field > label, .field > .legend { font-weight: 600; color: var(--ink); font-size: .95rem; }
.field .opt { font-weight: 400; color: var(--ink-3); }
.field .hint { font-size: .9rem; color: var(--ink-3); margin-top: -2px; }
.input, .select, .textarea { width: 100%; padding: 14px 16px; font: 400 1rem/1.4 var(--f-body); color: var(--ink); background: var(--bone); border: 1px solid #b9b19f; border-radius: 3px; transition: border-color .2s, box-shadow .2s; }
.textarea { min-height: 140px; resize: vertical; }
.input:hover, .select:hover, .textarea:hover { border-color: var(--ink-3); }
.input:focus-visible, .select:focus-visible, .textarea:focus-visible { outline: 3px solid var(--signal-ink); outline-offset: 1px; border-color: var(--ink); }
.field[data-invalid] .input, .field[data-invalid] .select, .field[data-invalid] .textarea { border-color: #a4261c; background: #fff7f5; }
.err { color: #a4261c; font-size: .92rem; font-weight: 500; display: none; }
.field[data-invalid] .err { display: block; }
.checks { display: grid; gap: 10px; border: 0; padding: 0; margin: 0; }
.check { display: flex; gap: 12px; align-items: flex-start; font-weight: 400; color: var(--ink-2); cursor: pointer; }
.check input { width: 20px; height: 20px; margin-top: 2px; accent-color: var(--navy-900); flex: none; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form__status { padding: 18px 20px; border-left: 4px solid var(--ink); background: var(--bone); color: var(--ink); }
.form__status[data-kind="error"] { border-color: #a4261c; background: #fff7f5; }
.form__status[data-kind="ok"] { border-color: #2f7a4d; background: #f3faf5; }
.form__status p + p { margin-top: 8px; }
.form__status:focus { outline: 3px solid var(--signal-ink); outline-offset: 2px; }
.form__fine { font-size: .92rem; color: var(--ink-3); }
.topic-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; border: 0; padding: 0; margin: 0; }
.topic { position: relative; }
.topic input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.topic span { display: block; padding: 16px 18px; border: 1px solid #b9b19f; border-radius: 3px; background: var(--bone); transition: border-color .2s, background-color .2s; height: 100%; }
.topic strong { display: block; font-weight: 600; color: var(--ink); font-size: .98rem; }
.topic small { display: block; margin-top: 4px; color: var(--ink-3); font-size: .88rem; line-height: 1.4; }
.topic input:checked + span { border-color: var(--navy-900); background: #fff; box-shadow: inset 0 0 0 1px var(--navy-900); }
.topic input:focus-visible + span { outline: 3px solid var(--signal-ink); outline-offset: 2px; }
.js [data-for][hidden] { display: none; }

/* ── Tabs ── */
.tabs__list { display: flex; gap: 0; border-bottom: 1px solid var(--rule); flex-wrap: wrap; }
.tabs__tab { padding: 16px 22px; background: none; border: 0; border-bottom: 3px solid transparent; cursor: pointer; font: 500 .85rem/1 var(--f-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--fg-3); margin-bottom: -1px; }
.tabs__tab:hover { color: var(--fg); }
.tabs__tab[aria-selected="true"] { color: var(--fg); border-bottom-color: var(--signal); }
.tabs__panel { padding-top: 32px; }
.tabs__panel[hidden] { display: none; }

/* ── Spec table (honest compatibility, offline matrix) ── */
.spec { width: 100%; border-collapse: collapse; }
.spec caption { text-align: left; padding-bottom: 16px; color: var(--fg-3); }
.spec th, .spec td { text-align: left; padding: 16px 18px 16px 0; border-top: 1px solid var(--rule); vertical-align: top; }
.spec thead th { border-top: 0; color: var(--fg-3); font: 500 .78rem/1 var(--f-mono); letter-spacing: .06em; text-transform: uppercase; padding-bottom: 12px; }
.spec tbody th { font-weight: 600; color: var(--fg); width: 34%; }
.spec td { color: var(--fg-2); }
.st { display: inline-flex; align-items: center; gap: 8px; font: 500 .78rem/1 var(--f-mono); letter-spacing: .05em; text-transform: uppercase; white-space: nowrap; color: var(--fg); }
.st::before { content: ''; width: 9px; height: 9px; border-radius: 50%; background: var(--signal); flex: none; }
.st--partial::before { background: transparent; border: 2px solid var(--signal); }
.st--no::before { background: transparent; border: 2px solid var(--fg-3); }
.st--no { color: var(--fg-3); }
.spec-wrap { overflow-x: auto; }

/* ── Responsive ── */
@media (max-width: 1080px) {
  .nav, .site-header__cta { display: none; }
  .burger { display: block; }
  .mega { display: none !important; }
  .site-footer__grid { grid-template-columns: 1fr 1fr; }
  .site-footer__brand { grid-column: 1 / -1; }
  .idx__link { grid-template-columns: 48px 1fr 36px; }
  .idx__meta { grid-column: 2; justify-content: flex-start; }
  .idx__go { grid-row: 1; grid-column: 3; }
  .steps, .principles { grid-template-columns: 1fr; }
  .steps li, .principles li { padding-bottom: 12px; }
  .steps__n { margin-bottom: 18px; }
  .feature__grid { grid-template-columns: 1fr; }
  .cta-band__inner { grid-template-columns: 1fr; }
  .cta-band__actions { justify-content: flex-start; }
}
@media (max-width: 720px) {
  .form__row, .topic-grid { grid-template-columns: 1fr; }
  .site-footer__grid { grid-template-columns: 1fr; }
  .brand { width: 132px; }
  .idx__link:hover { padding-inline: 0; background: none; }
  .btn { white-space: normal; }
  .tag { white-space: normal; }
}

/* ── Inner pages ─────────────────────────────────────────────────────────── */

.crumbs { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; color: var(--fg-3); margin-bottom: 36px; text-transform: none; letter-spacing: .02em; font-size: .8rem; }
.crumbs a { color: var(--fg-2); text-decoration: none; border-bottom: 1px solid var(--rule); }
.crumbs a:hover { color: var(--fg); border-color: var(--signal); }
.crumbs [aria-current] { color: var(--fg); }

/* Page hero */
.phero { background: var(--navy-950); color: var(--fg-2); padding-block: clamp(56px, 7vw, 104px) clamp(64px, 8vw, 120px); position: relative; overflow: hidden; }
.phero::before { content: ''; position: absolute; inset: 0; background: radial-gradient(900px 480px at 80% 30%, rgba(23, 51, 95, .55), transparent 70%), linear-gradient(rgba(246, 243, 238, .035) 1px, transparent 1px), linear-gradient(90deg, rgba(246, 243, 238, .035) 1px, transparent 1px); background-size: auto, 64px 64px, 64px 64px; pointer-events: none; }
.phero > .wrap { position: relative; }
.phero__grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(32px, 5vw, 80px); align-items: center; }
.phero__label { color: var(--accent); margin-bottom: 22px; display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.phero__label > span:not(.tag) { color: var(--fg-3); }
.phero__title { font-size: clamp(2.8rem, 6.2vw, 5.4rem); margin-bottom: 26px; max-width: 14ch; }
.phero__title em { color: var(--signal); }
.phero__lead { margin-bottom: 36px; }
.phero--center { text-align: left; }
.phero--center .phero__title { max-width: 16ch; }
.phero--short { padding-block: clamp(48px, 6vw, 88px) clamp(56px, 7vw, 96px); }
.phero__art { margin: 0; }
.art { width: 100%; height: auto; color: var(--paper); overflow: visible; }
.art__ln { fill: none; stroke: rgba(246, 243, 238, .4); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.art__ln--dash { stroke-dasharray: 5 6; }
.art__box rect, .art__box circle, .art__box path { fill: rgba(6, 9, 15, .85); stroke: rgba(246, 243, 238, .45); stroke-width: 1.5; }
.art__box--hot rect, .art__box--hot circle, .art__box--hot path { stroke: var(--signal); fill: rgba(201, 169, 107, .07); }
.art__box--dash rect, .art__box--dash circle { stroke-dasharray: 6 6; }
.art__t { fill: rgba(246, 243, 238, .85); font: 500 15px var(--f-mono); letter-spacing: .06em; }
.art__t--dim { fill: rgba(246, 243, 238, .55); }
.art__jn { fill: var(--signal); }
.art__chip { fill: rgba(246, 243, 238, .06); stroke: rgba(246, 243, 238, .3); stroke-width: 1; }
.art__grid line { stroke: rgba(246, 243, 238, .07); }
.art__tag rect { fill: var(--signal); }
.art__tag text { fill: var(--navy-900); font-weight: 700; }
.js .art .d { stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 1.6s var(--ease) .3s; }
.js .in .art .d, .js .phero__art .art .d { stroke-dashoffset: 0; }
.js .art .art__blk { opacity: 0; transform: translateY(10px); transition: opacity .8s var(--ease), transform .8s var(--ease); transition-delay: calc(var(--i) * 90ms + .2s); }
.js .in .art .art__blk, .js .phero__art .art .art__blk { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .js .art .d { stroke-dashoffset: 0; transition: none; } .js .art .art__blk { opacity: 1; transform: none; } }

/* Problems / capabilities / scenarios */
.problems { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--ink); }
.problems li { padding: 34px 40px 38px 0; border-bottom: 1px solid var(--line); }
.problems li:nth-child(even) { padding-left: 40px; border-left: 1px solid var(--line); padding-right: 0; }
.problems__n { color: var(--accent); display: block; margin-bottom: 18px; }
.problems h3 { margin-bottom: 12px; max-width: 20ch; }
.caps { border-top: 1px solid var(--ink); }
.caps__row { display: grid; grid-template-columns: 56px 1.5fr 1fr; gap: 28px; padding: 40px 0; border-bottom: 1px solid var(--line); }
.caps__n { color: var(--accent); padding-top: 8px; }
.caps__main h3 { margin-bottom: 14px; max-width: 22ch; }
.caps__list li { padding: 11px 0; border-top: 1px solid var(--line); font-size: .98rem; }
.caps__list li:first-child { border-top: 0; padding-top: 4px; }
.scen { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(24px, 3vw, 48px); }
.scen li { border-top: 1px solid var(--ink); padding-top: 22px; }
.scen h3 { margin-bottom: 12px; }
.faqwrap { max-width: 980px; }
.pp { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 56px; }
.pp li { display: grid; grid-template-columns: 36px 1fr; gap: 14px; padding: 28px 0; border-top: 1px solid var(--rule); }
.pp .mono { color: var(--accent); padding-top: 6px; }
.pp h3 { font-size: 1.6rem; margin-bottom: 8px; }
.honest { max-width: 62ch; }
.honest h2 { font-size: clamp(1.9rem, 3.4vw, 2.8rem); margin-bottom: 18px; }
.honest .sec-head__label { margin-bottom: 16px; }

/* Overview panels */
.panels { display: grid; gap: clamp(48px, 7vw, 96px); }
.panel { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 5vw, 80px); align-items: center; }
.panel:nth-child(even) .panel__art { order: 2; }
.panel__art { margin: 0; background: var(--navy-950); border-radius: 6px; padding: clamp(20px, 3vw, 40px); }
.panel__n { color: var(--accent); margin-bottom: 14px; }
.panel__title { font-size: clamp(2rem, 3.6vw, 3.2rem); margin-bottom: 16px; }
.panel__title a { text-decoration: none; }
.panel__title a:hover { text-decoration: underline; text-decoration-color: var(--signal); text-underline-offset: 8px; text-decoration-thickness: 2px; }
.panel__line { margin-bottom: 22px; font-size: 1.1rem; }
.panel__items { margin-bottom: 26px; }
.panel__items li { border-top: 1px solid var(--line); }
.panel__items a { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 0; text-decoration: none; font-weight: 500; color: var(--ink); }
.panel__items a:hover { color: var(--signal-ink); }
.duo { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 4vw, 56px); }
.duo__item { border-top: 1px solid var(--ink); padding-top: 26px; }
.duo__item h3 { margin: 18px 0 14px; font-size: clamp(2rem, 3vw, 2.6rem); }
.duo__item p { margin-bottom: 26px; }
.leaks { border-top: 1px solid var(--ink); }
.leaks li { display: grid; grid-template-columns: minmax(180px, 1fr) 2fr; gap: 24px; padding: 22px 0; border-bottom: 1px solid var(--line); }
.leaks li > span:first-child { font: 400 1.5rem/1.15 var(--f-display); color: var(--ink); }
.leaks--2 { display: grid; grid-template-columns: repeat(2, 1fr); column-gap: 56px; border-top: 0; }
.leaks--2 li { grid-template-columns: 22px 1fr; grid-template-areas: 'x t' '. ok'; gap: 6px 14px; border-top: 1px solid var(--line); border-bottom: 0; padding: 24px 0 28px; }
.leaks__x { grid-area: x; color: #a4261c; font-size: .9rem; padding-top: 6px; }
.leaks__t { grid-area: t; font: 400 1.55rem/1.15 var(--f-display); color: var(--ink); }
.leaks__ok { grid-area: ok; }
.note { margin-top: 40px; padding: 20px 24px; border-left: 3px solid var(--signal); background: rgba(255, 255, 255, .5); max-width: 74ch; }
.note a { color: var(--ink); }

/* BarMS hero */
.bhero { background: var(--navy-950); padding-block: clamp(44px, 6vw, 88px) clamp(64px, 8vw, 120px); position: relative; overflow: hidden; }
.bhero::before { content: ''; position: absolute; inset: 0; background: radial-gradient(900px 600px at 78% 40%, rgba(23, 51, 95, .6), transparent 70%), linear-gradient(rgba(246, 243, 238, .035) 1px, transparent 1px), linear-gradient(90deg, rgba(246, 243, 238, .035) 1px, transparent 1px); background-size: auto, 64px 64px, 64px 64px; pointer-events: none; }
.bhero__grid { position: relative; display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(32px, 5vw, 80px); align-items: center; }
.bhero__title { font-size: clamp(4.4rem, 11vw, 9.5rem); line-height: .92; letter-spacing: -.03em; margin-bottom: 18px; }
.bhero__title .pro { font-style: italic; color: var(--signal); }
.bhero__tag { font: 400 clamp(1.5rem, 2.6vw, 2.3rem)/1.15 var(--f-display); color: var(--paper); margin-bottom: 26px; }
.bhero .lead { margin-bottom: 34px; }
.facts-strip { display: grid; grid-template-columns: repeat(4, auto); justify-content: start; gap: 28px; margin: 44px 0 0; padding-top: 26px; border-top: 1px solid var(--rule); }
.facts-strip dt { color: var(--fg-3); font-size: .72rem; margin-bottom: 6px; }
.facts-strip dd { margin: 0; font: 400 2.4rem/1 var(--f-display); color: var(--paper); }

/* Film player */
.film { display: grid; gap: 28px; justify-items: center; margin: 0; }
.film .phone { position: relative; }
.film__video { display: block; }
.film__play { position: absolute; z-index: 4; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 76px; height: 76px; border-radius: 50%; background: var(--signal); color: var(--navy-900); border: 0; cursor: pointer; display: grid; place-items: center; box-shadow: 0 0 0 10px rgba(201, 169, 107, .22); transition: transform .3s var(--ease), box-shadow .3s; }
.film__play:hover { transform: translate(-50%, -50%) scale(1.06); box-shadow: 0 0 0 16px rgba(201, 169, 107, .18); }
.film__play[hidden] { display: none; }
.film__side { width: min(100%, 420px); display: grid; gap: 16px; }
.film__bar { display: flex; gap: 8px; flex-wrap: wrap; }
.film__btn { background: none; border: 1px solid var(--rule); color: var(--fg); padding: 10px 14px; border-radius: 2px; cursor: pointer; text-transform: uppercase; font-size: .75rem; }
.film__btn:hover { border-color: var(--signal); color: var(--signal); }
.film__now { color: var(--fg-3); text-transform: none; letter-spacing: .02em; font-size: .8rem; min-height: 1.4em; }
.film__chapters { display: flex; flex-wrap: wrap; gap: 6px; }
.film__ch { display: inline-flex; gap: 8px; align-items: baseline; padding: 8px 12px; background: none; border: 1px solid var(--rule); border-radius: 2px; color: var(--fg-2); font-size: .88rem; cursor: pointer; }
.film__ch .mono { color: var(--fg-3); font-size: .7rem; }
.film__ch:hover { border-color: var(--fg-2); color: var(--fg); }
.film__ch[aria-current="true"] { border-color: var(--signal); color: var(--signal); }
.film__tx { color: var(--fg-2); font-size: .95rem; }
.film__tx summary { cursor: pointer; width: fit-content; }
.film__tx ul { margin-top: 14px; display: grid; gap: 10px; }
.film__tx li { padding-left: 14px; border-left: 2px solid var(--rule); }
.film__fine { font-size: .88rem; color: var(--fg-3); margin-top: 12px; }

/* One sale */
.onesale { display: grid; grid-template-columns: minmax(240px, .7fr) 1.3fr; gap: clamp(28px, 5vw, 80px); align-items: center; }
.onesale__ctl { display: grid; gap: 28px; justify-items: start; }
.onesale__core { display: grid; place-items: center; align-content: center; gap: 6px; width: min(100%, 260px); aspect-ratio: 1; border-radius: 50%; border: 1px solid var(--signal); color: var(--paper); text-align: center; position: relative; }
.onesale__core strong { font: 400 2rem/1 var(--f-display); color: var(--paper); }
.onesale__core .mono { color: var(--signal); }
.onesale__core::after { content: ''; position: absolute; inset: -1px; border-radius: 50%; border: 1px solid var(--signal); opacity: 0; }
.onesale__core.fired::after { animation: ring 1.1s var(--ease); }
@keyframes ring { from { opacity: .8; transform: scale(1); } to { opacity: 0; transform: scale(1.5); } }
.onesale__out { border-top: 1px solid var(--rule); }
.onesale__out li { display: grid; grid-template-columns: 22px 150px 1fr; gap: 16px; align-items: baseline; padding: 20px 0; border-bottom: 1px solid var(--rule); transition: opacity .5s; }
.onesale__out h3 { font-size: 1.6rem; }
.onesale__dot { width: 10px; height: 10px; border-radius: 50%; border: 1.5px solid var(--fg-3); transition: background-color .3s, border-color .3s, box-shadow .5s; align-self: center; }
.onesale.is-armed .onesale__out li:not(.on) { opacity: .38; }
.onesale__out li.on .onesale__dot { background: var(--signal); border-color: var(--signal); box-shadow: 0 0 0 6px rgba(201, 169, 107, .2); }

/* Day timeline, flows, modules */
.day { border-top: 1px solid var(--ink); }
.day__row { display: grid; grid-template-columns: 64px 1fr auto; gap: 24px; padding: 26px 0; border-bottom: 1px solid var(--line); align-items: baseline; }
.day__n { color: var(--accent); }
.day__row h3 { font-size: 1.7rem; margin-bottom: 6px; }
.flows { display: grid; gap: 48px; margin-bottom: 56px; }
.flows h3 { margin-bottom: 18px; }
.strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 0; counter-reset: st; }
.strip li { counter-increment: st; padding: 18px 20px 20px 0; border-top: 2px solid var(--ink); font-size: .95rem; position: relative; }
.strip li::before { content: counter(st, decimal-leading-zero); display: block; font: 500 .72rem/1 var(--f-mono); color: var(--accent); margin-bottom: 14px; }
.strip b { display: block; font: 400 1.3rem/1.15 var(--f-display); color: var(--fg); margin-bottom: 6px; }
.strip--dark li { border-top-color: var(--signal); color: var(--fg-2); }
.trio { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(24px, 3vw, 48px); }
.trio h3 { margin-bottom: 10px; font-size: 1.6rem; }
.mods { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--ink); }
.mods li { padding: 26px 28px 30px 0; border-bottom: 1px solid var(--line); }
.mods li:not(:nth-child(3n+1)) { padding-left: 28px; border-left: 1px solid var(--line); }
.mods .mono { color: var(--accent); display: block; margin-bottom: 16px; }
.mods h3 { font-size: 1.55rem; margin-bottom: 8px; }
.mods p { font-size: .98rem; }

/* Control, tabs, chips */
.control { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 6vw, 96px); align-items: start; }
.control .sec-head { margin-bottom: 40px; }
.tabs__cap { color: var(--fg-3); margin-bottom: 16px; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.notyet { margin-top: 56px; padding-top: 32px; border-top: 1px solid var(--line); }
.notyet h3 { margin-bottom: 18px; }
.notyet p { margin-top: 20px; }
.notyet .tag { white-space: normal; }

/* Offline */
.offline { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 6vw, 96px); align-items: start; }
.setup, .sec-list { border-top: 1px solid var(--line); margin-bottom: 28px; }
.setup li, .sec-list li { padding: 16px 0; border-bottom: 1px solid var(--line); max-width: 56ch; }
.offdemo { border: 1px solid var(--ink); background: var(--bone); padding: 24px; margin-bottom: 36px; border-radius: 4px; }
.offdemo__cap { color: var(--ink-3); margin-bottom: 18px; font-size: .72rem; }
.offdemo__ctl { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin-bottom: 16px; }
.switch { display: inline-flex; align-items: center; gap: 12px; padding: 8px 8px 8px 14px; border: 1px solid #b9b19f; border-radius: 99px; background: #fff; cursor: pointer; }
.switch__k { color: var(--ink-3); font-size: .72rem; }
.switch__v { min-width: 48px; text-align: center; padding: 8px 12px; border-radius: 99px; background: var(--navy-900); color: var(--paper); font-weight: 600; font-size: .88rem; }
.switch[aria-checked="false"] .switch__v { background: #a4261c; }
.offdemo__status { min-height: 3.2em; font-size: .98rem; color: var(--ink); }
.offdemo__queue { display: grid; gap: 6px; margin-top: 12px; }
.offdemo__row { display: flex; justify-content: space-between; align-items: center; padding: 10px 12px; background: #fff; border: 1px solid var(--line); border-radius: 2px; animation: rowIn .4s var(--ease); }
.offdemo__row .st::before { background: var(--silver); }
.offdemo__row.done .st::before { background: #2f7a4d; }
@keyframes rowIn { from { opacity: 0; transform: translateY(-6px); } }

/* Light-surface spec tables */
.spec--light { --fg: var(--ink); --fg-2: var(--ink-2); --fg-3: var(--ink-3); --rule: var(--line); }
.st--ok::before { background: #2f7a4d; }
.spec--light .st--partial::before { border-color: var(--signal-ink); }

/* Two-column helpers */
.two { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 6vw, 96px); align-items: start; }
.two--center { align-items: center; }
.plat { border-top: 1px solid var(--line); margin-bottom: 28px; }
.plat li { display: grid; gap: 4px; padding: 16px 0; border-bottom: 1px solid var(--line); }

/* Onboarding */
.onboard { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--ink); }
.onboard li { padding: 24px 22px 28px 0; border-bottom: 1px solid var(--line); }
.onboard li:not(:nth-child(4n+1)) { padding-left: 22px; border-left: 1px solid var(--line); }
.onboard .mono { color: var(--accent); display: block; margin-bottom: 14px; }
.onboard h3 { font-size: 1.5rem; margin-bottom: 10px; }
.onboard p { font-size: .95rem; }
.onboard p + p { margin-top: 8px; }
.onboard b { font: 600 .72rem/1 var(--f-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--ink); margin-right: 8px; }
.check { display: block; margin-top: 56px; }
.checklist { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 32px; margin-top: 18px; }
.checklist li { padding: 12px 0 12px 28px; border-top: 1px solid var(--line); position: relative; }
.checklist li::before { content: ''; position: absolute; left: 0; top: 17px; width: 14px; height: 14px; border: 1.5px solid var(--ink-3); border-radius: 2px; }

/* Hotel */
.hhero { position: relative; min-height: min(86vh, 820px); display: grid; align-items: end; overflow: hidden; background: var(--navy-950); }
.hhero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hhero__shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(6, 9, 15, .55) 0%, rgba(6, 9, 15, .35) 35%, rgba(6, 9, 15, .92) 100%); }
.hhero__in { position: relative; padding-block: clamp(48px, 6vw, 88px) clamp(56px, 7vw, 104px); }
.hhero .phero__title { max-width: 16ch; }
.hhero__credit { position: absolute; right: var(--gutter); bottom: 16px; color: rgba(246, 243, 238, .65); font-size: .68rem; text-transform: none; }
.hhero__credit a { color: inherit; }
.phs { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 16px; align-items: stretch; }
.ph { margin: 0; display: grid; grid-template-rows: 1fr auto; gap: 10px; }
.ph img { width: 100%; height: 100%; min-height: 340px; max-height: 520px; object-fit: cover; border-radius: 3px; background: var(--stone); }
.ph figcaption { color: var(--ink-3); text-transform: none; letter-spacing: .02em; font-size: .78rem; }
.ph figcaption a { color: inherit; }
.concept { margin: 0; }
.concept__art { background: var(--navy-950); padding: clamp(16px, 2vw, 28px); border-radius: 6px; }
.concept figcaption { margin-top: 14px; color: var(--ink-3); text-transform: none; letter-spacing: .02em; font-size: .78rem; }
.status li { display: grid; grid-template-columns: 150px 1fr; gap: 20px; padding: 18px 0; border-top: 1px solid var(--line); align-items: baseline; }
.status { border-bottom: 1px solid var(--line); }

/* Contact */
.contact { display: grid; grid-template-columns: 1.4fr 1fr; gap: clamp(32px, 6vw, 96px); align-items: start; }
.field__legend { font-weight: 600; color: var(--ink); margin-bottom: 14px; padding: 0; font-size: 1rem; }
.form__sub { color: var(--accent); padding-top: 6px; border-top: 1px solid var(--line); padding-top: 22px; }
.form__group { display: grid; gap: 22px; }
.side__h { color: var(--ink-3); margin-bottom: 18px; }
.contact__side { display: grid; gap: 40px; position: sticky; top: calc(var(--header-h) + 24px); }
.next li { display: grid; grid-template-columns: 28px 1fr; gap: 10px; padding: 14px 0; border-top: 1px solid var(--line); }
.next .mono { color: var(--accent); }
.dl { display: grid; gap: 14px; }
.dl dt { color: var(--ink-3); font-size: .72rem; margin-bottom: 2px; }
.dl dd { margin: 0; }
.dl a { color: var(--ink); }
.legend { display: block; }

/* Prose pages */
.prose { max-width: 760px; }
.prose h2 { font-size: clamp(1.7rem, 2.6vw, 2.2rem); margin: 48px 0 14px; }
.prose p { margin-bottom: 14px; }
.prose a { color: var(--ink); }
.prose .spec-wrap { margin-top: 20px; }
.draft { background: #fff3d6; border-left: 4px solid var(--signal); color: #5c3a00; padding: 14px 18px; margin-bottom: 36px; text-transform: none; letter-spacing: .01em; max-width: none; font-size: .85rem; line-height: 1.5; }

/* Responsive */
@media (max-width: 1080px) {
  .phero__grid, .bhero__grid { grid-template-columns: 1fr; }
  .phero__art { max-width: 640px; }
  .phero__title { max-width: none; }
  .panel, .duo, .two, .contact, .control, .offline, .onesale { grid-template-columns: 1fr; }
  .panel:nth-child(even) .panel__art { order: 0; }
  .problems { grid-template-columns: 1fr; }
  .problems li, .problems li:nth-child(even) { padding: 28px 0; border-left: 0; }
  .caps__row { grid-template-columns: 44px 1fr; }
  .caps__list { grid-column: 2; }
  .scen, .trio { grid-template-columns: 1fr; }
  .pp { grid-template-columns: 1fr; }
  .leaks--2 { grid-template-columns: 1fr; }
  .mods { grid-template-columns: repeat(2, 1fr); }
  .mods li, .mods li:not(:nth-child(3n+1)) { padding: 24px 20px 28px 0; border-left: 0; }
  .mods li:nth-child(even) { padding-left: 20px; border-left: 1px solid var(--line); }
  .onboard { grid-template-columns: repeat(2, 1fr); }
  .onboard li, .onboard li:not(:nth-child(4n+1)) { padding: 24px 18px 28px 0; border-left: 0; }
  .onboard li:nth-child(even) { padding-left: 18px; border-left: 1px solid var(--line); }
  .checklist { grid-template-columns: repeat(2, 1fr); }
  .phs { grid-template-columns: 1fr; }
  .ph img { min-height: 240px; max-height: 420px; }
  .contact__side { position: static; }
  .facts-strip { grid-template-columns: repeat(2, auto); }
  .bhero__title { font-size: clamp(3.6rem, 16vw, 7rem); }
}
@media (max-width: 720px) {
  .leaks li { grid-template-columns: 1fr; gap: 6px; }
  .day__row { grid-template-columns: 44px 1fr; }
  .day__row .tag { grid-column: 2; justify-self: start; }
  .mods, .onboard, .checklist { grid-template-columns: 1fr; }
  .mods li:nth-child(even), .onboard li:nth-child(even) { padding-left: 0; border-left: 0; }
  .onesale__out li { grid-template-columns: 22px 1fr; }
  .onesale__out li p { grid-column: 2; }
  .status li { grid-template-columns: 1fr; gap: 8px; }
  .spec th, .spec td { padding-right: 12px; }
  .film__play { width: 64px; height: 64px; }
}

/* BarMS hero alignment: copy stays at the top, phone kept compact */
.bhero__grid { align-items: start; }
.bhero .phone { width: min(100%, 300px); }
.bhero__copy { padding-top: clamp(0px, 3vw, 36px); }

/* If scripts fail to run, never leave content hidden. */
html.failsafe .rv { opacity: 1 !important; transform: none !important; }
html.failsafe .hero .ln > span, html.failsafe .hero .nd, html.failsafe .hero .lane-label, html.failsafe .hero .evt, html.failsafe .hero .lg, html.failsafe .hero .lg p, html.failsafe .hero .hero__copy, html.failsafe .hero .hero__ctl, html.failsafe .hero .tr, html.failsafe .hero .jn, html.failsafe .hero .hero__rules line { opacity: 1 !important; transform: none !important; }
html.failsafe .hero .tr-lit { stroke-dashoffset: 0 !important; }
html.failsafe .acc__panel { grid-template-rows: 1fr !important; visibility: visible !important; }
.js .acc__panel:not(.open) { visibility: hidden; transition: grid-template-rows .4s var(--ease), visibility 0s .4s; }
.js .acc__panel.open { visibility: visible; transition: grid-template-rows .4s var(--ease); }

/* ── Theme layer: dark-luxury corporate. Loaded last; refines type scale for
   Cormorant Garamond / Jost, rebuilds the mega-menu and the signature footer. ── */

/* Header */
.site-header { background: rgba(246, 243, 238, .94); -webkit-backdrop-filter: saturate(1.2) blur(10px); backdrop-filter: saturate(1.2) blur(10px); }
.nav__link { font: 500 .8rem/1 var(--f-body); letter-spacing: .12em; text-transform: uppercase; }
.btn { font: 500 .8rem/1 var(--f-body); letter-spacing: .1em; text-transform: uppercase; border-radius: 2px; padding: 1.15em 1.7em; }
.btn--sm { padding: 1em 1.3em; font-size: .72rem; }
.btn--lg { padding: 1.35em 2.1em; font-size: .86rem; }
.btn--primary { background: var(--navy-900); }
.btn--primary:hover { background: var(--navy-700); }
.btn--signal { background: var(--signal); color: var(--navy-950); }
.btn--signal:hover { background: #dcc08a; }
.link { font-weight: 500; letter-spacing: .02em; }
.tag { font: 500 .68rem/1 var(--f-body); letter-spacing: .14em; border-radius: 1px; }
.tag--live { color: var(--navy-950); }
.mono { font-family: var(--f-body); }

/* Display scale (Cormorant sits small on the line, so it runs larger) */
.sec-head__title { max-width: 20ch; }
.sec-head__lead { font-size: clamp(1.12rem, 1.4vw, 1.28rem); }
.statement__title { font-size: clamp(2.5rem, 5.4vw, 4.9rem); max-width: 20ch; line-height: 1; }
.statement__body { font-size: 1.18rem; }
.idx__name { font-size: clamp(2rem, 3.6vw, 3.4rem); line-height: 1; }
.idx__line { font-size: 1.05rem; }
.panel__title { font-size: clamp(2.3rem, 4.2vw, 3.9rem); }
.phero__title { font-size: clamp(3.2rem, 7vw, 6.2rem); line-height: .98; max-width: 14ch; }
.phero__lead { font-size: clamp(1.12rem, 1.5vw, 1.32rem); }
.feature__title { font-size: clamp(2.8rem, 5.6vw, 5.2rem); }
.steps h3, .principles h3, .duo__item h3, .scen h3, .caps__main h3, .problems h3 { font-size: clamp(1.7rem, 2.4vw, 2.2rem); }
.mods h3 { font-size: 1.9rem; } .onboard h3 { font-size: 1.85rem; } .day__row h3 { font-size: 2rem; } .trio h3 { font-size: 1.9rem; }
.leaks li > span:first-child, .leaks__t { font-size: 1.9rem; line-height: 1.1; }
.strip b { font-size: 1.55rem; }
.onesale__out h3 { font-size: 1.9rem; } .onesale__core strong { font-size: 2.3rem; }
.acc__btn { font-size: clamp(1.5rem, 2.2vw, 2rem); }
.bhero__title { font-size: clamp(4.6rem, 11.5vw, 10rem); }
.bhero__tag { font-size: clamp(1.7rem, 2.8vw, 2.6rem); }
.facts-strip dd { font-size: 3rem; }
.mnav__list a, .mnav__acc { font-size: 2rem; }
.input, .select, .textarea { font-size: 1rem; }

/* Mega-menu: six areas, three by two */
.mega { background: var(--bone); border-bottom: 1px solid var(--line); box-shadow: 0 40px 70px -40px rgba(7, 9, 14, .45); }
.mega__inner { display: grid; grid-template-columns: 240px 1fr; gap: clamp(32px, 5vw, 80px); padding-block: 44px 52px; }
.mega__kicker { color: var(--signal-ink); }
.mega__lead { font: 500 2.7rem/1 var(--f-display); color: var(--ink); margin: 16px 0 26px; }
.mega__lead em { font-style: italic; font-weight: 400; color: var(--signal-ink); }
.mega__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 44px; padding: 0; margin: 0; }
.mega__cell { border-top: 1px solid var(--line); padding: 22px 0 26px; }
.mega__item { display: grid; gap: 6px; text-decoration: none; color: var(--ink); }
.mega__n { color: var(--signal-ink); font-size: .7rem; }
.mega__t { font: 500 1.75rem/1.05 var(--f-display); }
.mega__l { font-size: .98rem; color: var(--ink-2); }
.mega__item:hover .mega__t { text-decoration: underline; text-decoration-color: var(--signal); text-underline-offset: 6px; text-decoration-thickness: 2px; }
.mega__prods { margin-top: 14px; display: grid; gap: 2px; }
.mega__prods a { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 8px 0; border-top: 1px dashed var(--line); font-size: .95rem; font-weight: 500; text-decoration: none; color: var(--ink); }
.mega__prods a:hover { color: var(--signal-ink); }
.mega.mega { animation: megaIn .32s var(--ease); }

/* Signature footer */
.foot { background: var(--navy-950); color: var(--fg-2); position: relative; overflow: hidden; }
.foot::before { content: ''; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(900px 480px at 85% 0%, rgba(26, 50, 96, .5), transparent 70%), radial-gradient(600px 360px at 0% 100%, rgba(201, 169, 107, .06), transparent 70%); }
.foot > * { position: relative; }
.foot__rule { height: 1px; background: linear-gradient(90deg, transparent, #8d939d 18%, #e6e8ec 50%, #8d939d 82%, transparent); opacity: .5; }
.foot__top { padding-block: clamp(80px, 10vw, 148px) clamp(56px, 7vw, 96px); }
.foot__eyebrow { color: var(--signal); margin-bottom: 26px; }
.foot__title { font-size: clamp(3.2rem, 8vw, 7.6rem); line-height: .96; max-width: 13ch; color: var(--paper); letter-spacing: -.012em; }
.foot__title em { font-style: italic; font-weight: 400; color: var(--signal); }
.foot__actions { display: flex; align-items: center; gap: 28px 56px; flex-wrap: wrap; margin-top: clamp(36px, 5vw, 56px); }
.foot__contact { display: flex; gap: 8px 40px; flex-wrap: wrap; }
.foot__contact a { font: 500 clamp(1.5rem, 2.2vw, 2rem)/1.2 var(--f-display); color: var(--paper); text-decoration: none; background: linear-gradient(var(--signal), var(--signal)) 0 100% / 0 1px no-repeat; padding-bottom: 4px; transition: background-size .4s var(--ease); }
.foot__contact a:hover { background-size: 100% 1px; }
.foot__mid { display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: clamp(32px, 5vw, 80px); padding-block: 56px 48px; border-top: 1px solid var(--rule); }
.foot__plate { display: block; width: 200px; background: var(--bone); padding: 14px 18px; border-radius: 3px; }
.foot__plate .brand__crop img { mix-blend-mode: multiply; }
.foot__id p { margin-top: 22px; color: var(--fg-3); max-width: 30ch; font-size: .98rem; }
.foot__col h2 { color: var(--fg-3); margin-bottom: 18px; font-size: .7rem; font-weight: 500; font-family: var(--f-body); }
.foot__col li { margin: 0; }
.foot__col a { display: inline-block; padding: 6px 0; color: var(--paper); text-decoration: none; font-size: 1rem; background: linear-gradient(var(--signal), var(--signal)) 0 100% / 0 1px no-repeat; transition: background-size .35s var(--ease), color .2s; }
.foot__col a:hover { background-size: 100% 1px; color: #fff; }
.foot__base { display: flex; justify-content: space-between; gap: 16px 32px; flex-wrap: wrap; padding-block: 24px 36px; border-top: 1px solid var(--rule); font-size: .86rem; color: var(--fg-3); }
.foot__base ul { display: flex; gap: 24px; }
.foot__base a { color: var(--fg-3); text-decoration: none; }
.foot__base a:hover { color: var(--paper); }

/* Refinements to inherited components */
.note { background: rgba(255, 255, 255, .55); }
.draft { border-left-color: var(--signal); }
.switch__v { background: var(--navy-900); }

/* Motion: soft page transitions and a considered entrance for page titles */
@media (prefers-reduced-motion: no-preference) {
  @view-transition { navigation: auto; }
  ::view-transition-old(root) { animation: .22s ease both vt-out; }
  ::view-transition-new(root) { animation: .38s var(--ease) both vt-in; }
  @keyframes vt-out { to { opacity: 0; } }
  @keyframes vt-in { from { opacity: 0; transform: translateY(8px); } }
  .phero__title, .bhero__title, .hhero .phero__title { animation: rise 1s var(--ease) both; }
  .phero__lead, .bhero .lead { animation: rise 1s var(--ease) .15s both; }
  .phero .actions, .bhero .actions { animation: rise 1s var(--ease) .28s both; }
  @keyframes rise { from { opacity: 0; transform: translateY(20px); } }
}

/* Fail-safes for the new hero if scripts do not run */
html.failsafe .hero .ln > span, html.failsafe .hero .area, html.failsafe .hero .hero__copy, html.failsafe .hero .hero__eyebrow, html.failsafe .hero .hero__ctl, html.failsafe .hero .tr, html.failsafe .hero .jn, html.failsafe .hero .hero__ring { opacity: 1 !important; transform: none !important; }

@media (max-width: 1080px) {
  .mega { display: none !important; }
  .foot__mid { grid-template-columns: 1fr 1fr; }
  .foot__id { grid-column: 1 / -1; }
}
@media (max-width: 720px) {
  .foot__mid { grid-template-columns: 1fr 1fr; gap: 36px 24px; }
  .foot__actions { gap: 22px; }
  .foot__title { max-width: 10ch; }
  .btn--lg { width: 100%; justify-content: center; }
}

/* Polish: lining figures in display type, solid header (keeps logo blending clean), footer scale */
h1, h2, h3, .foot__contact a, .facts-strip dd, .area__t, .mega__t, .mega__lead, .idx__name, .leaks__t, .acc__btn { font-variant-numeric: lining-nums; font-feature-settings: "lnum" 1; }
.site-header { background: var(--paper); -webkit-backdrop-filter: none; backdrop-filter: none; }
.foot__title { font-size: clamp(3rem, 6.4vw, 6.2rem); max-width: 15ch; }

.phero__title { max-width: 16ch; font-size: clamp(3rem, 6.4vw, 5.7rem); }

@media (min-width: 700px) and (max-width: 1099.98px) {
  .hero__frame { max-width: 780px; }
  .hero__title { font-size: 5.6rem; }
  .hero__cta { flex-direction: row; }
  .hero__cta .btn { width: auto; }
  .hero__diagram { aspect-ratio: 430 / 440; }
}

.phero__title { max-width: none; font-size: clamp(2.9rem, 5.6vw, 5.2rem); }
.phero--center .phero__title { max-width: 18ch; font-size: clamp(3.2rem, 7vw, 6.2rem); }

/* ── Simplified information architecture: header, menus, products, services, footer ── */

/* Header: Home · Products ▾ · Services ▾ · Company · Contact · [BarMS Pro] · CTA */
.site-header__bar { gap: 20px; }
.nav__list { gap: 0; }
.nav__link { padding: 10px 12px; font-size: .76rem; letter-spacing: .12em; }
.nav__link::after { left: 12px; right: 12px; }
.pill { display: inline-flex; align-items: center; gap: 9px; flex: none; padding: .85em 1.15em; border: 1px solid var(--signal-ink); border-radius: 99px; color: var(--ink); text-decoration: none; font: 500 .72rem/1 var(--f-body); letter-spacing: .14em; text-transform: uppercase; white-space: nowrap; transition: background-color .25s, color .25s, border-color .25s; }
.pill__dot { width: 7px; height: 7px; border-radius: 50%; background: var(--signal); box-shadow: 0 0 0 3px rgba(201, 169, 107, .28); }
.pill__tag { color: var(--signal-ink); letter-spacing: .1em; font-size: .64rem; padding-left: 9px; border-left: 1px solid var(--line); }
.pill:hover, .pill[aria-current] { background: var(--navy-900); border-color: var(--navy-900); color: var(--paper); }
.pill:hover .pill__tag, .pill[aria-current] .pill__tag { color: var(--signal); border-color: rgba(246, 243, 238, .25); }
.site-header__cta { margin-left: 0; }

/* Product + services menus */
.mega__inner--products { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; padding-block: 34px 40px; }
.mega__feat { display: grid; grid-template-columns: 138px 1fr; gap: 26px; text-decoration: none; color: var(--ink); background: #fff; border: 1px solid var(--line); border-radius: 3px; overflow: hidden; transition: border-color .25s, box-shadow .35s var(--ease), transform .35s var(--ease); }
.mega__feat:hover { border-color: var(--signal); box-shadow: 0 24px 44px -28px rgba(7, 9, 14, .5); transform: translateY(-2px); }
.mega__img { display: block; background: var(--navy-950); min-height: 190px; }
.mega__img img { width: 100%; height: 100%; object-fit: cover; }
.mega__body { display: grid; gap: 10px; align-content: center; padding: 24px 28px 24px 0; justify-items: start; }
.mega__feat .mega__t { font: 500 2.2rem/1 var(--f-display); }
.mega__go { display: inline-flex; align-items: center; gap: 8px; font-weight: 500; font-size: .92rem; border-bottom: 1px solid var(--line); padding-bottom: 3px; }
.mega__feat:hover .mega__go { border-color: var(--signal); }
.mega__feat:hover .arr { transform: translateX(3px); }
.mega__inner--services { display: grid; grid-template-columns: 260px 1fr; gap: clamp(32px, 5vw, 80px); padding-block: 40px 46px; }
.mega__list { display: grid; grid-template-columns: 1fr 1fr; gap: 0 44px; margin: 0; padding: 0; align-content: start; }
.mega__list a { display: grid; gap: 4px; padding: 18px 0 20px; border-top: 1px solid var(--line); text-decoration: none; color: var(--ink); }
.mega__list .mega__t { font: 500 1.6rem/1.05 var(--f-display); }
.mega__list a:hover .mega__t { text-decoration: underline; text-decoration-color: var(--signal); text-underline-offset: 5px; text-decoration-thickness: 2px; }

/* Product panels */
.prods { display: grid; grid-template-columns: 1.5fr 1fr; gap: 20px; }
.prod { position: relative; border-radius: 4px; overflow: hidden; background: var(--navy-900); color: var(--fg-2); min-height: 560px; }
.prod--main { display: grid; grid-template-columns: 1fr 230px; gap: clamp(20px, 3vw, 48px); padding: clamp(28px, 4vw, 56px); align-items: center; background: radial-gradient(700px 420px at 85% 20%, rgba(26, 50, 96, .7), transparent 70%), var(--navy-900); }
.prod__copy { display: grid; gap: 18px; justify-items: start; position: relative; }
.prod__name { font-size: clamp(2.8rem, 4.6vw, 4.4rem); line-height: .96; color: var(--paper); }
.prod__tag { font: italic 400 1.6rem/1.15 var(--f-display); color: var(--signal); max-width: 22ch; }
.prod .actions { margin-top: 6px; }
.prod .phone { margin: 0; width: 100%; }
.prod .phone__frame { display: block; text-decoration: none; }
.prod--soon { display: grid; align-items: end; padding: clamp(28px, 3.4vw, 44px); }
.prod__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.prod__shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(6, 9, 15, .35) 0%, rgba(6, 9, 15, .55) 40%, rgba(6, 9, 15, .94) 100%); }

/* Services: homepage split + one-page overview */
.services-split { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(32px, 6vw, 96px); align-items: start; }
.services-split .sec-head { margin-bottom: 28px; }
.idx__link--sm { grid-template-columns: 56px 1fr 40px; padding: 26px 0; }
.idx__link--sm .idx__name { font-size: clamp(1.8rem, 2.8vw, 2.6rem); }
.idx__link--sm:hover { padding-inline: 14px; }
.jump { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 40px; }
.jump a { display: inline-flex; align-items: baseline; gap: 10px; padding: .8em 1.2em; border: 1px solid var(--rule); border-radius: 99px; color: var(--fg); text-decoration: none; font-size: .9rem; transition: border-color .25s, background-color .25s; }
.jump a .mono { color: var(--signal); font-size: .66rem; }
.jump a:hover { border-color: var(--signal); background: rgba(201, 169, 107, .08); }
.svc { scroll-margin-top: 80px; }
.svc__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 6vw, 96px); align-items: center; }
.sec--bone .svc__art { order: -1; }
.svc__art { margin: 0; background: var(--navy-950); border-radius: 6px; padding: clamp(18px, 3vw, 40px); }
.svc__name { font-size: clamp(2.4rem, 4.4vw, 4rem); margin-bottom: 18px; max-width: 14ch; }
.svc__lead { font-size: 1.2rem; margin-bottom: 24px; max-width: 46ch; color: var(--ink-2); }
.svc__points { border-top: 1px solid var(--line); margin-bottom: 22px; }
.svc__points li { padding: 13px 0; border-bottom: 1px solid var(--line); }
.svc__note { font-size: .98rem; color: var(--ink-3); max-width: 50ch; margin-bottom: 28px; padding-left: 16px; border-left: 2px solid var(--signal); }
.alsoinside { margin-top: 56px; }
.alsoinside .mono { color: var(--fg-3); margin-bottom: 14px; }
.sec--navy .principles li { border-top-color: var(--signal); }
.sec--navy .principles p { color: var(--fg-2); }

/* Compact signature footer */
.foot__top { display: grid; grid-template-columns: 1.5fr 1fr; gap: 32px clamp(32px, 6vw, 96px); align-items: end; padding-block: clamp(56px, 7vw, 96px) clamp(36px, 4.5vw, 60px); }
.foot__title { font-size: clamp(2.6rem, 5.2vw, 4.8rem); max-width: 14ch; }
.foot__actions { flex-direction: column; align-items: flex-start; margin-top: 0; gap: 24px; }
.foot__contact { display: grid; gap: 4px; }
.foot__mid { grid-template-columns: 210px 1fr 1fr 1fr; gap: clamp(24px, 4vw, 64px); padding-block: 40px 36px; }
.foot__plate { width: 190px; align-self: start; }
.foot__col a { padding: 4px 0; font-size: .98rem; }

/* Mobile */
@media (max-width: 1280px) { .pill__tag { display: none; } }
@media (max-width: 1080px) {
  .pill { margin-left: auto; padding: .8em 1em; }
  .burger { margin-left: 4px; }
  .site-header__bar { gap: 10px; }
  .prods { grid-template-columns: 1fr; }
  .prod--main { grid-template-columns: 1fr; }
  .prod .phone { width: 220px; justify-self: center; }
  .prod--soon { min-height: 420px; }
  .services-split, .svc__grid { grid-template-columns: 1fr; }
  .sec--bone .svc__art { order: 0; }
  .foot__top { grid-template-columns: 1fr; align-items: start; }
  .foot__mid { grid-template-columns: 1fr 1fr 1fr; }
  .foot__plate { grid-column: 1 / -1; }
}
@media (max-width: 720px) {
  .pill { font-size: .66rem; padding: .75em .9em; }
  .foot__mid { grid-template-columns: 1fr 1fr; }
  .foot__title { max-width: 11ch; }
  .idx__link--sm { grid-template-columns: 40px 1fr 36px; }
}
@media (max-width: 380px) { .pill__dot { display: none; } }

.area { width: calc(196 * var(--u)); }
.area--hot .area__d { color: var(--signal); }
.area--hot .area__t { font-weight: 600; }
@media (max-width: 1099.98px) { .area { width: calc(340 * var(--u)); } }

@media (max-width: 1099.98px) {
  .area { top: calc(var(--ny) * var(--u) - 26 * var(--u)); }
  .area a { grid-template-columns: 1fr; gap: 2px; }
  .area__n { grid-row: auto; font-size: max(10.5px, calc(10 * var(--u))); }
  .area__d { grid-column: auto; }
}

/* ── Concept layer: floating pill header, centred hero over a network field,
   ticker, scroll-filled statement, bento services, process timeline,
   system tiles, floating actions. Loaded last. ───────────────────────── */
:root { --header-h: 92px; }

/* Floating pill header */
.site-header { position: fixed; top: 14px; left: 0; right: 0; z-index: 100; background: none; border: 0; padding-inline: 14px; pointer-events: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
.site-header > * { pointer-events: auto; }
.site-header__bar { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 16px; max-width: 1240px; height: 64px; margin: 0 auto; padding: 0 10px 0 26px; background: var(--paper); border: 1px solid rgba(11, 26, 51, .08); border-radius: 999px; box-shadow: 0 22px 44px -22px rgba(6, 9, 15, .55); }
.site-header__r { display: flex; align-items: center; gap: 10px; justify-self: end; }
.nav { margin: 0; justify-self: start; }
.brand { width: 138px; }
.site-header__cta { margin: 0; border-radius: 99px; }
.burger { margin: 0; border-radius: 50%; width: 44px; height: 44px; }
.pill { margin: 0; }
main { padding-top: 0; }

/* Menus as floating cards */
.mega { position: absolute; top: 78px; left: 14px; right: 14px; max-width: 1120px; margin-inline: auto; border: 1px solid var(--line); border-radius: 28px; box-shadow: 0 50px 80px -40px rgba(6, 9, 15, .6); overflow: hidden; }
.mega__inner { max-width: none; padding: 26px; }
.mega__inner--products { padding: 26px; gap: 20px; }
.mega__feat { border-radius: 20px; }
.mega__inner--services { grid-template-columns: 1fr 250px; gap: 28px; padding: 26px; }
.mega__list { gap: 4px 16px; }
.mega__list a { grid-template-columns: 46px 1fr; align-items: center; gap: 16px; padding: 14px; border: 0; border-radius: 16px; transition: background-color .25s; }
.mega__list a:hover { background: var(--stone); }
.mega__ico { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid var(--signal); border-radius: 50%; color: var(--signal-ink); font-size: .7rem; }
.mega__txt { display: grid; gap: 3px; }
.mega__side { display: grid; align-content: center; gap: 18px; padding: 14px 8px 14px 28px; border-left: 1px solid var(--line); }
.mega__side .mega__lead { font: 500 2.5rem/1 var(--f-display); color: var(--ink); margin: 0; }
.mega__side .mega__lead em { color: var(--signal-ink); font-style: italic; font-weight: 400; }

/* Every dark hero clears the floating header and carries the network field */
.phero { padding-top: calc(var(--header-h) + clamp(36px, 5vw, 84px)); }
.bhero { padding-top: calc(var(--header-h) + clamp(28px, 4vw, 64px)); }
.hhero__in { padding-top: calc(var(--header-h) + 40px); }
.net { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 0; }
.phero > .wrap, .bhero__grid, .hhero__in { position: relative; z-index: 1; }
.hhero .net { z-index: 1; }

/* Hero */
.hero2 { position: relative; display: grid; align-items: center; min-height: min(100svh, 1000px); padding: calc(var(--header-h) + 36px) 0 72px; background: radial-gradient(1100px 640px at 50% 28%, rgba(26, 50, 96, .6), transparent 70%), var(--navy-950); overflow: hidden; }
.hero2__veil { position: absolute; inset: 0; pointer-events: none; background: radial-gradient(ellipse at 50% 45%, transparent 38%, rgba(6, 9, 15, .75) 100%); }
.hero2__in { position: relative; z-index: 1; display: grid; justify-items: center; text-align: center; }
.hero2__chip { display: inline-flex; align-items: center; gap: 12px; padding: .5em .5em .5em 1.1em; margin-bottom: 34px; border: 1px solid rgba(201, 169, 107, .4); border-radius: 99px; background: rgba(201, 169, 107, .07); color: var(--paper); text-decoration: none; font: 500 .74rem/1 var(--f-body); letter-spacing: .14em; text-transform: uppercase; transition: border-color .25s, background-color .25s; }
.hero2__chip:hover { border-color: var(--signal); background: rgba(201, 169, 107, .14); }
.chip__dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--signal); box-shadow: 0 0 0 4px rgba(201, 169, 107, .25); flex: none; }
.hero2__chip-go { display: inline-flex; align-items: center; gap: 8px; padding: .8em 1.1em; border-radius: 99px; background: var(--signal); color: var(--navy-950); }
.hero2__title { font-size: clamp(3.4rem, 8.8vw, 8.6rem); line-height: .94; letter-spacing: -.018em; max-width: 13ch; font-weight: 500; text-wrap: balance; }
.hero2__title em { color: var(--signal); font-style: italic; font-weight: 400; }
.hero2__lead { margin-top: 30px; max-width: 54ch; font-size: clamp(1.1rem, 1.5vw, 1.3rem); line-height: 1.6; color: rgba(246, 243, 238, .82); }
.hero2__cta { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin-top: 40px; }
.hero2__tags { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; max-width: 900px; margin-top: 46px; padding: 0; }
.hero2__tags a { display: inline-flex; align-items: center; gap: 8px; padding: .62em 1.05em; border: 1px solid rgba(246, 243, 238, .16); border-radius: 99px; color: rgba(246, 243, 238, .82); text-decoration: none; font-size: .88rem; transition: border-color .25s, color .25s, background-color .25s; }
.hero2__tags a:hover { border-color: var(--signal); color: #fff; background: rgba(201, 169, 107, .1); }
.hero2__tags small { font-size: .66rem; letter-spacing: .12em; text-transform: uppercase; color: var(--signal); }
.hero2__scroll { display: inline-grid; justify-items: center; gap: 12px; margin-top: 52px; color: rgba(246, 243, 238, .55); text-decoration: none; font-size: .68rem; }
.hero2__scroll i { display: block; width: 1px; height: 46px; background: linear-gradient(var(--signal), transparent); transform-origin: top; }

/* Split headline */
.is-split .w { display: inline-block; overflow: hidden; vertical-align: top; padding: 0 .04em .14em; margin: 0 -.04em -.14em; }
.is-split .w > span { display: inline-block; transform: translateY(108%); transition: transform 1.15s var(--ease); transition-delay: calc(var(--i) * 75ms + .15s); }
.is-split.in .w > span { transform: none; }

/* Ticker */
.ticker { overflow: hidden; background: var(--navy-900); border-block: 1px solid rgba(246, 243, 238, .08); padding: 20px 0; white-space: nowrap; }
.ticker__track { display: inline-flex; align-items: center; gap: 34px; padding-left: 34px; }
.ticker span { font: italic 400 1.9rem/1 var(--f-display); color: rgba(246, 243, 238, .86); }
.ticker i { font-style: normal; color: var(--signal); font-size: .7rem; }

/* Scroll-filled statement */
.statement2 { padding-block: clamp(96px, 13vw, 210px); }
.sec-head__label--c { justify-content: center; margin-bottom: 38px; }
.statement2__text { max-width: 24ch; margin: 0 auto; text-align: center; font: 500 clamp(2.2rem, 5vw, 4.6rem)/1.1 var(--f-display); color: var(--ink); letter-spacing: -.01em; }
.statement2__text .fw { color: rgba(11, 26, 51, .16); transition: color .4s; }
.statement2__text .fw.on { color: var(--ink); }

/* Centred section heads */
.sec-head--c { text-align: center; margin-inline: auto; }
.sec-head--c .sec-head__label { justify-content: center; }
.sec-head--c .sec-head__label::after { display: none; }
.sec-head--c .sec-head__title { max-width: 18ch; margin-inline: auto; }
.sec-head--c .sec-head__title em { color: var(--signal-ink); font-style: italic; font-weight: 400; }
.sec-head--c .sec-head__lead { margin-inline: auto; }
.is-dark .sec-head--c .sec-head__title em { color: var(--signal); }

/* Product panels: softer, larger radii */
.prod { border-radius: 30px; }
.prod .phone__frame { border-radius: 38px; }

/* Bento services */
.bento { display: grid; grid-template-columns: repeat(6, 1fr); gap: 20px; }
.bento__card { position: relative; display: flex; flex-direction: column; gap: 14px; grid-column: span 2; padding: 30px; background: #fff; border: 1px solid var(--line); border-radius: 30px; color: var(--ink-2); text-decoration: none; overflow: hidden; transition: transform .5s var(--ease), box-shadow .5s var(--ease), border-color .3s; }
.bento__card--ai, .bento__card--software { grid-column: span 3; }
.bento__card::before, .tiles__item.fx-card::before { content: ''; position: absolute; inset: 0; background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 0%), rgba(201, 169, 107, .2), transparent 60%); opacity: 0; transition: opacity .4s; pointer-events: none; }
.bento__card:hover, .tiles__item.fx-card:hover { transform: translateY(-4px); border-color: var(--signal); box-shadow: 0 36px 60px -36px rgba(11, 26, 51, .45); }
.bento__card:hover::before, .tiles__item.fx-card:hover::before { opacity: 1; }
.bento__ico { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 15px; background: var(--navy-900); color: var(--signal); position: relative; }
.bento__card h3 { font-size: clamp(1.8rem, 2.3vw, 2.3rem); position: relative; }
.bento__card p { max-width: 46ch; position: relative; }
.bento__more { margin-top: auto; padding-top: 12px; display: inline-flex; align-items: center; gap: 8px; color: var(--ink); font-weight: 500; position: relative; }
.bento__card:hover .arr { transform: translateX(4px); }
.bento__card [aria-hidden="true"] { position: relative; }
.w-tasks { display: grid; margin-top: 8px; border: 1px solid var(--line); border-radius: 18px; background: var(--bone); overflow: hidden; }
.w-tasks li { display: flex; align-items: center; gap: 12px; padding: 13px 16px; font-size: .95rem; color: var(--ink); }
.w-tasks li + li { border-top: 1px solid var(--line); }
.w-tasks b { margin-left: auto; font: 500 .72rem/1 var(--f-body); letter-spacing: .1em; text-transform: uppercase; }
.w-dot { width: 14px; height: 14px; border-radius: 50%; flex: none; }
.is-done .w-dot { background: #2f7a4d; }
.is-done b { color: #2f7a4d; }
.is-wait .w-dot { border: 2px solid var(--signal); }
.is-wait b { color: var(--signal-ink); }
.w-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; padding: 0; }
.w-chips li { padding: .6em 1.05em; border: 1px solid var(--line); border-radius: 99px; background: var(--bone); font-size: .9rem; color: var(--ink); }
.w-chips .hot { background: var(--signal); border-color: var(--signal); color: var(--navy-950); font-weight: 500; }
.w-link { display: flex; align-items: center; margin-top: 10px; font-size: .78rem; }
.w-link span { padding: .6em .8em; border: 1px solid var(--line); border-radius: 12px; background: var(--bone); color: var(--ink); white-space: nowrap; }
.w-link b { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--navy-900); color: var(--signal); font: 600 .7rem/1 var(--f-body); letter-spacing: .08em; flex: none; }
.w-link i { flex: 1; height: 1px; min-width: 14px; background: repeating-linear-gradient(90deg, var(--signal) 0 5px, transparent 5px 10px); }
.w-browser { margin-top: 10px; border: 1px solid var(--line); border-radius: 16px; background: var(--bone); overflow: hidden; }
.w-browser__bar { display: flex; gap: 6px; padding: 10px 12px; border-bottom: 1px solid var(--line); }
.w-browser__bar i { width: 7px; height: 7px; border-radius: 50%; background: var(--silver); }
.w-browser__body { display: grid; gap: 8px; padding: 14px; }
.w-browser em { display: block; height: 8px; border-radius: 4px; background: var(--stone); }
.w-browser em.s { width: 55%; }
.w-browser b { display: block; width: 38%; height: 20px; border-radius: 6px; background: var(--signal); }
.w-loop { display: flex; align-items: center; gap: 18px; margin-top: 8px; }
.w-loop svg { width: 86px; height: 86px; flex: none; transform: rotate(-90deg); }
.w-loop circle { fill: none; stroke: var(--line); stroke-width: 6; }
.w-loop .arc { stroke: var(--signal); stroke-linecap: round; stroke-dasharray: 28 72; }
.w-loop span { font-size: .85rem; line-height: 1.55; color: var(--ink-3); }

/* Process timeline */
.tl { --p: 0; position: relative; display: grid; gap: clamp(56px, 8vw, 120px); padding-block: 12px; }
.tl::before, .tl::after { content: ''; position: absolute; left: 50%; top: 0; bottom: 0; width: 2px; transform: translateX(-50%); background: var(--line); }
.tl::after { background: var(--signal); transform: translateX(-50%) scaleY(var(--p)); transform-origin: top; }
.tl__step { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(48px, 9vw, 150px); align-items: center; }
.tl__step--r .tl__card { order: -1; }
.tl__n { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; background: var(--navy-900); color: var(--signal); font: 500 1.4rem/1 var(--f-display); box-shadow: 0 0 0 8px var(--bone); z-index: 1; }
.tl__copy h3 { font-size: clamp(2rem, 3vw, 2.8rem); margin: 10px 0 12px; }
.tl__copy .mono { color: var(--signal-ink); }
.tl__copy p:last-child { max-width: 40ch; }
.tl__card { display: grid; gap: 14px; padding: 28px; background: #fff; border: 1px solid var(--line); border-radius: 28px; box-shadow: 0 40px 70px -46px rgba(11, 26, 51, .45); }
.tl__t { font: 500 .72rem/1 var(--f-body); letter-spacing: .16em; text-transform: uppercase; color: var(--ink-3); }
.tl__field { padding: 14px 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--bone); color: var(--ink-3); }
.tl__opts { display: flex; flex-wrap: wrap; gap: 8px; padding: 0; }
.tl__opts li { padding: .55em 1em; border: 1px solid var(--line); border-radius: 99px; font-size: .88rem; color: var(--ink); }
.tl__opts .on { background: var(--signal); border-color: var(--signal); color: var(--navy-950); font-weight: 500; }
.tl__btn { justify-self: start; padding: .9em 1.4em; border-radius: 99px; background: var(--navy-900); color: var(--paper); font: 500 .74rem/1 var(--f-body); letter-spacing: .12em; text-transform: uppercase; }
.tl__rows li { padding: 13px 0; border-top: 1px solid var(--line); color: var(--ink); }
.tl__lines { display: grid; gap: 10px; }
.tl__lines i { display: block; height: 9px; border-radius: 5px; background: var(--stone); }
.tl__lines i.s { width: 62%; }
.tl__stamp { justify-self: start; padding: .6em 1em; border: 1.5px solid var(--signal-ink); border-radius: 6px; color: var(--signal-ink); font: 600 .7rem/1 var(--f-body); letter-spacing: .14em; text-transform: uppercase; transform: rotate(-3deg); }

/* System tiles */
.tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; max-width: 980px; margin: 0 auto; padding: 0; }
.tiles__item { position: relative; display: grid; gap: 8px; place-items: center; padding: 34px 16px; background: #fff; border: 1px solid var(--line); border-radius: 22px; color: var(--ink); font-weight: 500; text-align: center; overflow: hidden; transition: transform .5s var(--ease), box-shadow .5s, border-color .3s; }
.tiles__item .mono { color: var(--signal-ink); position: relative; }
.tiles__item--more { background: transparent; border-style: dashed; color: var(--ink-3); }

/* Why IMS */
.why__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(24px, 4vw, 64px); padding: 0; }
.why__grid li { padding-top: 26px; border-top: 1px solid var(--signal); }
.why__grid span { display: block; font: italic 400 3.2rem/1 var(--f-display); color: var(--signal); margin-bottom: 18px; }
.why__grid h3 { margin-bottom: 12px; }
.why__grid p { color: var(--fg-2); }

/* Floating actions + progress */
.progress { position: fixed; top: 0; left: 0; right: 0; height: 2px; z-index: 200; background: linear-gradient(90deg, #8d939d, var(--signal)); transform: scaleX(0); transform-origin: left; pointer-events: none; }
.fab { position: fixed; z-index: 90; bottom: 20px; text-decoration: none; box-shadow: 0 18px 36px -14px rgba(6, 9, 15, .6); }
.fab--talk { left: 20px; display: inline-flex; align-items: center; gap: 10px; padding: 1em 1.35em; border-radius: 99px; background: var(--navy-900); color: var(--paper); font: 500 .74rem/1 var(--f-body); letter-spacing: .12em; text-transform: uppercase; opacity: 0; transform: translateY(24px); pointer-events: none; transition: opacity .4s, transform .5s var(--ease); }
.fab--talk.is-on { opacity: 1; transform: none; pointer-events: auto; }
.fab--call { right: 20px; display: grid; place-items: center; width: 54px; height: 54px; border-radius: 50%; background: var(--signal); color: var(--navy-950); transition: transform .3s var(--ease); }
.fab--call:hover { transform: scale(1.08); }
.page-contact .fab--talk { display: none; }

@media (prefers-reduced-motion: no-preference) {
  .ticker__track { animation: tick 70s linear infinite; }
  .ticker:hover .ticker__track { animation-play-state: paused; }
  @keyframes tick { to { transform: translateX(-25%); } }
  .chip__dot { animation: dotpulse 2.8s ease-in-out infinite; }
  @keyframes dotpulse { 50% { box-shadow: 0 0 0 8px rgba(201, 169, 107, 0); } }
  .hero2__chip, .hero2__lead, .hero2__cta, .hero2__tags, .hero2__scroll { animation: rise 1s var(--ease) both; }
  .hero2__chip { animation-delay: .05s; } .hero2__lead { animation-delay: .75s; } .hero2__cta { animation-delay: .9s; } .hero2__tags { animation-delay: 1.05s; } .hero2__scroll { animation-delay: 1.2s; }
  .hero2__scroll i { animation: cue 2.2s var(--ease) infinite; }
  @keyframes cue { 0% { transform: scaleY(0); } 55% { transform: scaleY(1); } 100% { transform: scaleY(1); opacity: 0; } }
  .w-loop .arc { transform-origin: 50px 50px; animation: spin 7s linear infinite; }
  @keyframes spin { to { transform: rotate(360deg); } }
  .is-wait .w-dot { animation: dotpulse 2s ease-in-out infinite; }
  .w-link i { animation: dash 1.2s linear infinite; background-size: 10px 1px; }
  @keyframes dash { to { background-position: 10px 0; } }
}

/* Responsive */
@media (max-width: 1080px) {
  .site-header__bar { display: flex; justify-content: space-between; padding-left: 20px; }
  .nav { display: none; }
  .brand { width: 124px; }
  .site-header__r { gap: 8px; }
  .mega { display: none !important; }
  .bento { grid-template-columns: repeat(2, 1fr); }
  .bento__card, .bento__card--ai, .bento__card--software { grid-column: span 1; }
  .bento__card--ai, .bento__card--software { grid-column: span 2; }
  .tl::before, .tl::after { left: 23px; }
  .tl__step { grid-template-columns: 1fr; gap: 24px; padding-left: 64px; }
  .tl__step--r .tl__card { order: 0; }
  .tl__n { left: 23px; top: 0; transform: translate(-50%, 0); }
  .why__grid { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .hero2 { min-height: 0; padding-bottom: 56px; }
  .hero2__chip { font-size: .66rem; letter-spacing: .1em; margin-bottom: 26px; }
  .hero2__chip-go { padding: .7em .9em; }
  .hero2__cta { width: 100%; flex-direction: column; }
  .hero2__cta .btn { width: 100%; justify-content: center; }
  .hero2__tags { margin-top: 34px; }
  .hero2__scroll { display: none; }
  .ticker span { font-size: 1.5rem; }
  .bento { grid-template-columns: 1fr; }
  .bento__card, .bento__card--ai, .bento__card--software { grid-column: auto; padding: 24px; }
  .tiles { grid-template-columns: repeat(2, 1fr); }
  .tiles__item--more { grid-column: span 2; }
  .fab--talk { left: 12px; bottom: 12px; padding: .9em 1.1em; }
  .fab--call { right: 12px; bottom: 12px; }
  .w-link span { font-size: .7rem; padding: .5em .6em; }
}

.hero2__title { font-size: clamp(3.2rem, 7.4vw, 7.2rem); max-width: min(1100px, 100%); }

.sec-head--c .sec-head__label, .sec-head__label--c { max-width: none; width: 100%; justify-content: center; }
.sec-head--c .sec-head__lead { max-width: 54ch; }

/* ── Final layer: full-screen hero with a moving arc of products, call-to-action
   contact page, ribbon + signature footer, HMS page. Loaded last. ───────── */

/* Hero: fills the screen. Headline up top, products travelling along an arc below */
.hero3 { position: relative; display: flex; flex-direction: column; min-height: max(100svh, 760px); overflow: hidden; background: radial-gradient(1100px 600px at 50% 20%, rgba(26, 50, 96, .6), transparent 70%), var(--navy-950); }
.hero3__veil { position: absolute; inset: 0; pointer-events: none; background: radial-gradient(ellipse at 50% 25%, transparent 30%, rgba(6, 9, 15, .65) 100%); }
.hero3__in { position: relative; z-index: 2; display: grid; justify-items: center; text-align: center; padding-top: calc(var(--header-h) + clamp(22px, 4.5vh, 60px)); }
.hero3__title { font-size: clamp(3rem, 6.6vw, 6.6rem); line-height: .96; letter-spacing: -.016em; font-weight: 500; max-width: min(1100px, 100%); text-wrap: balance; }
.hero3__title em { color: var(--signal); font-style: italic; font-weight: 400; }
.hero3 .hero2__chip { margin-bottom: clamp(20px, 3.4vh, 34px); }
.hero3 .hero2__lead { margin-top: clamp(16px, 2.6vh, 26px); max-width: 44ch; }
.hero3 .hero2__cta { margin-top: clamp(20px, 3.4vh, 34px); }
.arc { position: absolute; left: 0; right: 0; bottom: 0; height: clamp(300px, 47vh, 540px); z-index: 1; pointer-events: none; }
.arc__card { position: absolute; left: 0; top: 0; display: block; overflow: hidden; border-radius: 22px; background: var(--navy-900); border: 1px solid rgba(246, 243, 238, .14); box-shadow: 0 34px 60px -24px rgba(0, 0, 0, .8); pointer-events: auto; will-change: transform; text-decoration: none; transition: filter .3s; }
.arc:not(.is-ready) .arc__card { opacity: 0; }
.arc.is-ready .arc__card { animation: cardIn 1s var(--ease) both; }
@keyframes cardIn { from { opacity: 0; } }
.arc__card:hover { filter: brightness(1.12); }
.arc__card img { display: block; width: 100%; height: 100%; object-fit: cover; }
.arc__card--phone img { object-position: top; }
.arc__art { display: grid; place-items: center; width: 100%; height: 100%; padding: 14px; background: radial-gradient(circle at 30% 15%, #14305a, #06090f 70%); }
.arc__art svg { width: 100%; height: auto; }
.arc__label { position: absolute; left: 10px; bottom: 10px; display: inline-flex; align-items: center; gap: 8px; max-width: calc(100% - 20px); padding: .5em .85em; border-radius: 99px; background: rgba(6, 9, 15, .72); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); color: #fff; font: 500 .76rem/1 var(--f-body); white-space: nowrap; }
.arc__label b { font-weight: 500; overflow: hidden; text-overflow: ellipsis; }
.arc__label i { font-style: normal; color: var(--signal); font-size: .62rem; letter-spacing: .1em; text-transform: uppercase; }

/* Contact: a call-to-action page */
.cx { position: relative; display: grid; align-items: center; min-height: 100svh; overflow: hidden; padding: calc(var(--header-h) + clamp(28px, 6vh, 72px)) 0 clamp(56px, 9vh, 110px); background: radial-gradient(900px 600px at 82% 18%, rgba(26, 50, 96, .6), transparent 70%), var(--navy-950); }
.cx__grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(32px, 6vw, 110px); align-items: center; }
.cx__eyebrow { color: var(--signal); margin-bottom: 22px; }
.cx__title { font-size: clamp(3.4rem, 7.6vw, 7.6rem); line-height: .93; letter-spacing: -.02em; }
.cx__title em { color: var(--signal); font-style: italic; font-weight: 400; }
.cx__direct { margin-top: clamp(30px, 5vw, 64px); border-top: 1px solid var(--rule); padding: 0; }
.cx__direct a { display: flex; align-items: baseline; gap: 22px; padding: 22px 0; border-bottom: 1px solid var(--rule); color: var(--paper); text-decoration: none; font: 500 clamp(1.6rem, 2.8vw, 2.7rem)/1.1 var(--f-display); transition: padding .45s var(--ease), color .3s; }
.cx__direct .mono { flex: none; width: 56px; color: var(--fg-3); font-size: .68rem; }
.cx__direct .arr { margin-left: auto; align-self: center; transition: transform .4s var(--ease); }
.cx__direct a:hover { padding-left: 14px; color: var(--signal); }
.cx__direct a:hover .arr { transform: translateX(6px); }
.cx__fine { margin-top: 22px; color: var(--fg-3); font-size: .92rem; }
.cx__form { display: grid; gap: 26px; padding: clamp(24px, 3.4vw, 46px); border: 1px solid rgba(246, 243, 238, .14); border-radius: 32px; background: rgba(255, 255, 255, .035); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.cx__formtitle { font: 500 1.9rem/1 var(--f-display); color: var(--paper); }
.cx__topics { display: flex; flex-wrap: wrap; gap: 8px; border: 0; margin: 0; padding: 0; }
.pillopt { position: relative; }
.pillopt input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.pillopt span { display: block; padding: .62em 1.1em; border: 1px solid rgba(246, 243, 238, .24); border-radius: 99px; color: rgba(246, 243, 238, .84); font-size: .9rem; transition: background-color .25s, border-color .25s, color .25s; }
.pillopt:hover span { border-color: var(--signal); }
.pillopt input:checked + span { background: var(--signal); border-color: var(--signal); color: var(--navy-950); font-weight: 500; }
.pillopt input:focus-visible + span { outline: 3px solid var(--signal); outline-offset: 3px; }
.cx__row { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.page-contact .field > label { color: var(--fg-3); font: 500 .7rem/1 var(--f-body); letter-spacing: .16em; text-transform: uppercase; }
.page-contact .input, .page-contact .textarea { background: transparent; border: 0; border-bottom: 1px solid rgba(246, 243, 238, .3); border-radius: 0; color: var(--paper); padding: 12px 2px; font-size: 1.1rem; }
.page-contact .textarea { min-height: 96px; }
.page-contact .input:hover, .page-contact .textarea:hover { border-color: rgba(246, 243, 238, .6); }
.page-contact .input:focus-visible, .page-contact .textarea:focus-visible { outline: 0; border-color: var(--signal); box-shadow: 0 1px 0 var(--signal); }
.page-contact .field[data-invalid] .input, .page-contact .field[data-invalid] .textarea { border-color: #ff9d94; background: none; }
.page-contact .err { color: #ff9d94; }
.page-contact .check { color: var(--fg-2); font-size: .94rem; }
.page-contact .check a { color: var(--signal); }
.page-contact .check input { accent-color: var(--signal); }
.page-contact .form__status { background: rgba(255, 255, 255, .06); color: var(--paper); border-left-color: var(--signal); }
.page-contact .form__status strong { color: var(--paper); }
.page-contact .form__status[data-kind="error"] { border-left-color: #ff9d94; }
.page-contact .form__status[data-kind="ok"] { border-left-color: #7ad19f; }
.page-contact .form__status .link, .page-contact .form__status .btn { color: var(--paper); }
.cx__send { justify-self: start; }
.cx .net { z-index: 0; }

/* Ribbon + signature footer */
.ribbon { display: block; overflow: hidden; padding: clamp(16px, 2.6vw, 30px) 0; background: var(--signal); color: var(--navy-950); text-decoration: none; white-space: nowrap; transition: background-color .3s; }
.ribbon:hover { background: #dcc08a; }
.ribbon__track { display: inline-flex; align-items: center; gap: clamp(24px, 3vw, 48px); padding-left: 48px; }
.ribbon span { font: italic 400 clamp(2.4rem, 6vw, 5.4rem)/1 var(--f-display); }
.ribbon i { font-style: normal; font-size: 1rem; }
.foot__top { display: grid; grid-template-columns: 1.3fr 1fr; gap: 36px clamp(32px, 6vw, 100px); align-items: end; padding-block: clamp(64px, 8vw, 120px) clamp(40px, 5vw, 64px); }
.foot__title { font-size: clamp(2.8rem, 5.6vw, 5.4rem); max-width: 13ch; }
.foot__actions { display: grid; gap: 28px; justify-items: start; }
.foot__contact { display: grid; gap: 4px; width: 100%; }
.foot__contact li, .foot__contact a { display: flex; align-items: baseline; gap: 18px; color: var(--paper); text-decoration: none; font: 500 clamp(1.5rem, 2.1vw, 2rem)/1.3 var(--f-display); background: none; padding: 0; }
.foot__contact .mono { flex: none; width: 52px; color: var(--fg-3); font-size: .66rem; }
.foot__contact a:hover { color: var(--signal); }
.foot__live { display: inline-block; width: 7px; height: 7px; margin-left: 10px; border-radius: 50%; background: var(--signal); box-shadow: 0 0 0 3px rgba(201, 169, 107, .25); vertical-align: middle; }
.foot__giant { margin: 6px 0 0; text-align: center; white-space: nowrap; overflow: hidden; font: 500 6.3vw/1 var(--f-display); letter-spacing: -.015em; color: transparent; -webkit-text-stroke: 1px rgba(246, 243, 238, .2); -webkit-mask-image: linear-gradient(#000 35%, transparent); mask-image: linear-gradient(#000 35%, transparent); user-select: none; }
.foot__base { border-top: 0; padding-block: 8px 30px; }
.foot__base ul { gap: 26px; }

/* HMS */
.hhero { min-height: min(92vh, 900px); }
.hhero__title { font-size: clamp(6rem, 19vw, 17rem); line-height: .84; letter-spacing: -.035em; margin: 10px 0 18px; color: var(--paper); }
.mos { display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-rows: clamp(150px, 17vw, 250px); gap: 16px; }
.mos__ph { margin: 0; overflow: hidden; border-radius: 26px; background: var(--stone); }
.mos__ph img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.mos__ph:hover img { transform: scale(1.05); }
.mos__a { grid-column: 1 / 8; grid-row: 1 / 3; }
.mos__b { grid-column: 8 / 13; grid-row: 1 / 2; }
.mos__c { grid-column: 8 / 13; grid-row: 2 / 3; }
.mos__d { grid-column: 1 / 6; grid-row: 3 / 4; }
.mos__e { grid-column: 6 / 13; grid-row: 3 / 4; }
.mos__note { margin-top: 18px; text-align: center; color: var(--ink-3); text-transform: none; letter-spacing: .02em; font-size: .8rem; }
.mos__note a { color: inherit; }

@media (prefers-reduced-motion: no-preference) {
  .ribbon__track { animation: tick 60s linear infinite; }
  .ribbon:hover .ribbon__track { animation-play-state: paused; }
  .hero3 .hero2__chip, .hero3 .hero2__lead, .hero3 .hero2__cta { animation: rise 1s var(--ease) both; }
  .hero3 .hero2__lead { animation-delay: .7s; } .hero3 .hero2__cta { animation-delay: .85s; }
  .cx__title, .cx__direct, .cx__form { animation: rise 1s var(--ease) both; }
  .cx__direct { animation-delay: .15s; } .cx__form { animation-delay: .3s; }
}

@media (max-width: 1080px) {
  .cx__grid { grid-template-columns: 1fr; }
  .cx { align-items: start; }
  .foot__top { grid-template-columns: 1fr; align-items: start; }
}
@media (max-width: 720px) {
  .hero3 { min-height: max(100svh, 700px); }
  .hero3 .hero2__cta { width: 100%; flex-direction: column; }
  .hero3 .hero2__cta .btn { width: 100%; justify-content: center; }
  .arc { height: clamp(220px, 34vh, 330px); }
  .cx__row { grid-template-columns: 1fr; }
  .cx__direct a { gap: 14px; }
  .cx__direct .mono { width: 44px; }
  .cx__send { width: 100%; justify-content: center; }
  .foot__contact .mono { width: 44px; }
  .foot__giant { font-size: 6.6vw; }
  .mos { grid-auto-rows: 200px; }
  .mos__a, .mos__b, .mos__c, .mos__d, .mos__e { grid-column: 1 / -1; grid-row: auto; }
}

/* Arc sits below the headline block and fills the rest of the screen */
.arc { position: relative; flex: 1 1 auto; left: auto; right: auto; bottom: auto; height: auto; min-height: 260px; margin-top: clamp(8px, 2vh, 24px); }
@media (max-width: 720px) { .arc { height: auto; min-height: 230px; } }

.arc__art .art__blk { opacity: 1 !important; transform: none !important; }
.arc__art .d { stroke-dashoffset: 0 !important; }

/* Fixes */
.page-contact .field > label.check { color: var(--fg-2); font: 400 .94rem/1.5 var(--f-body); letter-spacing: 0; text-transform: none; }
.hhero__shade { background: linear-gradient(180deg, rgba(6, 9, 15, .5) 0%, rgba(6, 9, 15, .28) 35%, rgba(6, 9, 15, .92) 100%); }
.hhero .phero__label { color: var(--paper); }
.hhero .phero__label > span:not(.tag) { color: var(--paper); }

/* ── Page landings: every page opens with its own full-screen composition ── */

.pg { position: relative; display: grid; align-items: center; min-height: 100svh; overflow: hidden; padding: calc(var(--header-h) + clamp(24px, 5vh, 70px)) 0 clamp(40px, 7vh, 90px); background: radial-gradient(1000px 640px at 78% 18%, rgba(26, 50, 96, .6), transparent 70%), var(--navy-950); }
.pg > .wrap { position: relative; z-index: 1; }
.pg__eyebrow { color: var(--signal); margin-bottom: 20px; }
.pg__title { font-size: clamp(3.2rem, 7vw, 7rem); line-height: .95; letter-spacing: -.018em; font-weight: 500; }
.pg__title em { color: var(--signal); font-style: italic; font-weight: 400; }
.pg__lead { margin-top: 22px; max-width: 40ch; font-size: clamp(1.1rem, 1.5vw, 1.3rem); color: var(--fg-2); }

/* Services landing: the five services as a typographic index with a live preview */
.sv__in { display: grid; gap: clamp(22px, 4vh, 48px); }
.sv__head .pg__title { font-size: clamp(3rem, 6.2vw, 6.2rem); }
.sl { border-top: 1px solid var(--rule); padding: 0; }
.sl__row a { display: flex; align-items: center; gap: 24px; padding: clamp(12px, 2vh, 22px) 0; border-bottom: 1px solid var(--rule); color: var(--fg); text-decoration: none; transition: padding .45s var(--ease), color .3s, opacity .3s; }
.sl__n { flex: none; width: 44px; color: var(--signal); font-size: .7rem; }
.sl__name { font: 500 clamp(1.9rem, 4.2vw, 3.8rem)/1.05 var(--f-display); letter-spacing: -.01em; }
.sl__go { margin-left: auto; display: grid; place-items: center; width: 46px; height: 46px; border: 1px solid var(--rule); border-radius: 50%; transition: background-color .3s, color .3s, border-color .3s, transform .4s var(--ease); }
.sl__go .arr { transform: rotate(90deg); }
.sl:hover .sl__row a:not(:hover) { opacity: .4; }
.sl__row a:hover { padding-left: 18px; color: var(--signal); }
.sl__row a:hover .sl__go { background: var(--signal); color: var(--navy-950); border-color: var(--signal); }
.sl__peek { position: fixed; z-index: 60; width: min(420px, 32vw); aspect-ratio: 4 / 3; padding: 18px; border: 1px solid rgba(246, 243, 238, .16); border-radius: 22px; background: rgba(6, 9, 15, .94); box-shadow: 0 40px 70px -30px rgba(0, 0, 0, .8); pointer-events: none; opacity: 0; transform: scale(.92); transition: opacity .25s, transform .35s var(--ease); }
.sl__peek.on { opacity: 1; transform: none; }
.sl__art { position: absolute; inset: 18px; opacity: 0; transition: opacity .25s; display: grid; place-items: center; }
.sl__art.on { opacity: 1; }
.sl__art svg { width: 100%; height: auto; }
.sl__art .art__blk { opacity: 1 !important; transform: none !important; }
.sl__art .d { stroke-dashoffset: 0 !important; }

/* Service chapters stack as full-screen cards */
.stack { position: relative; }
.ch { position: sticky; top: 0; display: grid; align-items: center; min-height: 100svh; padding: calc(var(--header-h) + 10px) 0 56px; border-radius: 34px 34px 0 0; overflow: hidden; box-shadow: 0 -34px 70px -34px rgba(0, 0, 0, .55); color: var(--fg-2); }
.ch--dark { background: var(--navy-900); }
.ch--deep { background: var(--navy-950); }
.ch--light { background: var(--paper); }
.ch--light2 { background: var(--bone); }
.ch__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 6vw, 100px); align-items: center; }
.ch__num { font: italic 400 clamp(5rem, 11vw, 10rem)/.8 var(--f-display); color: transparent; -webkit-text-stroke: 1px var(--accent); margin-bottom: 18px; opacity: .8; }
.ch__name { font-size: clamp(2.6rem, 5vw, 4.8rem); line-height: .98; margin-bottom: 18px; max-width: 14ch; }
.ch__lead { font-size: clamp(1.1rem, 1.4vw, 1.25rem); max-width: 44ch; margin-bottom: 22px; color: var(--fg-2); }
.ch__tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 22px; padding: 0; }
.ch__tags li { padding: .55em 1em; border: 1px solid var(--rule); border-radius: 99px; font-size: .9rem; color: var(--fg); }
.ch__note { max-width: 48ch; margin-bottom: 26px; padding-left: 16px; border-left: 2px solid var(--signal); font-size: .96rem; color: var(--fg-3); }
.ch__vis { position: relative; padding-bottom: 8%; }
.ch__art { padding: clamp(18px, 3vw, 38px); border: 1px solid rgba(246, 243, 238, .1); border-radius: 32px; background: radial-gradient(circle at 25% 15%, #14305a, #06090f 70%); }
.ch__art svg { width: 100%; height: auto; }
.ch__wid { position: absolute; left: -5%; bottom: -2%; display: grid; gap: 12px; width: min(76%, 340px); padding: 18px; border-radius: 24px; background: #fff; color: var(--ink-2); box-shadow: 0 34px 60px -30px rgba(0, 0, 0, .65); }
.ch__wid .bento__ico { width: 40px; height: 40px; border-radius: 12px; }
.ch__wid .w-tasks, .ch__wid .w-chips, .ch__wid .w-link, .ch__wid .w-browser, .ch__wid .w-loop { margin-top: 0; }

/* Products landing: two doors */
.doors { display: grid; grid-template-columns: 1.1fr 1fr; min-height: 100svh; transition: grid-template-columns .7s var(--ease); }
.doors:has(.door--hms:hover) { grid-template-columns: .8fr 1.35fr; }
.doors:has(.door--barms:hover) { grid-template-columns: 1.35fr .8fr; }
.door { position: relative; display: grid; align-items: end; overflow: hidden; padding: calc(var(--header-h) + 24px) clamp(28px, 4vw, 64px) clamp(40px, 8vh, 90px); text-decoration: none; color: var(--fg-2); isolation: isolate; }
.door--barms { background: radial-gradient(800px 600px at 80% 25%, rgba(26, 50, 96, .75), transparent 70%), var(--navy-950); }
.door__phones { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.door__ph { position: absolute; height: auto; width: clamp(120px, 15vw, 230px); border: 6px solid #0b1020; border-radius: 28px; box-shadow: 0 40px 70px -26px rgba(0, 0, 0, .85); transition: transform .8s var(--ease); }
.door__ph--a { right: 6%; top: 16%; transform: rotate(7deg); }
.door__ph--b { right: 27%; top: 26%; transform: rotate(-6deg); }
.door__ph--c { right: 46%; top: 10%; transform: rotate(3deg); }
.door--barms:hover .door__ph--a { transform: rotate(9deg) translateY(-14px); }
.door--barms:hover .door__ph--b { transform: rotate(-8deg) translateY(-8px); }
.door--barms:hover .door__ph--c { transform: rotate(5deg) translateY(-18px); }
.door__bg { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--ease); }
.door--hms:hover .door__bg { transform: scale(1.06); }
.door__shade { position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(6, 9, 15, .35), rgba(6, 9, 15, .55) 40%, rgba(6, 9, 15, .92)); }
.door__copy { position: relative; z-index: 2; display: grid; gap: 14px; justify-items: start; }
.door__name { font-size: clamp(4rem, 9vw, 9rem); line-height: .88; letter-spacing: -.03em; color: var(--paper); }
.door__line { font: italic 400 clamp(1.4rem, 2.2vw, 2rem)/1.2 var(--f-display); color: var(--signal); }
.door .btn { margin-top: 10px; }

/* Company landing */
.co__in { min-height: calc(100svh - var(--header-h) - 80px); display: grid; align-content: center; }
.co__title { font-size: clamp(3.6rem, 10vw, 10.5rem); line-height: .88; letter-spacing: -.03em; font-weight: 500; margin: 6px 0 0; }
.co__ln { display: block; }
.co__title b { color: var(--signal); font-style: italic; font-weight: 400; }
.co__lead { max-width: 38ch; margin-top: clamp(24px, 4vh, 44px); font-size: clamp(1.15rem, 1.6vw, 1.4rem); color: var(--fg-2); }
.co .hero2__scroll { justify-self: start; margin-top: 36px; }
.pc { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; padding: 0; }
.pc__card { position: relative; display: flex; flex-direction: column; gap: 14px; min-height: 340px; padding: 36px 32px 40px; border-radius: 32px; background: linear-gradient(160deg, var(--navy-800), var(--navy-950)); color: rgba(246, 243, 238, .78); overflow: hidden; transition: transform .5s var(--ease), box-shadow .5s; }
.pc__card::before, .tr3__card::before { content: ''; position: absolute; inset: 0; background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 0%), rgba(201, 169, 107, .2), transparent 60%); opacity: 0; transition: opacity .4s; pointer-events: none; }
.pc__card:hover::before, .tr3__card:hover::before { opacity: 1; }
.pc__card:hover { transform: translateY(-5px); box-shadow: 0 40px 70px -40px rgba(11, 26, 51, .7); }
.pc__card > span { font: italic 400 4.2rem/1 var(--f-display); color: var(--signal); }
.pc__card h3 { color: var(--paper); margin-top: auto; }
.glance { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.glance__col { position: relative; padding: 34px; border: 1px solid var(--line); border-radius: 32px; background: #fff; overflow: hidden; }
.glance__col::before { content: ''; position: absolute; inset: 0; background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 0%), rgba(201, 169, 107, .16), transparent 60%); opacity: 0; transition: opacity .4s; pointer-events: none; }
.glance__col:hover::before { opacity: 1; }
.glance__col > p { color: var(--signal-ink); margin-bottom: 8px; position: relative; }
.glance__col ul { position: relative; }
.glance__col a { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 18px 0; border-top: 1px solid var(--line); color: var(--ink); text-decoration: none; font: 500 clamp(1.5rem, 2.3vw, 2.1rem)/1.1 var(--f-display); transition: padding .4s var(--ease), color .3s; }
.glance__col a:hover { padding-left: 10px; color: var(--signal-ink); }
.tr3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; padding: 0; }
.tr3__card { position: relative; display: grid; gap: 12px; align-content: start; padding: 30px; border: 1px solid rgba(246, 243, 238, .14); border-radius: 28px; background: rgba(255, 255, 255, .04); overflow: hidden; transition: transform .5s var(--ease), border-color .3s; }
.tr3__card:hover { transform: translateY(-4px); border-color: var(--signal); }
.tr3__card .mono { color: var(--signal); position: relative; }
.tr3__card h3 { font-size: 1.7rem; color: var(--paper); position: relative; }
.tr3__card p { color: rgba(246, 243, 238, .74); position: relative; font-size: .98rem; }
.tr3__fine { margin: 34px auto 0; text-align: center; color: var(--fg-3); font-size: .92rem; max-width: none; }
.tr3__fine a { color: var(--signal); }

/* Support landing */
.sp__in .pg__title { max-width: 12ch; }
.sp__tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: clamp(30px, 6vh, 64px); padding: 0; }
.sp__tile { position: relative; display: grid; gap: 14px; align-content: start; min-height: 280px; padding: 32px; border: 1px solid rgba(246, 243, 238, .14); border-radius: 30px; background: rgba(255, 255, 255, .04); overflow: hidden; transition: transform .5s var(--ease), border-color .3s; }
.sp__tile:hover { transform: translateY(-4px); border-color: var(--signal); }
.sp__tile::before { content: ''; position: absolute; inset: 0; background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 0%), rgba(201, 169, 107, .2), transparent 60%); opacity: 0; transition: opacity .4s; pointer-events: none; }
.sp__tile:hover::before { opacity: 1; }
.sp__tile > * { position: relative; }
.sp__tile .mono { color: var(--signal); }
.sp__tile h2 { font-size: 2.2rem; color: var(--paper); }
.sp__tile .btn { justify-self: start; margin-top: auto; }
.sp__direct { display: grid; gap: 4px; }
.sp__direct a { color: var(--paper); text-decoration: none; font: 500 1.6rem/1.3 var(--f-display); background: linear-gradient(var(--signal), var(--signal)) 0 100% / 0 1px no-repeat; transition: background-size .4s var(--ease); }
.sp__direct a:hover { background-size: 100% 1px; }

/* Legal documents: plain, readable, no banner */
.page-doc main { background: var(--paper); }
.doc__head { padding: calc(var(--header-h) + clamp(36px, 8vh, 90px)) 0 8px; background: var(--paper); }
.doc__title { font-size: clamp(3rem, 7vw, 6rem); color: var(--ink); }
.doc { padding: 36px 0 clamp(64px, 9vw, 140px); background: var(--paper); }

/* 404 */
.nf__in { display: grid; justify-items: start; gap: 8px; }
.nf__code { font: italic 400 clamp(8rem, 26vw, 24rem)/.8 var(--f-display); color: transparent; -webkit-text-stroke: 1px rgba(201, 169, 107, .55); }
.nf .actions { margin-top: 30px; }

/* BarMS Pro chapters with film stills */
.bch { padding-block: clamp(72px, 10vw, 150px); color: var(--fg-2); }
.bch--paper { background: var(--paper); }
.bch--bone { background: var(--bone); }
.bch--dark { background: var(--navy-900); }
.bch__grid { display: grid; grid-template-columns: minmax(240px, 340px) 1fr; gap: clamp(32px, 8vw, 130px); align-items: center; }
.bch--alt .bch__grid { grid-template-columns: 1fr minmax(240px, 340px); }
.bch--alt .bch__ph { order: 2; }
.bch__ph { margin: 0; justify-self: center; display: grid; gap: 16px; }
.bch__ph .phone { width: min(100%, 300px); }
.bch__ph figcaption { text-align: center; color: var(--fg-3); text-transform: none; letter-spacing: .02em; font-size: .78rem; }
.bch__tag { color: var(--accent); }
.bch__tag span { color: var(--fg-3); margin-right: 8px; }
.bch__title { font-size: clamp(2.6rem, 5vw, 4.8rem); margin: 14px 0 18px; }
.bch__lead { font-size: clamp(1.1rem, 1.4vw, 1.25rem); max-width: 46ch; margin-bottom: 22px; }
.bch__pts { border-top: 1px solid var(--rule); max-width: 52ch; }
.bch__pts li { padding: 13px 0; border-bottom: 1px solid var(--rule); color: var(--fg); }
.bch__extra { margin-top: 30px; max-width: 520px; }
.bch--dark .strip li { border-top-color: var(--signal); }
.onboard--4 { grid-template-columns: repeat(4, 1fr); }
.hms-end { display: grid; gap: 28px; justify-items: center; }

@media (max-width: 1080px) {
  .ch { position: relative; min-height: 0; padding: 72px 0; border-radius: 0; box-shadow: none; }
  .ch__grid, .bch__grid, .bch--alt .bch__grid { grid-template-columns: 1fr; }
  .bch--alt .bch__ph { order: 0; }
  .ch__vis { max-width: 560px; }
  .doors { grid-template-columns: 1fr; }
  .doors:has(.door--hms:hover), .doors:has(.door--barms:hover) { grid-template-columns: 1fr; }
  .door { min-height: 90svh; }
  .sl__peek { display: none; }
  .pc, .tr3, .sp__tiles, .glance { grid-template-columns: 1fr; }
  .onboard--4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 720px) {
  .door__ph--c { display: none; }
  .door__ph { width: clamp(100px, 30vw, 160px); }
  .door__ph--a { right: 6%; top: calc(var(--header-h) + 8px); }
  .door__ph--b { right: 38%; top: calc(var(--header-h) + 40px); }
  .sl__go { width: 38px; height: 38px; }
  .sl__n { width: 32px; }
  .onboard--4 { grid-template-columns: 1fr; }
}

.ch__wid { bottom: -9%; }
.ch__vis { padding-bottom: 10%; }

.co__orbit { position: absolute; right: -8vw; top: 50%; width: min(60vw, 820px); aspect-ratio: 1; transform: translateY(-50%); pointer-events: none; }
.co__orbit i { position: absolute; inset: 0; border: 1px solid rgba(201, 169, 107, .18); border-radius: 50%; }
.co__orbit i:nth-child(2) { inset: 14%; border-color: rgba(246, 243, 238, .12); }
.co__orbit i:nth-child(3) { inset: 30%; border-color: rgba(201, 169, 107, .26); }
.co__orbit i::after { content: ''; position: absolute; top: 50%; left: -4px; width: 8px; height: 8px; margin-top: -4px; border-radius: 50%; background: var(--signal); box-shadow: 0 0 0 6px rgba(201, 169, 107, .18); }
@media (prefers-reduced-motion: no-preference) {
  .co__orbit i { animation: orbit 26s linear infinite; }
  .co__orbit i:nth-child(2) { animation-duration: 38s; animation-direction: reverse; }
  .co__orbit i:nth-child(3) { animation-duration: 18s; }
  @keyframes orbit { to { transform: rotate(360deg); } }
}
@media (max-width: 720px) { .co__orbit { right: -40vw; top: 70%; width: 110vw; opacity: .7; } }

/* ── Mobile: full-screen menu, quick-contact dock, swipe cards ── */
.dock{display:none}
.mnav__quick{display:none}
@media (max-width:1080px){
  .mnav{inset:0;padding:calc(var(--header-h) + 28px) 0 40px;background:radial-gradient(700px 420px at 85% 0,rgba(26,50,96,.55),transparent 70%),linear-gradient(180deg,var(--navy-900),var(--navy-950));color:var(--paper)}
  .mnav__list>li{border-color:rgba(246,243,238,.12)}
  .mnav__list a,.mnav__acc{color:var(--paper);font-size:2.1rem;padding:16px 0;min-height:56px}
  .mnav__sub a{font-size:1rem;color:rgba(246,243,238,.8);min-height:48px}
  .mnav__sub .mono{color:var(--signal)}
  .mnav:not([hidden]) .mnav__list>li,.mnav:not([hidden]) .btn,.mnav:not([hidden]) .mnav__quick{animation:mnavIn .6s cubic-bezier(.2,.7,.2,1) both}
  .mnav:not([hidden]) .mnav__list>li:nth-child(2){animation-delay:.05s}
  .mnav:not([hidden]) .mnav__list>li:nth-child(3){animation-delay:.1s}
  .mnav:not([hidden]) .mnav__list>li:nth-child(4){animation-delay:.15s}
  .mnav:not([hidden]) .mnav__list>li:nth-child(5){animation-delay:.2s}
  .mnav:not([hidden]) .btn{animation-delay:.28s}
  .mnav:not([hidden]) .mnav__quick{animation-delay:.34s}
  .mnav__quick{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}
  .mnav__quick a{display:grid;place-items:center;min-height:52px;border:1px solid rgba(246,243,238,.22);border-radius:99px;color:var(--paper);text-decoration:none;font:500 .78rem/1 var(--f-body);letter-spacing:.12em;text-transform:uppercase}
}
@keyframes mnavIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@media (max-width:720px){
  .fab--talk,.fab--call{display:none!important}
  .dock{display:flex;position:fixed;z-index:95;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));gap:6px;padding:6px;border-radius:99px;background:rgba(11,26,51,.88);-webkit-backdrop-filter:blur(16px) saturate(1.3);backdrop-filter:blur(16px) saturate(1.3);border:1px solid rgba(246,243,238,.14);box-shadow:0 18px 40px -14px rgba(6,9,15,.7)}
  .dock a{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;border-radius:99px;color:var(--paper);text-decoration:none;font:500 .72rem/1 var(--f-body);letter-spacing:.1em;text-transform:uppercase;-webkit-tap-highlight-color:transparent;transition:background .2s,transform .2s}
  .dock a:active{transform:scale(.96);background:rgba(246,243,238,.12)}
  .dock .dock__main{background:var(--signal);color:var(--navy-950);flex:1.15}
  .menu-open .dock{display:none}
  body{padding-bottom:calc(76px + env(safe-area-inset-bottom))}
  .ft__base{padding-right:0}
  /* services as a swipe rail */
  .bento{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:-20px;padding:6px 20px 22px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .bento::-webkit-scrollbar{display:none}
  .bento__card,.bento__card--ai,.bento__card--software{flex:0 0 84%;grid-column:auto;scroll-snap-align:center;min-height:100%}
  #services .sec-head__lead::after{content:'  Swipe →';color:var(--signal-ink);letter-spacing:.08em}
  /* comfortable tap targets and type */
  .btn{min-height:52px}
  .btn--lg{width:100%;justify-content:center}
  .actions{gap:10px}
  .sec{padding-block:clamp(56px,14vw,84px)}
}
@media (max-width:1080px){.site-header__bar{position:relative;z-index:100}.mnav{z-index:99}}
@media (max-width:720px){.hv__scene:nth-child(3) .hv__img{object-position:62% 100%}.hv__scene:nth-child(2) .hv__img{object-position:46% 30%}}
