/* A distinct account entrance, scoped away from the authenticated workspace. */
html { background:#080d14; color-scheme:dark; }
.portal-auth { color-scheme:dark; background:#080d14; color:#edf2f7; font-size:16px; line-height:1.65; --portal-teal:#8edbd0; --portal-border:#8ca2b323; }
.portal-auth .auth-shell { position:relative; isolation:isolate; display:grid; grid-template-columns:1fr; grid-template-rows:auto 1fr auto; min-height:100vh; min-height:100svh; padding:28px clamp(24px,4.5vw,88px) 20px; background:#080d14; }
.portal-header { width:100%; max-width:1700px; margin:0 auto; display:flex; align-items:center; gap:22px; min-height:44px; }
.portal-header .brand { gap:10px; }
.portal-header .brand img { width:31px; height:25px; }
.portal-header .brand span { font-size:29px; font-weight:600; letter-spacing:-1.5px; }
.portal-wordmark { color:#7d8d9e; font-size:9px; letter-spacing:.22em; border-left:1px solid #8ca2b338; padding-left:22px; }
.portal-back { margin-left:auto; display:flex; align-items:center; gap:18px; min-height:44px; color:#a5b1bd; font-size:11px; }
.portal-back span { font-size:17px; color:#d7e5f3; }
.portal-auth a { text-decoration:none; }
.portal-auth a:hover { color:#d7f6ef; }
.portal-auth :focus-visible { outline:2px solid var(--portal-teal); outline-offset:5px; }
.portal-skip { position:absolute; z-index:5; top:8px; left:24px; transform:translateY(-150%); padding:12px 20px; color:#080d14; background:#edf2f7; border-radius:4px; }
.portal-skip:focus { transform:translateY(0); }
.portal-auth .portal-skip:hover { color:#080d14; }
.portal-auth .portal-main { display:grid; grid-template-columns:minmax(0,1.42fr) minmax(0,1fr); align-items:center; width:100%; max-width:1540px; margin:0 auto; padding:32px 0 40px; gap:0; }
.portal-story { min-width:0; padding-right:clamp(32px,5vw,90px); }
.portal-art { position:relative; width:100%; height:clamp(280px,54svh,580px); pointer-events:none; }
.portal-art canvas,.portal-flow-fallback { display:block; position:absolute; inset:0; width:100%; height:100%; object-fit:contain; }
.portal-art canvas { opacity:0; }
.flow-ready .portal-art canvas { opacity:1; }
.flow-ready .portal-flow-fallback { visibility:hidden; }
.portal-caption { display:flex; align-items:flex-start; gap:18px; padding-top:20px; margin:10px 0 0; border-top:1px solid var(--portal-border); }
.portal-caption-mark { font-size:26px; line-height:1.15; color:#8edbd0; }
.portal-story h2 { font-size:clamp(20px,1.7vw,27px); line-height:1.35; letter-spacing:-.025em; font-weight:450; color:#dce6ef; margin:0; }
.portal-story-copy { font-size:12px; line-height:1.8; color:#7f91a3; margin:9px 0 0; }
.portal-auth .auth-card { width:100%; max-width:560px; min-width:0; padding:clamp(30px,3vw,46px); border:0; border-radius:12px; background:#fff; color:#182838; color-scheme:light; --portal-teal:#126c64; --portal-border:#dce3e9; box-shadow:0 24px 80px #00000014; overflow-wrap:anywhere; }
.account-kicker { color:#5a6a79; font-size:9px; font-weight:500; letter-spacing:.17em; margin-bottom:28px; }
.portal-auth .auth-card h1 { color:#182838; font-size:clamp(34px,3.3vw,49px); font-weight:450; letter-spacing:-.04em; line-height:1.14; margin:0 0 24px; }
.portal-auth .auth-card .subtitle { font-size:14px; line-height:1.85; color:#596c7b; margin:0 0 28px; max-width:380px; }
.opening-status { display:flex; align-items:flex-start; gap:12px; padding:20px 0; margin:28px 0; border-top:1px solid var(--portal-border); border-bottom:1px solid var(--portal-border); }
.opening-status-dot { margin-top:7px; width:5px; height:5px; flex:0 0 5px; border-radius:50%; background:#168274; box-shadow:0 0 0 4px #1682740d; }
.opening-status strong { display:block; color:#245e57; font-size:11px; font-weight:500; }
.portal-auth .opening-status p { color:#5d7080; font-size:11px; line-height:1.8; margin:8px 0 0; }
.opening-actions { max-width:380px; }
.portal-auth .button { display:inline-flex; align-items:center; justify-content:space-between; gap:18px; min-height:49px; padding:13px 20px; border:1px solid #172e42; border-radius:6px; background:#172e42; color:#fff; box-shadow:none; font-size:13px; font-weight:550; transition:background .2s,border-color .2s,transform .2s; }
.portal-auth .button.full { display:flex; width:100%; }
.portal-auth .button:hover { background:#26465f; border-color:#26465f; color:#fff; transform:translateY(-1px); }
.portal-auth .button span { font-size:17px; }
.portal-docs { display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:46px; padding:0 2px; margin-top:10px; font-size:12px; }
.portal-auth .auth-card .portal-docs { color:#126c64; }
.portal-docs span { font-size:17px; }
.portal-footer { display:flex; justify-content:space-between; align-items:center; gap:24px; width:100%; max-width:1700px; margin:0 auto; color:#70879b; font-size:9px; letter-spacing:.02em; }
.portal-footer>span>span { padding:0 10px; }
#portal-motion { display:inline-flex; align-items:center; gap:8px; min-height:36px; padding:0; border:0; background:none; color:#8b9caf; font-size:9px; }
#portal-motion[hidden] { display:none; }
.motion-indicator { width:6px; height:6px; border:1px solid #91acbf; border-radius:50%; }
#portal-motion[aria-pressed="true"] .motion-indicator { background:var(--portal-teal); border-color:var(--portal-teal); }
.portal-auth .auth-card form { margin:24px 0; }
.portal-auth .auth-card label { color:#30485c; font-size:12px; font-weight:450; margin-bottom:20px; }
.portal-auth input,.portal-auth select { background:#f7f9fb; color:#182838; border:1px solid #ccd7df; min-height:50px; font-size:16px; border-radius:6px; padding:12px 14px; }
.portal-auth input::placeholder { color:#5d7080; }
.portal-auth input:focus,.portal-auth select:focus { border-color:var(--portal-teal); outline:2px solid #126c6426; outline-offset:1px; box-shadow:none; }
.portal-auth input:-webkit-autofill { -webkit-text-fill-color:#182838; -webkit-box-shadow:0 0 0 1000px #f7f9fb inset; caret-color:#182838; }
.portal-auth input[type="checkbox"] { min-height:18px; width:18px; height:18px; padding:0; flex:0 0 18px; accent-color:var(--portal-teal); }
.portal-auth .auth-card p,.portal-auth .auth-card small,.portal-auth .help,.portal-auth .muted { color:#596c7b; }
.portal-auth .auth-card p:not([class]) { font-size:13px; line-height:1.8; }
.portal-auth .opening-status p:not([class]) { font-size:11px; color:#5d7080; }
.portal-auth .auth-card small,.portal-auth .help { font-size:11px; line-height:1.75; }
.portal-auth .auth-card a:not(.button),.portal-auth .text-button { color:var(--portal-teal); }
.portal-auth .auth-card a:not(.button):hover { color:#084c47; }
.portal-auth .auth-links { gap:16px; flex-wrap:wrap; font-size:12px; margin-top:20px; }
.portal-auth .button.secondary { border-color:#ccd7df; color:#30485c; background:#f4f7f9; }
.portal-auth .alert { border-radius:6px; font-size:13px; line-height:1.65; }
.portal-auth .alert.error { background:#fff1f3; color:#8c243d; border-color:#f2c5cf; }
.portal-auth .alert.success { background:#ecf8f3; color:#245e49; border-color:#bbdece; }
.portal-auth .alert p { color:inherit; }
.portal-auth .concept-note { background:#fff8e8; color:#785c20; border-color:#e8d6a9; border-radius:6px; }
.portal-auth .registration-card { max-width:640px; }
.portal-main:has(.registration-card) { align-items:start; }
.portal-main:has(.registration-card) .portal-story { position:sticky; top:28px; }
.portal-auth .form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.portal-auth .form-grid>* { min-width:0; }
.portal-auth select { min-width:0; max-width:100%; }
.portal-auth .registration-progress,.portal-auth .registration-card fieldset,.portal-auth .registration-exit,.portal-auth .dev-link { border-color:var(--portal-border); }
.portal-auth .registration-progress li { font-size:10px; color:#5d7080; }
.portal-auth .registration-progress .current { color:var(--portal-teal); border-color:var(--portal-teal); }
.portal-auth .registration-card legend { color:#182838; font-size:15px; }
.portal-auth .registration-card .optional { color:#5d7080; }
.portal-auth .company-summary,.portal-auth .signed-in-as,.portal-auth pre,.portal-auth .panel,.portal-auth .secret,.portal-auth .recovery-codes code { background:#f4f7f9; color:#30485c; border-color:var(--portal-border); border-radius:6px; }
.portal-auth .panel-heading { border-color:var(--portal-border); }
.portal-auth .panel-body { padding:20px; }
.portal-auth .qr { background:white; padding:10px; border-radius:6px; max-width:100%; }
.portal-auth .auth-card .legal-document { font-size:13px; line-height:1.85; }
.portal-auth details>summary { color:var(--portal-teal); }
.portal-auth .status-note { color:#245e57; }
.portal-auth .dev-link { font-size:10px; margin-top:24px; }
@media(max-width:1100px) {
 .portal-auth .portal-main { grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); }
 .portal-story { padding-right:32px; }
 .portal-auth .auth-card { padding:28px; }
 .portal-auth .form-grid { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:800px) {
 .portal-auth .auth-shell { padding:20px 24px 12px; }
 .portal-header { gap:16px; }
 .portal-wordmark { padding-left:16px; font-size:8px; }
 .portal-back { font-size:10px; gap:9px; }
 .portal-header .brand span { font-size:26px; }
 .portal-header .brand img { width:27px; height:22px; }
 .portal-auth .portal-main { display:flex; flex-direction:column; align-items:stretch; gap:36px; max-width:560px; padding:10px 0 36px; }
 .portal-story { padding:0; }
 .portal-main:has(.registration-card) .portal-story { position:static; }
 .portal-art { height:260px; }
 .portal-caption { gap:12px; padding-top:16px; margin-top:0; }
 .portal-caption-mark { font-size:22px; }
 .portal-story h2 { font-size:20px; }
 .portal-story-copy { font-size:11px; margin-top:7px; }
 .portal-auth .auth-card { max-width:none; padding:28px; border:0; }
 .account-kicker { font-size:8px; margin-bottom:23px; }
 .portal-auth .auth-card h1 { font-size:37px; }
 .portal-auth .auth-card .subtitle { font-size:13px; }
 .portal-footer { font-size:8px; gap:12px; }
 .portal-footer>span>span { padding:0 6px; }
 #portal-motion { font-size:8px; flex-shrink:0; }
}
@media(max-width:380px) {
 .portal-auth .auth-shell { padding-inline:20px; }
 .portal-wordmark { display:none; }
 .portal-back { font-size:10px; }
 .portal-art { height:230px; }
 .portal-story h2 { font-size:18px; }
 .portal-story-copy { max-width:240px; }
 .portal-auth .auth-card { padding:24px; }
 .portal-auth .auth-card h1 { font-size:32px; }
 .portal-auth .button { font-size:12px; padding-inline:16px; }
 .portal-footer>span { max-width:150px; }
}
@media(max-height:760px) and (min-width:801px) {
 .portal-auth .auth-shell { padding-top:22px; padding-bottom:14px; }
 .portal-auth .portal-main { padding-block:20px; }
 .portal-art { height:clamp(240px,51svh,390px); }
 .portal-caption { padding-top:16px; }
 .portal-auth .auth-card { padding-block:28px; }
 .account-kicker { margin-bottom:22px; }
 .portal-auth .auth-card h1 { margin-bottom:20px; }
 .opening-status { margin-block:22px; padding-block:16px; }
}
@media(prefers-reduced-motion:reduce) { .portal-auth *, .portal-auth *::before, .portal-auth *::after { scroll-behavior:auto!important; transition:none!important; } }
