:root{--ink:#0b2e3e;--ink-soft:#4a6b7a;--paper:#edf0ee;--card:#ffffff;--court:#1c6e7e;--court-deep:#12525f;--ball:#e4ff4f;--line:#c9d4d2;--warn:#b4451f;--r:18px}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--paper);color:var(--ink);font-family:var(--font-body),ui-sans-serif,system-ui,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit}.wrap{max-width:560px;margin:0 auto;padding:28px 20px 72px}.eyebrow{font-family:var(--font-mono),ui-monospace,monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 10px}h1.court{font-family:var(--font-display),sans-serif;font-weight:800;font-size:clamp(34px,9vw,52px);line-height:.95;letter-spacing:-.03em;margin:0 0 12px}.slot{font-family:var(--font-mono),ui-monospace,monospace;font-size:15px;letter-spacing:.02em;color:var(--ink);margin:0 0 24px}.slot b{font-weight:700}.slot span{color:var(--ink-soft)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:20px;margin-bottom:18px}.plan{width:100%;height:auto;display:block}.plan .surface{fill:var(--court)}.plan .paint{stroke:rgba(255,255,255,.55);stroke-width:2;fill:none}.plan .net{stroke:rgba(255,255,255,.9);stroke-width:3;stroke-dasharray:2 4}.plan .open-slot{fill:none;stroke:var(--ball);stroke-width:2.5;stroke-dasharray:5 5}.plan .taken-slot{fill:var(--card)}.plan .initials{font-family:var(--font-display),sans-serif;font-weight:700;font-size:15px;fill:var(--ink);text-anchor:middle;dominant-baseline:central}.plan .tag{font-family:var(--font-mono),monospace;font-size:9px;letter-spacing:.1em;fill:var(--ball);text-anchor:middle}.plan .host-ring{fill:none;stroke:var(--ball);stroke-width:2.5}.roster{list-style:none;margin:18px 0 0;padding:0}.roster li{display:flex;align-items:baseline;gap:10px;padding:9px 0;border-top:1px solid var(--line);font-size:15px}.roster li:first-child{border-top:0}.roster .n{font-family:var(--font-mono),monospace;font-size:12px;color:var(--ink-soft);width:18px}.roster .empty{color:var(--ink-soft);font-style:italic}.roster .badge{margin-left:auto;font-family:var(--font-mono),monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}a.primary,button.primary{display:block;width:100%;text-align:center;background:var(--ink);color:var(--ball);border:0;border-radius:999px;padding:17px 20px;font-family:var(--font-body),sans-serif;font-size:17px;font-weight:600;text-decoration:none;cursor:pointer}a.primary:hover,button.primary:hover{background:var(--court-deep)}button.ghost{background:none;border:1px solid var(--line);border-radius:999px;padding:11px 18px;font-size:14px;cursor:pointer;color:var(--ink-soft)}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--court);outline-offset:2px}.deadline{font-family:var(--font-mono),monospace;font-size:12px;color:var(--ink-soft);text-align:center;margin:14px 0 0}.deadline.tight{color:var(--warn);font-weight:700}label{display:block;font-size:13px;color:var(--ink-soft);margin:14px 0 6px}input,textarea{width:100%;padding:13px 14px;font-size:16px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink);font-family:inherit}.row{display:flex;gap:12px}.row>*{flex:1 1}.games{list-style:none;padding:0;margin:0}.games a{display:block;text-decoration:none;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;margin-bottom:12px}.games .when{font-family:var(--font-mono),monospace;font-size:12px;color:var(--ink-soft)}.games .name{font-family:var(--font-display),sans-serif;font-weight:700;font-size:21px;letter-spacing:-.02em;margin:2px 0 6px}.games .left{font-family:var(--font-mono),monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;background:var(--ball);color:var(--ink);padding:3px 8px;border-radius:999px}.note{font-size:14px;line-height:1.55}.hint,.note{color:var(--ink-soft)}.hint{font-size:13px;margin-top:20px;line-height:1.6}.copybar{display:flex;gap:8px;margin-top:12px}.copybar input{font-family:var(--font-mono),monospace;font-size:13px}@media (prefers-reduced-motion:no-preference){.plan .open-slot{animation:breathe 3.4s ease-in-out infinite}@keyframes breathe{50%{stroke-opacity:.35}}}.site-footer{max-width:560px;margin:0 auto;padding:0 20px 40px;display:flex;align-items:baseline;gap:10px;font-family:var(--font-mono),ui-monospace,monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}.site-footer a{text-decoration:none}.site-footer .version{margin-left:auto;opacity:.75}.banner{border-radius:var(--r);padding:14px 16px;margin-bottom:14px;display:flex;flex-direction:column;gap:4px}.banner .who{font-family:var(--font-mono),monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase}.banner .rule{font-size:14px;line-height:1.45}.banner.owner{background:var(--court);color:#fff}.banner.owner .who{color:var(--ball)}.banner.private{background:transparent;border:1px dashed var(--ink-soft);color:var(--ink-soft)}.manage{margin-top:28px}.manage summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:17px 20px;border:1px solid var(--ink);border-radius:999px;background:var(--card);color:var(--ink);font-family:var(--font-body),sans-serif;font-size:17px;font-weight:600;margin-bottom:18px}.manage summary::-webkit-details-marker{display:none}.manage summary:after{content:"";width:8px;height:8px;border-right:2px solid var(--ink-soft);border-bottom:2px solid var(--ink-soft);transform:translateY(-2px) rotate(45deg);transition:transform .15s ease}.manage[open]>summary:after{transform:translateY(2px) rotate(225deg)}.manage summary:hover{background:var(--ink);color:var(--ball)}.manage summary:hover:after{border-color:var(--ball)}.manage .card{margin-top:14px}button.ghost.wide{width:100%;padding:14px}fieldset.choices{border:0;padding:0;margin:22px 0 6px}fieldset.choices legend{font-size:13px;color:var(--ink-soft);padding:0;margin-bottom:8px}label.choice{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin:0 0 8px;cursor:pointer}label.choice input{width:auto;margin-top:3px}label.choice span{display:flex;flex-direction:column;font-size:14px;color:var(--ink-soft)}label.choice b{color:var(--ink);font-weight:600;margin-bottom:2px}label.choice:has(input:checked){border-color:var(--court);background:#fff}.games .host{font-size:13px;color:var(--ink-soft);margin-bottom:8px}.games .left.done{background:var(--line)}.mine h2{font-family:var(--font-display),sans-serif;font-size:20px;letter-spacing:-.02em;margin:0 0 12px}.roster li{flex-wrap:wrap}.roster .contact{flex:1 1}.roster .contact summary{cursor:pointer;list-style:none;border-bottom:1px dotted var(--line);display:inline-block}.roster .contact summary::-webkit-details-marker{display:none}.roster .contact[open] summary{border-bottom-color:var(--court)}.roster .ways{display:flex;flex-direction:column;gap:4px;margin:8px 0 4px;font-family:var(--font-mono),monospace;font-size:12px}.roster .ways a{color:var(--court)}label.choice.consent{margin-top:18px;align-items:flex-start}label.choice.consent span{color:var(--ink);font-size:14px;line-height:1.5}label.choice.consent a{color:var(--court)}.prose h2{font-family:var(--font-display),sans-serif;font-size:19px;letter-spacing:-.02em;margin:30px 0 8px}.prose p{font-size:15px;line-height:1.6;color:var(--ink);margin:0 0 12px}.prose h1.court{margin-bottom:22px}.manage details.danger{margin-top:18px;border-top:1px solid var(--line);padding-top:14px}.manage details.danger summary{border-color:var(--warn);color:var(--warn);font-size:15px;padding:14px 18px;margin-bottom:12px}.manage details.danger summary:hover{background:var(--warn);color:#fff}.manage details.danger summary:after{border-color:var(--warn)}.manage details.danger summary:hover:after{border-color:#fff}.manage details.danger .note{font-size:14px;margin:0 0 10px}button.ghost.destructive{border-color:var(--warn);color:var(--warn)}button.ghost.destructive:hover{background:var(--warn);color:#fff}h2.section{font-family:var(--font-display),sans-serif;font-size:20px;letter-spacing:-.02em;margin:0 0 10px}.urgent{margin-bottom:32px}.urgent .note{margin:0 0 14px}.urgent .games a{border-color:var(--warn)}.games .left.urgent{background:var(--warn);color:#fff}.mine{margin-top:36px}.prose ol.steps{padding-left:0;margin:18px 0 8px;counter-reset:step;list-style:none}.prose ol.steps li{position:relative;padding-left:40px;margin-bottom:16px;font-size:15px;line-height:1.6}.prose ol.steps li:before{counter-increment:step;content:counter(step);position:absolute;left:0;top:0;width:26px;height:26px;border-radius:999px;background:var(--court);color:var(--ball);font-family:var(--font-mono),monospace;font-size:12px;display:flex;align-items:center;justify-content:center}.prose ol.steps b{display:block}.prose p.cta{margin:34px 0 0}.prose p.cta a.primary{width:100%}.site-header{max-width:560px;margin:0 auto;padding:16px 20px 0;display:flex;align-items:center;gap:16px}.site-header .brand{display:flex;align-items:center;gap:10px;text-decoration:none}.site-header .wordmark{font-family:var(--font-display),sans-serif;font-weight:700;font-size:19px;letter-spacing:-.03em;color:var(--ink)}.nav-top{margin-left:auto;display:flex;gap:4px}.nav-top a{text-decoration:none;padding:7px 13px;border-radius:999px;font-size:14px;color:var(--ink-soft)}.nav-top a:hover{background:rgba(11,46,62,.06);color:var(--ink)}.nav-top a[aria-current=page]{background:var(--ink);color:var(--ball)}.nav-bottom{display:none}@media (max-width:640px){.nav-top{display:none}.nav-bottom{display:flex;position:fixed;left:0;right:0;bottom:0;background:var(--card);border-top:1px solid var(--line);padding:6px 8px calc(6px + env(safe-area-inset-bottom));z-index:20}.nav-bottom a{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 4px;text-decoration:none;color:var(--ink-soft);font-size:11px;letter-spacing:.01em}.nav-bottom svg{width:22px;height:22px}.nav-bottom a[aria-current=page]{color:var(--court);font-weight:600}.site-footer,.wrap{padding-bottom:96px}}.site-footer{flex-wrap:wrap;gap:6px 14px;text-transform:none;letter-spacing:.02em}.site-footer .credit{flex-basis:100%}.site-footer a{text-decoration:underline}.site-footer a:hover{color:var(--ink)}.fill{margin-bottom:24px}.fill label{margin-top:0}.fill select{width:100%;padding:13px 14px;font-size:16px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink);font-family:inherit}.fill .hint{margin:8px 0 10px}.roster .badge+span,.roster span .badge{margin-left:8px}.banner.private .copybar{margin-top:10px}