/* Homepage base styles, extracted conservatively from styles.css; original retained for other routes. */
:root { --font-sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; --font-mono: "SFMono-Regular", "Cascadia Code", "Roboto Mono", ui-monospace, monospace; --max-width: 1480px; --page-pad: clamp(22px, 4vw, 72px); --header-height: 84px; --radius-sm: 4px; --radius-md: 6px; --ease: cubic-bezier(0.2, 0.75, 0.25, 1); --signal: #9bbbd3; --signal-bright: #c4d6e3; --signal-soft: rgba(155, 187, 211, 0.12); --amber: #d39746; --amber-soft: rgba(211, 151, 70, 0.14); }
html[data-theme="dark"] { --bg: #080a0b; --bg-rgb: 8, 10, 11; --surface: #101315; --surface-soft: rgba(13, 18, 25, 0.78); --surface-raised: #181d21; --surface-glass: rgba(15, 22, 30, 0.58); --text: #f4f6fa; --text-strong: #ffffff; --muted: #aab3bd; --quiet: #78838f; --line: rgba(186, 201, 216, 0.2); --line-strong: rgba(207, 221, 236, 0.36); --grid: rgba(139, 167, 195, 0.12); --header: rgba(5, 7, 10, 0.76); --shadow: rgba(0, 0, 0, 0.54); --floor-start: rgba(34, 47, 62, 0.54); --floor-end: rgba(6, 9, 13, 0.08); --plane-start: rgba(103, 139, 175, 0.2); --plane-end: rgba(25, 37, 50, 0.04); --inverse: #05070a; --inverse-text: #f4f6fa; --readability-solid: rgba(5, 7, 10, 0.96); --readability-strong: rgba(5, 7, 10, 0.82); --readability-soft: rgba(5, 7, 10, 0.52); --readability-panel: rgba(7, 11, 16, 0.86); }
*, ::before, ::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-height) + 24px); background: var(--bg); }
body { margin: 0px; min-width: 320px; overflow-x: hidden; color: var(--text); background: radial-gradient(circle at 76% 2%, rgba(120, 145, 168, 0.11), transparent 26rem),
    var(--bg); font-family: var(--font-sans); font-size: 16px; line-height: 1.55; text-rendering: optimizelegibility; -webkit-font-smoothing: antialiased; transition: color 300ms, background-color 300ms; }
