/* Standalone identity assets mirror the approved web/theme/product.ts palette. */
@font-face { font-family:'DM Sans'; font-style:normal; font-weight:100 1000; font-display:swap; src:url('../fonts/dm-sans-latin.woff2') format('woff2'); }
@font-face { font-family:'Space Grotesk'; font-style:normal; font-weight:300 700; font-display:swap; src:url('../fonts/space-grotesk-latin.woff2') format('woff2'); }
:root { color-scheme:dark; --canvas:#0a0a0e; --surface:#141419; --field:#0a0a0e; --ink:#f5f5f7; --muted:#a5a5b0; --accent:#5628ff; --focus:#9785ff; --danger:#ef6a6a; --line:#ffffff14; --control:6px; }
* { box-sizing:border-box; }
body { margin:0; min-height:100dvh; background:var(--canvas); color:var(--ink); font:15px/1.6 'DM Sans',system-ui,sans-serif; font-variant-numeric:tabular-nums; }
.site-header { min-height:84px; padding:16px max(24px,calc((100vw - 1200px)/2)); display:flex; align-items:center; gap:24px; border-bottom:1px solid var(--line); }
.brand { display:inline-flex; min-height:44px; align-items:center; }
.brand img { width:156px; height:auto; }
.identity-label { margin-left:auto; color:var(--muted); font-size:12px; }
main { width:min(1040px,calc(100% - 64px)); margin:clamp(48px,12vh,128px) auto; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,440px); align-items:center; gap:80px; }
.intro h2 { font-family:'Space Grotesk',system-ui,sans-serif; font-size:64px; line-height:1.08; font-weight:500; letter-spacing:-.045em; margin:20px 0 24px; }
.intro > p:not(.eyebrow) { max-width:34ch; font-size:16px; }
.intro-detail { border-top:1px solid var(--line); padding-top:24px; margin-top:32px; color:var(--muted); font-size:13px; }
.eyebrow { font-size:10px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--focus); margin:0 0 16px; }
.auth-content { min-width:0; }
.auth-card { padding:32px; border:1px solid var(--line); border-radius:8px; background:var(--surface); }
h1 { font-family:'Space Grotesk',system-ui,sans-serif; font-size:34px; font-weight:500; line-height:1.15; letter-spacing:-.04em; margin:0 0 12px; overflow-wrap:anywhere; }
p { color:var(--muted); margin:0 0 24px; overflow-wrap:anywhere; }
strong { color:var(--ink); font-weight:500; }
label { display:block; font-size:13px; font-weight:500; margin-bottom:8px; }
input[type=email], input[type=text], select { width:100%; min-height:48px; padding:12px 14px; margin-bottom:20px; background:var(--field); color:var(--ink); border:1px solid #ffffff22; border-radius:var(--control); font:inherit; font-size:16px; }
input:hover,select:hover { border-color:var(--muted); }
input[aria-invalid=true],select[aria-invalid=true] { border-color:var(--danger); }
.code-input { font-size:28px !important; letter-spacing:.35em; text-align:center; font-family:'Space Grotesk',system-ui,sans-serif !important; }
.check { display:flex; align-items:center; gap:12px; min-height:44px; margin-bottom:20px; font-size:13px; line-height:1.5; cursor:pointer; color:var(--muted); }
.check input { width:18px; height:18px; flex-shrink:0; accent-color:var(--accent); }
button,.button { display:flex; justify-content:center; align-items:center; width:100%; min-height:48px; padding:12px 16px; border:1px solid transparent; border-radius:var(--control); background:var(--accent); color:var(--ink); font:inherit; font-size:13px; font-weight:600; text-align:center; text-decoration:none; cursor:pointer; }
button:hover,.button:hover { background:#643aff; }
a { color:var(--focus); text-underline-offset:4px; }
.secondary-link { display:flex; align-items:center; justify-content:center; min-height:44px; margin-top:16px; font-size:13px; text-align:center; }
.error { color:var(--danger); border-left:2px solid currentColor; padding:8px 12px; margin-bottom:20px; overflow-wrap:anywhere; font-size:13px; }
.hint { font-size:12px; margin-bottom:20px; }
.footer-note { text-align:center; font-size:12px; margin:20px 0 0; }
:is(input,select,button,a,[tabindex]):focus-visible { outline:2px solid var(--focus); outline-offset:4px; }
.skip-link { position:absolute; left:24px; top:12px; padding:12px; background:var(--surface); transform:translateY(-150%); z-index:2; }
.skip-link:focus { transform:none; }
.optional { font-weight:400; margin-left:4px; color:var(--muted); }
select { cursor:pointer; }
@media(max-width:850px) { main { gap:40px; } .intro h2 { font-size:48px; } }
@media(max-width:700px) {
 .site-header { min-height:68px; padding:12px 20px; gap:12px; }
 .brand img { width:136px; }
 .identity-label { font-size:11px; }
 main { width:min(440px,calc(100% - 40px)); display:block; margin:32px auto; }
 .intro { display:none; }
 .auth-card { padding:24px; }
 h1 { font-size:28px; }
}
@media(forced-colors:active) { button,.button { border-color:ButtonText; } }
