.login-page{background:#090f1d;min-height:100svh;color:#f3f6fa;position:relative;isolation:isolate;--login-muted:#c3ccd8}
.login-art{position:fixed;z-index:-2;inset:0;background:#090f1d url('/login-scene.webp') center bottom/cover no-repeat;pointer-events:none}
.login-art:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,10,22,.75) 0%,rgba(5,10,22,.42) 48%,rgba(5,10,22,.05) 80%),linear-gradient(180deg,rgba(5,10,22,.45),transparent 65%)}
.login-page header{height:auto;min-height:84px;position:relative;border:0;padding:20px 36px;flex-wrap:wrap;gap:16px}
.login-page .brand{color:#f3f6fa}.login-page .tag{color:#c3ccd8;border-color:#69758b}
.login-page .display-menu{margin-left:auto}.login-page .display-panel{color:var(--text);z-index:10}
.login-content{max-width:650px;margin:clamp(20px,8vh,100px) 0 40px clamp(24px,9vw,170px);padding:30px;width:calc(100% - 48px)}
.login-content .eyebrow{color:#b3ddd0;font-size:.75rem;font-weight:650;letter-spacing:.17em;margin-bottom:22px}
.login-content h1{font-family:system-ui,sans-serif;font-size:clamp(2.2rem,4.3vw,4rem);font-weight:650;line-height:1.08;letter-spacing:-.045em;margin:0 0 24px}
.login-content>p{font-size:1rem;max-width:440px;color:var(--login-muted);line-height:1.7}
.login-actions{max-width:360px;margin:32px 0 20px}
/* Google's dark sign-in button: near-black fill, grey border, light text and the four-colour G. */
.google-button{display:flex;align-items:center;justify-content:center;width:100%;min-height:54px;background:#131314;color:#e3e3e3;border:1px solid #8e918f;border-radius:12px;font-weight:650;box-shadow:0 6px 22px #0003;gap:12px}
.google-button:before{content:"";width:20px;height:20px;flex:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath fill='%23EA4335' d='M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z'/%3E%3Cpath fill='%234285F4' d='M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z'/%3E%3Cpath fill='%23FBBC05' d='M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z'/%3E%3Cpath fill='%2334A853' d='M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z'/%3E%3C/svg%3E") center/contain no-repeat}.google-button:hover{background:#1f2021;border-color:#a8aaa8}.google-button:disabled{opacity:.65;cursor:wait}
.login-content #status{font-size:.8125rem;color:var(--login-muted);line-height:1.5;margin:16px 0;min-height:24px}
.login-content .privacy-note{font-size:.75rem;color:var(--login-muted);line-height:1.65;margin-bottom:22px}
.login-content .student-link{color:#c2ebdf;font-size:.875rem;text-decoration:underline;text-underline-offset:4px}
.login-page button:focus-visible,.login-page a:focus-visible,.login-page summary:focus-visible{outline:3px solid #a3e9d5;outline-offset:5px}
[data-theme=light] .login-page{color:#172432;--login-muted:#33475d;background:#e7eef4}
[data-theme=light] .login-art:after{background:linear-gradient(90deg,rgba(241,247,251,.98) 0%,rgba(241,247,251,.91) 36%,rgba(241,247,251,.18) 76%)}
[data-theme=light] .login-page .brand{color:#172432}[data-theme=light] .login-page .tag{color:#33475d;border-color:#a8b8c7}
[data-theme=light] .login-content .eyebrow,[data-theme=light] .login-content .student-link{color:#205748}
@media(min-width:1800px){.login-art{background-size:cover}}
@media(max-width:700px){.login-page header{padding:18px 22px}.login-page .tag{display:none}.login-content{margin:28px 0 320px 0;padding:24px;width:100%;max-width:550px}.login-content h1{font-size:2.5rem}.login-art{background-size:auto 60svh;background-position:64% bottom}.login-art:after{background:linear-gradient(180deg,#090f1d 25%,rgba(9,15,29,.87) 48%,rgba(9,15,29,.1) 82%)}[data-theme=light] .login-art{background-color:#e7eef4}[data-theme=light] .login-art:after{background:linear-gradient(180deg,#e7eef4 25%,rgba(231,238,244,.95) 48%,rgba(231,238,244,.1) 82%)}}
@media(prefers-reduced-motion:reduce){.login-page *{scroll-behavior:auto;animation:none;transition:none}}
.entry-options{display:grid;gap:14px;max-width:440px;margin:30px 0 18px}.entry-choice{display:block;padding:17px 20px;border:1px solid #c3ccd866;border-radius:12px;background:#101b2abf;text-decoration:none;color:#f3f6fa;box-shadow:0 6px 22px #0002}.entry-choice strong{display:block;font-size:1.1rem;margin-bottom:3px}.entry-choice>span{font-size:.875rem;color:#c3ccd8}.entry-choice:hover{border-color:#b3ddd0;background:#192b3be6}.entry-choice:first-child{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green),0 6px 22px #0002}.entry-choice:first-child:hover{border-color:var(--green)}.login-content .entry-status{font-size:.8125rem;min-height:24px}[data-theme=light] .entry-choice{background:#ffffffd9;color:#172432;border-color:#a8b8c7}[data-theme=light] .entry-choice>span{color:#33475d}[data-theme=light] .entry-choice:hover{background:#fff;border-color:#205748}

.renewal-page{min-height:0;background:var(--bg);color:var(--text);--login-muted:var(--muted)}.renewal-page .login-art,.renewal-page header,.renewal-page footer,.renewal-page .student-link,.renewal-page .privacy-note{display:none}.renewal-page .login-content{margin:0;padding:20px;width:100%;max-width:none}.renewal-page .login-content h1{font-size:1.6rem;line-height:1.2}.renewal-page .login-content>p{font-size:1rem}.renewal-page .login-actions{margin:24px 0;max-width:none}.renewal-page .login-content #status{font-size:1rem}
