.account-shell { --paper: #f6f4ee; --ink: #30392f; --olive: #526348; --line: #d8d8cc; --muted: #68705e; display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1fr); max-width: 1440px; margin: auto; background: var(--paper); color: var(--ink); }
.account-story { position: relative; min-height: 740px; overflow: hidden; }
.account-story > img { position: absolute; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.account-story::after { content: ''; position: absolute; inset: 45% 0 0; background: linear-gradient(transparent, rgba(26,38,25,.7)); }
.account-story-copy { position: absolute; z-index: 1; bottom: 64px; left: 9%; right: 9%; color: white; }
.account-story-copy p { font: 400 clamp(28px, 2.4vw, 38px)/1.7 'Noto Serif TC', serif; margin-bottom: 16px; }
.account-story-copy span { font-size: 16px; line-height: 1.8; }
.account-panel { padding: 48px clamp(28px, 4vw, 68px) 56px; align-self: center; }
.account-logo { display: inline-block; margin-bottom: 24px; }
.account-logo img { width: 228px; height: 76px; object-fit: contain; }
.account-eyebrow { color: var(--olive); font-size: 14px; letter-spacing: .12em; margin-bottom: 12px; }
.account-panel h1 { font: 400 clamp(28px, 2.5vw, 38px)/1.5 'Noto Serif TC', serif; margin-bottom: 14px; }
.account-intro { font-size: 16px; line-height: 1.9; color: var(--muted); margin-bottom: 30px; }
.account-form { display: grid; gap: 20px; }
.account-form fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.account-form legend { width: 100%; font-size: 18px; padding: 0 0 12px; margin-bottom: 16px; border-bottom: 1px solid var(--line); }
.account-form legend span { font-size: 13px; color: var(--muted); margin-left: 12px; }
.account-hint { font-size: 14px; line-height: 1.8; color: var(--muted); margin-bottom: 16px; }
.account-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.account-wide { grid-column: 1 / -1; }
.account-form label { display: block; font-size: 16px; margin-bottom: 8px; }
.account-form label span { font-size: 12px; color: var(--muted); margin-left: 5px; }
.account-form input:not([type=hidden]):not([type=checkbox]) { width: 100%; min-height: 49px; border: 1px solid var(--line); background: #fffefa; border-radius: 0; padding: 12px 14px; font: inherit; font-size: 16px; color: var(--ink); }
.account-form input::placeholder { color: #77796d; font-size: 14px; }
.account-form input:focus-visible, .account-shell a:focus-visible, .account-shell button:focus-visible { outline: 2px solid var(--olive); outline-offset: 3px; }
.account-form .account-remember { display: flex; gap: 9px; align-items: center; font-size: 14px; }
.account-remember input { width: 17px; height: 17px; accent-color: var(--olive); }
.account-button { display: block; width: 100%; background: var(--olive); color: white; padding: 16px 20px; text-align: center; font-size: 16px; border: 1px solid var(--olive); cursor: pointer; transition: background .2s; }
.account-button:hover { background: #35482d; }
.account-switch { margin: 24px 0 16px; font-size: 16px; text-align: center; }
.account-switch a, .account-secondary { text-decoration: underline; text-underline-offset: 5px; color: var(--olive); }
.account-secondary { display: block; text-align: center; font-size: 14px; line-height: 1.8; }
.account-alert { padding: 14px 16px; margin: 16px 0; border-left: 3px solid #a34c38; background: #fbebe4; color: #7e3426; font-size: 15px; line-height: 1.8; }
.account-alert.validation-summary-valid { display: none; }
.account-notice { background: #e9ede5; border-color: #526348; color: #35482d; }
.account-form .field-validation-error { display: block; margin-top: 6px; color: #9b3927; font-size: 14px; }
.account-form .input-validation-error { border-color: #9b3927 !important; }
.account-message { display: block; max-width: 720px; margin: 64px auto; }
.account-message .account-panel { padding: 44px 48px; }
@media (max-width: 900px) { .account-shell { grid-template-columns: .75fr 1fr; } .account-panel { padding: 32px 28px; } .account-fields { grid-template-columns: 1fr; } }
@media (max-width: 640px) { .account-shell { display: flex; flex-direction: column; } .account-story { width: 100%; min-height: 220px; } .account-story > img { object-position: center top; } .account-story-copy { bottom: 20px; left: 24px; } .account-story-copy p { font-size: 25px; margin-bottom: 4px; } .account-story-copy span { font-size: 14px; } .account-panel { width: 100%; padding: 30px 24px 44px; } .account-logo { margin-bottom: 18px; } .account-logo img { width: 204px; height: 68px; } .account-message { margin: 24px 16px; width: auto; } .account-message .account-panel { padding: 28px 24px; } }
@media (prefers-reduced-motion: reduce) { .account-button { transition: none; } }
