@charset "UTF-8";
:root{color-scheme:light;--ink:#172e32;--muted:#69777b;--accent:#163e43;--paper:#f5f5f0;--gold:#d8bf88}
*{box-sizing:border-box}body{margin:0}button,input{font:inherit}a{color:inherit}svg{stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.node-login{min-height:100svh;background:var(--paper);color:var(--ink);font-family:Inter,"Segoe UI",Arial,sans-serif;-webkit-font-smoothing:antialiased;display:flex;flex-direction:column;background-image:radial-gradient(ellipse at 0 100%,#dfe6e045,transparent 60%)}
.login-masthead{width:min(1120px,calc(100% - 80px));margin:0 auto;padding:32px 0;display:flex;align-items:center;justify-content:space-between;gap:20px}
.login-wordmark{display:inline-flex;gap:12px;align-items:center;text-decoration:none;font-size:16px;font-weight:750;letter-spacing:1.2px}.wordmark-light{font-weight:400;letter-spacing:2px}.login-symbol{display:grid;place-items:center;background:var(--accent);color:#fff;width:36px;height:40px;border-radius:10px}.login-symbol svg{width:24px;height:24px}
.login-level{display:inline-flex;align-items:center;gap:8px;padding:8px 13px;background:#fff9;border:1px solid #dfe5df;border-radius:24px;font-size:12px;font-weight:600;letter-spacing:.2px}.login-level>span{width:6px;height:6px;border-radius:100%;background:#51836b}
.login-main{flex:1;display:grid;place-items:center;padding:12px 32px 32px}
.login-frame{width:min(100%,1020px);display:grid;grid-template-columns:1fr 1fr;background:#fff;border:1px solid #e0e5df;border-radius:22px;overflow:hidden;box-shadow:0 25px 75px -35px #243d4140,0 3px 12px #243d4105}
.login-story{position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:space-between;min-height:580px;padding:44px;background:#102e33;color:#fff;overflow:hidden}.story-top{display:flex;align-items:center;gap:12px;font-size:10px;font-weight:600;letter-spacing:2px;color:#c8d5d1}.story-rule{width:30px;height:1px;background:var(--gold)}.story-body{position:relative;z-index:1;margin:50px 0 60px}.story-number{display:block;color:var(--gold);font-size:10px;font-weight:500;letter-spacing:2px;margin-bottom:24px}.story-body h1{font-family:Georgia,"Times New Roman",serif;font-size:43px;line-height:1.2;letter-spacing:-1.2px;font-weight:400;margin:0 0 24px}.story-body h1 em{color:#e3cfaa;font-weight:400}.story-body p{font-size:13px;line-height:1.9;color:#bdcfcc;margin:0}.story-school{display:flex;align-items:center;gap:12px;z-index:1}.school-emblem{width:36px;height:40px;border:1px solid #829b8c65;display:grid;place-items:center;border-radius:10px;font-family:Georgia,serif;color:var(--gold);font-size:22px}.story-school strong{display:block;font-size:11px;letter-spacing:.3px;font-weight:600}.story-school div>span{display:block;font-size:10px;color:#a8bfbb;margin-top:5px}.story-orbit{z-index:-1;position:absolute;width:440px;height:440px;border:1px solid #abc5b313;border-radius:50%;bottom:-220px;right:-180px;box-shadow:0 0 0 40px #abc5b308,0 0 0 80px #abc5b306,0 0 0 120px #abc5b304}
.login-form-panel{padding:56px 48px 40px;align-self:center;width:100%}.form-eyebrow{display:block;color:#7c8985;font-size:10px;font-weight:650;letter-spacing:2px;margin-bottom:14px}.form-heading h2{font-size:25px;line-height:1.3;letter-spacing:-.7px;font-weight:650;margin:0 0 10px}.form-heading>p{font-size:12px;line-height:1.7;color:var(--muted);margin:0 0 32px}.login-form{display:flex;flex-direction:column;gap:22px}.field-group label{display:block;font-size:12px;font-weight:600;margin-bottom:9px}.input-wrap{position:relative;display:flex;align-items:center}.input-wrap>svg{position:absolute;left:16px;width:18px;height:18px;pointer-events:none;color:#8a9794}.input-wrap input{display:block;width:100%;height:52px;padding:0 46px 0 44px;font-size:13px;color:var(--ink);background:#fcfdfb;border:1px solid #dce3de;border-radius:9px;outline:none;transition:border-color .15s,box-shadow .15s}.input-wrap input::placeholder{color:#9aa49f;font-weight:400}.input-wrap input:focus{border-color:#537f78;box-shadow:0 0 0 3px #537f7815;background:#fff}.input-wrap input[aria-invalid=true]{border-color:#b96b62}.login-password-toggle{position:absolute;right:5px;top:5px;width:42px;height:42px;display:grid;place-items:center;border:0;background:transparent;color:#7a8b86;border-radius:6px;cursor:pointer}.login-password-toggle svg{width:19px;height:19px}.eye-strike{display:none}.login-password-toggle[aria-pressed=true] .eye-strike{display:block}.login-password-toggle:hover{background:#edf2ed;color:var(--accent)}
.login-submit{display:flex;align-items:center;justify-content:center;gap:18px;min-height:52px;padding:14px 20px;margin-top:4px;border:1px solid var(--accent);border-radius:9px;background:var(--accent);color:#fff;font-size:13px;font-weight:600;cursor:pointer;box-shadow:0 5px 12px #163e4317;transition:background .15s,transform .15s}.login-submit svg{width:18px;height:18px}.login-submit:hover{background:#22535a}.login-submit:active{transform:translateY(1px)}.login-submit:disabled{opacity:.7;cursor:wait}.login-submit[aria-busy=true] svg{animation:login-pulse 1s ease-in-out infinite alternate}.login-help{display:flex;gap:10px;align-items:flex-start;margin-top:30px;padding-top:22px;border-top:1px solid #edf0eb}.login-help>svg{width:16px;height:16px;color:#94a29b;flex-shrink:0;margin-top:2px}.login-help p{font-size:11px;line-height:1.8;margin:0;color:#566c62;font-weight:600}.login-help p>span{font-weight:400;color:#8b9791}
.login-notice,.login-error{padding:13px 15px;border-radius:9px;font-size:12px;line-height:1.7;margin-bottom:22px}.login-notice{background:#f0f5f1;border:1px solid #dbe8dd;color:#335b43}.login-notice p{margin:4px 0}.session-actions{display:flex;gap:16px;flex-wrap:wrap;margin-top:8px}.session-actions a{font-size:11px;text-underline-offset:3px}.login-error{color:#8f3834;background:#fcf1ee;border:1px solid #efd6d0}
.node-login-footer{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;text-align:center;color:#86918a;font-size:10px;line-height:1.8;padding:16px 24px 26px}.node-login-footer strong{font-weight:600;color:#5d7064}.footer-divider{padding:0 6px;color:#bcc4bc}:focus-visible{outline:3px solid #b99b57;outline-offset:4px}
@keyframes login-pulse{from{opacity:.3}to{opacity:1}}
@media(min-width:1400px){.login-main{padding-top:24px;padding-bottom:48px}}
@media(max-width:900px){.login-masthead{width:calc(100% - 48px);padding:24px 0}.login-story{padding:32px;min-height:550px}.story-body h1{font-size:35px}.login-form-panel{padding:40px 30px}}
@media(max-width:680px){.login-masthead{width:calc(100% - 40px);padding:22px 0}.login-wordmark{font-size:13px;gap:9px}.login-symbol{width:30px;height:34px}.login-level{font-size:11px;padding:7px 10px}.login-main{padding:12px 20px 24px}.login-frame{max-width:440px;grid-template-columns:1fr;border-radius:18px}.login-story{min-height:auto;padding:25px 26px 23px}.story-top{font-size:9px;letter-spacing:1.6px}.story-body{margin:23px 0 0}.story-number,.story-body p,.story-school{display:none}.story-body h1{font-size:29px;margin:0;line-height:1.25;letter-spacing:-.5px}.story-body h1 br{display:none}.story-body h1 em{display:block}.story-orbit{width:250px;height:250px;bottom:-210px;right:-80px}.login-form-panel{padding:30px 26px}.form-heading h2{font-size:23px}.form-heading>p{margin-bottom:26px}.login-form{gap:20px}.login-help{margin-top:25px}.node-login-footer{font-size:10px;padding-bottom:22px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* Compact login: a single, focused card at every screen size. */
.login-masthead{width:min(420px,calc(100% - 40px));padding:28px 0 16px}
.login-main{flex:0;padding:12px 20px 20px}
.node-login{justify-content:center}
.login-frame{width:100%;max-width:420px;grid-template-columns:minmax(0,1fr);border-radius:16px;box-shadow:0 16px 48px -24px #243d4130}
.login-form-panel{padding:34px 30px 28px}
.form-eyebrow{font-size:9px;margin-bottom:12px}
.form-heading h2{font-size:24px}
.form-heading>p{margin-bottom:26px}
.login-form{gap:20px}
.login-help{margin-top:24px;padding-top:20px}
.node-login-footer{padding:4px 20px 28px;max-width:480px;align-self:center;font-size:10px}
@media(max-width:480px){.login-form-panel{padding:28px 24px 24px}.form-heading h2{font-size:22px}.login-masthead{padding-top:24px}.login-wordmark{font-size:13px}.login-level{font-size:11px}}
@media(max-height:700px){.node-login{justify-content:flex-start}.login-masthead{padding-top:20px}.login-form-panel{padding-top:26px;padding-bottom:24px}}
