:root{--paper:#faf8f3;--card:#ffffff;--ink:#0a0a0a;--ink-soft:#404040;--ink-mute:#8a8a8a;--rule:#0a0a0a;--rule-soft:#e7e3d8;--rule-hair:#efece4;--brand:#0a7d3a;--brand-deep:#053a1c;--brand-tint:#e8f3ec;--accent:#f5b342;--accent-deep:#b97f15;--danger:#b00020;--danger-tint:#fdecea;--warn:#7a5400;--warn-tint:#fff7e6;--info:#0b3a66;--info-tint:#eef6ff;--good:#0a5c2a;--good-tint:#e6f5ed;--font-display:"Bricolage Grotesque",ui-serif,Georgia,serif;--font-body:"Plus Jakarta Sans",system-ui,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,"SF Mono",monospace;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--s-8:64px;--s-9:96px;--r-0:0;--r-1:6px;--r-2:10px;--r-3:14px;--r-pill:999px;--shadow-1:0 1px 0 rgba(10,10,10,0.05);--shadow-2:0 8px 24px rgba(10,10,10,0.08);--shadow-stamp:0 6px 0 rgba(10,10,10,0.92)}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.5;font-feature-settings:"ss01","ss02","cv11";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::selection{background:var(--ink);color:var(--paper)}a{color:var(--ink);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}.container{max-width:1080px;margin:0 auto;padding:var(--s-5) var(--s-5) var(--s-9)}@media (min-width:720px){.container{padding:var(--s-7) var(--s-6) var(--s-9)}}.sections{display:grid;grid-gap:var(--s-7);gap:var(--s-7)}.stack{display:grid;grid-gap:var(--s-5);gap:var(--s-5)}.stack-tight{display:grid;grid-gap:var(--s-3);gap:var(--s-3)}.stack-hair{display:grid;grid-gap:var(--s-1);gap:var(--s-1)}.row{gap:var(--s-3);align-items:center}.row,.row-between{display:flex;flex-wrap:wrap}.row-between{gap:var(--s-4);align-items:baseline;justify-content:space-between}.row-end{display:flex;gap:var(--s-2);flex-wrap:wrap;justify-content:flex-end}.kicker{font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-mute)}.kicker--ink{color:var(--ink)}.display{font-family:var(--font-display);font-weight:700;letter-spacing:-.025em;line-height:1.02;margin:0;font-variation-settings:"opsz" 96}.display-xl{font-size:clamp(40px,6.5vw,80px)}.display-l{font-size:clamp(32px,4.5vw,56px)}.display-m{font-size:clamp(26px,3.2vw,38px)}.display-s{font-size:clamp(20px,2.4vw,26px)}.headline{font-family:var(--font-display);font-weight:700;font-size:22px;letter-spacing:-.01em;line-height:1.1;margin:0;font-variation-settings:"opsz" 36}.subhead{font-size:15px;font-weight:600;color:var(--ink)}.subhead,.title{font-family:var(--font-body);margin:0}.title{font-weight:700;font-size:16px;letter-spacing:-.005em}.body{font-size:15px;line-height:1.55;color:var(--ink-soft);margin:0}.meta{font-size:13px;margin:0}.meta,.muted{color:var(--ink-mute)}.num{font-family:var(--font-mono);font-feature-settings:"tnum","zero","ss01"}.amount-hero{font-family:var(--font-display);font-weight:800;font-size:clamp(48px,8vw,80px);letter-spacing:-.04em;line-height:.92;font-variation-settings:"opsz" 96,"wght" 800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.amount-l{font-family:var(--font-display);font-weight:800;font-size:clamp(32px,4vw,44px);letter-spacing:-.03em;line-height:1;font-variation-settings:"opsz" 72,"wght" 800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.amount-m{font-size:26px;letter-spacing:-.02em;line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.amount-m,.time-hero{font-family:var(--font-display);font-weight:700}.time-hero{font-size:clamp(22px,2.6vw,30px);letter-spacing:-.01em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.1}.time-m{font-family:var(--font-display);font-weight:700;font-size:18px;letter-spacing:-.005em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.time-s{font-family:var(--font-mono);font-size:13px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:.02em}.card{padding:var(--s-4)}.card,.card-tight{background:var(--card);border:1px solid var(--rule-soft);border-radius:var(--r-3)}.card-tight{padding:var(--s-3)}.block{background:var(--card);border:2px solid var(--rule);border-radius:var(--r-3);padding:var(--s-4)}@media (min-width:560px){.card{padding:var(--s-5)}.card-tight{padding:var(--s-4)}.block{padding:var(--s-5)}}.ticket{background:var(--card);border:2px solid var(--rule);border-radius:var(--r-3);padding:var(--s-7) var(--s-5) var(--s-7);position:relative;box-shadow:var(--shadow-stamp)}.ticket:after,.ticket:before{content:"";position:absolute;left:var(--s-3);right:var(--s-3);height:0;border-top:2px dashed var(--rule);opacity:.35}.ticket:before{top:var(--s-3)}.ticket:after{bottom:var(--s-3)}.divider{border:none;border-top:1px solid var(--rule-soft);margin:0}.divider-thick{border:none;border-top:2px solid var(--rule);margin:0}.divider-dashed{border:none;border-top:2px dashed var(--rule);opacity:.35;margin:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);padding:14px 22px;font-family:var(--font-body);font-size:15px;font-weight:700;letter-spacing:.005em;background:var(--ink);color:var(--paper);border:2px solid var(--ink);border-radius:var(--r-2);cursor:pointer;transition:transform 80ms ease,box-shadow .12s ease,background .12s ease}.btn,.btn:hover{text-decoration:none}.btn:hover{transform:translateY(-1px);box-shadow:0 4px 0 rgba(10,10,10,.18)}.btn:active{transform:translateY(1px);box-shadow:none}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.btn-brand{background:var(--brand);border-color:var(--brand)}.btn-brand:hover{background:var(--brand-deep);border-color:var(--brand-deep)}.btn-ghost{background:var(--card);color:var(--ink);border:2px solid var(--ink);padding:12px 20px;border-radius:var(--r-2);font-family:var(--font-body);font-size:15px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);transition:transform 80ms ease,background .12s ease;text-decoration:none}.btn-ghost:hover{background:var(--paper);transform:translateY(-1px);text-decoration:none}.btn-ghost:active{transform:translateY(1px)}.btn-ghost:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn-soft{background:var(--card);color:var(--ink);border:1px solid var(--rule-soft);padding:11px 18px;border-radius:var(--r-2);font-family:var(--font-body);font-size:14px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);text-decoration:none;transition:background .12s ease,border-color .12s ease}.btn-soft:hover{background:var(--paper);border-color:var(--ink);text-decoration:none}.btn-danger{background:var(--card);color:var(--danger);border:2px solid var(--danger);padding:12px 18px;border-radius:var(--r-2);font-family:var(--font-body);font-size:14px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);transition:transform 80ms ease,background .12s ease}.btn-danger:hover{background:var(--danger-tint);transform:translateY(-1px)}.btn-danger:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn-block{display:flex;width:100%}.slot{background:var(--card);color:var(--ink);border:1.5px solid var(--rule-soft);border-radius:var(--r-2);padding:12px 8px;display:grid;grid-gap:4px;gap:4px;cursor:pointer;transition:transform 80ms ease,border-color .12s ease,background .12s ease;font-family:var(--font-body);font-weight:600;text-align:center}.slot:hover:not(:disabled):not(.slot--selected):not(.slot--taken):not(.slot--past):not(.slot--blocked){border-color:var(--ink);transform:translateY(-1px)}.slot--selected{background:var(--ink);color:var(--paper);border-color:var(--ink)}.slot--taken{border-style:dashed;border-color:var(--rule-soft)}.slot--past,.slot--taken{background:var(--paper);color:var(--ink-mute);cursor:not-allowed}.slot--past{opacity:.6}.slot--blocked{color:var(--ink-mute);border-style:dashed}.slot--blocked,.slot:disabled{cursor:not-allowed}.date-strip{display:flex;gap:var(--s-2);overflow-x:auto;overflow-y:visible;padding:6px 2px var(--s-2);margin:-6px -2px 0;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.date-pill{flex:0 0 auto;min-width:64px;padding:10px 12px;background:var(--card);border:1.5px solid var(--rule-soft);border-radius:var(--r-2);cursor:pointer;display:grid;grid-gap:2px;gap:2px;text-align:center;font-family:var(--font-body);transition:border-color .12s ease,transform 80ms ease}.date-pill:hover{border-color:var(--ink);transform:translateY(-1px)}.date-pill:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.date-pill--selected{background:var(--ink);color:var(--paper);border-color:var(--ink)}.gallery-strip{display:flex;gap:var(--s-2);overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:4px 2px var(--s-3);margin:0 calc(-1 * clamp(20px, 4vw, 32px));padding-left:clamp(20px,4vw,32px);padding-right:clamp(20px,4vw,32px);scrollbar-width:none}.gallery-strip::-webkit-scrollbar{display:none}.gallery-tile{flex:0 0 78%;aspect-ratio:4/3;scroll-snap-align:start;border:2px solid var(--ink);border-radius:var(--r-3);overflow:hidden;background:var(--ink);padding:0;cursor:zoom-in;position:relative;transition:transform .12s ease}.gallery-tile:hover{transform:translateY(-2px)}.gallery-tile__media{width:100%;height:100%;object-fit:cover;display:block}.gallery-tile__badge{position:absolute;bottom:10px;left:10px;background:rgba(10,10,10,.7);color:var(--paper);border:2px solid var(--paper);border-radius:50%;width:38px;height:38px;display:grid;place-items:center;font-size:16px}@media (min-width:720px){.gallery-strip{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:var(--s-3);gap:var(--s-3);overflow:visible;margin:0;padding:0}.gallery-tile{flex:1 1 auto;aspect-ratio:1/1;scroll-snap-align:none}.gallery-tile:first-child{grid-column:span 2;grid-row:span 2;aspect-ratio:auto}}.court-picker{background:transparent;border:none;border-radius:0;padding:0}@media (min-width:560px){.court-picker{background:var(--card);border:1px solid var(--rule-soft);border-radius:var(--r-3);padding:var(--s-5)}}.court-tab{padding:10px;background:var(--card);border:1.5px solid var(--rule-soft);border-radius:var(--r-2);cursor:pointer;font-family:var(--font-body);font-weight:600;font-size:14px;text-align:center;transition:border-color .12s ease,transform 80ms ease}@media (min-width:560px){.court-tab{padding:12px 14px}}.court-tab:hover{border-color:var(--ink);transform:translateY(-1px)}.court-tab--selected{background:var(--brand);color:#fff;border-color:var(--brand)}.input{width:100%;padding:12px 14px;background:var(--card);border:1.5px solid var(--rule-soft);border-radius:var(--r-2);font-family:var(--font-body);font-size:15px;font-weight:500;color:var(--ink);transition:border-color .12s ease}.input:focus{outline:none;border-color:var(--ink)}.input--num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pill{display:inline-block;padding:6px 12px;border-radius:var(--r-pill);font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.pill--good{background:var(--good-tint);color:var(--good)}.pill--warn{background:var(--warn-tint);color:var(--warn)}.pill--bad{background:var(--danger-tint);color:var(--danger)}.pill--neutral{background:var(--paper);color:var(--ink-soft)}.banner{padding:14px 16px;border-radius:var(--r-2);font-size:14px;border:1.5px solid;font-weight:500}.banner--good{background:var(--good-tint);border-color:#a7d7b8;color:var(--good)}.banner--warn{background:var(--warn-tint);border-color:#f0c97a;color:var(--warn)}.banner--info{background:var(--info-tint);border-color:#c5dcf5;color:var(--info)}.banner--bad{background:var(--danger-tint);border-color:#f5c2c0;color:var(--danger)}.qr-mount{width:256px;height:256px;padding:14px;background:#fff;border:2px solid var(--ink);border-radius:var(--r-3);display:grid;place-items:center;justify-self:center;box-shadow:var(--shadow-stamp)}header.brand{background:var(--paper);border-bottom:2px solid var(--ink);padding:16px clamp(20px,4vw,32px);display:flex;align-items:center;gap:14px;position:-webkit-sticky;position:sticky;top:0;z-index:50;-webkit-backdrop-filter:saturate(140%);backdrop-filter:saturate(140%)}header.brand .logo{width:36px;height:36px;background:var(--ink);color:var(--paper);display:inline-flex;align-items:center;justify-content:center;font-weight:800;border-radius:var(--r-1)}header.brand .logo,header.brand .name{font-family:var(--font-display);font-size:18px}header.brand .name{font-weight:700;letter-spacing:-.01em}header.brand nav{margin-left:auto;display:flex;gap:18px}header.brand nav a{font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;color:var(--ink);border-bottom:2px solid transparent;padding-bottom:2px;transition:border-color .12s ease}header.brand nav a:hover{border-color:var(--ink)}header.admin{background:var(--ink);color:var(--paper);border-bottom:2px solid var(--ink);padding:12px clamp(16px,4vw,32px);display:flex;align-items:center;gap:var(--s-4);position:-webkit-sticky;position:sticky;top:0;z-index:50;flex-wrap:wrap}header.admin .admin__brand{display:inline-flex;align-items:center;gap:var(--s-3);text-decoration:none;color:var(--paper)}header.admin .stamp{width:36px;height:36px;background:var(--paper);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;font-weight:800;border-radius:var(--r-1);flex-shrink:0}header.admin .name,header.admin .stamp{font-family:var(--font-display);font-size:18px}header.admin .name{font-weight:700;letter-spacing:-.01em;color:var(--paper);white-space:nowrap}header.admin .admin__tabs{display:flex;gap:var(--s-4);align-items:stretch;border-left:1.5px solid rgba(250,248,243,.18);padding-left:var(--s-4);margin-left:var(--s-1)}header.admin .admin__tab{background:transparent;color:var(--ink-mute);font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:4px 0;cursor:pointer;border:none;border-bottom:2px solid transparent;transition:color .12s ease,border-color .12s ease;white-space:nowrap;margin-bottom:-2px}header.admin .admin__tab:hover{color:var(--paper)}header.admin .admin__tab--active{color:var(--paper);border-bottom-color:var(--brand)}header.admin .admin__actions{margin-left:auto;display:flex;gap:var(--s-2);align-items:center}@media (max-width:560px){header.admin{gap:var(--s-2)}header.admin .admin__tabs{order:99;flex-basis:100%;border-left:none;padding-left:0;margin-left:0;padding-top:var(--s-2);border-top:1.5px solid rgba(250,248,243,.18)}header.admin .admin__actions{margin-left:auto}}.btn-invert{background:transparent;color:var(--paper);border:1.5px solid rgba(250,248,243,.4);padding:9px 16px;border-radius:var(--r-2);font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:border-color .12s ease,background .12s ease}.btn-invert:hover{border-color:var(--paper);background:rgba(250,248,243,.06)}.btn-invert:disabled{opacity:.4;cursor:not-allowed}.filter-row{display:grid;grid-template-columns:1fr;grid-gap:var(--s-2);gap:var(--s-2);align-items:start;padding:var(--s-2) 0}.filter-row__label{padding-top:2px}.filter-row__chips{flex-wrap:wrap;gap:var(--s-2)}@media (min-width:560px){.filter-row{grid-template-columns:minmax(72px,max-content) 1fr;gap:var(--s-3);align-items:center;padding:0}.filter-row__label{padding-top:4px}}.chip{padding:8px 14px;background:var(--card);color:var(--ink);border:1.5px solid var(--rule-soft);border-radius:var(--r-pill);cursor:pointer;font-family:var(--font-mono);font-weight:600;font-size:11px;letter-spacing:.08em;text-transform:uppercase;transition:border-color .12s ease,background .12s ease,transform 80ms ease;white-space:nowrap}.chip:hover{border-color:var(--ink);transform:translateY(-1px)}.chip--selected{background:var(--ink);color:var(--paper);border-color:var(--ink)}.chip--count{margin-left:6px;font-feature-settings:"tnum";opacity:.6}.qr-thumb{display:inline-flex;padding:6px;background:#fff;border:2px solid var(--ink);border-radius:var(--r-2);cursor:zoom-in;transition:transform .12s ease}.qr-thumb:hover{transform:translateY(-1px)}.qr-thumb img{display:block;width:200px;height:200px;object-fit:contain}.qr-thumb--loading{width:212px;height:212px;display:grid;place-items:center;font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute)}@keyframes lift-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.lift-in{animation:lift-in .32s ease both}.lift-in-1{animation:lift-in .32s ease 0s both}.lift-in-2{animation:lift-in .32s ease 60ms both}.lift-in-3{animation:lift-in .32s ease .12s both}.lift-in-4{animation:lift-in .32s ease .18s both}@keyframes stamp-in{0%{opacity:0;transform:scale(.85) rotate(-8deg)}60%{opacity:1;transform:scale(1.04) rotate(2deg)}to{opacity:1;transform:scale(1) rotate(0deg)}}.stamp-in{animation:stamp-in .48s cubic-bezier(.2,.8,.2,1) both;transform-origin:center}.fill{width:100%}.center{text-align:center}.right{text-align:right}.tabular{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.cursor-pointer{cursor:pointer}.bottom-bar{position:fixed;left:0;right:0;bottom:0;background:var(--paper);border-top:2px solid var(--ink);z-index:40;padding:14px clamp(16px,4vw,32px);box-shadow:0 -8px 24px rgba(10,10,10,.06)}.bottom-bar-inner{max-width:1080px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);flex-wrap:wrap}.modal-veil{position:fixed;inset:0;background:rgba(10,10,10,.55);display:grid;place-items:center;z-index:60;padding:var(--s-4);animation:lift-in .2s ease both}.modal{background:var(--card);border:2px solid var(--ink);border-radius:var(--r-3);padding:var(--s-6);max-width:420px;width:100%;display:grid;grid-gap:var(--s-4);gap:var(--s-4);box-shadow:var(--shadow-stamp)}.row-link:hover{background:var(--paper);text-decoration:none}.toast{position:fixed;bottom:110px;left:50%;transform:translateX(-50%);padding:12px 20px;border:2px solid var(--ink);border-radius:var(--r-2);background:var(--card);font-size:14px;font-weight:600;z-index:45;max-width:calc(100% - 32px);box-shadow:var(--shadow-stamp)}.toast--bad{background:var(--danger-tint);border-color:var(--danger);color:var(--danger)}.toast--info{background:var(--info-tint);border-color:var(--info);color:var(--info)}