/* Shared registration behavior; preserve this gathering’s own type and palette. */
.registration-dialog{--accent:#343d30;--goldDeep:#56614e;--registration-input:-apple-system,BlinkMacSystemFont,"PingFang TC","Microsoft JhengHei",sans-serif;width:min(35rem,calc(100% - 2rem));max-width:none;max-height:calc(var(--registration-viewport-height,100svh) - 2rem);padding:0;margin:0 auto;top:calc(var(--registration-viewport-top,0px) + var(--registration-viewport-height,100svh)/2);bottom:auto;transform:translateY(-50%);border:1px solid rgba(52,61,48,.36);border-radius:3px;background:rgba(244,241,233,.92);color:var(--ink);box-shadow:0 24px 100px rgba(26,32,24,.22);overflow:hidden;text-align:left;font:1rem/1.65 var(--sans)}
.registration-dialog[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.registration-dialog::backdrop{background:rgba(26,32,24,.3);-webkit-backdrop-filter:blur(14px) saturate(.85);backdrop-filter:blur(14px) saturate(.85)}
.registration-dialog [hidden]{display:none!important}
.registration-top{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.7rem 2rem .35rem}
.registration-top p{font:.8125rem/1.6 var(--sans);letter-spacing:.12em;color:var(--accent);margin:0}
.registration-close{display:grid;place-items:center;width:44px;height:44px;padding:0;margin-right:-.75rem;flex-shrink:0;border:0;background:transparent;color:var(--accent);cursor:pointer}
.registration-close svg{width:18px;height:18px;stroke:currentColor;stroke-width:1.5;fill:none}
.registration-scroll{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:.3rem 2rem 1.5rem;scroll-padding:1rem;scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.registration-dialog h2{font:300 clamp(1.75rem,5.5vw,2.1rem)/1.5 var(--display);letter-spacing:.04em;margin:0 0 .8rem}
.registration-dialog h2:focus{outline:none}
.registration-meta{display:grid;grid-template-columns:1.15fr 1fr;gap:1rem;padding-bottom:.85rem;border-bottom:1px solid var(--line)}
.registration-meta p{margin:0;display:grid;gap:.15rem}
.registration-meta time,.registration-meta strong{font:400 1.125rem/1.6 var(--serif);color:var(--ink)}
.registration-meta span{font:.9375rem/1.6 var(--sans);color:var(--muted)}
.registration-location{font:.875rem/1.7 var(--sans);color:var(--muted);margin:.6rem 0 1rem}
.registration-preview{display:flex;align-items:baseline;gap:.5rem;margin:0 0 1.2rem;font:.8125rem/1.7 var(--sans);color:var(--muted)}
.registration-preview strong{flex-shrink:0;padding:.05rem .4rem;border:1px solid var(--line);font:400 .75rem/1.6 var(--sans);color:var(--accent)}
.registration-form{display:grid;gap:1rem}
.registration-field{display:grid;align-content:start;gap:.4rem;min-width:0}
.registration-field label{font:.9375rem/1.6 var(--sans);color:var(--ink)}
.registration-field label span{font:.875rem/1.6 var(--sans);color:var(--muted);margin-left:.45rem}
.registration-field input{width:100%;min-width:0;min-height:48px;margin:0;padding:.625rem .75rem;border:1px solid rgba(52,61,48,.3);border-radius:2px;background:rgba(252,251,247,.68);color:var(--ink);font:1rem/1.5 var(--registration-input);box-shadow:none;transition:border-color 150ms,background-color 150ms}
.registration-field input:hover{border-color:var(--goldDeep)}
.registration-field input:focus{outline:2px solid var(--goldDeep);outline-offset:2px;background:var(--white)}
.registration-field input[aria-invalid="true"]{border-color:#9c3521}
.registration-field input::placeholder{color:var(--muted);opacity:1}
.registration-field-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem}
.registration-field-error,.registration-error{margin:0;color:#8d2f1f;font:.875rem/1.65 var(--sans)}
.registration-error{padding:.6rem .75rem;border-left:2px solid #9c3521;background:rgba(156,53,33,.045)}
.registration-field-help,.registration-companion-limit{margin:0;font:.8125rem/1.7 var(--sans);color:var(--muted)}
.registration-email-suggestion{margin:0}
.registration-email-suggestion button{padding:0;border:0;min-height:44px;text-align:left;overflow-wrap:anywhere;background:transparent;color:var(--accent);text-decoration:underline;text-underline-offset:.25em;font:.875rem/1.6 var(--registration-input);cursor:pointer}
.registration-companions{margin:0;padding:0;border:0;min-width:0}
.registration-companions legend{padding:0;margin-bottom:.25rem;font:.9375rem/1.6 var(--sans)}
.registration-companions legend span{font:.8125rem/1.6 var(--sans);color:var(--muted);margin-left:.4rem}
.registration-companion-row{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:.5rem;align-items:start;margin-top:.65rem}
.registration-remove{min-height:48px;margin-top:1.9rem;border:0;background:transparent;color:var(--accent);font:.875rem/1.5 var(--sans);cursor:pointer}
.registration-add{display:inline-flex;gap:.5rem;align-items:center;min-height:44px;border:0;padding:.25rem 0;background:transparent;color:var(--accent);font:.9375rem/1.6 var(--sans);cursor:pointer}
.registration-add span{font:1.25rem/1 var(--sans)}
.registration-bottom{padding:1rem 2rem .6rem;border-top:1px solid var(--line);background:rgba(244,241,233,.96)}
.registration-submit{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:.5rem;width:100%;min-height:52px;padding:.75rem 1rem;border:1px solid var(--accent);border-radius:2px;background:var(--accent);color:var(--white);font:1rem/1.6 var(--serif);letter-spacing:.06em;cursor:pointer;transition:background-color 150ms,transform 150ms}
.registration-submit small{font:.875rem/1.6 var(--sans);letter-spacing:0;opacity:.9}
.registration-submit:hover{background:var(--ink)}
.registration-footer{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:.1rem 1.5rem;margin-top:.35rem}
.registration-footer a,.registration-edit{display:inline-flex;justify-content:center;align-items:center;min-height:44px;padding:0;border:0;background:transparent;color:var(--accent);font:.875rem/1.6 var(--sans);text-decoration:underline;text-underline-offset:.3em;cursor:pointer}
.registration-dialog button:focus-visible,.registration-dialog a:focus-visible{outline:2px solid var(--goldDeep);outline-offset:3px}
.registration-dialog button:not(:disabled):active{transform:scale(.96)}
.registration-dialog button:disabled{opacity:.55;cursor:not-allowed}
.registration-done{padding-block:1rem .25rem}
.registration-done>p{font:1rem/1.85 var(--sans);margin:.75rem 0 1.25rem}
.registration-done h2{font-size:1.5rem}
.registration-review{margin:1rem 0 0;border-top:1px solid var(--line)}
.registration-review>div{display:grid;grid-template-columns:4rem minmax(0,1fr);gap:1rem;padding:.875rem 0}
.registration-review>div+div{border-top:1px solid var(--line)}
.registration-review dt{font:.875rem/1.8 var(--sans);color:var(--muted)}
.registration-review dd{margin:0;overflow-wrap:anywhere;font:1rem/1.6 var(--registration-input)}
.registration-done-actions{display:grid;grid-template-columns:1fr 1.4fr;gap:1rem}
.registration-sr-only{position:absolute;inset:0 auto auto 0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@supports not ((backdrop-filter:blur(2px)) or (-webkit-backdrop-filter:blur(2px))){.registration-dialog::backdrop{background:rgba(26,32,24,.65)}.registration-dialog{background:var(--paper)}}
@media(max-width:540px){.registration-dialog{width:calc(100% - 1.25rem);max-height:calc(var(--registration-viewport-height,100svh) - 1.25rem)}.registration-top{padding:.5rem 1.25rem .25rem}.registration-scroll{padding:.25rem 1.25rem 1.25rem}.registration-bottom{padding:.85rem 1.25rem max(.5rem,env(safe-area-inset-bottom))}.registration-field-pair{grid-template-columns:minmax(0,1fr)}.registration-dialog h2{font-size:1.75rem}.registration-meta{gap:.5rem;grid-template-columns:1.2fr 1fr}}
@media(max-width:350px){.registration-meta{grid-template-columns:1fr;gap:.6rem}.registration-done-actions{grid-template-columns:1fr}.registration-preview{gap:.3rem;font-size:.75rem}}
@media(prefers-reduced-motion:reduce){.registration-dialog *{transition:none!important}.registration-dialog button:not(:disabled):active{transform:none}}
