:root{--paper:#f6f5f2;--surface:#fff;--surface-sunken:#f0efeb;--ink:#1c1c1b;--ink-70:#625f59;--ink-50:#77746e;--line:#deddd8;--line-strong:#cfcec9;--accent:#1a3fff;--highlight:#ffd60a;--danger:#b42318;--good:#147d4a;--dark-panel:#1d1d1b;--dark-panel-ink:#fff;--dark-panel-muted:#c7c5bf;--ball:#cfe33f;--ball-rim:#1c1c1b;--radius:9px;--radius-sm:6px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--paper:#121212;--surface:#181817;--surface-sunken:#232321;--ink:#f4f2ed;--ink-70:#b7b4ad;--ink-50:#afada6;--line:#363634;--line-strong:#4a4945;--accent:#7d94ff;--highlight:#ffd60a;--danger:#ff8f82;--good:#6fd39c;--dark-panel:#252523;--dark-panel-ink:#f4f2ed;--dark-panel-muted:#b7b4ad;--ball-rim:#f4f2ed;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:84px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}body{background:var(--paper);color:var(--ink);font-synthesis:none;-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em}:where(a,button,input,select,textarea,summary,[contenteditable]):focus-visible{outline:3px solid color-mix(in srgb, var(--accent) 40%, transparent);outline-offset:2px;border-radius:4px}.page-width{width:min(1180px,100% - 48px);margin:0 auto}.skip-link{z-index:40;background:var(--highlight);color:#171717;border-radius:var(--radius-sm);padding:9px 14px;font-weight:700;text-decoration:none;position:fixed;top:-60px;left:20px}.skip-link:focus{top:16px}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.045em}.section-kicker{color:var(--accent);letter-spacing:.09em;text-transform:uppercase;margin:0 0 14px;font-size:12px;font-weight:800}.tennis-ball{flex:none;overflow:visible}.ball-body{fill:var(--ball)}.ball-rim{fill:none;stroke:var(--ball-rim);stroke-width:5px}.ball-seam{fill:none;stroke:var(--surface);stroke-width:5.5px;stroke-linecap:round}:root[data-theme=dark] .ball-seam{stroke:#f7f6f1}.ball-hat{paint-order:stroke fill;stroke:var(--ball-rim);stroke-width:4px;stroke-linejoin:round}.hat-cloth{fill:#d7232b}.hat-brim,.hat-pom{fill:#f7f6f1}.button,.icon-button,.quiet-button{color:inherit;background:0 0;border:0}.button{border-radius:7px;justify-content:center;align-items:center;gap:8px;min-height:45px;padding:0 17px;font-size:14px;font-weight:700;text-decoration:none;transition:transform .16s,background .16s,border-color .16s;display:inline-flex}.button:hover{transform:translateY(-1px)}.button:disabled{opacity:.55;cursor:not-allowed;transform:none}.button-primary{background:var(--dark-panel);color:var(--dark-panel-ink)}:root[data-theme=dark] .button-primary{background:var(--highlight);color:#171717}.button-primary:hover{background:var(--accent);color:#fff}.button-secondary{border:1px solid var(--line-strong);background:0 0}.button-secondary:hover{border-color:var(--ink)}.button-small{min-height:38px;padding:0 12px;font-size:13px}.icon-button{border:1px solid var(--line-strong);border-radius:7px;place-items:center;width:38px;height:38px;display:grid}.icon-button-bare{border:0;width:28px;height:28px}.quiet-button{color:var(--ink-50);margin-left:10px;font-size:12px}.quiet-button:hover{color:var(--danger)}.text-action{color:var(--accent);align-items:center;gap:2px;margin-left:auto;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.site-header{z-index:10;border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--paper) 93%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky;top:0}.header-inner{align-items:center;gap:32px;min-height:70px;display:flex}.wordmark{letter-spacing:-.035em;white-space:nowrap;align-items:center;gap:9px;font-size:16px;font-weight:760;text-decoration:none;display:inline-flex}.back-link{color:var(--ink-70);align-items:center;gap:6px;font-size:13px;font-weight:650;text-decoration:none;display:inline-flex}.back-link:hover{color:var(--ink)}.site-header nav{gap:24px;display:flex}.site-header nav a{color:var(--ink-70);font-size:14px;text-decoration:none}.site-header nav a:hover{color:var(--ink)}.header-actions{align-items:center;gap:9px;margin-left:auto;display:flex}.site-footer{border-top:1px solid var(--line);padding:34px 0}.footer-inner{color:var(--ink-70);align-items:center;gap:24px;font-size:13px;display:flex}.footer-brand{color:var(--ink);align-items:center;gap:8px;font-weight:750;display:inline-flex}.footer-links{flex-wrap:wrap;gap:16px;display:flex}.footer-inner a{text-decoration:none}.footer-inner a:hover{text-decoration:underline}.footer-inner small{margin-left:auto;font-size:12px}.anzac-banner{text-align:center;color:#f4f3ef;letter-spacing:.04em;background:#1a0a00;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;padding:10px 20px;font-size:13px;display:flex}.poppy{vertical-align:-3px}.warning-banner,.toast{border-radius:var(--radius);align-items:center;gap:10px;padding:12px 15px;font-size:14px;display:flex}.warning-banner{border:1px solid color-mix(in srgb, var(--danger) 40%, transparent);background:color-mix(in srgb, var(--danger) 10%, var(--surface));color:var(--ink);margin-bottom:22px}.warning-banner svg{color:var(--danger);flex:none}.toast{z-index:50;border:1px solid var(--line-strong);background:var(--surface);max-width:min(460px,100% - 32px);position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 14px 44px #00000038}.toast-good svg{color:var(--good)}.toast-bad svg{color:var(--danger)}.toast span{flex:1}.hero{border-bottom:1px solid var(--line);padding:clamp(88px,12vw,148px) 0}.hero-content{max-width:760px}h1{max-width:12ch;margin-bottom:18px;font-size:clamp(46px,7vw,82px);line-height:.98}.hero p:not(.section-kicker){max-width:46ch;color:var(--ink-70);margin-bottom:30px;font-size:19px;line-height:1.55}.section{padding:82px 0}.section-heading{margin-bottom:30px}.section-heading h2{margin-bottom:0;font-size:clamp(31px,4vw,46px);line-height:1.05}.section-heading-row{justify-content:space-between;align-items:end;gap:20px;display:flex}.steps-list{border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:repeat(3,1fr);margin:0;padding:0;list-style:none;display:grid;overflow:hidden}.steps-list li{background:var(--surface);align-items:center;gap:15px;min-height:125px;padding:24px;display:flex}.steps-list li+li{border-left:1px solid var(--line)}.step-icon{background:var(--highlight);color:#171717;border-radius:50%;flex:none;place-items:center;width:44px;height:44px;display:grid}.steps-list div{gap:4px;display:grid}.steps-list strong{letter-spacing:-.02em;font-size:16px}.steps-list span:not(.step-icon){color:var(--ink-70);font-size:14px}.features-section{background:var(--dark-panel);color:var(--dark-panel-ink)}.features-section .section-kicker{color:var(--highlight)}.feature-grid{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.feature-grid article{border-radius:var(--radius);border:1px solid #fff3;min-height:190px;padding:24px}.feature-grid svg{color:var(--highlight)}.feature-grid h3{margin:26px 0 8px;font-size:18px}.feature-grid p{color:var(--dark-panel-muted);margin-bottom:0;font-size:14px;line-height:1.55}.saved-section{background:var(--surface)}.saved-empty{min-height:95px;color:var(--ink-70);border:1px dashed var(--line-strong);border-radius:var(--radius);align-items:center;gap:11px;padding:25px;font-size:14px;display:flex}.saved-list{gap:9px;display:grid}.saved-card{border:1px solid var(--line);border-radius:8px;align-items:center;gap:13px;padding:13px 15px;display:flex}.saved-card-icon{background:var(--surface-sunken);border-radius:var(--radius-sm);width:38px;height:38px;color:var(--accent);place-items:center;display:grid}.saved-card-copy{gap:2px;min-width:0;display:grid}.saved-card-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.saved-card-copy span{color:var(--ink-70);font-size:12px}.modal-layer{z-index:30;background:#00000085;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.create-modal{background:var(--surface);width:min(600px,100%);max-height:calc(100dvh - 40px);color:var(--ink);border-radius:12px;padding:26px;overflow:auto;box-shadow:0 18px 60px #0000004d}.modal-heading{justify-content:space-between;align-items:start;gap:20px;margin-bottom:20px;display:flex}.modal-heading h2{margin-bottom:0;font-size:27px}.modal-subtitle{color:var(--ink-70);margin-bottom:20px;font-size:14px}.create-form{gap:17px;display:grid}.create-form>label,.create-form fieldset{border:0;gap:7px;margin:0;padding:0;font-size:13px;font-weight:700;display:grid}.create-form label span,.field-help{color:var(--ink-50);font-size:12px;font-weight:500}.create-form input,.create-form select,.create-form textarea{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);width:100%;padding:11px 12px;font-size:15px;font-weight:450}.create-form textarea{resize:vertical}.form-columns{grid-template-columns:1fr 130px;gap:13px;display:grid}.form-columns-three{grid-template-columns:repeat(3,1fr)}.segmented-control{flex-wrap:wrap;gap:7px;display:inline-flex}.segmented-control label{border:1px solid var(--line-strong);border-radius:var(--radius-sm);color:var(--ink-70);padding:8px 11px;font-size:13px;font-weight:650;position:relative}.segmented-control input{opacity:0;pointer-events:none;position:absolute}.segmented-control label:has(input:checked){border-color:var(--ink);background:var(--ink);color:var(--paper)}.form-error{color:var(--danger);margin:0;font-size:13px;font-weight:600}.modal-actions{justify-content:end;gap:9px;margin-top:5px;display:flex}.turnstile-slot{min-height:65px}.link-bar{border-bottom:1px solid var(--line);background:var(--surface)}.link-bar-inner{grid-template-columns:minmax(0,1fr);gap:8px;padding:16px 0;display:grid}.link-eyebrow,.link-note{color:var(--ink-70);align-items:center;gap:7px;margin:0;font-size:12px;display:flex}.link-eyebrow{letter-spacing:.04em;text-transform:uppercase;font-weight:700}.link-eyebrow svg,.link-note svg{color:var(--accent);flex:none}.link-row{align-items:center;gap:10px;min-width:0;display:flex}.link-code{text-overflow:ellipsis;white-space:nowrap;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-sunken);flex:1;min-width:0;padding:9px 12px;font-size:12px;overflow:hidden}.tournament-main{padding:34px 0 70px}.tournament-heading{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:16px;margin-bottom:22px;display:flex}.tournament-heading h1{max-width:none;margin:0;font-size:clamp(32px,5vw,52px)}.badge-row{flex-wrap:wrap;gap:7px;display:flex}.badge{border:1px solid var(--line-strong);border-radius:20px;padding:5px 11px;font-size:12px;font-weight:650}.tournament-grid{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:26px;display:grid}.round+.round{margin-top:26px}.round-label{letter-spacing:.12em;text-transform:uppercase;margin:0 0 10px;font-size:13px;font-weight:800}.matches-list{gap:8px;display:grid}.match-row{border:1px solid var(--line);background:var(--surface);border-radius:8px;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;padding:12px 15px;display:grid}.match-participant{overflow-wrap:anywhere;min-width:0;font-size:15px;font-weight:620}.match-participant.is-right{text-align:right}.match-participant.is-bye{color:var(--ink-50);font-weight:600}.player-name{cursor:text;border-radius:4px;margin:-2px -4px;padding:2px 4px}.player-name:hover{background:var(--surface-sunken)}.bye-select{border:1px dashed var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);padding:7px 9px;font-weight:620}.score-inputs{align-items:center;gap:6px;display:flex}.score-input{text-align:center;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);font-variant-numeric:tabular-nums;width:56px;padding:8px 6px;font-weight:700}.score-divider{color:var(--ink-50);font-weight:700}.match-fields{grid-column:1/-1;grid-template-columns:140px minmax(0,1fr);gap:8px;display:grid}.court-input,.notes-input{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-sunken);width:100%;padding:8px 10px;font-size:13px}.court-input{font-weight:650}.rest-list{color:var(--ink-70);margin:22px 0 0;font-size:13px;line-height:1.6}.tournament-side{gap:18px;display:grid;position:sticky;top:90px}.standings{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:18px}.panel-title{align-items:center;gap:8px;margin:0 0 14px;font-size:15px;display:flex}.panel-title svg{color:var(--accent)}.panel-empty{color:var(--ink-50);margin:0;font-size:13px}.table-scroll{overflow-x:auto}.stats-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:13px}.stats-table th,.stats-table td{text-align:right;border-bottom:1px solid var(--line);padding:7px 6px}.stats-table th{color:var(--ink-50);text-transform:uppercase;font-size:11px;font-weight:700}.stats-table th abbr{text-decoration:none}.stats-table td:nth-child(2),.stats-table th:nth-child(2){text-align:left}.stats-name{text-overflow:ellipsis;white-space:nowrap;max-width:150px;font-weight:650;overflow:hidden}.stats-points{font-weight:800}.stats-table tr.is-leader td{background:color-mix(in srgb, var(--highlight) 20%, transparent)}.tournament-actions{flex-wrap:wrap;gap:9px;margin-top:30px;display:flex}.content-page{padding:60px 0 80px}.content-title{max-width:18ch;margin-bottom:16px;font-size:clamp(38px,6vw,62px)}.lede{max-width:62ch;color:var(--ink-70);margin-bottom:34px;font-size:18px;line-height:1.6}.meta{color:var(--ink-50);font-size:13px}.faq-list{gap:8px;max-width:78ch;display:grid}.faq-list details{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden}.faq-list summary{cursor:pointer;padding:15px 18px;font-size:15px;font-weight:700}.faq-list details[open] summary{border-bottom:1px solid var(--line)}.faq-body{color:var(--ink-70);padding:16px 18px;font-size:15px;line-height:1.65}.faq-body p{margin:0 0 12px}.faq-body p:last-child{margin-bottom:0}.legal-list{gap:26px;max-width:74ch;margin:0;padding-left:1.4em;display:grid}.legal-list li::marker{color:var(--ink-50);font-weight:700}.legal-list h2{margin:0 0 8px;font-size:19px}.legal-list p,.legal-list ul{color:var(--ink-70);margin:0;font-size:15px;line-height:1.65}.legal-list ul{gap:6px;padding-left:1.2em;display:grid}.release-list{gap:12px;max-width:80ch;margin:0;padding:0;list-style:none;display:grid}.release{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:20px 22px}.release-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:12px;display:flex}.release-header h2{margin:0;font-size:17px}.release-date{color:var(--ink-50);white-space:nowrap;font-size:12px}.release ul{color:var(--ink-70);gap:8px;margin:0;padding-left:1.2em;font-size:14px;line-height:1.6;display:grid}.not-found-main{padding:40px 0 90px}.not-found{text-align:center;max-width:60ch;margin:0 auto}.not-found-code{letter-spacing:-.06em;justify-content:center;align-items:center;gap:clamp(4px,1.5vw,14px);margin:0 0 10px;font-size:clamp(96px,22vw,220px);font-weight:800;line-height:1;display:flex}.not-found-ball{width:clamp(88px,20vw,200px);height:auto}.not-found-title{max-width:none;margin-bottom:14px;font-size:clamp(26px,4vw,38px)}.not-found-body{color:var(--ink-70);font-size:16px;line-height:1.65}.not-found-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:26px;display:flex}@media (width<=1040px){.tournament-grid{grid-template-columns:1fr}.tournament-side{position:static}}@media (width<=760px){.page-width{width:min(100% - 36px,1180px)}.header-inner{gap:12px;min-height:62px}.site-header nav{display:none}.wordmark{font-size:14px}.header-actions{gap:7px}.hero{padding:78px 0}.hero p:not(.section-kicker){font-size:17px}.section{padding:58px 0}.steps-list,.feature-grid,.form-columns,.form-columns-three{grid-template-columns:1fr}.steps-list li{min-height:90px;padding:17px}.steps-list li+li{border-top:1px solid var(--line);border-left:0}.feature-grid article{min-height:0}.feature-grid h3{margin-top:16px}.section-heading-row{flex-direction:column;align-items:start}.footer-inner{flex-direction:column;align-items:flex-start;gap:14px}.footer-inner small{margin-left:0}.match-row{row-gap:9px}.match-fields{grid-template-columns:100px minmax(0,1fr)}.match-participant{font-size:14px}}@media (width<=440px){.button-small svg{display:none}.saved-card{flex-wrap:wrap}.quiet-button{margin-left:0}.score-input{width:48px}}@media print{:root,:root[data-theme=dark],:root[data-theme=light]{--paper:#fff;--surface:#fff;--surface-sunken:#fff;--ink:#000;--ink-70:#333;--ink-50:#555;--line:#bbb;--line-strong:#999;--accent:#000;--highlight:#eee;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.site-header,.site-footer,.link-bar,.tournament-actions,.skip-link,.toast,.no-print,.notes-input:placeholder-shown,.court-input:placeholder-shown{display:none!important}body{background:#fff}.tournament-main{padding:0}.tournament-grid{grid-template-columns:1fr;gap:18px}.page-width{width:100%}.match-row,.standings,.release,.faq-list details{break-inside:avoid}.stats-table tr.is-leader td{background:#f0f0f0}.score-input,.bye-select,.court-input,.notes-input{border-color:#999}.round{break-inside:avoid-page}a[href]:after{content:""}}.footer-fine{line-height:1.7}.pixel-heart{vertical-align:-1px;display:inline;overflow:visible}.heart-body{fill:#e5313c;stroke:var(--ball-rim);stroke-width:2px;paint-order:stroke fill}.heart-shine{fill:#ff8f96}.moved-page{z-index:1;text-align:center;padding:clamp(40px,8vw,80px) 0 70px;position:relative}.moved-page .page-width{max-width:660px}.hazard{border:2px solid var(--ink);background:repeating-linear-gradient(-45deg, var(--highlight) 0 12px, #171717 12px 24px);color:#fff;letter-spacing:.12em;text-transform:uppercase;text-shadow:0 0 5px #000,0 0 5px #000,0 1px 2px #000;border-radius:6px;margin-bottom:26px;padding:9px 18px;font-size:13px;font-weight:900;animation:1s step-end infinite hazard-flash;display:inline-block}@keyframes hazard-flash{50%{filter:brightness(1.35)}}.spinner{width:clamp(110px,24vw,150px);height:auto;image-rendering:pixelated;margin:0 auto 22px;animation:2.4s linear infinite logo-spin;display:block}@keyframes logo-spin{to{transform:rotate(360deg)}}.moved-title{max-width:none;margin-bottom:14px;font-size:clamp(38px,8vw,70px)}.moved-lede{max-width:44ch;color:var(--ink-70);margin:0 auto 26px;font-size:17px;line-height:1.6}.moved-hop{overflow-wrap:anywhere;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;margin:0 0 28px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;font-weight:700;display:flex}.old-host{color:var(--ink-50);text-decoration:line-through}.new-host{background:var(--highlight);color:#171717;border-radius:6px;padding:4px 10px}.hop-arrow{color:var(--accent);flex:none}.moved-scoreboard{border-radius:var(--radius);background:var(--dark-panel);color:var(--dark-panel-ink);align-items:center;gap:14px;margin-bottom:24px;padding:12px 22px;display:inline-flex}.scoreboard-label{letter-spacing:.08em;text-transform:uppercase;color:var(--dark-panel-muted);font-size:12px;font-weight:700}.scoreboard-digits{font-variant-numeric:tabular-nums;color:var(--highlight);font-size:38px;font-weight:800;line-height:1}.moved-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:26px;display:flex}.moved-fine{max-width:50ch;color:var(--ink-50);margin:0 auto;font-size:13px;line-height:1.6}.confetti{pointer-events:none;z-index:0;position:fixed;inset:0;overflow:hidden}.confetto{border-radius:2px;width:10px;height:16px;animation:4.2s linear infinite confetti-fall;position:absolute;top:-24px}.tone-0{background:#e5313c}.tone-1{background:var(--highlight)}.tone-2{background:var(--accent)}.tone-3{background:var(--ball)}@keyframes confetti-fall{0%{opacity:0;transform:translateY(0)rotate(0)}10%{opacity:1}to{opacity:1;transform:translateY(104vh)rotate(720deg)}}@media (prefers-reduced-motion:reduce){.confetti{display:none}.spinner,.hazard{animation:none}}
