@font-face { font-family: "Bodoni Moda"; src: url("/public/assets/fonts/BodoniModa.woff2") format("woff2"); font-display: swap; }

:root { color-scheme: dark; --black: #080706; --panel: #100f0d; --gold: #c7a45f; --line: rgba(199,164,95,.34); --muted: rgba(255,255,255,.68); }
* { box-sizing: border-box; }
html, body { min-height: 100%; }
body { margin: 0; background: var(--black); color: #fff; font-family: Arial, Helvetica, sans-serif; }
.access-shell { min-height: 100vh; min-height: 100svh; display: grid; place-items: center; padding: 1.5rem; background: radial-gradient(circle at 50% 15%, rgba(199,164,95,.09), transparent 34rem), var(--black); }
.access-card { width: min(100%, 620px); padding: clamp(2rem, 6vw, 4.5rem); border: 1px solid var(--line); background: rgba(16,15,13,.92); box-shadow: 0 32px 90px rgba(0,0,0,.45); }
.access-kicker { margin: 0; color: var(--gold); font-size: .7rem; letter-spacing: .22em; }
h1 { margin: .8rem 0 1.25rem; font: 400 clamp(3rem, 10vw, 5.6rem)/.94 "Bodoni Moda", Georgia, serif; letter-spacing: -.025em; }
.access-notice { margin: 0 0 2rem; color: var(--muted); font-size: .98rem; line-height: 1.75; }
form { display: grid; gap: 1.25rem; }
.access-confirm { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: .85rem; align-items: start; color: rgba(255,255,255,.85); font-size: .9rem; line-height: 1.5; cursor: pointer; }
.access-confirm input { width: 20px; height: 20px; margin: .05rem 0 0; accent-color: var(--gold); }
.access-password { display: grid; gap: .55rem; color: rgba(255,255,255,.72); font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; }
.access-password input { width: 100%; min-height: 54px; padding: .85rem 1rem; border: 1px solid rgba(255,255,255,.24); border-radius: 0; background: #090806; color: #fff; font: 1rem Arial, Helvetica, sans-serif; }
.access-password input:focus, .access-confirm input:focus-visible, button:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
.access-error { min-height: 1.25rem; margin: -.35rem 0 0; color: #eab3a8; font-size: .84rem; }
button { min-height: 54px; border: 1px solid var(--gold); background: var(--gold); color: #14110c; font: 700 .76rem Arial, Helvetica, sans-serif; letter-spacing: .13em; text-transform: uppercase; cursor: pointer; transition: background .2s, color .2s; }
button:hover { background: transparent; color: #fff; }
button:disabled { cursor: wait; opacity: .62; }
@media (max-width: 560px) { .access-shell { place-items: start center; padding: 1rem; } .access-card { margin-top: 4vh; padding: 2rem 1.4rem; } h1 { font-size: clamp(2.8rem, 15vw, 4rem); } }
@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; transition: none !important; } }
