* { box-sizing:border-box; }
body { margin:0; min-height:100vh; font-family:'Public Sans',sans-serif; background:#101522; color:#d7dcf5; }
.login-shell { min-height:100vh; display:grid; grid-template-columns:minmax(420px,1.12fr) minmax(420px,.88fr); }
.login-story { position:relative; isolation:isolate; overflow:hidden; padding:3.2rem clamp(2.5rem,6vw,7rem); display:flex; flex-direction:column; background:radial-gradient(circle at 20% 15%,rgba(115,103,240,.27),transparent 28rem),linear-gradient(145deg,#171d31,#0e1320); border-right:1px solid rgba(255,255,255,.07); }
.brand,.mobile-brand { display:flex; align-items:center; gap:.75rem; color:#fff; font-size:1.35rem; font-weight:800; text-decoration:none; letter-spacing:-.03em; }
.brand-icon { width:42px; height:42px; display:grid; place-items:center; border-radius:13px; color:#fff; font-size:1.4rem; background:linear-gradient(135deg,#7367f0,#9d94f5); box-shadow:0 12px 28px rgba(115,103,240,.28); }
.story-copy { margin:auto 0; position:relative; z-index:2; max-width:650px; }
.eyebrow { display:flex; align-items:center; gap:.65rem; color:#aaa4ff; font-size:.72rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.eyebrow span { width:28px; height:1px; background:#7367f0; }
.story-copy h1 { margin:1.4rem 0; color:#eef0ff; font-size:clamp(3rem,5.4vw,5.4rem); line-height:.98; letter-spacing:-.06em; }
.story-copy h1 em { color:#8f84ff; font-style:normal; }
.story-copy p { max-width:570px; color:#8f9bb3; font-size:1.08rem; line-height:1.75; }
.feature-row { display:flex; flex-wrap:wrap; gap:1.3rem; margin-top:2.4rem; color:#b9c1dd; font-size:.8rem; font-weight:600; }
.feature-row span { display:flex; align-items:center; gap:.45rem; }
.feature-row i { color:#8f84ff; font-size:1.1rem; }
.story-orb { position:absolute; border:1px solid rgba(143,132,255,.17); border-radius:50%; z-index:-1; }
.orb-one { width:410px; height:410px; right:-160px; bottom:-150px; box-shadow:inset 0 0 90px rgba(115,103,240,.06); }
.orb-two { width:210px; height:210px; right:5%; top:12%; }
.login-panel { padding:2rem; display:grid; place-items:center; background:radial-gradient(circle at 90% 10%,rgba(115,103,240,.1),transparent 24rem); }
.mobile-brand { display:none; }
.login-card { width:min(100%,430px); padding:2.5rem; border:1px solid rgba(255,255,255,.08); border-radius:1.2rem; background:rgba(27,34,53,.75); box-shadow:0 30px 70px rgba(0,0,0,.23); backdrop-filter:blur(16px); }
.secure-chip { display:inline-flex; align-items:center; gap:.35rem; padding:.35rem .6rem; border-radius:999px; color:#93e9b6; background:rgba(40,199,111,.1); font-size:.68rem; font-weight:600; }
.login-heading h2 { margin:1.3rem 0 .45rem; color:#eef0ff; font-size:1.75rem; letter-spacing:-.035em; }
.login-heading p { color:#8f9bb3; margin:0 0 2rem; font-size:.88rem; }
.form-label { color:#bcc4de; font-size:.78rem; font-weight:600; }
.input-wrap { position:relative; }
.input-wrap > i { position:absolute; z-index:2; left:.95rem; top:50%; transform:translateY(-50%); color:#69738f; font-size:1.1rem; }
.input-wrap .form-control { height:50px; padding-left:2.8rem; padding-right:2.8rem; color:#eef0ff; background:#121827; border:1px solid rgba(255,255,255,.09); border-radius:.7rem; }
.input-wrap .form-control:focus { background:#121827; border-color:#7367f0; box-shadow:0 0 0 .2rem rgba(115,103,240,.14); }
.input-wrap button { position:absolute; right:.55rem; top:50%; transform:translateY(-50%); width:38px; height:38px; border:0; background:transparent; color:#7d87a3; border-radius:.5rem; }
.login-button { height:50px; margin-top:.4rem; display:flex; align-items:center; justify-content:center; gap:.6rem; border-radius:.7rem; font-weight:600; box-shadow:0 10px 24px -10px #7367f0; }
.login-foot { display:flex; align-items:center; justify-content:center; gap:.35rem; margin:1.7rem 0 0; color:#69738f; font-size:.7rem; }
.alert { font-size:.8rem; padding:.75rem; border:0; }
@media (max-width:900px) { .login-shell { display:block; } .login-story { display:none; } .login-panel { min-height:100vh; padding:1.25rem; align-content:center; } .mobile-brand { display:flex; margin-bottom:1.5rem; justify-self:center; } }
@media (max-width:480px) { .login-panel { padding:1rem; } .login-card { padding:1.4rem; border-radius:1rem; } .login-heading h2 { font-size:1.5rem; } }
