/* Dark public website theme. Authentication and application styles stay separate. */
.public-site.public-dark {
 --neo-bg:#090d17; --neo-surface:#111724; --neo-raised:#171d2a; --neo-line:#2b3447;
 --neo-ink:#f0f3fa; --neo-muted:#a2adc2; --neo-violet:#b5a8ff; --neo-mint:#98e8d0;
 --site-ink:var(--neo-ink); --site-text:var(--neo-muted); --site-muted:var(--neo-muted);
 --site-brand:var(--neo-violet); --site-line:var(--neo-line); --site-wash:#202d40;
 background:var(--neo-bg); color:var(--neo-ink);
}
.public-dark .site-header { background:#111724; border:1px solid #2b3447; margin:18px 3vw 0; top:14px; border-radius:16px; box-shadow:0 12px 32px -18px #00000055; }
.public-dark .site-header-inner { min-height:72px; }
.public-dark .site-brand b { color:#f0f3fa; }
.public-dark .site-brand small { color:#a2adc2; }
.public-dark .site-mark { background:#b5a8ff; color:#171329; border-radius:10px; }
.public-dark .site-nav { color:#a2adc2; }
.public-dark .site-nav a:hover { color:#fff; }
.public-dark .site-header .site-primary { color:#e3defe; background:#25223c; border:1px solid #4a426d; box-shadow:none; }
.public-dark .site-header .site-primary:hover { background:#332e50; }
.public-dark .site-footer { background:#111724; border-color:#2b3447; }
.public-dark .site-footer-bottom { border-color:#2b3447; color:#a2adc2; }
.public-dark .site-footer p,.public-dark .site-footer a,.public-dark .site-footer-contact span { color:#a2adc2; }
.public-dark .site-footer a:hover { color:#b5a8ff; }
.public-dark .site-skip { background:#192131; color:#fff; }
.neo { overflow:hidden; }
.neo h1,.neo h2,.neo h3 { color:#f0f3fa; font-weight:550; letter-spacing:-.045em; }
.neo h2 { font-size:clamp(30px,3.7vw,60px); line-height:1.13; }
.neo h2 em { color:#a2adc2; font-style:normal; }
.neo p { line-height:1.8; }
.neo-eyebrow { display:block; color:#b5a8ff; font-size:10px; font-weight:600; letter-spacing:.14em; margin-bottom:22px; }
.neo-hero { position:relative; padding:80px 5vw 0; isolation:isolate; }
.neo-hero-glow { position:absolute; inset:-180px -15% 0; background:radial-gradient(ellipse at 50% 30%,#55429b30,transparent 56%),radial-gradient(ellipse at 80% 65%,#1c79741a,transparent 40%); z-index:-1; pointer-events:none; }
.neo-hero-copy { text-align:center; }
.neo-pill { display:inline-flex; align-items:center; gap:8px; font-size:11px; color:#b5a8ff; padding:7px 13px; border:1px solid #494160; background:#27253f; border-radius:50px; margin-bottom:26px; }
.neo-hero h1 { font-size:clamp(46px,6vw,98px); line-height:1.04; letter-spacing:-.06em; }
.neo-hero h1 > span { color:#b5a8ff; background:linear-gradient(100deg,#e3ddff 10%,#b5a8ff 60%,#9ad9d8); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.neo-hero-copy > p { color:#a2adc2; font-size:clamp(15px,1.2vw,19px); margin:26px auto 0; max-width:720px; }
.neo-actions { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:12px; margin-top:30px; }
.neo .neo-button { display:inline-flex; align-items:center; justify-content:center; gap:12px; padding:13px 19px; background:#c2b5ff; color:#1c1634; border:1px solid #c2b5ff; border-radius:9px; font-size:13px; font-weight:600; transition:background .2s,border-color .2s,box-shadow .2s; }
.neo .neo-button:hover { background:#d4caff; box-shadow:0 0 22px #a18aff22; }
.neo .neo-button-quiet { background:#202d40; color:#a2adc2; border-color:#2b3447; }
.neo .neo-button-quiet:hover { background:#202d40; border-color:#8072b3; box-shadow:none; }
.neo-button svg,.neo-text-link svg { transition:transform .2s; }
.neo-button:hover svg,.neo-text-link:hover svg { transform:translateX(3px); }
.neo-promises { display:flex; flex-wrap:wrap; justify-content:center; gap:20px; margin-top:24px; color:#a2adc2; font-size:10px; }
.neo-promises span { display:flex; align-items:center; gap:6px; }
.neo-promises svg { color:#98e8d0; }
.neo-console { margin:58px auto 0; border:1px solid #2b3447; border-radius:16px 16px 0 0; background:#111724; box-shadow:0 -8px 65px -25px #9d81ff44; max-width:1540px; overflow:hidden; }
.neo-console-top { display:flex; align-items:center; justify-content:space-between; gap:16px; background:#171d2a; padding:15px 22px; font-size:9px; letter-spacing:.1em; border-bottom:1px solid #2b3447; color:#a2adc2; }
.neo-console-top > span { display:flex; gap:5px; }
.neo-console-top i { width:6px; height:6px; border-radius:50%; background:#566079; }
.neo-console-top small { font-size:10px; letter-spacing:0; color:#a2adc2; }
.neo-console-body { display:grid; grid-template-columns:180px minmax(0,1fr) 245px; }
.neo-console-sidebar { padding:24px 16px; border-right:1px solid #2b3447; display:flex; flex-direction:column; gap:20px; font-size:10px; color:#a2adc2; }
.neo-console-sidebar > span { display:flex; gap:10px; align-items:center; }
.neo-console-sidebar > .neo-wordmark { font-size:22px; color:#b5a8ff; padding-bottom:12px; }
.neo-wordmark b { font-size:15px; color:#f0f3fa; }
.neo-console-sidebar > small { font-size:8px; letter-spacing:.1em; color:#a2adc2; }
.neo-console-sidebar > div { display:flex; align-items:center; gap:7px; margin-top:auto; padding-top:24px; color:#98e8d0; font-size:9px; }
.neo-console-main { padding:20px; min-width:0; }
.neo-assistant { margin:20px 20px 20px 0; padding:22px 18px; background:linear-gradient(155deg,#27253f,#202d40); border:1px solid #2b3447; border-radius:10px; display:flex; flex-direction:column; }
.neo-assistant > span { display:flex; align-items:center; gap:8px; font-size:8px; color:#b5a8ff; letter-spacing:.06em; }
.neo-assistant h3 { font-size:25px; margin:24px 0 16px; }
.neo-assistant > p { font-size:11px; color:#a2adc2; }
.neo-assistant-flow { display:flex; align-items:center; justify-content:space-between; gap:4px; padding:14px 0; margin-top:14px; font-size:10px; color:#b5a8ff; border-block:1px solid #2b3447; }
.neo-assistant > a { display:flex; align-items:center; gap:8px; color:#98e8d0; font-size:10px; margin-top:auto; padding-top:24px; }
.neo-assistant > small { font-size:9px; color:#a2adc2; margin-top:12px; }
.public-dark .neo .hp-demo { background:#111724; border:1px solid #2b3447; box-shadow:none; border-radius:10px; animation:none; color:#a2adc2; }
.neo .hp-window { background:#171d2a; border-color:#2b3447; color:#a2adc2; }
.neo .hp-window i { background:#62708b; }
.neo .hp-window small,.neo .hp-client small,.neo .hp-task small,.neo .hp-demo-note,.neo .hp-bubble small,.neo .hp-chat-date { color:#a2adc2; }
.neo .hp-client { padding-block:18px; }
.neo .hp-avatar,.neo .hp-tag,.neo .hp-step { background:#27253f; color:#b5a8ff; }
.neo .hp-demo-tabs > label { border-color:#2b3447; color:#a2adc2; }
.neo .hp-demo-tabs > input:checked + label { background:#27253f; color:#b5a8ff; box-shadow:inset 0 -2px #b5a8ff; }
.neo .hp-demo-panel { min-height:310px; }
.neo .hp-task { border-color:#2b3447; }
.neo .hp-demo-title > span { color:#e4c482; }
.neo .hp-check { background:#19372f; color:#98e8d0; }
.neo .hp-bubble { background:#202d40; border-color:#2b3447; color:#f0f3fa; }
.neo .hp-bubble.hp-out { background:#332e50; border-color:#494160; }
.neo .hp-file,.neo .hp-ai-answer > svg,.neo .hp-ai-answer summary { color:#b5a8ff; }
.neo .hp-ai-answer p { color:#a2adc2; }
.neo .hp-ai-answer summary { display:flex; align-items:center; gap:8px; cursor:pointer; }
.neo .hp-demo-tabs .hp-demo-panel { animation:neo-rise .35s ease-out; }
.neo-cap-nav { display:flex; justify-content:center; flex-wrap:wrap; gap:24px 48px; padding:28px 5vw; border-block:1px solid #2b3447; background:#171d2a; }
.neo-cap-nav a { display:flex; align-items:center; gap:9px; color:#a2adc2; font-size:12px; }
.neo-cap-nav a:hover { color:#b5a8ff; }
.neo-cap-nav svg { color:#b5a8ff; }
.neo-section { padding:90px 6vw; }
.neo-section-heading { margin-bottom:42px; }
.neo-section-heading > p { color:#a2adc2; font-size:15px; margin-top:22px; max-width:580px; }
.neo-feature-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:20px; }
.neo-feature { grid-column:span 2; background:#111724; border:1px solid #2b3447; border-radius:16px; overflow:hidden; min-width:0; display:flex; flex-direction:column; transition:border-color .2s,box-shadow .2s; }
.neo-feature:hover { border-color:#8072b3; box-shadow:0 12px 32px -22px #00000055; }
.neo-feature-0,.neo-feature-1 { grid-column:span 3; }
.neo-feature-1 { background:linear-gradient(145deg,#27253f,#111724 75%); }
.neo-feature-copy { padding:28px 28px 0; }
.neo-feature-label { display:flex; gap:9px; align-items:center; color:#b5a8ff; font-size:11px; margin-bottom:22px; }
.neo-feature-2 .neo-feature-label { color:#98e8d0; }
.neo-feature h3 { font-size:clamp(23px,2vw,32px); line-height:1.2; max-width:450px; margin-bottom:16px; }
.neo-feature-copy > p { color:#a2adc2; font-size:13px; line-height:1.8; }
.neo-feature-visual { padding:24px 20px; flex:1; display:flex; align-items:center; min-width:0; }
.neo-feature-visual > * { width:100%; }
.neo-feature-details { margin:0 28px; padding:18px 0; border-top:1px solid #2b3447; }
.neo summary { list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:10px; }
.neo summary::-webkit-details-marker { display:none; }
.neo-feature-details summary { font-size:11px; color:#a2adc2; }
.neo summary svg { flex-shrink:0; transition:transform .2s; }
.neo details[open] > summary svg { transform:rotate(180deg); }
.neo-feature-details ol { padding-left:18px; margin-block:16px; font-size:12px; color:#a2adc2; }
.neo-feature-details p { color:#a2adc2; font-size:11px; }
.neo .cs-client-map { padding:0; }
.neo .cs-client-core { background:#202d40; color:#f0f3fa; padding:20px; border:1px solid #2b3447; }
.neo .cs-client-core > span { color:#a2adc2; }
.neo .cs-client-records { gap:8px; margin-top:10px; }
.neo .cs-client-records > span { background:#171d2a; border-color:#2b3447; color:#a2adc2; font-size:11px; padding:13px; }
.neo .cs-ai,.neo .cs-chat { padding:0; }
.neo .cs-question { background:#27253f; border:1px solid #494160; color:#b5a8ff; font-size:13px; }
.neo .cs-response { margin-top:22px; gap:10px; }
.neo .cs-response > svg,.neo .cs-response summary { color:#b5a8ff; }
.neo .cs-response p { color:#a2adc2; }
.neo .cs-response b { font-size:12px; color:#b5a8ff; }
.neo .cs-response summary { font-size:11px; }
.neo .cs-message { background:#202d40; color:#f0f3fa; padding:14px; font-size:11px; }
.neo .cs-message small { color:#a2adc2; font-size:9px; }
.neo .cs-incoming { background:#19372f; border:1px solid #2a5847; }
.neo .cs-incoming > span { color:#98e8d0; font-size:10px; }
.neo .cs-chat > p { color:#98e8d0; font-size:10px; }
.neo .cs-work { padding:0; }
.neo .cs-work li { border-color:#2b3447; padding-block:14px; gap:9px; }
.neo .cs-work li > span { background:#27253f; color:#b5a8ff; width:23px; height:23px; }
.neo .cs-work b { font-size:11px; color:#f0f3fa; }
.neo .cs-work small,.neo .cs-work em { color:#a2adc2; font-size:9px; }
.neo .cs-cloud { padding:10px 0; gap:16px; }
.neo .cs-cloud > div:not(.cs-sync) { color:#a2adc2; gap:10px; }
.neo .cs-cloud b { color:#f0f3fa; font-size:11px; }
.neo .cs-cloud span,.neo .cs-sync small { color:#a2adc2; font-size:9px; }
.neo .cs-cloud > p { color:#a2adc2; font-size:10px; }
.neo .cs-sync { color:#98e8d0; }
.neo-journey { padding-top:20px; }
.neo-timeline { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px; margin-top:48px; }
.neo-timeline article { position:relative; border-top:1px solid #2b3447; padding-top:24px; }
.neo-timeline article::before { content:""; position:absolute; width:7px; height:7px; border-radius:50%; background:#b5a8ff; box-shadow:0 0 14px #b5a8ff55; top:-4px; left:0; }
.neo-timeline article > span { font-size:10px; color:#b5a8ff; }
.neo-timeline h3 { font-size:22px; margin:18px 0 12px; }
.neo-timeline p { color:#a2adc2; font-size:13px; }
.neo-people { display:grid; grid-template-columns:1fr 1fr; margin:0 6vw; border:1px solid #2b3447; border-radius:18px; overflow:hidden; background:#171d2a; }
.neo-people-image { position:relative; min-height:400px; }
.neo-people-image img { display:block; width:100%; height:100%; object-fit:cover; object-position:65% center; }
.neo-people-copy { padding:clamp(28px,4vw,64px); align-self:center; }
.neo-people h2 { font-size:clamp(26px,2.7vw,44px); }
.neo-people p { color:#a2adc2; font-size:14px; margin-top:22px; }
.neo-text-link { display:inline-flex; align-items:center; gap:10px; color:#b5a8ff !important; font-size:12px; margin-top:28px; }
.neo-modules > div:last-child { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.neo-modules article { padding:24px 0; border-top:1px solid #2b3447; }
.neo-modules article > svg { color:#b5a8ff; margin-bottom:18px; }
.neo-modules h3 { font-size:20px; margin-bottom:12px; }
.neo-modules article p { color:#a2adc2; font-size:13px; max-width:360px; }
.neo-plans { background:#171d2a; border-block:1px solid #2b3447; }
.neo-plan-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.public-dark .neo .neo-plan { display:flex; flex-direction:column; padding:30px; border:1px solid #2b3447; background:#111724; border-radius:14px; box-shadow:none; }
.public-dark .neo .neo-plan-highlight { background:linear-gradient(160deg,#27253f,#202d40 80%); border-color:#8072b3; }
.neo-plan-label { color:#a2adc2; font-size:9px; letter-spacing:.12em; margin-bottom:22px; }
.neo .neo-plan h3 { font-size:25px; }
.neo .neo-plan > p { color:#a2adc2; font-size:13px; margin-top:14px; }
.neo .neo-plan ul { padding-block:28px; list-style:none; flex:1; }
.neo .neo-plan li { color:#a2adc2; font-size:12px; }
.neo .neo-plan li svg { color:#98e8d0; }
.neo-plan-note { color:#a2adc2; font-size:11px; line-height:1.8; margin-top:24px !important; max-width:800px; }
.neo-faq { display:grid; grid-template-columns:.85fr 1.15fr; gap:9vw; }
.neo-faq details { border-bottom:1px solid #2b3447; padding:20px 0; }
.neo-faq summary { color:#f0f3fa; font-size:14px; }
.neo-faq details p { color:#a2adc2; font-size:13px; padding-top:16px; }
.neo-close { text-align:center; padding:80px 24px 96px; background:radial-gradient(ellipse at 50% 100%,#4c3c852e,transparent 65%); border-top:1px solid #2b3447; }
.neo-close > svg { color:#b5a8ff; margin-bottom:24px; }
.neo-close h2 { font-size:clamp(38px,4.7vw,74px); }
.neo-close h2 em { color:#b5a8ff; }
.neo-close .neo-button { margin-top:30px; }
.neo-close > p { color:#a2adc2; font-size:12px; margin-top:24px; }
.neo a:focus-visible,.neo summary:focus-visible { outline:2px solid #98e8d0; outline-offset:5px; border-radius:4px; }
.neo .hp-demo-tabs > input:focus-visible + label { outline-color:#98e8d0; }
.neo-hero-copy { animation:neo-rise .6s ease-out both; }
.neo-console { animation:neo-rise .75s .1s ease-out both; }
.neo-feature:hover .cs-incoming { animation:neo-rise .4s ease-out; }
.neo details[open] > p { animation:neo-rise .25s ease-out; }
.neo-timeline:hover article::before { animation:neo-glow 1.2s ease-out; }
.neo-timeline:hover article:nth-child(2)::before { animation-delay:.2s; }
.neo-timeline:hover article:nth-child(3)::before { animation-delay:.4s; }
.neo-timeline:hover article:nth-child(4)::before { animation-delay:.6s; }
@keyframes neo-rise { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }
@keyframes neo-glow { 50% { box-shadow:0 0 0 6px #b5a8ff16,0 0 22px #b5a8ff88; } }
@media(min-width:1800px) { .neo-feature-visual { padding:32px; }.neo-hero { padding-top:100px; } }
@media(max-width:1150px) {
 .neo-console-body { grid-template-columns:145px minmax(0,1fr); }
 .neo-assistant { display:none; }
 .neo-console-sidebar { font-size:9px; padding-inline:12px; }
 .neo-feature { grid-column:span 3; }
 .neo-feature-4 { grid-column:span 6; display:grid; grid-template-columns:1fr 1fr; }
 .neo-feature-4 .neo-feature-details { grid-column:1/-1; }
 .neo-feature-4 .neo-feature-copy { padding-bottom:24px; }
 .neo-feature-copy { padding:24px 24px 0; }
 .neo .neo-plan { padding:24px; }
}
@media(max-width:800px) {
 .public-dark .site-header { margin:10px 12px 0; top:10px; border-radius:12px; }
 .public-dark .site-header-inner { min-height:120px; }
 .neo-hero { padding:48px 4vw 0; }
 .neo-hero h1 { font-size:clamp(42px,7.5vw,64px); }
 .neo-console { margin-top:40px; }
 .neo-console-body { grid-template-columns:1fr; }
 .neo-console-sidebar { display:none; }
 .neo-console-main { padding:16px; }
 .neo-section { padding:60px 5vw; }
 .neo-cap-nav { gap:16px 26px; padding-block:24px; }
 .neo-cap-nav a { font-size:11px; }
 .neo-feature-grid { grid-template-columns:1fr; gap:16px; }
 .neo-feature,.neo-feature-4 { grid-column:auto; display:flex; }
 .neo-feature-visual { padding:24px; }
 .neo-feature-4 .neo-feature-copy { padding-bottom:0; }
 .neo-timeline { grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:36px; }
 .neo-people { grid-template-columns:1fr; margin-inline:5vw; }
 .neo-people-image { min-height:0; aspect-ratio:16/10; }
 .neo-people-image img { height:100%; }
 .neo-modules > div:last-child { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .neo-plan-grid { grid-template-columns:1fr; }
 .neo-faq { grid-template-columns:1fr; gap:32px; }
 .neo-close { padding-block:60px; }
}
@media(max-width:480px) {
 .neo-break { display:none; }
 .neo-pill { font-size:10px; }
 .neo-hero h1 { font-size:44px; }
 .neo-hero-copy > p { padding-inline:10px; font-size:14px; }
 .neo-promises { gap:10px 16px; }
 .neo-console-top { padding:12px; font-size:8px; gap:8px; }
 .neo-console-top > span { display:none; }
 .neo-console-top small { font-size:9px; }
 .neo-console-main { padding:10px; }
 .neo .hp-client { padding:16px 12px; }
 .neo .hp-demo-panel { padding-inline:12px; }
 .neo .hp-task { gap:7px; font-size:10px; }
 .neo .hp-task small { font-size:8px; }
 .neo .hp-window { padding-inline:12px; }
 .neo-modules > div:last-child { grid-template-columns:1fr; gap:0; }
 .neo-timeline { gap:32px 20px; }
 .neo-timeline p { font-size:12px; }
 .neo-feature-copy { padding:22px 20px 0; }
 .neo-feature-visual { padding:22px 16px; }
 .neo-feature-details { margin-inline:20px; }
 .neo .cs-client-records > span { padding:10px; }
 .neo-feature h3 { font-size:26px; }
 .neo-cap-nav { justify-content:flex-start; }
}
@media(prefers-reduced-motion:reduce) { .public-dark .neo *, .public-dark .neo *::before,.public-dark .neo *::after { animation:none !important; transition:none !important; } }

/* Shared homepage alignment; backgrounds retain the full viewport width. */
.public-site.public-dark { --home-gutter:max(7.5vw, calc((100% - 1440px) / 2)); }
.public-dark .site-header { width:min(85%,1440px); margin-inline:auto; }
.public-dark .site-footer > .site-container { width:min(85%,1440px); padding-inline:0; }
.public-dark .neo-hero,.public-dark .neo-cap-nav,.public-dark .neo-section,.public-dark .neo-close { padding-inline:var(--home-gutter); }
.public-dark .neo-people { margin-inline:var(--home-gutter); }
.public-dark .neo-console { width:100%; max-width:none; }
@media(max-width:1100px) {
 .public-site.public-dark { --home-gutter:4%; }
 .public-dark .site-header,.public-dark .site-footer > .site-container { width:92%; }
}
@media(max-width:600px) {
 .public-site.public-dark { --home-gutter:20px; }
 .public-dark .site-header,.public-dark .site-footer > .site-container { width:calc(100% - 40px); }
 .public-dark .site-header-inner { padding-inline:12px; }
 .public-dark .site-nav { gap:16px; }
}

/* Supporting public pages share the homepage surfaces, accents and alignment. */
.public-dark .site-footer { background:#090d17; }
.public-dark .site-legal,.public-dark .site-contact { width:min(85%,1440px); padding-inline:0; padding-block:72px 88px; }
.public-dark .site-section-head h1 { color:#f0f3fa; font-size:clamp(36px,4vw,60px); }
.public-dark .site-section-head > p { color:#a2adc2; }
.public-dark .site-eyebrow { color:#b5a8ff; }
.public-dark .site-legal > .site-section-head { border-color:#2b3447; }
.public-dark .site-date { color:#a2adc2; background:#171d2a; border:1px solid #2b3447; padding:6px 11px; border-radius:6px; }
.public-dark .site-legal-layout { grid-template-columns:minmax(200px,260px) minmax(0,900px); justify-content:space-between; gap:48px; }
.public-dark .site-toc nav { background:#111724; border:1px solid #2b3447; border-radius:12px; padding:18px; }
.public-dark .site-toc nav b { color:#e4eaf5; }
.public-dark .site-toc nav a { color:#aebbd0; }
.public-dark .site-toc nav a:hover,.public-dark .site-toc nav a:focus-visible { background:#26253d; color:#d6ccff; }
.public-dark .site-toc > a,.public-dark .site-policy a { color:#c2b5ff; }
.public-dark .site-policy { color:#b5c0d2; }
.public-dark .site-policy h2 { color:#e7edf8; }
.public-dark .site-policy-intro { background:#151c2a; border:1px solid #303950; border-left:3px solid #b5a8ff; border-radius:0 10px 10px 0; padding:24px; }
.public-dark .site-policy section + section { border-color:#2b3447; }
.public-dark .site-policy section:target h2 { color:#c2b5ff; }
.public-dark .site-contact-grid section { background:#111724; border:1px solid #303950; border-radius:14px; box-shadow:none; transition:border-color .2s ease,background .2s ease; }
.public-dark .site-contact-grid section:hover { border-color:#756796; background:#151b2b; box-shadow:none; }
.public-dark .site-contact-grid h2 { color:#e7edf8; }
.public-dark .site-contact-grid p { color:#a2adc2; }
.public-dark .site-contact-icon { background:#29253f; border:1px solid #453b60; border-radius:10px; }
.public-dark .site-contact-grid svg,.public-dark .site-contact-grid a { color:#c2b5ff; }
.public-dark .site-contact-grid a { border-color:#303950; }
.public-dark .site-contact-note { color:#a2adc2; background:#111724; border:1px solid #2b3447; padding:16px 20px; border-radius:9px; }
.public-dark a:focus-visible,.public-dark summary:focus-visible { outline:2px solid #98e8d0; outline-offset:4px; }
@media(max-width:1100px) { .public-dark .site-legal,.public-dark .site-contact { width:92%; }.public-dark .site-legal-layout { gap:28px; } }
@media(max-width:800px) {
 .public-dark .site-legal,.public-dark .site-contact { padding-block:40px 56px; }
 .public-dark .site-legal-layout { grid-template-columns:1fr; }
 .public-dark .site-toc { position:static; max-height:none; }
}
@media(max-width:600px) { .public-dark .site-legal,.public-dark .site-contact { width:calc(100% - 40px); }.public-dark .site-policy-intro { padding:20px; } }
@media print {
 .public-dark { --site-ink:#111; --site-text:#333; background:#fff; color:#333; }
 .public-dark .site-policy,.public-dark .site-policy h2,.public-dark .site-policy a,.public-dark .site-section-head h1 { color:#111; }
 .public-dark .site-policy-intro,.public-dark .site-date { background:#fff; color:#333; border-color:#ccc; }
}

/* Interactive flow illustrations. Controls stay unavailable until initialised. */
.af { display:block; width:100%; min-width:0; color:#c6d2e5; }
.af [hidden] { display:none !important; }
.af-heading { display:flex; align-items:center; gap:8px; color:#c2b5ff; font-size:11px; font-weight:500; }
.af-example { color:#95a7c4; font-size:9px; margin-top:7px !important; }
.af-track { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; margin:20px 0; }
.af-track > span { display:flex; flex-direction:column; align-items:center; gap:7px; font-size:9px; color:#9baac3; position:relative; }
.af-track > span:not(:last-child)::after { content:""; position:absolute; top:11px; left:calc(50% + 15px); width:calc(100% - 24px); height:1px; background:#3b465d; }
.af-track b { display:grid; place-items:center; border:1px solid #495671; border-radius:50%; width:24px; height:24px; font-size:9px; font-weight:500; background:#192334; transition:background .25s,border-color .25s; }
.af-track [data-active="true"] { color:#d5caff; }
.af-track [data-active="true"] b { background:#393057; border-color:#b5a8ff; box-shadow:0 0 0 4px #b5a8ff12; }
.af-track [data-complete="true"] b { background:#193a30; border-color:#609a83; color:#98e8d0; }
.af-stage { padding:18px; min-height:235px; background:#151e2d; border:1px solid #334057; border-radius:10px; }
.af-stage > section:not([hidden]) { animation:neo-rise .3s ease-out; }
.af-stage-icon,.af-offline-icon { display:grid; place-items:center; width:36px; height:36px; border-radius:9px; background:#2c2744; color:#c2b5ff; margin-bottom:15px; }
.af-offline-icon { color:#e9c889; background:#3b3020; }
.af h4 { color:#e1e9f6; font-size:14px; line-height:1.5; font-weight:550; letter-spacing:-.01em; margin:0 0 10px; }
.af-stage p,.af-connection-details p { font-size:11px; color:#aabbd4; line-height:1.8; }
.af-review { display:flex; align-items:center; gap:7px; color:#98e8d0; font-size:9px; margin-top:16px; }
.af-review svg { flex-shrink:0; }
.af-status { font-size:9px; color:#a4b4cd; margin:12px 0 !important; }
.af-controls { display:flex; flex-wrap:wrap; align-items:center; gap:7px; }
.af-controls button,.af-connections-nav button { font:inherit; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:32px; border:1px solid #42516c; border-radius:6px; background:#1d293c; color:#d0dcef; padding:6px 10px; font-size:10px; transition:background .2s,border-color .2s; }
.af-controls button[data-play] { color:#ded5ff; background:#332b4c; border-color:#71618f; }
.af-controls button:hover,.af-connections-nav button:hover { background:#2a3850; border-color:#8b9bb9; }
.af-controls button:disabled { opacity:.45; cursor:default; }
.af-controls button:focus-visible,.af-connections-nav button:focus-visible { outline:2px solid #98e8d0; outline-offset:3px; }
.af-client { display:flex; flex-direction:column; align-items:center; gap:10px; padding:22px; margin-top:16px; border:1px solid #3e4b67; border-radius:10px; background:#19283b; }
.af-client svg { color:#b5a8ff; }
.af-client b { color:#e1e9f6; font-size:14px; }
.af-client span { font-size:10px; color:#a6b7d0; }
.af-connections-nav { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; margin:12px 0; }
.af-connections-nav button { flex-direction:column; padding:12px 4px; font-size:9px; }
.af-connections-nav button[aria-pressed="true"] { background:#332b4c; border-color:#a997dc; color:#e0d6ff; }
.af-connection-details { padding:16px; border-radius:9px; background:#151e2d; border:1px solid #334057; min-height:130px; }
.af-connection-details section:not([hidden]) { animation:neo-rise .25s ease-out; }
.af-transfer { display:flex; align-items:center; justify-content:center; gap:12px; color:#98e8d0; margin-top:18px; }
.af-transfer > span { width:70px; height:2px; background:#3c665e; position:relative; overflow:hidden; }
.af-transfer > span::after { content:""; position:absolute; width:16px; height:2px; background:#bafbe7; left:0; }
.af[data-playing="true"] .af-transfer > span::after { animation:af-transfer 1.1s linear infinite; }
@keyframes af-transfer { from { transform:translateX(-16px); } to { transform:translateX(86px); } }
.public-dark .site-header-inner { transition:min-height .25s ease,padding .25s ease; }
@media(min-width:801px) { .public-dark .site-header[data-compact="true"] .site-header-inner { min-height:58px; } }
@media(max-width:480px) { .af-stage { padding:14px; }.af-connections-nav { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(prefers-reduced-motion:reduce) {
 .af *, .af *::after,.public-dark .site-header-inner { animation:none !important; transition:none !important; }
}
