:root {
  color-scheme: light;
  --ink: #1d2428;
  --mist: #dfe6e4;
  --paper: #f7f6f1;
  --signal: #cf6848;
  --line: #b7c0bd;
}

* { box-sizing: border-box; }

body { margin: 0; font-family: Georgia, 'Times New Roman', serif; background: var(--paper); color: var(--ink); }

.access-page { min-height: 100svh; display: grid; place-items: center; padding: 24px; background-color: var(--mist); background-image: linear-gradient(90deg, rgba(29,36,40,.045) 1px, transparent 1px), linear-gradient(rgba(29,36,40,.045) 1px, transparent 1px); background-size: 28px 28px; }

.access-shell { width: min(100%, 560px); }

.wordmark { margin: 0 0 24px; font-family: 'Trebuchet MS', sans-serif; font-size: 18px; font-weight: 800; letter-spacing: 3px; }
.wordmark span { color: var(--signal); }

.access-panel { padding: clamp(28px, 6vw, 52px); border: 1px solid var(--ink); background: rgba(247,246,241,.94); box-shadow: 9px 9px 0 rgba(29,36,40,.12); }
.eyebrow { margin: 0 0 14px; color: var(--signal); font-family: 'Trebuchet MS', sans-serif; font-size: 11px; font-weight: 800; letter-spacing: 2px; }
h1 { margin: 0; font-size: clamp(30px, 7vw, 48px); line-height: 1.08; font-weight: 600; }
.access-copy { margin: 20px 0 32px; max-width: 34ch; color: #4d585a; line-height: 1.7; }
.access-form label { display: block; margin-bottom: 8px; font-family: 'Trebuchet MS', sans-serif; font-size: 13px; font-weight: 700; }
.access-input-row { display: flex; gap: 8px; }
input { min-width: 0; width: 100%; border: 1px solid var(--ink); border-radius: 0; padding: 12px 13px; background: white; color: var(--ink); font: inherit; }
button { border: 1px solid var(--ink); border-radius: 0; padding: 12px 17px; background: var(--ink); color: white; font: 700 13px 'Trebuchet MS', sans-serif; cursor: pointer; }
button:hover, button:focus-visible { background: var(--signal); }
input:focus-visible, button:focus-visible { outline: 3px solid rgba(207,104,72,.4); outline-offset: 2px; }
.form-message { min-height: 1.4em; margin: 10px 0 0; color: #9f3e2f; font-size: 14px; }

@media (max-width: 480px) { .access-page { padding: 18px; } .access-input-row { display: grid; grid-template-columns: 1fr; } .access-input-row button { min-height: 44px; } }
