:root{--paper: #faf6ee;--paper-deep: #f1ead9;--ink: #1c1712;--ink-soft: #5c5348;--rule: #d8cfbc;--marigold: #e05e10;--marigold-deep: #b34505;--verify-green: #2c6e49;--font-display: "Fraunces", "Georgia", serif;--font-body: "Archivo", "Helvetica Neue", sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box;margin:0}html{background:var(--paper);color:var(--ink)}body{font-family:var(--font-body);font-size:16px;line-height:1.5;background-image:radial-gradient(rgba(28,23,18,.028) 1px,transparent 1px);background-size:3px 3px;min-height:100vh}.sheet{max-width:880px;margin:0 auto;padding:0 20px 96px}a{color:inherit}a:hover{color:var(--marigold-deep)}.masthead{padding:40px 0 12px;border-bottom:3px solid var(--ink)}.masthead .brand{font-family:var(--font-display);font-weight:900;font-size:clamp(52px,11vw,96px);letter-spacing:-.03em;line-height:.9}.masthead .brand a{text-decoration:none}.masthead .brand .thai{color:var(--marigold);font-size:.38em;vertical-align:.9em;letter-spacing:.02em;margin-left:.35em}.masthead .strap{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 0 2px;font-size:13px;color:var(--ink-soft)}.masthead .strap .promise{font-style:italic}.masthead .strap .stamp{font-family:var(--font-mono);font-size:12px}.filters{display:flex;flex-wrap:wrap;gap:8px;padding:18px 0;border-bottom:1px solid var(--rule);position:sticky;top:0;background:var(--paper);z-index:5}.chip{font-family:var(--font-mono);font-size:12px;letter-spacing:.04em;text-transform:uppercase;border:1.5px solid var(--ink);background:transparent;color:var(--ink);border-radius:999px;padding:4px 12px;cursor:pointer;transition:transform .08s ease,background .12s ease}.chip:hover{transform:translateY(-1px)}.chip[aria-pressed=true]{background:var(--ink);color:var(--paper)}.chip.free[aria-pressed=true]{background:var(--verify-green);border-color:var(--verify-green)}.day{padding-top:34px}.day>h2{font-family:var(--font-display);font-weight:900;font-size:clamp(26px,4.6vw,38px);letter-spacing:-.02em;display:flex;align-items:baseline;gap:14px}.day>h2 .date{font-family:var(--font-mono);font-weight:400;font-size:13px;color:var(--ink-soft);white-space:nowrap}.day>h2:after{content:"";flex:1;border-bottom:3px double var(--ink);transform:translateY(-6px)}.row{display:grid;grid-template-columns:64px 1fr auto;gap:8px 16px;padding:14px 4px;border-bottom:1px solid var(--rule);align-items:baseline}.row:hover{background:var(--paper-deep)}.row .time{font-family:var(--font-mono);font-size:14px;color:var(--marigold-deep);font-weight:500}.row .title{font-size:17px;font-weight:600;text-decoration:none;line-height:1.3}.row .title:hover{text-decoration:underline;text-decoration-color:var(--marigold)}.row .where{font-size:13.5px;color:var(--ink-soft);margin-top:2px}.row .side{display:flex;gap:6px;align-items:center;justify-self:end}.tag{font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;padding:2px 7px;border:1px solid var(--ink-soft);border-radius:2px;color:var(--ink-soft);white-space:nowrap}.tag.price{border-color:var(--verify-green);color:var(--verify-green)}.tag.recurring{border-style:dotted}.tbc{font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;padding:2px 7px;border:1.5px dashed var(--marigold-deep);color:var(--marigold-deep);border-radius:2px;transform:rotate(-1.2deg);white-space:nowrap}.cancelled-banner{border:2px solid var(--marigold-deep);background:#fbe8dc;color:var(--marigold-deep);font-weight:600;padding:12px 16px;margin:20px 0}.crumb{font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.05em;padding:20px 0 0}.crumb a{text-decoration:none;color:var(--ink-soft)}.detail h1{font-family:var(--font-display);font-weight:900;font-size:clamp(34px,7vw,60px);letter-spacing:-.025em;line-height:1.02;padding:14px 0 6px}.detail .blurb{font-family:var(--font-display);font-style:italic;font-size:19px;color:var(--ink-soft);max-width:56ch;padding:6px 0 18px}.facts{border-top:3px solid var(--ink);border-bottom:1px solid var(--rule);margin:10px 0 24px}.facts .fact{display:grid;grid-template-columns:110px 1fr;gap:16px;padding:10px 4px;border-bottom:1px solid var(--rule);align-items:baseline}.facts .fact:last-child{border-bottom:none}.facts dt{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft)}.facts dd{font-size:16px}.facts dd .tbc{margin-left:8px}.book{display:inline-block;font-family:var(--font-mono);font-size:14px;text-transform:uppercase;letter-spacing:.06em;background:var(--marigold);color:var(--paper);text-decoration:none;padding:12px 22px;border:2px solid var(--ink);box-shadow:4px 4px 0 var(--ink);transition:transform .08s ease,box-shadow .08s ease}.book:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--ink);color:var(--paper)}.sources{padding:28px 0 0}.sources h2,.venue-events h2{font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft);border-bottom:1px solid var(--rule);padding-bottom:6px}.sources ul{list-style:none;padding:10px 0 0}.sources li{padding:4px 0;font-size:14px}.sources li:before{content:"✓ ";color:var(--verify-green);font-weight:700}.sources .note{font-size:12.5px;color:var(--ink-soft);font-style:italic;padding-top:10px}.description{max-width:62ch;padding:6px 0 20px;white-space:pre-line}.colophon{margin-top:72px;border-top:3px solid var(--ink);padding-top:14px;font-size:12.5px;color:var(--ink-soft);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.colophon .mono{font-family:var(--font-mono)}.empty{padding:60px 0;font-family:var(--font-display);font-style:italic;font-size:20px;color:var(--ink-soft)}@media (max-width: 560px){.row{grid-template-columns:52px 1fr}.row .side{grid-column:2;justify-self:start}}
