@font-face{font-family:Inter;src:url('assets/fonts/inter-400.woff') format('woff');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Inter;src:url('assets/fonts/inter-700.woff') format('woff');font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:Inter;src:url('assets/fonts/inter-800.woff') format('woff');font-style:normal;font-weight:800;font-display:swap}
:root{color-scheme:light;--ink:#061c40;--muted:#64718b;--primary:#064766;--primary-hover:#033a56;--link:#007a9e;--border:#becbdd;--focus:#007a9e;--error:#ad2637;--surface:#fff;--font:Inter,Arial,sans-serif;--radius:8px}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--surface)}
body{font-family:var(--font);color:var(--ink);-webkit-font-smoothing:antialiased}
button,input{font:inherit}
button,a,input{-webkit-tap-highlight-color:transparent}
button,a{touch-action:manipulation}
button{cursor:pointer}
[hidden]{display:none!important}
:focus-visible{outline:3px solid var(--focus);outline-offset:4px}
.skip-link{position:fixed;left:16px;top:-70px;z-index:10;background:var(--ink);color:white;padding:12px 18px;border-radius:4px}
.skip-link:focus{top:16px}
.login-layout{display:grid;grid-template-columns:61.8% 38.2%;min-height:100svh}
.hero{position:relative;overflow:hidden;background:#eaf8fc;height:100svh;min-height:660px;display:grid;place-items:center;border-right:1px solid #d9edf3}
.hero-scene{position:relative;width:100%;height:100%;isolation:isolate}
.hero-art{position:absolute;inset:0;z-index:-1}
.hero-art img{display:block;width:100%;height:100%;object-fit:cover}
.hero-copy{position:absolute;top:4.7%;left:6.8%;right:4%}
.campus-label{font-size:clamp(12px,1.14vw,19px);font-weight:700;letter-spacing:.24em;line-height:1.5;margin:0 0 1.05vw}
.hero h1{font-size:clamp(42px,5.5vw,102px);font-weight:800;letter-spacing:-.055em;line-height:.99;margin:0 0 .8vw}
.hero-subtitle{font-size:clamp(14px,1.64vw,28px);line-height:1.4;letter-spacing:-.035em;color:#556685;margin:0}
.benefits{position:absolute;bottom:5.5%;left:19.5%;right:18%;display:flex;align-items:center;justify-content:space-between;list-style:none;margin:0;padding:0;gap:1.3vw}
.benefits li{display:flex;align-items:center;gap:1.05vw;white-space:nowrap;font-size:clamp(12px,1.04vw,19px)}
.benefits li+li{border-left:1px solid #aac2d0;padding-left:1.7vw}
.benefits svg{width:clamp(23px,2.45vw,44px);height:clamp(30px,2.95vw,50px);fill:none;stroke:#066184;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.login-panel{position:relative;min-width:0;min-height:100svh;display:flex;align-items:center;justify-content:center;padding:90px clamp(32px,4.2vw,80px) 110px;background:#fff}
.form-shell{width:100%;max-width:490px;transform:translateY(27px)}
.form-heading{margin-bottom:46px}
.form-heading h2{font-weight:700;font-size:clamp(28px,2.62vw,44px);letter-spacing:-.044em;line-height:1.16;margin:0 0 8px;white-space:nowrap}
.form-heading p{color:var(--muted);font-size:clamp(17px,1.4vw,24px);line-height:1.5;margin:0;letter-spacing:-.025em}
.field-group{margin-bottom:32px}
label{display:block;font-size:clamp(14px,1.17vw,19px);line-height:1.5;font-weight:400;margin-bottom:8px;letter-spacing:-.025em}
input{width:100%;height:64px;border:1.3px solid var(--border);border-radius:var(--radius);background:#fff;padding:0 20px;color:var(--ink);font-size:clamp(15px,1.18vw,20px);line-height:1.3;transition:border-color .15s,box-shadow .15s}
input::placeholder{color:#78869e;opacity:1}
input:hover{border-color:#98acc3}
input:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 3px #007a9e19}
input[aria-invalid=true]{border-color:var(--error)}
.label-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.label-row a{font-size:clamp(13px,1.12vw,18px);line-height:1.5;color:var(--link);text-underline-offset:2px;letter-spacing:-.035em}
.password-field{position:relative}
.password-field input{padding-right:58px}
.visibility-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:44px;height:44px;background:transparent;border:0;border-radius:4px;color:var(--ink);display:grid;place-items:center}
.visibility-toggle:hover{background:#edf6f9}
.visibility-toggle svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.eye-slash{display:none}
.visibility-toggle[aria-pressed=true] .eye-slash{display:block}
.field-error,.caps-lock{margin:8px 0 0;font-size:13px;line-height:1.5}
.field-error{color:var(--error)}
.caps-lock{color:#775300}
.sign-in{width:100%;min-height:64px;border:0;border-radius:var(--radius);background:var(--primary);color:#fff;font-size:clamp(19px,1.7vw,28px);font-weight:400;display:flex;align-items:center;justify-content:center;gap:12px;transition:background .15s;margin-top:38px}
.sign-in:hover{background:var(--primary-hover)}
.sign-in:disabled{opacity:.72;cursor:wait}
.spinner{width:19px;height:19px;border:2px solid #ffffff66;border-top-color:white;border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.form-message{font-size:14px;line-height:1.6;padding:12px 14px;border:1px solid #f0cbd1;border-radius:6px;background:#fff7f8;color:#842335;margin:18px 0 0}
.powered-by{position:absolute;left:24px;right:24px;bottom:5.2vh;display:flex;align-items:center;justify-content:center;gap:18px;white-space:nowrap}
.powered-by span{color:var(--muted);font-size:clamp(12px,1.05vw,18px);letter-spacing:-.025em}
.powered-by img{display:block;width:clamp(145px,15.7vw,250px);height:auto}
dialog{border:1px solid #dbe5eb;border-radius:14px;padding:30px;max-width:420px;width:calc(100% - 40px);color:var(--ink);box-shadow:0 20px 70px #03223830}
dialog::backdrop{background:#061c4080}
dialog h2{margin:0 0 12px;font-size:24px;letter-spacing:-.04em}
dialog p{color:var(--muted);line-height:1.6;margin:0 0 24px}
.dialog-close{border:0;border-radius:7px;background:var(--primary);color:white;padding:12px 25px;font-weight:700;min-height:44px}
@media(min-width:1800px){.form-shell{max-width:530px}.login-panel{padding-left:5vw;padding-right:5vw}.form-heading{margin-bottom:48px}.field-group{margin-bottom:34px}input,.sign-in{height:70px}.sign-in{margin-top:40px}}
@media(min-width:901px) and (max-height:720px){.login-panel{padding-top:42px;padding-bottom:88px}.form-shell{transform:none}.form-heading{margin-bottom:26px}.field-group{margin-bottom:21px}input{height:52px}.sign-in{min-height:52px;margin-top:26px}.powered-by{bottom:25px}}
@media(min-width:901px) and (max-width:1150px){.login-layout{grid-template-columns:56% 44%}.login-panel{padding-left:30px;padding-right:30px}.hero h1{font-size:5.2vw}.hero-subtitle{font-size:1.46vw}.benefits{left:10%;right:10%}.form-heading h2{font-size:28px}.form-heading{margin-bottom:34px}.form-shell{transform:none}}
@media(max-width:900px){.login-layout{grid-template-columns:minmax(0,1fr);min-height:100svh}.hero{height:auto;min-height:0;border-right:0;border-bottom:1px solid #d9edf3}.hero-scene{height:auto;aspect-ratio:1;max-width:620px;margin:0 auto}.hero-copy{top:5%;left:6.5%}.campus-label{font-size:12px;margin-bottom:10px}.hero h1{font-size:clamp(36px,8.1vw,58px);margin-bottom:8px;letter-spacing:-.052em}.hero-subtitle{font-size:clamp(12px,2.75vw,18px);letter-spacing:-.04em}.benefits{left:12%;right:12%;bottom:5.4%;gap:14px}.benefits li{font-size:12px;gap:9px}.benefits li+li{padding-left:14px}.benefits svg{width:25px;height:31px}.login-panel{min-height:0;padding:42px 24px 35px;display:block}.form-shell{max-width:480px;margin:0 auto;transform:none}.form-heading{margin-bottom:30px}.form-heading h2{font-size:29px;white-space:normal;letter-spacing:-.04em}.form-heading p{font-size:17px}.field-group{margin-bottom:24px}label{font-size:14px}.label-row a{font-size:13px}input{height:56px;font-size:16px;padding-left:16px}.sign-in{min-height:56px;margin-top:29px;font-size:19px}.powered-by{position:static;margin-top:40px;gap:14px}.powered-by span{font-size:12px}.powered-by img{width:176px}}
@media(max-width:360px){.hero h1{font-size:33px}.hero-subtitle{font-size:11px}.campus-label{font-size:10px;letter-spacing:.2em}.benefits{left:8%;right:8%;gap:10px}.benefits li{gap:6px;font-size:11px}.benefits li+li{padding-left:10px}.benefits svg{width:22px;height:28px}.login-panel{padding-left:22px;padding-right:22px}.form-heading h2{font-size:27px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;transition:none!important;scroll-behavior:auto!important}}

.form-success{border-color:#b4d9c1;background:#f3fbf6;color:#21623b}

.recovery-description{color:var(--muted);font-size:15px;line-height:1.6;margin:0 0 28px}.back-to-login{text-align:center;margin:24px 0 0}.back-to-login a{color:var(--link);font-size:15px;text-underline-offset:3px}

/* NIFT password pages use a compact split card; the login layout stays intact. */
.recovery-split-page{background:#e9f6fa}
.recovery-split-page::before{content:"";position:fixed;inset:-18px;background:linear-gradient(#e5f8fc94,#e5f8fc94),url('assets/nift-water-artwork.webp') center 68%/cover;filter:blur(9px);pointer-events:none;z-index:0}
.recovery-split-page .login-layout{position:relative;z-index:1;width:calc(100% - 96px);max-width:1280px;min-height:0;margin:64px auto;grid-template-columns:47% 53%;background:#fff;border:1px solid #ffffffd9;border-radius:24px;overflow:hidden;box-shadow:0 22px 65px #0647661a}
.recovery-split-page .hero{height:auto;min-height:650px;border:0}
.recovery-split-page .hero-art img{object-position:center}
.recovery-split-page .hero-copy{top:6%;left:7.5%;right:7%}
.recovery-split-page .campus-label{font-size:12px;letter-spacing:.22em;margin-bottom:22px}
.recovery-split-page .hero h1{font-size:clamp(36px,3.7vw,58px);line-height:1.02;letter-spacing:-.05em}
.recovery-split-page .benefits{left:8%;right:8%;bottom:5%;gap:10px}
.recovery-split-page .benefits li{font-size:12px;gap:10px}
.recovery-split-page .benefits li+li{padding-left:16px}
.recovery-split-page .benefits svg{width:26px;height:34px}
.recovery-split-page .login-panel{min-height:650px;padding:64px 48px 128px;align-items:center}
.recovery-split-page .form-shell{max-width:490px;transform:none}
.recovery-split-page .form-heading{margin-bottom:42px}
.recovery-split-page .form-heading .recovery-eyebrow{font-size:12px;font-weight:700;letter-spacing:.23em;color:#087395;margin:0 0 20px}
.recovery-split-page .form-heading h2{font-size:clamp(30px,3vw,44px);line-height:1.15;white-space:normal;margin-bottom:16px}
.recovery-split-page .form-heading p{font-size:18px;line-height:1.55;max-width:420px}
.recovery-split-page label{font-size:15px;font-weight:700;margin-bottom:10px}
.recovery-split-page input:not([type=hidden]){height:58px;font-size:16px;padding-left:18px}
.recovery-split-page .field-group{margin-bottom:28px}
.recovery-split-page .sign-in{height:auto;min-height:58px;font-size:20px;margin-top:28px}
.recovery-split-page .back-to-login{text-align:left;margin-top:28px}
.recovery-split-page .back-to-login a{font-size:16px;text-decoration:none;display:inline-flex;align-items:center;gap:12px}
.recovery-split-page .back-to-login a:hover{text-decoration:underline}
.recovery-split-page .back-to-login span{font-size:24px;line-height:1}
.recovery-split-page .powered-by{bottom:40px;left:48px;right:48px;justify-content:flex-end;gap:12px}
.recovery-split-page .powered-by span{font-size:12px}
.recovery-split-page .powered-by img{width:200px}
@media(min-width:901px) and (max-width:1100px){.recovery-split-page .login-layout{width:calc(100% - 48px);grid-template-columns:43% 57%;margin:32px auto}.recovery-split-page .login-panel{padding-left:32px;padding-right:32px}.recovery-split-page .benefits{left:5%;right:5%;gap:6px}.recovery-split-page .benefits li{font-size:10px;gap:6px}.recovery-split-page .benefits li+li{padding-left:9px}}
@media(max-width:900px){.recovery-split-page .login-layout{width:calc(100% - 36px);max-width:580px;margin:24px auto;grid-template-columns:1fr;border-radius:20px}.recovery-split-page .hero{min-height:0;height:220px}.recovery-split-page .hero-scene{width:100%;height:220px;aspect-ratio:auto;max-width:none}.recovery-split-page .hero-art img{object-position:center 42%;opacity:.85}.recovery-split-page .hero-copy{top:24px;left:24px}.recovery-split-page .campus-label{font-size:10px;margin-bottom:12px}.recovery-split-page .hero h1{font-size:34px}.recovery-split-page .benefits{display:none}.recovery-split-page .login-panel{min-height:0;padding:32px 28px;display:block}.recovery-split-page .form-heading{margin-bottom:28px}.recovery-split-page .form-heading .recovery-eyebrow{font-size:10px;margin-bottom:14px}.recovery-split-page .form-heading h2{font-size:30px}.recovery-split-page .form-heading p{font-size:16px}.recovery-split-page .powered-by{position:static;margin-top:38px;justify-content:center;gap:10px}.recovery-split-page .powered-by img{width:166px}.recovery-split-page .powered-by span{font-size:11px}}
@media(max-width:360px){.recovery-split-page .login-layout{width:calc(100% - 24px);margin:16px auto}.recovery-split-page .login-panel{padding:28px 22px}.recovery-split-page .form-heading h2{font-size:27px}}

