@import url('/static/css/motion.css');
:root { --navy:#2e0052; --navy-mid:#2e0052; --shield-purple:#2e0052; --purple:#89268b; --ink:#172033; --muted:#667085; --line:#d8dee8; }
body, body * { font-family:"Montserrat",sans-serif !important; }
* { box-sizing:border-box; }
body { margin:0; min-width:320px; background:#eef2f8; color:var(--ink); font-family:"Montserrat",sans-serif; }
.onboarding-shell,.login-stage { min-height:100vh; min-height:100dvh; }

/* The form is present underneath the onboarding scene and only becomes interactive after the reveal. */
.login-stage { display:grid; place-items:center; padding:32px 24px; background:radial-gradient(circle at 15% 12%, rgba(137,38,139,.10), transparent 29%), linear-gradient(135deg,#f8fafc,#eef2f8); }
.login-card { width:min(100%,420px); padding:42px; border:1px solid rgba(255,255,255,.8); border-radius:20px; background:rgba(255,255,255,.78); box-shadow:0 24px 70px rgba(20,37,63,.14); backdrop-filter:blur(18px); opacity:0; transform:translateY(26px); transition:opacity .52s ease .42s,transform .52s cubic-bezier(.2,.8,.2,1) .42s; pointer-events:none; }
body.onboarding-complete .login-card { opacity:1; transform:translateY(0); pointer-events:auto; }
.panel-logo { display:block; width:152px; height:auto; margin:0 auto 36px; }
.login-kicker,.hero-eyebrow { margin:0 0 11px; color:var(--purple); font-size:10px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.login-heading { margin-bottom:31px; text-align:center; }
.login-heading h2 { margin:0; font:500 34px/1.12 "Playfair Display",serif; letter-spacing:-.03em; }
.login-heading>p:last-child { margin:10px 0 0; color:var(--muted); font-size:14px; line-height:1.5; }
.form-group { margin-bottom:21px; }
.form-group label { display:block; color:#344054; font-size:13px; font-weight:700; }
.form-group>label { margin-bottom:8px; }
.field-label-row { display:flex; justify-content:space-between; align-items:baseline; gap:12px; margin-bottom:8px; }
.field-label-row a { color:var(--purple); font-size:12px; font-weight:700; text-decoration:none; }
.field-label-row a:hover { text-decoration:underline; }
.forgot-link { display:block; width:max-content; margin:-7px 0 21px auto; color:var(--purple); font-size:12px; font-weight:700; text-decoration:none; }
.forgot-link:hover { text-decoration:underline; }
.form-group input { width:100%; height:51px; padding:0 14px; border:1px solid var(--line); border-radius:12px; background:rgba(255,255,255,.9); color:var(--ink); font:inherit; font-size:14px; outline:0; transition:border-color .16s ease,box-shadow .16s ease; }
.form-group input:focus { border-color:var(--purple); box-shadow:0 0 0 4px rgba(137,38,139,.13); }
.form-group input::placeholder { color:#98a2b3; }
.login-btn { display:flex; align-items:center; justify-content:center; gap:9px; width:100%; height:52px; border:0; border-radius:12px; background:linear-gradient(135deg,#2e0052,#89268b); color:#fff; cursor:pointer; font:700 14px "Montserrat",sans-serif; box-shadow:0 12px 24px rgba(70,13,94,.24); transition:transform .16s ease,box-shadow .16s ease,filter .16s ease; }
.login-btn:hover { filter:brightness(1.08); box-shadow:0 16px 28px rgba(70,13,94,.3); transform:translateY(-1px); }
.login-btn:focus-visible { outline:3px solid rgba(137,38,139,.35); outline-offset:3px; }
.login-btn:active { transform:translateY(0); }
.login-btn:disabled { cursor:wait; opacity:.8; }
.login-btn-arrow { font-size:20px; line-height:1; transition:transform .16s ease; }.login-btn:hover .login-btn-arrow { transform:translateX(3px); }
.login-btn.is-loading .login-btn-arrow { width:15px; height:15px; border:2px solid rgba(255,255,255,.45); border-top-color:#fff; border-radius:50%; font-size:0; animation:spin .65s linear infinite; }
.login-note { margin:19px auto 0; max-width:290px; color:#98a2b3; font-size:11px; line-height:1.55; text-align:center; }
.login-error { display:flex; gap:9px; margin-bottom:19px; padding:13px; border:1px solid #f3b7b6; border-radius:12px; background:#fff4f3; color:#9f1e1b; font-size:13px; }.login-error>span:first-child { display:grid; place-items:center; width:17px; height:17px; flex:0 0 17px; border-radius:50%; background:#b42318; color:#fff; font-size:11px; font-weight:700; }
.forgot-page-back { display:flex; align-items:center; justify-content:center; gap:7px; width:max-content; margin:22px auto 0; color:var(--purple); font-size:12px; font-weight:700; text-decoration:none; }.forgot-page-back:hover { text-decoration:underline; }.forgot-page-back:focus-visible { outline:3px solid rgba(137,38,139,.25); outline-offset:4px; }.login-success { text-align:center; }.login-success-icon { display:grid; place-items:center; width:48px; height:48px; margin:0 auto 24px; border-radius:14px; color:#fff; background:#198754; box-shadow:0 9px 22px rgba(25,135,84,.2); font-size:21px; font-weight:700; }.login-btn-link { text-decoration:none; }.login-btn-link:hover { text-decoration:none; }

/* Full-viewport landing scene. It exits by translating upward; no fade is used. */
.onboarding-hero { position:fixed; z-index:10; inset:0; display:grid; place-items:center; overflow:hidden; padding:clamp(36px,6vw,88px); color:#fff; background:linear-gradient(135deg,#2e0052,#2e0052 62%,#3b0b61); transform:translateY(0); transition:transform .9s cubic-bezier(.65,0,.35,1); will-change:transform; }
body.onboarding-complete .onboarding-hero { transform:translateY(-100%); pointer-events:none; }
.hero-grid { position:absolute; inset:0; opacity:.26; background-image:linear-gradient(rgba(255,255,255,.10) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.10) 1px,transparent 1px); background-size:58px 58px; mask-image:linear-gradient(to bottom,black,transparent 84%); }
.hero-orb { position:absolute; width:36vw; max-width:520px; aspect-ratio:1; border-radius:50%; filter:blur(4px); opacity:.14; animation:float 7s ease-in-out infinite; }.hero-orb-one { top:-18%; left:-9%; background:#ffffff; }.hero-orb-two { right:-13%; bottom:-20%; background:#e8d6e9; animation-delay:-3.5s; }
.hero-content { position:relative; width:min(100%,760px); text-align:center; animation:hero-enter .6s ease-out both; }.hero-logo { width:min(228px,48vw); height:auto; margin-bottom:42px; }.hero-eyebrow { color:#e6c9e7; font-size:12px; }.onboarding-hero h1 { margin:0; font:500 clamp(42px,5vw,68px)/1.08 "Playfair Display",serif; letter-spacing:-.04em; }.hero-description { max-width:570px; margin:22px auto 40px; color:rgba(255,255,255,.78); font-size:clamp(16px,1.4vw,19px); line-height:1.65; }
.hero-workspace { padding:20px; border:1px solid rgba(255,255,255,.18); border-radius:16px; background:rgba(5,21,43,.28); box-shadow:0 20px 62px rgba(0,0,0,.18); backdrop-filter:blur(10px); text-align:left; }.workspace-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:16px; color:rgba(255,255,255,.78); font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }.workspace-status { display:inline-flex; align-items:center; gap:7px; color:#e6f8ed; letter-spacing:0; text-transform:none; }.workspace-status i { width:7px; height:7px; border-radius:50%; background:#38c77b; box-shadow:0 0 0 4px rgba(56,199,123,.12); }.hero-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:13px; }.hero-stats article { padding:17px; border:1px solid rgba(255,255,255,.14); border-radius:12px; background:rgba(255,255,255,.08); }.hero-stats span,.hero-stats small { display:block; color:rgba(255,255,255,.65); font-size:12px; }.hero-stats strong { display:block; margin:8px 0 4px; font:500 clamp(24px,2.3vw,34px)/1 "Playfair Display",serif; }.hero-footer { position:absolute; bottom:25px; left:clamp(36px,6vw,88px); margin:0; color:rgba(255,255,255,.47); font-size:11px; }
@keyframes hero-enter { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:translateY(0); } } @keyframes float { 50% { transform:translate3d(12px,-18px,0); } } @keyframes spin { to { transform:rotate(360deg); } }
@media (max-width:680px) { .login-stage { padding:24px 18px; }.login-card { padding:32px 24px; }.panel-logo { width:140px; margin-bottom:31px; }.hero-stats { grid-template-columns:1fr; }.hero-stats article { display:grid; grid-template-columns:1fr auto; column-gap:12px; padding:12px 15px; }.hero-stats strong { grid-column:2; grid-row:1 / span 2; align-self:center; margin:0; }.hero-stats small { margin-top:3px; }.hero-footer { display:none; }.hero-workspace { padding:14px; }.workspace-heading { font-size:10px; }.onboarding-hero { padding:28px 20px; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; } }