body::before { position: fixed; inset: 0px; z-index: -1; pointer-events: none; content: ""; opacity: 0.28; background-image: linear-gradient(var(--grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--grid) 1px, transparent 1px); background-size: 68px 68px; mask-image: linear-gradient(transparent 0px, rgb(0, 0, 0) 10%, rgb(0, 0, 0) 82%, transparent 100%); }
::selection { color: rgb(255, 255, 255); background: var(--signal); }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { color: inherit; }
img, svg { display: block; max-width: 100%; }
p, h1, h2, h3, blockquote, figure, dl, dd { margin: 0px; }
.shell { width: min(100%, calc(var(--max-width) + 2 * var(--page-pad))); margin-inline: auto; padding-inline: var(--page-pad); }
.skip-link { position: fixed; top: 12px; left: 12px; z-index: 1000; padding: 10px 14px; color: rgb(255, 255, 255); background: var(--signal); transform: translateY(-160%); transition: transform 180ms; }
.skip-link:focus { transform: translateY(0px); }
:focus-visible { outline: 2px solid var(--signal-bright); outline-offset: 4px; }
.eyebrow { margin-bottom: 24px; color: var(--quiet); font-family: var(--font-mono); font-size: clamp(0.64rem, 0.75vw, 0.76rem); line-height: 1.3; letter-spacing: 0.16em; text-transform: uppercase; }
h1, h2 { max-width: 15ch; color: var(--text-strong); font-weight: 420; letter-spacing: -0.052em; text-wrap: balance; }
h1 { font-size: clamp(3.6rem, 5.65vw, 6.9rem); line-height: 0.96; }
h2 { font-size: clamp(2.7rem, 4.55vw, 5.7rem); line-height: 0.98; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 14px 24px; border: 1px solid transparent; border-radius: var(--radius-sm); font-weight: 520; cursor: pointer; transition: transform 180ms var(--ease), background-color 180ms ease, border-color 180ms ease; }
.button:hover { transform: translateY(-2px); }
.button-primary { color: rgb(255, 255, 255); background: var(--signal); box-shadow: rgba(36, 107, 253, 0.22) 0px 14px 42px; }
.button-primary:hover { background: var(--signal-bright); }
.ac-onboarding-video { width: 100%; padding: 0 var(--page-pad) clamp(32px, 5vw, 72px); border-bottom: 1px solid var(--line); background: var(--bg); }
.ac-video-frame { width: min(100%, calc(var(--max-width) + 2 * var(--page-pad))); margin: 0 auto; }
.ac-video-frame video { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; border: 0; border-radius: 0; background: #05070a; }
.planes polygon { fill: url("#plane-gradient"); stroke: var(--line-strong); stroke-width: 1; }
@keyframes draw-signal { 
  100% { stroke-dashoffset: 0; }
}
.section { position: relative; overflow: hidden; padding-block: clamp(110px, 13vw, 200px); border-bottom: 1px solid var(--line); }
.criterion-panel dl div, .dialog dl div { display: grid; grid-template-columns: 98px 1fr; gap: 16px; padding: 12px 0px; border-top: 1px solid var(--line); }
.criterion-panel dt, .dialog dt { color: var(--quiet); font-family: var(--font-mono); font-size: 0.68rem; letter-spacing: 0.08em; text-transform: uppercase; }
.criterion-panel dd, .dialog dd { color: var(--muted); font-size: 0.84rem; }
.faq-list { border-top: 1px solid var(--line-strong); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 76px; padding: 20px 0px; color: var(--text-strong); font-size: 1rem; cursor: pointer; list-style: none; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary span { flex: 0 0 auto; color: var(--signal-bright); font-family: var(--font-mono); font-size: 1.4rem; font-weight: 300; transition: transform 180ms; }
.faq-list details[open] summary span { transform: rotate(45deg); }
.faq-list details p { max-width: 68ch; padding: 0px 52px 26px 0px; color: var(--muted); font-size: 0.9rem; }
.dialog { width: min(620px, -32px + 100vw); max-height: calc(-40px + 100svh); padding: clamp(28px, 5vw, 58px); border: 1px solid var(--line-strong); border-radius: var(--radius-md); color: var(--text); background: var(--surface); box-shadow: rgba(0, 0, 0, 0.4) 0px 40px 120px; }
.dialog::backdrop { background: rgba(0, 0, 0, 0.64); backdrop-filter: blur(10px); }
.dialog h2 { max-width: 12ch; font-size: clamp(2rem, 4vw, 3.5rem); }
.dialog > p:not(.eyebrow, .dialog-note, .form-note) { margin-top: 22px; color: var(--muted); }
.dialog dl { margin-top: 34px; border-bottom: 1px solid var(--line); }
.dialog-close { position: absolute; top: 18px; right: 18px; width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 50%; color: var(--muted); background: transparent; font-size: 1.5rem; cursor: pointer; }
.dialog-note, .form-note { margin-top: 24px; color: var(--quiet); font-size: 0.72rem; }
@media (max-width: 960px) {
:root { --header-height: 74px; }
.menu-button > span:not(.sr-only) { width: 18px; height: 1px; background: var(--text); transition: transform 180ms; }
h1 { max-width: 11ch; }
}
@media (max-width: 640px) {
:root { --page-pad: 20px; --header-height: 68px; }
body::before { background-size: 44px 44px; }
h1 { max-width: 10ch; font-size: clamp(3.2rem, 15vw, 4.7rem); }
h2 { max-width: 11ch; font-size: clamp(2.45rem, 11.5vw, 3.7rem); }
.section { padding-block: 96px; }
.faq-list summary { font-size: 0.92rem; }
.faq-list details p { padding-right: 0px; }
.ac-onboarding-video { padding-inline: var(--page-pad); }
.ac-video-frame video { border-radius: 0; }
}
@media (prefers-reduced-motion: reduce) {
html { scroll-behavior: auto; }
*, ::before, ::after { scroll-behavior: auto !important; animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; }
}
@media print {
.site-header, .menu-button, .button, .button-link, .text-button, dialog { display: none !important; }
body, .section, .hero { color: rgb(0, 0, 0); background: rgb(255, 255, 255); }
}
