:root{--bg: #2a472b;--bg-deep: #1f3621;--bg-soft: #335338;--ink: #f3ecdb;--ink-dim: #c9c0a8;--accent: #e8dcc0;--accent-soft: #f0e6cc;--accent-ink: #1f3621;--card-radius: 18px;--shadow-card: 0 18px 40px -22px rgba(0, 0, 0, .6), 0 4px 14px -8px rgba(0, 0, 0, .4);--gutter: min(3vw, 28px)}*{box-sizing:border-box}html,body{margin:0;padding:0;width:100%;overflow-x:hidden}html,body,#root{min-height:100%;background:var(--bg);color:var(--ink);font-family:Manrope,system-ui,-apple-system,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:radial-gradient(circle at 20% 0%,rgba(255,255,255,.04),transparent 55%),radial-gradient(circle at 80% 100%,rgba(0,0,0,.25),transparent 55%),var(--bg)}img,video{max-width:100%;height:auto;display:block}a{color:var(--accent-soft);text-decoration:none}a:hover{color:var(--accent)}h1,h2,h3,h4{font-family:Fraunces,Georgia,serif;font-weight:600;letter-spacing:-.01em;margin:0 0 .4em}h1{font-size:clamp(2rem,5vw,3.4rem);font-weight:700}h2{font-size:clamp(1.5rem,3vw,2.2rem)}h3{font-size:1.2rem}p{line-height:1.65;color:var(--ink);margin:0 0 1em}button{font:inherit;cursor:pointer}.container{width:100%;max-width:1180px;margin:0 auto;padding:0 var(--gutter)}.home-pill{position:fixed;top:max(12px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));z-index:20;display:inline-flex;align-items:center;gap:6px;padding:8px 14px 8px 12px;background:#1f3621c7;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:999px;color:var(--ink);font-size:.88rem;font-weight:500;letter-spacing:.01em;text-decoration:none;box-shadow:0 6px 18px -10px #0000008c;transition:background .18s,transform .18s,color .18s}.home-pill span{font-size:1em;line-height:1}.home-pill:hover{background:#1f3621f2;color:var(--ink);transform:translateY(-1px)}main.with-pill{padding-top:64px}@media (max-width: 480px){main.with-pill{padding-top:56px}}.masthead{margin:clamp(14px,3vw,28px) auto clamp(10px,2vw,18px);max-width:880px}.masthead img{width:100%;border-radius:14px}.lede{font-size:clamp(1rem,1.4vw,1.15rem);color:var(--ink-dim);max-width:56ch;margin:0 auto clamp(20px,4vw,36px);text-align:center;text-wrap:balance}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:min(2.4vw,22px);padding:0 0 min(8vw,60px);margin-inline:calc(-1 * var(--gutter) + min(1.5vw,14px))}.card{display:flex;flex-direction:column;background:var(--bg-soft);border-radius:var(--card-radius);overflow:hidden;text-decoration:none;color:var(--ink);box-shadow:var(--shadow-card);border:1px solid rgba(255,255,255,.05);transition:transform .22s ease,border-color .22s ease;text-align:center}.card:hover{transform:translateY(-3px);border-color:#ffffff24}.card-image{aspect-ratio:16 / 10;background:var(--bg-deep);overflow:hidden}.card-image img{width:100%;height:100%;object-fit:cover}.card-title{position:relative;z-index:2;margin:-22px auto 0;padding:7px 18px 8px;background:var(--bg-soft);border:1px solid rgba(255,255,255,.1);border-radius:999px;font-family:Fraunces,serif;font-weight:600;font-size:1.15rem;letter-spacing:-.01em;color:var(--ink)}.card-body{margin:10px 14px 16px;color:var(--ink-dim);font-size:.93rem;line-height:1.5}.page-head{text-align:center;padding:4px 0 clamp(16px,2.5vw,24px)}.page-art{position:relative;border-radius:16px;overflow:hidden;margin-inline:calc(-1 * var(--gutter) + min(1.5vw,14px))}.page-art img{display:block;width:100%;height:auto}.page-head .page-title{position:relative;z-index:2;display:inline-block;margin:-24px auto clamp(12px,2vw,18px);padding:9px 22px 11px;background:var(--bg-soft);border:1px solid rgba(255,255,255,.1);border-radius:999px;font-family:Fraunces,serif;font-weight:600;font-size:clamp(1.5rem,3.5vw,2rem);letter-spacing:-.01em;line-height:1.1}.page-head .lede{margin:0 auto}.placeholder,.empty{background:#ffffff0a;border:1px dashed rgba(255,255,255,.12);border-radius:14px;padding:28px;color:var(--ink-dim);text-align:center}.event-list{display:flex;flex-direction:column;gap:min(2vw,14px);padding-bottom:min(6vw,32px);margin-inline:calc(-1 * var(--gutter) + min(1.5vw,14px))}.event-rail{display:flex;gap:14px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;padding:0 0 18px;margin-inline:calc(-1 * var(--gutter) + min(1.5vw,14px));scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.18) transparent;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}.event-rail::-webkit-scrollbar{height:6px}.event-rail::-webkit-scrollbar-thumb{background:#ffffff29;border-radius:999px}.event-rail .event{flex:0 0 100%;scroll-snap-align:start;align-self:stretch}@media (min-width: 900px){.event-rail .event{flex:0 0 calc(50% - 7px)}}.event{background:var(--bg-soft);border:1px solid rgba(255,255,255,.06);border-radius:14px;overflow:hidden;box-shadow:var(--shadow-card);display:flex;flex-direction:column}.event-head{position:relative;display:flex;justify-content:center;align-items:center;padding:8px min(3vw,16px) 9px;background:var(--bg-deep);border-bottom:1px solid rgba(255,255,255,.06)}.event-next-badge{position:absolute;top:50%;left:10px;transform:translateY(-50%);display:inline-block;padding:3px 9px 4px;font-size:.66rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-ink);background:var(--accent);border-radius:999px;line-height:1}.event-date{display:inline-flex;align-items:baseline;gap:6px;line-height:1}.event-date .day{font-family:Fraunces,serif;font-size:1rem;font-weight:700;color:var(--ink)}.event-date .month{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-dim)}.event-date .time{font-size:.8rem;color:var(--accent-soft);letter-spacing:.02em}.event-body{padding:12px min(3vw,16px) 14px;display:flex;flex-direction:column}.event-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px min(3vw,16px) 10px;background:var(--bg-deep);border-top:1px solid rgba(255,255,255,.06)}.event-tally{display:inline-flex;align-items:center;gap:8px;color:var(--ink-dim);font-size:.9rem;font-variant-numeric:tabular-nums}.event-tally .people-icon{width:16px;height:16px;color:var(--ink-dim);flex-shrink:0}.tally-count{display:inline-block;transform-origin:center;will-change:transform,color}.tally-count.pulse{animation:tallyPulse 1.3s cubic-bezier(.2,.7,.2,1)}@keyframes tallyPulse{0%{color:var(--ink-dim);transform:scale(1)}20%{color:var(--accent);transform:scale(1.18)}60%{color:var(--accent-soft);transform:scale(1.06)}to{color:var(--ink-dim);transform:scale(1)}}.tally-full{margin-left:4px;padding:2px 8px;border-radius:999px;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:#f1a48b;border:1px solid rgba(241,164,139,.4)}.tally-mine{font-size:.88rem;font-weight:600;color:var(--accent)}.event.past .event-body{opacity:.94}.event.past .event-date .day,.event.past .event-date .time{color:var(--ink-dim)}.review-link,.review-pending{display:inline-flex;align-items:center;gap:8px;font-size:.92rem;width:100%;padding:2px 0}.review-link{color:var(--accent);text-decoration:none;transition:color .18s,gap .2s}.review-link:hover{color:var(--accent-soft)}.review-link:hover .review-arrow{transform:translate(3px)}.review-arrow{display:inline-block;margin-left:auto;transition:transform .2s ease-out;color:inherit}.review-pending{color:var(--ink-dim);font-style:italic}.review-pending.no-signups{font-style:normal;text-align:center;width:100%;display:block;letter-spacing:.04em;font-size:.86rem}.review-link .pen-icon,.review-pending .pen-icon{flex-shrink:0;color:inherit}.review-pending .pen-icon{animation:penDrift 3.4s ease-in-out infinite;transform-origin:80% 80%}@keyframes penDrift{0%,to{transform:rotate(0) translateY(0)}35%{transform:rotate(-7deg) translateY(-1px)}70%{transform:rotate(5deg) translateY(0)}}.event-section-title{margin:clamp(8px,2vw,14px) 0 clamp(10px,2vw,14px);display:flex;align-items:center;gap:14px;color:var(--ink-dim)}.event-section-title h2{margin:0;font-size:clamp(1.15rem,2.4vw,1.4rem);font-weight:500;font-style:italic;color:var(--ink-dim);letter-spacing:0}.event-section-title:after{content:"";flex:1;height:1px;background:#ffffff1a}.event-section-title.plain h2{font-style:normal;color:var(--ink)}.event h3{margin:0 0 2px;font-size:1.1rem;line-height:1.25}.event-meta{color:var(--ink-dim);font-size:.88rem;margin-bottom:6px}.event-description{position:relative;margin:2px 0 0;font-size:.93rem;line-height:1.55;color:var(--ink);white-space:pre-wrap}.event-description.clipped{max-height:3.1em;overflow:hidden}.event-description.clipped:after{content:"";position:absolute;inset:auto 0 0 0;height:1.6em;background:linear-gradient(to bottom,rgba(51,83,56,0),var(--bg-soft));pointer-events:none}.read-more{align-self:flex-start;background:none;border:0;padding:4px 0 0;margin:0;color:var(--accent-soft);font:inherit;font-size:.88rem;font-weight:500;cursor:pointer;letter-spacing:.01em}.read-more:before{content:"› ";letter-spacing:0}.read-more:hover{color:var(--accent)}.read-more:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.btn{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:8px 14px;font-weight:600;font-size:.88rem;border:1px solid transparent;background:var(--accent);color:var(--accent-ink);transition:filter .18s,transform .18s}.btn .btn-icon{display:block;flex-shrink:0}.btn:hover{filter:brightness(1.06)}.btn:disabled,.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed;pointer-events:none;filter:grayscale(.4)}.btn-count{opacity:.65;font-weight:500;font-variant-numeric:tabular-nums;margin-left:2px}.btn.ghost{background:transparent;color:var(--ink);border-color:#ffffff2e}.btn.ghost:hover{background:#ffffff0f}.post-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:min(2.2vw,18px);padding-bottom:min(8vw,60px);margin-inline:calc(-1 * var(--gutter) + min(1.5vw,14px))}.post{background:var(--bg-soft);border:1px solid rgba(255,255,255,.06);border-radius:14px;padding:clamp(14px,2.4vw,18px) clamp(14px,2.6vw,20px);display:flex;flex-direction:column;gap:6px;text-decoration:none;color:var(--ink);transition:border-color .18s,transform .18s}.post:hover{border-color:#ffffff29;transform:translateY(-2px)}.post .meta{color:var(--ink-dim);font-size:.85rem}.post h3{font-family:Fraunces,serif;margin:0;font-size:1.15rem}.post .excerpt{color:var(--ink-dim);font-size:.95rem;margin:0}.detail{max-width:720px;margin:0 auto;padding:4px 0 clamp(48px,8vw,80px)}.detail .meta{color:var(--ink-dim);font-size:.9rem;margin-bottom:18px}.detail .body{font-size:1.04rem;line-height:1.75;white-space:pre-wrap;overflow-wrap:anywhere}.detail audio{width:100%;margin:16px 0 24px}.back{display:inline-block;margin-bottom:16px;color:var(--ink-dim);font-size:.92rem}.back:hover{color:var(--ink)}.notify-me{background:var(--bg-deep);border-top:1px solid rgba(255,255,255,.08);padding:clamp(28px,5vw,48px) 0;margin-top:clamp(40px,6vw,60px)}.notify-inner{display:grid;gap:clamp(16px,2.5vw,22px)}.notify-copy h2{font-family:Fraunces,serif;font-size:clamp(1.3rem,3vw,1.8rem);font-weight:600;margin:0 0 6px;color:var(--ink)}.notify-copy p{margin:0;color:var(--ink-dim);max-width:56ch;font-size:.97rem}.notify-form{display:grid;gap:14px}.notify-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}.notify-form input:not([type=checkbox]){background:var(--bg);border:1px solid rgba(255,255,255,.12);border-radius:10px;color:var(--ink);padding:11px 13px;font:inherit;width:100%;min-width:0}.notify-form input:not([type=checkbox]):focus{outline:none;border-color:var(--accent)}.notify-actions{display:flex;justify-content:flex-end}.notify-error{color:#f1a48b;font-size:.9rem}.notify-done{padding:16px 18px;border-radius:12px;background:var(--bg);border:1px solid rgba(255,255,255,.08);color:var(--ink)}.checkbox-round{display:inline-flex;align-items:center;gap:12px;cursor:pointer;font-size:.92rem;color:var(--ink-dim);line-height:1.45}.checkbox-round input{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:22px;height:22px;border-radius:50%;border:1.5px solid rgba(255,255,255,.32);background:transparent;cursor:pointer;flex-shrink:0;position:relative;transition:background .18s,border-color .18s,transform .18s}.checkbox-round input:hover{border-color:#ffffff80}.checkbox-round input:checked{background:var(--accent);border-color:var(--accent)}.checkbox-round input:checked:after{content:"";position:absolute;left:6px;top:2px;width:6px;height:12px;border:solid var(--accent-ink);border-width:0 2px 2px 0;transform:rotate(45deg)}.checkbox-round input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.site-footer{padding:clamp(16px,3vw,24px) 0 clamp(24px,4vw,36px);color:var(--ink-dim);font-size:.82rem;text-align:center;letter-spacing:.02em;background:var(--bg-deep)}.signup-form{display:grid;gap:10px;padding:12px min(3vw,16px) 14px;background:var(--bg-deep);border-top:1px solid rgba(255,255,255,.06)}.event>.success{padding:10px min(3vw,16px) 12px;background:var(--bg-deep);border-top:1px solid rgba(255,255,255,.06);margin:0}.signup-form input{background:var(--bg-deep);border:1px solid rgba(255,255,255,.12);border-radius:10px;color:var(--ink);padding:10px 12px;font:inherit;width:100%;min-width:0}.signup-form input:focus{outline:none;border-color:var(--accent)}.signup-form .actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}.success{color:var(--accent-soft);margin-top:10px}
