:root { color-scheme: dark; font-family: Georgia, 'Times New Roman', serif; }
* { box-sizing: border-box; }
body { min-height: 100vh; margin: 0; display: grid; place-items: center; padding: 1.5rem; color: #f7ead4; background: radial-gradient(circle at 50% 15%, #604330, #211b1a 65%); }
.card { width: min(100%, 28rem); padding: 2.5rem; border: 1px solid #b3945e; border-radius: 1rem; background: #282222; box-shadow: 0 1.5rem 4rem #0008; }
.crest { margin-bottom: .7rem; color: #d7b77a; font-size: 2.5rem; text-align: center; }
.eyebrow { margin: 0; color: #d7b77a; font: .75rem/1.5 system-ui, sans-serif; letter-spacing: .18em; text-align: center; text-transform: uppercase; }
h1 { margin: .35rem 0 1rem; font-size: 2rem; text-align: center; }
.intro { margin: 0 0 1.8rem; line-height: 1.5; text-align: center; }
label { display: block; margin: 1rem 0 .4rem; font: 600 .9rem system-ui, sans-serif; }
input { width: 100%; padding: .85rem; border: 1px solid #a89983; border-radius: .4rem; color: #fff; background: #191717; font: 1rem system-ui, sans-serif; }
input:focus-visible, button:focus-visible { outline: 3px solid #e5bb77; outline-offset: 2px; }
button { width: 100%; margin-top: 1.5rem; padding: .9rem; border: 0; border-radius: .4rem; color: #231b15; background: #e2b879; font: 700 1rem system-ui, sans-serif; cursor: pointer; }
button:hover { background: #f2cc91; }
button:disabled { opacity: .65; cursor: wait; }
.error { color: #ffb9ad; font: .9rem/1.4 system-ui, sans-serif; }
body {
  color: #f5eee1;
  background: linear-gradient(180deg, #0b10156b, #0b1015df), url('/_access/castle.webp') center / cover fixed, #0b1015;
  font-family: system-ui, sans-serif;
}
.card {
  padding: clamp(1.5rem, 6vw, 2.5rem);
  border: 1px solid #eec78066;
  border-radius: 1.25rem;
  background: #101a22e8;
  backdrop-filter: blur(18px);
  box-shadow: 0 1.5rem 4rem #0009;
}
h1 { font-family: Georgia, 'Iowan Old Style', serif; font-weight: 600; letter-spacing: -.025em; }
.crest, .eyebrow { color: #eec780; }
.intro { color: #d2c7b5; font-size: .95rem; }
label { color: #d2c7b5; }
input { min-height: 3rem; border-color: #7e898966; border-radius: .8rem; background: #0b141bbf; }
button { min-height: 3.4rem; border-radius: .85rem; background: linear-gradient(115deg, #ffe1a1, #dda54d); color: #241a0c; }
button:hover { background: linear-gradient(115deg, #ffe9b8, #e6b260); }
.password-label { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-top: 1rem; }
.password-label label { margin: 0; }
.text-button { width: auto; min-height: 2.75rem; margin: 0; padding: .45rem .2rem; background: transparent; color: #eec780; font: 600 .85rem system-ui, sans-serif; }
.text-button:hover { background: transparent; color: #ffe9b8; text-decoration: underline; }
.input-hint { margin: .6rem 0 0; color: #eec780; font: .85rem/1.4 system-ui, sans-serif; }
