:root{--bg:#f6f4f0;--card:#fdfcfa;--ink:#2b2a28;--mut:#8a857d;--line:#e4e0d9;--acc:#3b3835;--acc-ink:#faf8f5;--off:#eeebe6;--bad:#9a4a42;--good:#5b7461;--w1:#eadfd0;--w2:#e2e6da;--w3:#ecdfd7;--serif:'Cormorant Garamond',Georgia,serif;--sans:'Jost','Helvetica Neue',Arial,sans-serif}
@media(prefers-color-scheme:dark){:root{--bg:#1a1918;--card:#232220;--ink:#ece8e2;--mut:#9b958c;--line:#34312e;--acc:#d8d2c8;--acc-ink:#1c1b19;--off:#2c2a27;--bad:#d08a80;--good:#8fb09a;--w1:#2b2622;--w2:#222823;--w3:#2c2524}}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;color:var(--ink);font:300 1rem/1.6 var(--sans);background-color:var(--bg);background-image:radial-gradient(65% 50% at 12% 8%,var(--w1),transparent 72%),radial-gradient(55% 45% at 92% 34%,var(--w2),transparent 72%),radial-gradient(70% 50% at 25% 98%,var(--w3),transparent 72%);background-attachment:fixed}
.wrap{max-width:680px;margin:0 auto;padding:44px 18px 72px}
h1{font:500 2.1rem/1.15 var(--serif);text-align:center;margin:8px 0 10px}
h1::after{content:"";display:block;width:48px;height:1px;background:var(--mut);margin:18px auto 0;opacity:.6}
h2{font:500 1.4rem var(--serif);margin:0 0 16px}
p.sub{color:var(--mut);margin:14px 0 28px;text-align:center}
.card{background:var(--card);border:1px solid var(--line);border-radius:2px;padding:26px;margin-bottom:18px}
.tabs{display:flex;gap:22px;margin-bottom:24px;border-bottom:1px solid var(--line);justify-content:center}
.tab{border:0;border-bottom:1px solid transparent;margin-bottom:-1px;background:none;color:var(--mut);padding:10px 2px;cursor:pointer;font:inherit;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase}
.tab.on{color:var(--ink);border-bottom-color:var(--ink)}
.dates,.times{display:flex;gap:8px;flex-wrap:wrap}
.dates{flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px}
.chip{flex:0 0 auto;border:1px solid var(--line);background:transparent;color:var(--ink);border-radius:2px;padding:9px 14px;cursor:pointer;font:400 .85rem var(--sans);text-align:center}
.chip small{display:block;color:var(--mut);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em}
.chip.on{background:var(--acc);color:var(--acc-ink);border-color:var(--acc)}.chip.on small{color:var(--acc-ink)}
label{display:block;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--mut);margin:16px 0 6px}
input,select,textarea{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:2px;background:transparent;color:var(--ink);font:inherit}
button.main{margin-top:22px;width:100%;padding:14px;border:1px solid var(--acc);border-radius:2px;background:var(--acc);color:var(--acc-ink);font:400 .8rem var(--sans);letter-spacing:.18em;text-transform:uppercase;cursor:pointer}
button.main:disabled{opacity:.4;cursor:not-allowed}
.msg{margin-top:12px;font-size:.9rem}.err{color:var(--bad)}.ok{color:var(--good)}
.row{display:flex;justify-content:space-between;gap:14px;padding:16px 0;border-top:1px solid var(--line);font-size:.92rem}
.row:first-of-type{border-top:0}.m{color:var(--mut);font-size:.84rem}
.x{border:1px solid var(--line);background:none;color:var(--mut);border-radius:2px;padding:4px 11px;cursor:pointer;font:inherit;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase}
.note{font-size:.85rem;color:var(--mut)}.hide{display:none}
dialog{background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:2px;width:min(480px,94vw);padding:26px}
dialog::backdrop{background:rgba(0,0,0,.5)}
