/* Soul Groove waitlist: calm editorial invitation, sun and sound preserved */
.registration-page { background: var(--paper); }
.reg-header { margin:0 var(--gutter); height:94px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--rule); }
.reg-main { max-width:1536px; min-height:calc(100svh - 190px); margin:auto; padding:clamp(34px,5vw,76px) var(--gutter) clamp(76px,8vw,130px); display:grid; grid-template-columns:minmax(0,1fr) minmax(0,540px); gap:clamp(42px,7vw,112px); }
.reg-intro { position:relative; min-height:530px; overflow:hidden; }
.reg-intro .overline, .reg-panel .overline { font:500 11px/1.5 var(--mono); letter-spacing:.16em; color:var(--plum); }
.reg-intro h1 { font:400 clamp(64px,7vw,114px)/.97 var(--serif); font-variation-settings:'SOFT' 100; letter-spacing:-.015em; margin:24px 0 20px; color:var(--ink-strong); }
.reg-intro h1 em { font-style:italic; color:var(--plum); font-weight:350; }
.reg-lead { max-width:31ch; font:400 clamp(18px,2vw,22px)/1.48 var(--sans); margin:0 0 31px; }
.reg-event { display:flex; gap:18px; align-items:center; border-top:1px solid var(--rule); padding-top:18px; width:min(100%,460px); }
.reg-event-day { font:400 37px/1 var(--display); white-space:nowrap; color:var(--plum); }
.reg-event-meta { margin:0; font:400 14px/1.5 var(--sans); color:var(--ink-strong); }
.reg-art { position:relative; width:min(100%,580px); height:202px; margin-top:28px; overflow:hidden; }
.reg-sun { position:absolute; top:0; left:42%; width:165px; aspect-ratio:1; border-radius:50%; background:linear-gradient(180deg,#f3c77c,#eba465 54%,#dd8a7a); }
.reg-art svg { position:absolute; width:100%; height:120px; top:80px; overflow:visible; }
.reg-art path { fill:none; stroke:var(--plum); stroke-width:1.15; opacity:.52; }
.reg-panel { border-top:2px solid var(--plum); padding-top:25px; }
.reg-panel-head h2 { font:400 clamp(34px,3.5vw,50px)/1.1 var(--serif); font-variation-settings:'SOFT' 100; margin:14px 0 12px; letter-spacing:-.015em; }
.reg-panel-head > p:last-child { margin:0 0 27px; max-width:48ch; font:400 15px/1.55 var(--sans); color:var(--muted); }
.reg-payment { padding-bottom:26px; margin-bottom:28px; border-bottom:1px solid var(--rule); }
.reg-payment > p:last-child { margin-bottom:0; }
.reg-payment a[href^='tel:'] { white-space:nowrap; }
.reg-event-day, #payment-title { font-variant-numeric:lining-nums tabular-nums; }
#registration-form { display:grid; gap:17px; }
.reg-field { display:grid; gap:7px; }
.reg-field label { font:600 14px/1.3 var(--sans); color:var(--ink-strong); }
.reg-field input { appearance:none; width:100%; height:52px; border:1px solid #a9a39d; border-radius:8px; padding:12px 15px; background:rgba(255,255,255,.62); color:var(--ink-strong); font:400 16px/1.3 var(--sans); }
.reg-field input::placeholder { color:#77756f; }
.reg-field input:hover { border-color:#928980; }
.reg-field input:focus { border-color:var(--plum); }
.reg-field input:focus-visible { outline:2px solid var(--plum); outline-offset:1px; box-shadow:none!important; }
.reg-field input[aria-invalid="true"] { border-color:#a2334d; box-shadow:0 0 0 1px #a2334d; }
.reg-field small { font:400 12px/1.5 var(--sans); color:var(--muted); }
.reg-privacy { margin:1px 0 0; font:400 13px/1.5 var(--sans); color:var(--muted); }
.reg-status { margin:0; min-height:0; font:500 14px/1.5 var(--sans); }
.reg-status:empty { display:none; }
.reg-status-error { color:#932c44; }
.reg-submit { width:100%; justify-content:space-between; margin-top:2px; background:var(--plum); border:0; }
.reg-submit:disabled { opacity:.65; cursor:wait; transform:none; }
.reg-trap { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.reg-confirmation { padding:18px 0 35px; }
.reg-confirmation[hidden] { display:none; }
.reg-check { display:grid; place-items:center; height:58px; width:58px; border-radius:50%; background:var(--plum); color:white; font-size:26px; }
.reg-confirmation h2 { font:400 clamp(34px,3.5vw,50px)/1.1 var(--serif); font-variation-settings:'SOFT' 100; letter-spacing:-.015em; margin:24px 0 12px; }
.reg-confirmation p { max-width:43ch; margin:0 0 30px; font-size:16px; }
@media (max-width:900px) {
 .reg-main { grid-template-columns:1fr; gap:22px; }
 .reg-intro { min-height:0; overflow:hidden; }
 .reg-intro h1 { margin:20px 0 18px; }
 .reg-lead { margin-bottom:22px; }
 .reg-event { margin-bottom:0; }
 .reg-art { display:block; width:min(100%,480px); height:94px; margin-top:12px; overflow:hidden; }
 .reg-sun { width:84px; left:64%; top:5px; }
 .reg-art svg { top:25px; height:68px; }
 .reg-art path { opacity:.42; }
 .reg-panel { max-width:660px; }
}
@media (max-width:520px) {
 .reg-header { height:76px; }
 .reg-header .header-link { font-size:12px; }
 .reg-main { padding-top:24px; padding-bottom:64px; gap:14px; }
 .reg-intro h1 { font-size:clamp(54px,13vw,74px); margin:15px 0 14px; }
 .reg-lead { font-size:18px; line-height:1.43; margin-bottom:19px; }
 .reg-event { gap:14px; padding-top:14px; }
 .reg-event-day { font-size:33px; }
 .reg-event-meta { font-size:13px; line-height:1.45; }
 .reg-art { height:73px; margin-top:5px; }
 .reg-sun { left:66%; top:2px; width:68px; }
 .reg-art svg { top:16px; height:56px; }
 .reg-art path { stroke-width:1; opacity:.36; }
 .reg-panel { padding-top:18px; }
 .reg-panel-head h2 { margin-top:10px; }
 .reg-panel-head > p:last-child { margin-bottom:21px; }
 #registration-form { gap:15px; }
 .reg-privacy { font-size:12.5px; }
}
@media (prefers-reduced-motion:reduce) {
 .registration-page * { scroll-behavior:auto!important; animation:none!important; transition:none!important; }
}
