:root {
  font-family: system-ui, sans-serif; color-scheme: light dark;
  --bg:#fff8f1; --surface:#ffffff; --text:#241f1b; --muted:#70645d;
  --accent:#f47950; --on-accent:#241f1b; --link:#9f351f;
  --line:#e7ded7; --outline:#70645d; --error:#b3261e; --on-error:#ffffff;
  --tint:#ffe4d8;
  color:var(--text); background:var(--bg); font-size:100%;
}
@media (prefers-color-scheme:dark) {
  :root { --bg:#1c1917; --surface:#2a2421; --text:#fff8f1; --muted:#c3b9b1;
    --accent:#ff956f; --on-accent:#2c1b14; --link:#ff956f; --line:#514740;
    --outline:#c3b9b1; --error:#ffb4ab; --on-error:#601410; --tint:#493025; }
}
* { box-sizing:border-box; }
body { margin:0; line-height:1.6; }
.shell { max-width:64rem; margin:auto; padding:0 clamp(1rem,4vw,3rem); }
header { display:flex; justify-content:space-between; flex-wrap:wrap; gap:1rem; align-items:center; padding:1.5rem 0; border-bottom:1px solid var(--line); }
.brand { font-weight:800; letter-spacing:.06em; text-decoration:none; color:var(--text); }
.brand span { display:block; font-size:.875rem; letter-spacing:normal; font-weight:400; color:var(--muted); }
.edition,.secondary { color:var(--muted); font-size:.9375rem; }
main { padding:clamp(2rem,5vw,4rem) 0; min-height:45vh; }
main>p,main>h1,main>h2,main>form,main>section { max-width:48rem; }
h1 { font-size:clamp(2rem,1.1rem + 3vw,3.25rem); line-height:1.12; letter-spacing:-.025em; margin:.5rem 0 1.5rem; overflow-wrap:anywhere; }
h2 { font-size:1.375rem; line-height:1.3; margin:2rem 0 .75rem; }
p { margin:.75rem 0 1.25rem; overflow-wrap:anywhere; }
a { color:var(--link); text-underline-offset:.2em; overflow-wrap:anywhere; }
.eyebrow { color:var(--link); font-size:.875rem; font-weight:700; letter-spacing:.045em; margin:0 0 1rem; }
.lead { font-size:1.25rem; }
.event-heading { max-width:52rem; }
.event-layout { display:grid; grid-template-columns:minmax(12rem,1fr) minmax(0,2fr); gap:2rem; padding:1.5rem 0; border-top:1px solid var(--line); }
.event-time { border-left:4px solid var(--accent); padding-left:1.25rem; }
time span { display:block; font-size:1.125rem; }
time strong { display:block; font-size:3rem; line-height:1.2; margin:.5rem 0; }
.event-time p { color:var(--muted); font-size:.875rem; }
dl { margin:0; } dl>div+div { margin-top:1.5rem; }
dt { color:var(--muted); font-size:.875rem; margin-bottom:.25rem; }
dd { margin:0; font-size:1.125rem; overflow-wrap:anywhere; }
dd span { display:block; margin-top:.25rem; }
.entry { font-size:1rem; white-space:pre-line; }
.cover { display:block; max-width:100%; max-height:32rem; margin:1.5rem auto; border-radius:1rem; object-fit:contain; }
.description { max-width:48rem; } .description p { white-space:pre-line; }
.open-app { margin-top:2rem; padding-top:1rem; border-top:1px solid var(--line); max-width:48rem; }
button,.button { display:inline-block; padding:.875rem 1.25rem; min-height:3rem; border:1px solid var(--link); border-radius:.875rem; background:var(--accent); color:var(--on-accent); font:inherit; font-weight:650; line-height:1.4; text-align:center; text-decoration:none; cursor:pointer; max-width:100%; overflow-wrap:anywhere; }
button:disabled { opacity:.6; cursor:not-allowed; }
input[type=email] { display:block; width:100%; font:inherit; padding:.875rem; margin:.5rem 0; border:1px solid var(--outline); border-radius:.75rem; background:var(--surface); color:var(--text); }
input[type=checkbox] { width:1.5rem; height:1.5rem; vertical-align:middle; margin-right:.5rem; accent-color:var(--error); }
label { display:block; margin:.75rem 0 1.25rem; }
form,.danger-panel { padding:1.5rem; margin:2rem 0; background:var(--surface); border-radius:1rem; }
.danger { background:var(--error); color:var(--on-error); border-color:var(--error); }
.form-status:not(:empty) { border-left:4px solid var(--outline); padding:1rem; background:var(--surface); }
.form-status[data-tone=error] { color:var(--error); border-color:var(--error); }
.state { font-weight:700; border-left:4px solid var(--accent); padding-left:1rem; }
.notice { padding:1rem 0 2rem; } .cancelled .eyebrow { color:var(--error); }
footer { border-top:1px solid var(--line); padding:2rem 0; font-size:.875rem; color:var(--muted); }
footer nav { display:flex; flex-wrap:wrap; gap:.5rem 1.25rem; margin-bottom:1.5rem; }
footer nav a { display:inline-flex; align-items:center; min-height:3rem; }
:focus-visible { outline:3px solid var(--link); outline-offset:4px; }
.skip { position:absolute; top:-8rem; left:1rem; padding:1rem; background:var(--surface); z-index:2; }
.skip:focus { top:1rem; }
[hidden] { display:none!important; }
@media (max-width:38rem) { .event-layout { grid-template-columns:1fr; gap:1rem; } .edition { font-size:.8125rem; } form,.danger-panel { padding:1rem; } }

#browser-join{margin-block:2rem;padding-block:1.5rem;border-top:1px solid var(--line,#70645d)}
#browser-join form{display:grid;gap:12px;margin-block:16px}#browser-join [hidden]{display:none!important}
#browser-join input:not([type=checkbox]),#browser-join textarea{box-sizing:border-box;width:100%;padding:12px;font:inherit;color:inherit;background:transparent;border:1px solid currentColor;border-radius:6px}
#browser-join button{min-height:48px;margin:4px;white-space:normal}#browser-join label{display:block}#browser-join input[type=checkbox]{width:24px;height:24px;vertical-align:middle}
.chat-message{padding:12px;margin-block:6px;border-bottom:1px solid currentColor;overflow-wrap:anywhere}.chat-message time{margin-inline-start:12px;font-size:.85em}.chat-message img{max-width:100%;max-height:360px}.chat-message summary{min-height:48px;cursor:pointer}.chat-message p{white-space:pre-wrap}
