@font-face{font-family:"Archivo";font-style:normal;font-weight:640 700;font-display:swap;src:url("fonts/Archivo-640-700-latin.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/IBMPlexSans-Regular.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url("fonts/IBMPlexMono-Medium.woff2") format("woff2")}

/* Standalone extraction of the live Console auth gate contract in portal.css. */
:root{
  --ink:#0D1015;--bg:#12151C;--panel:#181C25;--raise:#1F2430;--well:#0A0C10;
  --line:rgba(255,255,255,.09);--line-soft:rgba(255,255,255,.05);
  --text:#EFF1F5;--muted:#98A1B2;--dim:#7B8595;
  --comm:#2C5CC4;--comm-dk:#234A9E;--safe:#2FBE71;--warn:#E0A93E;--rec:#E5352B;
  --disp:"Archivo",sans-serif;--body:"IBM Plex Sans",sans-serif;--mono:"IBM Plex Mono",monospace;
  --r-card:10px;--r-chip:7px;--hero-photo:url("hero-draft.webp")
}
*{margin:0;padding:0;box-sizing:border-box}
html{min-width:320px;background:var(--ink);color:var(--text)}
body{min-width:320px;min-height:100vh;display:flex;flex-direction:column;background:var(--ink);color:var(--text);font-family:var(--body);font-size:14px}
button,input{font:inherit}
button{cursor:pointer;color:inherit;background:none;border:0}
:focus-visible{outline:2px solid var(--rec);outline-offset:3px}

/* Exact gate proportions and pane treatment from the shared Console auth layout. */
.gate{flex:1;position:relative;display:flex;flex-direction:row;align-items:stretch;background:radial-gradient(ellipse at 50% 36%,#141821 0%,var(--well) 74%)}
.brandpane{position:relative;flex:1;display:flex;align-items:flex-start;justify-content:flex-start;min-width:0;padding:44px;overflow:hidden}
.lockup-hero{width:min(150px,12vw);height:auto}
.formpane{flex:1;display:flex;align-items:center;justify-content:center;padding:40px;border-left:1px solid var(--line);overflow:auto}
.logincard{width:min(430px,100%);display:flex;flex-direction:column;padding:36px;border:1px solid var(--line);border-radius:var(--r-card);background:linear-gradient(145deg,var(--raise),var(--panel));box-shadow:0 26px 68px rgba(0,0,0,.34),0 1px 0 rgba(255,255,255,.035) inset}
.logincard h2{font-family:var(--disp);font-weight:700;font-size:20px;margin-bottom:8px}

/* Allowed public difference: teaser copy over an owner-supplied local photo. */
.teaser-brand::before{content:"";position:absolute;inset:0;z-index:0;background-image:linear-gradient(100deg,rgba(10,12,16,.88),rgba(10,12,16,.78)),var(--hero-photo),radial-gradient(circle at 72% 28%,#283144 0,#171C27 34%,#0A0C10 78%);background-position:center;background-size:cover}
.teaser-brand .lockup-hero{position:relative;z-index:2}
.teaser-copy{position:absolute;z-index:1;left:44px;top:50%;width:min(430px,calc(100% - 88px));transform:translateY(-50%)}
.hero-eyebrow,.panel-eyebrow{color:var(--dim);font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.14em;text-transform:uppercase}
.hero-eyebrow{margin-bottom:18px}
.teaser-copy h1{color:var(--text);font-family:var(--disp);font-size:clamp(28px,3.1vw,48px);font-weight:700;letter-spacing:-.045em;line-height:1.02;text-wrap:balance}
.hero-subtitle{margin-top:22px;color:var(--muted);font-size:15px;line-height:1.58;text-wrap:balance}
.network-note{margin-top:15px;color:#AAB2C0;font-family:var(--mono);font-size:9px;line-height:1.6;letter-spacing:.075em}
footer{position:absolute;z-index:1;left:44px;bottom:40px;color:var(--dim);font-family:var(--mono);font-size:9px;letter-spacing:.12em}

/* Allowed public difference: notify form in the otherwise identical raised card. */
.panel-eyebrow{margin-bottom:12px}
.notify{margin-top:26px}
.f{margin-bottom:22px}
.f label{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:var(--dim);text-transform:uppercase;margin-bottom:8px}
.f input{width:100%;height:44px;background:var(--well);border:1px solid var(--line);border-radius:8px;color:var(--text);font-family:var(--body);font-size:14px;padding:0 13px}
.f input::placeholder{color:var(--dim)}
.f input:focus{border-color:var(--comm)}
.save{background:var(--comm);border-radius:8px;color:#fff;font-family:var(--disp);font-weight:640;font-size:13px;letter-spacing:.04em;padding:12px 26px}
.save:hover{background:var(--comm-dk)}
.logincard .save{width:100%;margin-top:6px;padding:14px}
.save:active{transform:translateY(2px);box-shadow:inset 0 3px 7px rgba(0,0,0,.34)}
.form-quiet{margin-top:18px;color:var(--dim);font-family:var(--mono);font-size:9px;line-height:1.6;letter-spacing:.06em}
.notify-hp{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important}

/* Allowed public result state: same card, green factual emphasis. */
.result-state .teaser-copy{opacity:.84}
.result-panel{min-height:278px;justify-content:center;border-color:var(--safe);box-shadow:inset 4px 0 0 var(--safe),0 26px 68px rgba(0,0,0,.34),0 1px 0 rgba(255,255,255,.035) inset}
.result-panel .panel-eyebrow{color:var(--safe)}
.result-panel h2{font-size:clamp(40px,3.3vw,52px);letter-spacing:-.045em;line-height:.98}
.sent-line{margin-top:18px;color:var(--muted);font-size:14px;line-height:1.65}

/* Exact Console auth stack breakpoint; teaser-only copy compacts inside the same pane. */
@media (max-width:639px){
  .gate{flex-direction:column}
  .brandpane{flex:0 0 290px;padding:34px 24px}
  .lockup-hero{width:min(190px,54vw)}
  .teaser-copy{left:24px;top:78px;width:calc(100% - 48px);transform:none}
  .hero-eyebrow{margin-bottom:6px}
  .teaser-copy h1{font-size:clamp(26px,8vw,38px)}
  .hero-subtitle{margin-top:8px;font-size:12px;line-height:1.35}
  .network-note{margin-top:5px;font-size:8px;line-height:1.4}
  footer{left:24px;bottom:28px}
  .formpane{border-left:0;border-top:1px solid var(--line);padding:28px 20px 48px;align-items:flex-start}
  .logincard{padding:28px 24px}
}
