:root { color-scheme:dark; --blue:#3E87FB; --light-blue:#7FB0FC; --muted:rgba(255,255,255,.6); }
* { box-sizing:border-box; }
body { margin:0; background:#0F1011; color:#FAFAFA; font-family:Inter,system-ui,sans-serif; font-weight:300; -webkit-font-smoothing:antialiased; }
a { color:inherit; }
[hidden] { display:none !important; }
::selection { background:rgba(62,135,251,.4); }
a:focus-visible, button:focus-visible, input:focus-visible, [tabindex]:focus-visible { outline:2px solid var(--light-blue); outline-offset:4px; }
.nav { max-width:1400px; margin:auto; padding:30px 40px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.brand { display:flex; align-items:center; gap:11px; text-decoration:none; }
.brand span { font:500 23px 'Playfair Display',Georgia,serif; }
.back-link, .eyebrow, label, legend, button, .home-button, footer { font-family:'Roboto Mono',monospace; }
.back-link { font-size:11px; text-transform:uppercase; letter-spacing:.4px; text-decoration:none; color:var(--muted); }
.back-link:hover, footer a:hover { color:#fff; }
.layout { max-width:1120px; margin:44px auto 90px; padding:0 32px; display:grid; grid-template-columns:1fr 1fr; align-items:start; gap:clamp(40px,7vw,100px); }
.intro { padding-top:28px; }
.eyebrow { font-size:10.5px; font-weight:500; text-transform:uppercase; letter-spacing:1.6px; line-height:1.8; color:var(--light-blue); margin:0 0 22px; }
.dot { display:inline-block; width:7px; height:7px; border-radius:50%; margin-right:8px; background:var(--blue); }
h1, h2 { font-family:Fraunces,Georgia,serif; font-weight:300; }
h1 { font-size:clamp(56px,6.8vw,88px); line-height:1.02; letter-spacing:-.025em; margin:0; }
h1 em { font-weight:300; }
.intro-copy { font-size:17px; line-height:1.75; color:var(--muted); margin:28px 0 32px; max-width:430px; }
.offer { border:1px solid rgba(62,135,251,.35); background:linear-gradient(180deg,rgba(62,135,251,.12),rgba(11,18,32,.5)); border-radius:24px; padding:28px; }
.offer .eyebrow { margin-bottom:14px; }
.price { font:300 48px/1.1 Fraunces,Georgia,serif; margin:0 0 16px; }
.price span { font:400 10.5px 'Roboto Mono',monospace; color:var(--muted); text-transform:uppercase; letter-spacing:1px; white-space:nowrap; }
.offer > p:not(.price):not(.eyebrow) { font-size:13px; line-height:1.7; color:var(--muted); }
.offer .count { margin:22px 0 12px; color:var(--light-blue) !important; font-family:'Roboto Mono',monospace; font-size:10.5px !important; }
.pips { display:flex; gap:3px; }
.pips span { flex:1; height:14px; border-radius:2.5px; background:rgba(255,255,255,.14); }
.note { margin:22px 0 0; font-size:12px; line-height:1.8; color:var(--muted); }
.form-card { border:1px solid rgba(255,255,255,.12); border-radius:24px; padding:34px; background:rgba(255,255,255,.035); }
.form-card .eyebrow { margin-bottom:12px; }
h2 { font-size:38px; line-height:1.1; margin:0; }
.form-copy { margin:14px 0 28px; font-size:14px; line-height:1.7; color:var(--muted); }
.field { margin-bottom:19px; }
.field label { display:block; margin-bottom:9px; font-size:10.5px; font-weight:500; text-transform:uppercase; letter-spacing:.6px; }
.field label span { color:var(--muted); font-weight:400; font-size:9px; }
.field input { width:100%; min-height:48px; border:1px solid rgba(255,255,255,.16); border-radius:8px; padding:12px 14px; font:400 16px Inter,system-ui,sans-serif; color:#fff; background:rgba(0,0,0,.16); }
.field input:hover { border-color:rgba(255,255,255,.3); }
.field input:focus { border-color:var(--blue); }
.reservation { margin:28px 0 0; padding:20px 18px 16px; border:1px solid rgba(62,135,251,.35); border-radius:12px; background:rgba(62,135,251,.055); }
.reservation legend { padding:0 6px; font-size:10.5px; text-transform:uppercase; letter-spacing:.5px; color:var(--light-blue); }
.checkbox-label { display:flex; align-items:flex-start; gap:11px; font:400 13px/1.6 Inter,system-ui,sans-serif; cursor:pointer; }
.checkbox-label input { accent-color:var(--blue); width:18px; height:18px; flex-shrink:0; margin:1px 0 0; }
.reservation p { margin:10px 0 0 29px; font-size:11px; line-height:1.7; color:var(--muted); }
.reservation .availability { color:var(--light-blue); }
.privacy-note { margin:22px 0; font-size:11px; line-height:1.8; color:var(--muted); }
.privacy-note a { text-underline-offset:3px; }
button, .home-button { display:flex; width:100%; justify-content:center; align-items:center; min-height:50px; border:0; border-radius:8px; padding:15px 18px; font-size:11px; font-weight:500; text-transform:uppercase; letter-spacing:.5px; text-decoration:none; background:#2E6FDB; color:#fff; cursor:pointer; }
button:hover, .home-button:hover { background:#255FC3; }
button:disabled { opacity:.65; cursor:wait; }
.error { color:#ffb5ac; font-size:13px; line-height:1.7; margin:0 0 18px; }
.honeypot { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
footer { border-top:1px solid rgba(255,255,255,.08); padding:26px 32px; display:flex; justify-content:center; flex-wrap:wrap; gap:24px; font-size:10px; text-transform:uppercase; letter-spacing:.6px; color:var(--muted); }
footer a { text-decoration:none; }
.skip-link { position:fixed; top:-100px; left:16px; z-index:100; background:#fff; color:#000; padding:12px; border-radius:8px; }
.skip-link:focus { top:12px; }
@media (max-width:760px) { .nav { padding:24px; } .brand span { font-size:21px; } .back-link { font-size:9px; } .layout { grid-template-columns:1fr; gap:34px; padding:0 24px; margin:20px auto 56px; } .intro { padding-top:12px; } h1 { font-size:64px; } .intro-copy { font-size:15px; margin:22px 0 26px; } .form-card { padding:28px 24px; } h2 { font-size:34px; } .offer { padding:24px; } }
@media (max-width:360px) { .nav { padding:20px 16px; } .layout { padding:0 16px; } .form-card { padding:24px 20px; } h1 { font-size:56px; } }
