:root{--bg-primary:#05070C;--bg-elevated:#0A0D14;--bg-secondary:#0C0F16;--bg-card:#10141C;--bg-card-hover:#151A25;--border:#161C2B;--border-bright:#232D40;--hairline:rgba(232, 236, 242, 0.12);--text-primary:#E8ECF2;--text-secondary:#B5BFD0;--text-muted:#8793A8;--text-whisper:#5E6678;--accent-mint:#6EE7B7;--accent-mint-dim:#4AD4A0;--accent-ice:#7DD3FC;--accent-ice-dim:#38BDF8;--accent-rose:#F9A8D4;--glow-mint:rgba(110,231,183,.10);--glow-ice:rgba(125,211,252,.10);--font-body:'Instrument Sans',system-ui,-apple-system,sans-serif;--font-mono:'IBM Plex Mono','Menlo',monospace}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);background:var(--bg-primary);color:var(--text-primary);overflow-x:hidden;-webkit-font-smoothing:antialiased;min-height:100vh;display:flex;flex-direction:column}
.ambient-glow, .vignette, .grain { position: fixed; inset: 0; pointer-events: none; }
.ambient-glow { z-index: 0; background: radial-gradient(ellipse 70% 50% at 50% 30%, rgba(110, 231, 183, 0.04) 0%, transparent 55%), radial-gradient(ellipse 80% 60% at 50% 95%, rgba(125, 211, 252, 0.025) 0%, transparent 60%); }
.vignette { z-index: 1; background: radial-gradient(ellipse at center, transparent 40%, rgba(0, 0, 0, 0.45) 100%); }
.grain { z-index: 2; opacity: 0.05; mix-blend-mode: overlay; background-image: url("data:image/svg+xml;utf8,<svg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.5 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>"); }
nav, main, section, header, footer, .container { position: relative; z-index: 10; }
.container{max-width:1180px;margin:0 auto;padding:0 24px}
.badge{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--accent-mint);background:var(--glow-mint);border:1px solid rgba(110,231,183,.2);border-radius:100px;padding:6px 14px;letter-spacing:.05em;text-transform:uppercase}
.badge::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--accent-mint);animation:pulse-dot 2s infinite}
@keyframes pulse-dot{0%,100%{opacity:1}50%{opacity:.35}}
.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 28px;border-radius:8px;font-size:15px;font-weight:600;background:var(--accent-mint);color:#080A0F;border:none;cursor:pointer;font-family:var(--font-body);transition:all 0.4s cubic-bezier(0.22, 1, 0.36, 1);text-decoration:none;width:100%}
.btn-primary:hover{transform:translateY(-1px);box-shadow:0 8px 30px rgba(110,231,183,.25);background:#8CF0CC}
.btn-ghost{display:inline-flex;align-items:center;gap:8px;padding:9px 20px;border-radius:8px;font-size:13px;font-weight:500;background:transparent;color:var(--text-primary);cursor:pointer;font-family:var(--font-body);transition:all 0.35s cubic-bezier(0.22, 1, 0.36, 1);border:1px solid var(--border-bright);text-decoration:none}
.btn-ghost:hover{border-color:var(--accent-mint);color:var(--accent-mint);background:var(--glow-mint)}
nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:14px 0;background:rgba(8,10,15,.88);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--hairline)}
nav .container{display:flex;align-items:center;justify-content:space-between}
.nav-logo{display:flex;align-items:center;text-decoration:none}
.nav-logo svg{height:32px;width:auto}
.nav-links{display:flex;align-items:center;gap:28px}
.nav-links a{font-size:14px;font-weight:500;color:var(--text-secondary);text-decoration:none;transition:color 0.35s cubic-bezier(0.22, 1, 0.36, 1)}
.nav-links a:hover{color:var(--text-primary)}
.nav-cta{display:flex;align-items:center;gap:12px}
.nav-cta .btn-primary{padding:9px 20px;font-size:13px;width:auto}
@media(max-width:768px){.nav-links{display:none}}
main{flex:1;display:flex;flex-direction:column}
.page-hero{padding:160px 0 40px;position:relative;overflow:hidden;text-align:center}
.page-hero-gradient{position:absolute;top:-200px;left:50%;transform:translateX(-50%);width:900px;height:900px;border-radius:50%;background:radial-gradient(ellipse,rgba(110,231,183,.05) 0%,rgba(125,211,252,.03) 40%,transparent 65%);pointer-events:none}
.page-hero-content{position:relative;z-index:2;max-width:680px;margin:0 auto}
.page-hero-content h1{font-size:clamp(36px,5vw,52px);font-weight:500;letter-spacing:-.03em;line-height:1.08;margin:16px 0 20px}
.page-hero-content h1 em{font-family:'Fraunces','Instrument Sans',serif;font-style:italic;font-weight:400;letter-spacing:-0.015em;background:linear-gradient(135deg,var(--accent-mint) 0%,var(--accent-ice) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;display:inline-block;padding:0.04em 0.18em 0.12em 0;line-height:1.25}
.page-hero-content p{font-size:18px;color:var(--text-secondary);line-height:1.65;max-width:560px;margin:0 auto}
.form-section{padding:20px 0 80px;position:relative}
.form-card{max-width:560px;margin:0 auto;background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:36px 32px;position:relative}
.form-card::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--accent-mint),var(--accent-ice),transparent)}
.form-card h2{font-size:20px;font-weight:700;letter-spacing:-.02em;margin-bottom:8px;line-height:1.25}
.form-card .form-subtitle{font-size:14px;color:var(--text-secondary);margin-bottom:28px;line-height:1.55}
.form-field{margin-bottom:16px}
.form-field label{display:block;font-family:var(--font-mono);font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}
.form-field input, .form-field textarea{width:100%;padding:12px 14px;background:var(--bg-primary);border:1px solid var(--border-bright);border-radius:8px;color:var(--text-primary);font-family:var(--font-body);font-size:14px;transition:border-color .25s ease, box-shadow .25s ease;outline:none;resize:vertical}
.form-field textarea{min-height:80px;line-height:1.5}
.form-field input:focus, .form-field textarea:focus{border-color:var(--accent-mint);box-shadow:0 0 0 3px rgba(110,231,183,0.1)}
.form-field input::placeholder, .form-field textarea::placeholder{color:var(--text-whisper)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form-row .form-field{margin-bottom:16px}
@media(max-width:520px){.form-row{grid-template-columns:1fr;gap:0}}
.form-honeypot{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.radio-row{display:flex;flex-wrap:wrap;gap:16px;margin-top:2px}
.radio-pill{display:inline-flex;align-items:center;gap:7px;cursor:pointer;font-size:13px;color:var(--text-secondary);transition:color .2s ease;text-transform:none;letter-spacing:0;font-family:var(--font-body);font-weight:400;margin:0;line-height:1}
.radio-pill:hover{color:var(--text-primary)}
.radio-pill input{appearance:none;-webkit-appearance:none;width:8px;height:8px;padding:0;border-radius:50%;border:1px solid var(--text-whisper);background:transparent;margin:0;cursor:pointer;flex-shrink:0;transition:all .15s ease;box-sizing:border-box;min-width:0;min-height:0}
.radio-pill input:hover{border-color:var(--text-muted)}
.radio-pill input:checked{border-color:var(--accent-mint);background:var(--accent-mint);box-shadow:inset 0 0 0 1.5px var(--bg-card)}
.radio-pill:has(input:checked){color:var(--accent-mint)}
body.light .radio-pill input{border-color:#9CA3AF}
body.light .radio-pill input:checked{border-color:#059669;background:#059669;box-shadow:inset 0 0 0 1.5px #FFFFFF}
body.light .radio-pill:has(input:checked){color:#059669}
.form-submit-row{margin-top:24px}
.form-submit-row .btn-primary[disabled]{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}
.form-status{margin-top:14px;font-size:13px;line-height:1.5;min-height:18px}
.form-status.error{color:var(--accent-rose)}
.form-status.success{color:var(--accent-mint)}
.form-success{display:none;text-align:center;padding:8px 0}
.form-success h3{font-size:18px;font-weight:600;letter-spacing:-.02em;margin-bottom:8px}
.form-success p{font-size:14px;color:var(--text-secondary);line-height:1.55}
.form-success .check{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:var(--glow-mint);color:var(--accent-mint);margin-bottom:14px;border:1px solid rgba(110,231,183,.3)}
.form-success .booked-slot{background:var(--bg-primary);border:1px solid var(--border-bright);border-left:2px solid var(--accent-mint);border-radius:8px;padding:12px 16px;margin:14px auto 18px;max-width:380px;font-size:14px;color:var(--text-primary);text-align:left}
.form-aside{max-width:520px;margin:20px auto 0;text-align:center;font-size:13px;color:var(--text-muted)}
.form-aside a{color:var(--accent-mint);text-decoration:none;border-bottom:1px solid rgba(110,231,183,0.25);transition:border-color .25s ease}
.form-aside a:hover{border-bottom-color:var(--accent-mint)}

/* ── Additional guests ─────────────────────────────────────── */
.guest-hint{font-size:12px;color:var(--text-muted);margin:-2px 0 8px;line-height:1.5}
.guest-list{display:flex;flex-direction:column;gap:8px}
.guest-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:stretch}
.guest-row input{width:100%;padding:12px 14px;background:var(--bg-primary);border:1px solid var(--border-bright);border-radius:8px;color:var(--text-primary);font-family:var(--font-body);font-size:14px;transition:border-color .25s ease, box-shadow .25s ease;outline:none}
.guest-row input:focus{border-color:var(--accent-mint);box-shadow:0 0 0 3px rgba(110,231,183,0.1)}
.guest-row input::placeholder{color:var(--text-whisper)}
.guest-remove{background:transparent;border:1px solid var(--border-bright);border-radius:8px;color:var(--text-muted);font-size:18px;line-height:1;width:40px;cursor:pointer;font-family:var(--font-body);transition:all .2s ease;display:flex;align-items:center;justify-content:center;padding:0}
.guest-remove:hover{border-color:var(--accent-rose);color:var(--accent-rose);background:rgba(249,168,212,.06)}
.btn-add-guest{display:inline-flex;align-items:center;gap:6px;background:transparent;border:1px dashed var(--border-bright);border-radius:8px;padding:8px 14px;color:var(--text-secondary);font-size:13px;font-family:var(--font-body);cursor:pointer;margin-top:8px;transition:all .2s ease}
.btn-add-guest:hover{border-color:var(--accent-mint);color:var(--accent-mint);background:var(--glow-mint);border-style:solid}
.btn-add-guest .plus{font-size:16px;line-height:1;font-weight:500}
.btn-add-guest[disabled]{opacity:.5;cursor:not-allowed}
body.light .guest-row input{background:#F7F8FA;color:#111827}
body.light .guest-row input:focus{border-color:#059669;box-shadow:0 0 0 3px rgba(5,150,105,0.12)}
body.light .guest-remove:hover{border-color:#DB2777;color:#DB2777;background:rgba(219,39,119,.06)}
body.light .btn-add-guest:hover{border-color:#059669;color:#059669;background:rgba(5,150,105,0.06)}

/* ── Slot picker ────────────────────────────────────────────── */
.picker-section{margin-bottom:28px}
.picker-section .section-label{display:block;font-family:var(--font-mono);font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px}
.picker-tz{font-family:var(--font-mono);font-size:11px;color:var(--text-whisper);margin-top:8px;letter-spacing:.04em}
.day-tabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:6px;margin-bottom:14px;scrollbar-width:thin}
.day-tabs::-webkit-scrollbar{height:4px}
.day-tabs::-webkit-scrollbar-thumb{background:var(--border-bright);border-radius:2px}
.day-tab{flex:0 0 auto;background:var(--bg-primary);border:1px solid var(--border-bright);border-radius:8px;padding:8px 14px;cursor:pointer;font-family:var(--font-body);color:var(--text-secondary);transition:all .2s ease;text-align:center;min-width:64px}
.day-tab .day-tab-dow{display:block;font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin-bottom:2px}
.day-tab .day-tab-num{display:block;font-size:16px;font-weight:600;color:var(--text-primary)}
.day-tab:hover{border-color:var(--accent-mint);color:var(--text-primary)}
.day-tab.active{background:var(--glow-mint);border-color:var(--accent-mint);color:var(--accent-mint)}
.day-tab.active .day-tab-num{color:var(--accent-mint)}
.day-tab.active .day-tab-dow{color:var(--accent-mint)}
.slot-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(110px, 1fr));gap:8px}
.slot-btn{background:var(--bg-primary);border:1px solid var(--border-bright);border-radius:8px;padding:11px 12px;cursor:pointer;font-family:var(--font-body);color:var(--text-primary);font-size:14px;transition:all .2s ease}
.slot-btn:hover{border-color:var(--accent-mint);color:var(--accent-mint)}
.slot-btn.active{background:var(--accent-mint);color:#080A0F;border-color:var(--accent-mint);font-weight:600}
.slot-empty{grid-column:1/-1;font-size:13px;color:var(--text-muted);text-align:center;padding:18px;border:1px dashed var(--border-bright);border-radius:8px}
.picker-loading{font-size:13px;color:var(--text-muted);text-align:center;padding:18px}
.picker-error{font-size:13px;color:var(--accent-rose);text-align:center;padding:18px;border:1px solid rgba(249,168,212,.3);border-radius:8px;background:rgba(249,168,212,.05)}

footer{padding:48px 0;border-top:1px solid var(--border);margin-top:auto}
.footer-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px}
.footer-left{display:flex;align-items:center;gap:16px}
.footer-left svg{height:24px;width:auto}
.footer-copy{font-size:13px;color:var(--text-muted)}
.footer-links{display:flex;gap:24px;align-items:center}
.footer-links a{font-size:13px;color:var(--text-secondary);text-decoration:none;transition:color 0.35s cubic-bezier(0.22, 1, 0.36, 1)}
.footer-links a:hover{color:var(--accent-mint)}

@keyframes fadeUp{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}
.animate-up{animation:fadeUp .8s ease forwards;opacity:0}
.animate-up-d1{animation-delay:.1s}
.animate-up-d2{animation-delay:.2s}
.animate-up-d3{animation-delay:.3s}

.theme-toggle{position:relative;display:inline-block;width:44px;height:24px;border-radius:24px;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.12);cursor:pointer;padding:0;vertical-align:middle;transition:background 0.3s ease, border-color 0.3s ease}
.theme-toggle:hover{border-color:rgba(110,231,183,0.4);background:rgba(255,255,255,0.08)}
.theme-toggle-thumb{position:absolute;top:1px;left:1px;width:20px;height:20px;border-radius:50%;background:#E8ECF2;display:flex;align-items:center;justify-content:center;color:#080A0F;box-shadow:0 1px 3px rgba(0,0,0,0.2);transition:transform 0.3s cubic-bezier(0.22, 1, 0.36, 1), background 0.3s ease}

body.light{--bg-primary:#F7F8FA;--bg-secondary:#EEF0F4;--bg-card:rgba(255,255,255,0.82);--bg-card-hover:rgba(248,249,251,0.9);--border:#DDE1E8;--border-bright:#C8CDD6;--text-primary:#111827;--text-secondary:#4B5563;--text-muted:#9CA3AF;--text-whisper:#9CA3AF;--accent-mint:#059669;--accent-mint-dim:#047857;--accent-ice:#0284C7;--accent-ice-dim:#0369A1;--accent-rose:#DB2777;--glow-mint:rgba(5,150,105,0.08);--glow-ice:rgba(2,132,199,0.08)}
body.light nav{background:rgba(247,248,250,0.92)}
body.light .btn-primary{background:#059669;color:#fff}
body.light .btn-primary:hover{background:#047857;box-shadow:0 8px 30px rgba(5,150,105,0.2)}
body.light .btn-ghost{color:#111827;border-color:#C8CDD6}
body.light .btn-ghost:hover{border-color:#059669;color:#059669;background:rgba(5,150,105,0.06)}
body.light .badge{color:#059669;background:rgba(5,150,105,0.08);border-color:rgba(5,150,105,0.2)}
body.light .badge::before{background:#059669}
body.light .nav-logo text{fill:#111827}
body.light .footer-left text{fill:#111827}
body.light .page-hero-gradient{background:radial-gradient(ellipse, rgba(5,150,105,0.06) 0%, rgba(2,132,199,0.03) 40%, transparent 65%)}
body.light .form-card{background:#FFFFFF}
body.light .form-field input, body.light .form-field textarea{background:#F7F8FA;color:#111827}
body.light .form-field input:focus, body.light .form-field textarea:focus{border-color:#059669;box-shadow:0 0 0 3px rgba(5,150,105,0.12)}
body.light .day-tab, body.light .slot-btn{background:#F7F8FA;color:#111827}
body.light .slot-btn.active{background:#059669;color:#fff;border-color:#059669}
body.light .day-tab.active{background:rgba(5,150,105,0.08);border-color:#059669;color:#059669}
body.light .day-tab.active .day-tab-num, body.light .day-tab.active .day-tab-dow{color:#059669}
body.light .form-success .booked-slot{background:#F7F8FA;border-left-color:#059669}
body.light .theme-toggle{background:rgba(0,0,0,0.04);border-color:rgba(0,0,0,0.1)}
body.light .theme-toggle:hover{background:rgba(0,0,0,0.06);border-color:rgba(5,150,105,0.4)}
body.light .theme-toggle-thumb{transform:translateX(20px);background:#059669;color:#fff}
body.light .form-aside a{color:#059669;border-bottom-color:rgba(5,150,105,0.25)}

/* — converted from inline style attributes — */
.mb-0{margin-bottom:0}
.mt-6{margin-top:6px}
.mt-24{margin-top:24px}
.label-optional{text-transform:none;color:var(--text-whisper)}
.mt-18{margin-top:18px}
