:root { color-scheme:dark; font:16px/1.5 Arial,Helvetica,sans-serif; color:#fff; background:#000; --accent:#e0b5f5; --line:#483a4f; --muted:#ded8e0 }
* { box-sizing:border-box }
[hidden] { display:none!important }
body { margin:0; padding:22px 16px }
.wrap { max-width:650px; margin:auto }
.hero { text-align:center; padding:24px 8px 12px }
.hero p { margin:8px 0 12px }
.brand { font-size:.8rem; letter-spacing:.21em }
.line { background:#b895ca; height:1px; width:55px; margin:17px auto }
h1 { font-size:clamp(2rem,8vw,3rem); letter-spacing:.08em; line-height:1.13; margin:0 0 9px }
h2 { font-size:1.45rem; margin:18px 0 6px }
.accent,a { color:var(--accent) }
a { text-underline-offset:3px }
.venue,.step { background:#111; border:1px solid #363636; border-radius:9px; padding:clamp(15px,4vw,24px); margin:14px 0 }
.venue { display:grid; grid-template-columns:1fr 1fr; gap:14px 20px; color:var(--muted) }
.venue strong { color:white }
.step>p:first-child { margin-top:0 }
fieldset { margin:20px 0; min-width:0; padding:0; border:0; border-top:1px solid var(--line) }
legend { padding:0 10px 0 0; font-weight:700; font-size:1.11rem }
.hint,small { color:var(--muted); font-size:.9rem }
.option { display:flex; gap:11px; align-items:flex-start; padding:8px 2px; cursor:pointer }
.option input { width:18px; height:18px; flex:none; margin:3px 0 0; accent-color:#cda3e0 }
.option small { display:block; margin-top:3px }
.feature { border:1px solid #b98ad0; border-radius:7px; background:#161019; padding:12px; margin:4px 0 6px }
.feature small { color:var(--accent) }
.field { display:block; margin:13px 0 }
.field input { display:block; margin-top:5px; border:1px solid #817985; color:white; border-radius:6px; background:#0d0d0e; padding:12px; width:100%; font:inherit }
.times { display:flex; flex-wrap:wrap; column-gap:18px }
button,.button { font:inherit; cursor:pointer }
.button { display:block; width:100%; padding:12px 16px; border:1px solid transparent; border-radius:7px; background:#c19bd4; color:#110d13; font-weight:700; text-align:center; text-decoration:none; margin-top:12px }
.button:disabled { opacity:.65; cursor:wait }
.back { border:1px solid #817985; border-radius:6px; padding:7px 11px; background:transparent; color:white }
:focus-visible { outline:2px solid #f1c9ff; outline-offset:3px }
.message { color:#ffc7c7; border-left:2px solid currentColor; padding-left:10px }
.trap { position:absolute; width:1px; height:1px; clip-path:inset(50%); overflow:hidden }
footer { display:flex; justify-content:center; gap:20px; padding:10px; font-size:.88rem }
@media (max-width:480px) { .venue { grid-template-columns:1fr } }
