:root {
  --bg: #080b14;
  --surface: #10182a;
  --surface-2: #172238;
  --ink: #f5f7fc;
  --muted: #b6c0d0;
  --blue: #315fd4;
  --blue-bright: #8eb0ff;
  --line: rgba(190, 207, 238, .17);
}

body { background: #080b14; }
body::before { content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none; opacity: .25; background-image: linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px); background-size: 48px 48px; }
.site-header { background: rgba(8,11,20,.9); border-color: rgba(190,207,238,.12); }
.brand { letter-spacing: -.035em; }
.brand-mark { background: #315fd4; box-shadow: none; }
.site-header nav a { position: relative; }
.site-header nav a::after { content: ""; position: absolute; left: 0; bottom: -8px; width: 0; height: 2px; background: #8eb0ff; transition: width .2s ease; }
.site-header nav a:hover::after { width: 100%; }
.nav-cta { background: #eff4ff; color: #14203a; border: 0; font-weight: 800; }
.hero { min-height: 720px; isolation: isolate; background: radial-gradient(ellipse 46% 54% at 85% 19%,rgba(35,80,184,.3),transparent 68%), radial-gradient(ellipse 35% 42% at 17% 44%,rgba(76,51,154,.19),transparent 70%), #080b14; }
.hero::before { content: ""; position: absolute; inset: 0; z-index: -1; opacity: .55; background: linear-gradient(110deg, transparent 0 47%, rgba(125,163,255,.07) 47.2%, transparent 47.5%), linear-gradient(70deg, transparent 0 67%, rgba(125,163,255,.06) 67.2%, transparent 67.5%); }
.eyebrow,.section-kicker { font-size: 13px; letter-spacing: .03em; }
.hero h1 { letter-spacing: -.045em; line-height: 1.04; }
.hero h1 em { color: #a6c0ff; }
.hero-intro { max-width: 620px; color: #c7cfdb; }
.button { border-radius: 8px; transition: transform .2s ease, background .2s ease; }
.button-primary { background: #315fd4; box-shadow: none; }
.button-primary:hover { background: #4576ee; box-shadow: none; }
.hero-system { border-radius: 10px; background: rgba(14,22,39,.9); box-shadow: 0 22px 44px rgba(0,0,0,.22); }
.hero-system { --hero-depth: 0px; transform: translate3d(0,var(--hero-depth),0); }
.hero-system::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(105deg,transparent 35%,rgba(149,183,255,.08) 50%,transparent 65%); }
.hero-system .node { border-radius: 8px; background: #152039; box-shadow: none; }
.hero-system .node:nth-child(2) { background: #1b2c50; }
.proof-strip { background: #0d1321; }
.proof-strip i { background: #8eb0ff; }
.section { position: relative; }
.service-list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.service-card { min-height: 360px; border-radius: 10px; background: #10182a; padding: 29px 26px; border: 1px solid rgba(190,207,238,.14); box-shadow: none; }
.service-card::before { content: ""; display: block; width: 34px; height: 3px; background: #6f97fa; margin-bottom: 25px; transition: width .2s ease; }
.service-card:hover { transform: translateY(-5px); border-color: rgba(142,176,255,.72); box-shadow: 0 16px 30px rgba(0,0,0,.16); }
.service-card:hover::before { width: 76px; }
.service-card h3 { margin: 0 0 15px; font-size: 28px; letter-spacing: -.03em; line-height: 1.2; }
.service-card p { line-height: 1.65; }
.service-card li { padding: 10px 0; }
.service-featured { background: linear-gradient(150deg, #1d3465, #10182a 68%); }
.service-personal { background: linear-gradient(150deg, #1c294a, #10182a 68%); }
.reality { background: #0b101c; }
.metric-card { background: #315fd4; box-shadow: none; border-radius: 10px; }
.method { background: #0b101c; }
.method-steps li { transition: padding .18s ease, background .18s ease; }
.method-steps li:hover { padding-right: 16px; background: rgba(142,176,255,.06); }
.method-steps li.is-current { padding-right: 16px; background: linear-gradient(90deg,rgba(142,176,255,.09),transparent 72%); }
.method-steps li.is-current span { color: #c4d7ff; }
.faq { background: #080b14; }
.contact { background: linear-gradient(115deg,#12264d,#0d1931); }
.contact form { background: rgba(8,12,23,.58); border-radius: 10px; }
.button-dark { background: #edf3ff; color: #14203a; }
.site-footer { display: grid; grid-template-columns: 1fr auto; gap: 28px; align-items: start; }
.footer-main p { margin: 12px 0 0; color: #aebbd2; }
.footer-links { display: flex; flex-wrap: wrap; gap: 18px; color: #c7d5ee; font-size: 15px; }
.footer-links a:hover,.footer-link:hover { color: #a6c0ff; }
.footer-link { appearance: none; border: 0; color: inherit; background: transparent; padding: 0; font: inherit; cursor: pointer; }
.site-footer small { grid-column: 1 / -1; }
.privacy-notice { grid-column: 1 / -1; margin: 0; padding-top: 14px; border-top: 1px solid var(--line); color: #aebbd2; font-size: 14px; }
.privacy-notice .footer-link { color: #b8ccff; text-decoration: underline; text-underline-offset: 3px; }
.accessibility-trigger { position: fixed; z-index: 20; left: 22px; bottom: 22px; min-height: 48px; border: 1px solid rgba(204,218,247,.4); border-radius: 24px; padding: 0 16px; background: #17233a; color: #fff; display: inline-flex; align-items: center; gap: 8px; font: 700 15px Assistant,Arial,sans-serif; cursor: pointer; box-shadow: 0 8px 20px rgba(0,0,0,.22); }
.accessibility-trigger:hover { background: #25385d; }
.accessibility-trigger span:first-child { font-size: 22px; line-height: 1; }
.accessibility-panel { position: fixed; z-index: 30; left: 22px; bottom: 82px; width: min(360px, calc(100vw - 32px)); padding: 20px; color: #f5f7fc; background: #111b2d; border: 1px solid rgba(204,218,247,.35); border-radius: 12px; box-shadow: 0 18px 40px rgba(0,0,0,.28); opacity: 0; visibility: hidden; transform: translateY(12px); transition: opacity .18s ease, transform .18s ease, visibility .18s; }
.accessibility-panel.is-open { opacity: 1; visibility: visible; transform: translateY(0); }
.accessibility-panel-head { display: flex; justify-content: space-between; gap: 15px; align-items: start; }
.accessibility-panel h2 { margin: 0; font-size: 24px; }
.accessibility-panel p { color: #c6d0e0; font-size: 15px; }
.panel-close { border: 0; background: #243858; color: #fff; width: 32px; height: 32px; border-radius: 7px; font-size: 24px; cursor: pointer; line-height: 1; }
.accessibility-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.accessibility-actions button,.accessibility-statement { min-height: 42px; padding: 8px 10px; border-radius: 7px; border: 1px solid rgba(204,218,247,.28); background: #192842; color: #fff; font: 700 14px Assistant,Arial,sans-serif; cursor: pointer; }
.accessibility-actions button:hover,.accessibility-statement:hover { background: #28466f; }
.accessibility-statement { width: 100%; margin-top: 10px; background: transparent; }
.accessibility-statement-dialog { position: fixed; z-index: 40; inset: 0; display: grid; place-items: center; padding: 20px; opacity: 0; visibility: hidden; background: rgba(4,7,13,.72); transition: opacity .18s ease, visibility .18s; }
.accessibility-statement-dialog.is-open { opacity: 1; visibility: visible; }
.privacy-dialog { position: fixed; z-index: 40; inset: 0; display: grid; place-items: center; padding: 20px; opacity: 0; visibility: hidden; background: rgba(4,7,13,.72); transition: opacity .18s ease, visibility .18s; }
.privacy-dialog.is-open { opacity: 1; visibility: visible; }
.statement-card { width: min(580px,100%); position: relative; padding: 32px; background: #111b2d; color: #f5f7fc; border-radius: 12px; border: 1px solid rgba(204,218,247,.3); }
.statement-card .panel-close { position: absolute; left: 18px; top: 18px; }
.statement-card h2 { margin-top: 0; font-size: 34px; }
.statement-card p { color: #c7d1e0; }
.cookie-banner { position: fixed; z-index: 19; bottom: 18px; right: 18px; display: flex; align-items: center; gap: 18px; width: min(570px, calc(100vw - 36px)); padding: 14px 16px; border: 1px solid rgba(202,216,244,.25); border-radius: 10px; background: #111b2d; color: #e8efff; box-shadow: 0 14px 32px rgba(0,0,0,.25); font-size: 14px; }
.cookie-banner[hidden] { display: none; }
html.motion-ready .motion-reveal { opacity: 0; transform: translateY(30px); transition: opacity .64s ease, transform .64s cubic-bezier(.2,.75,.2,1); transition-delay: var(--reveal-delay,0ms); }
html.motion-ready .motion-reveal.is-revealed { opacity: 1; transform: translateY(0); }
html.motion-ready .hero-system.motion-reveal { transform: translate3d(0,calc(var(--hero-depth) + 30px),0); }
html.motion-ready .hero-system.motion-reveal.is-revealed { transform: translate3d(0,var(--hero-depth),0); }
html.motion-ready .service-card.motion-reveal.is-revealed:hover { transform: translateY(-5px); }
@keyframes system-scan { 0%,16% { transform: translateX(130%); opacity: 0; } 27%,68% { opacity: .6; } 84%,100% { transform: translateX(-130%); opacity: 0; } }
@keyframes node-signal { 0%,100% { border-color: rgba(190,207,238,.24); box-shadow: 0 0 0 0 rgba(84,125,232,0); } 50% { border-color: rgba(142,176,255,.52); box-shadow: 0 0 0 2px rgba(84,125,232,.05); } }
.cookie-banner p { margin: 0; line-height: 1.45; }
.cookie-banner a { color: #b8ccff; text-decoration: underline; }
.cookie-accept { flex: none; padding: 8px 13px; border: 0; border-radius: 6px; background: #edf3ff; color: #14203a; font: 800 14px Assistant,Arial,sans-serif; cursor: pointer; }
body.text-size-large { font-size: 20px; }
body.text-size-large .service-card p,body.text-size-large .accessibility-panel p { font-size: 18px; }
body.high-contrast { --bg: #000; --surface: #000; --surface-2: #000; --ink: #fff; --muted: #fff; --line: rgba(255,255,255,.75); }
body.high-contrast .hero,body.high-contrast .method,body.high-contrast .reality,body.high-contrast .faq,body.high-contrast .contact,body.high-contrast .service-card,body.high-contrast .hero-system,body.high-contrast .hero-system .node { background: #000; }
body.high-contrast a { text-decoration: underline; text-underline-offset: 3px; }
body.reduce-motion *,body.reduce-motion *::before,body.reduce-motion *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
@media (max-width: 900px) { .service-list { grid-template-columns: repeat(2,minmax(0,1fr)); } .site-footer { grid-template-columns: 1fr; } .footer-links { grid-row: 2; } }
@media (max-width: 560px) { .hero { min-height: auto; } .hero h1 { letter-spacing: -.035em; } .service-list { grid-template-columns: 1fr; } .site-footer { padding-bottom: 145px; } .accessibility-trigger { left: 14px; bottom: 14px; } .accessibility-panel { left: 14px; bottom: 72px; } .cookie-banner { bottom: 76px; right: 14px; width: calc(100vw - 28px); align-items: flex-start; } .cookie-banner p { font-size: 13px; } .accessibility-trigger-label { display: none; } }
