.login-page {
	min-height: 100vh;
	background: linear-gradient(135deg, var(--paper), var(--cream));
}
.login-header { position: static; }
.back-home { color: var(--navy); font-size: 14px; font-weight: 700; text-decoration: none; }
.login-main {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	gap: clamp(40px, 7vw, 110px);
	max-width: 1200px;
	margin: auto;
	padding: 64px 32px 48px;
}
.login-story h1 {
	font: 700 clamp(40px, 4.5vw, 64px)/1.08 Georgia, "Times New Roman", serif;
	letter-spacing: -.035em;
	color: var(--navy);
	margin: 0 0 22px;
}
.login-story h1 em { color: #a56800; font-style: normal; }
.login-lead { color: #39515d; font-size: 18px; max-width: 470px; }
.login-photo {
	height: 200px;
	margin-top: 28px;
	border-radius: var(--radius);
	background: url('hero.png') right center / auto 360% no-repeat;
}
.login-powered { font-size: 14px; color: #39515d; margin: 18px 0 0; }
.login-card {
	background: white;
	border: 1px solid var(--line);
	border-radius: 28px;
	padding: clamp(26px, 4vw, 48px);
	box-shadow: var(--shadow);
}
.login-page .eyebrow { color: #996200; font-size: 12px; }
.login-card h2 { font: 700 42px/1.15 Georgia, serif; color: var(--navy); margin: 0 0 12px; letter-spacing: -.025em; }
.login-intro { color: #53656f; margin: 0 0 30px; }
.login-card label { display: block; font-size: 14px; font-weight: 700; color: var(--navy); }
.login-card input {
	display: block;
	width: 100%;
	min-height: 52px;
	border: 1px solid #9cabb2;
	border-radius: 12px;
	background: var(--paper);
	font: inherit;
	color: var(--ink);
	padding: 12px 14px;
	margin: 8px 0 22px;
}
.login-card input::placeholder { color: #60717a; }
.login-page :focus-visible { outline: 3px solid var(--blue); outline-offset: 4px; }
.password-label { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.login-card a { color: var(--blue); font-weight: 700; text-underline-offset: 3px; }
.password-label a { font-size: 13px; }
.login-submit { width: 100%; border: 0; gap: 18px; font: inherit; font-weight: 800; cursor: pointer; }
.login-submit:disabled { opacity: .65; cursor: wait; }
#login-error { color: #9c2525; background: #fff0ed; border: 1px solid #ebbbb3; border-radius: 10px; padding: 12px; font-size: 14px; }
.login-register { text-align: center; border-top: 1px solid var(--line); margin: 30px 0 0; padding-top: 24px; font-size: 14px; color: #53656f; }
.login-register a { display: inline-block; margin-top: 5px; }
.login-page .login-footer { display: block; background: transparent; color: #53656f; text-align: center; padding: 16px 24px 30px; font-size: 13px; }
@media (max-width: 760px) {
	.login-main { grid-template-columns: 1fr; max-width: 560px; gap: 30px; padding: 36px 20px 20px; }
	.login-photo, .login-powered { display: none; }
	.login-story h1 { font-size: 40px; }
	.login-lead { margin-bottom: 0; font-size: 16px; }
	.login-card h2 { font-size: 36px; }
	.login-header { height: auto; min-height: 82px; gap: 16px; padding: 16px 20px; }
	.back-home { font-size: 12px; }
}
@media (max-width: 380px) {
	.login-header .brand strong { font-size: 17px; }
	.login-header .brand-mark { width: 38px; height: 38px; }
	.password-label { flex-wrap: wrap; gap: 4px; }
}
