:root{--ink:#171c18;--lime:#d5fa32;--paper:#f7f8f4;--line:#d7dbd2;--muted:#667061;--dark:#171e18;--font:Arial,Helvetica,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.55}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{ -webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid #638400;outline-offset:5px}h1,h2,h3,p{margin:0}h1,h2{letter-spacing:-.055em;line-height:1.03}h1{font-size:clamp(2.5rem,6.8vw,6.6rem);font-weight:900}h2{font-size:clamp(2rem,4.4vw,3.9rem)}h3{font-size:1.3rem;line-height:1.2}p{max-width:65ch}.wrap{width:min(1320px,calc(100% - 64px));margin:auto}.site-header{background:#fff;border-bottom:1px solid var(--line)}.header-inner{height:92px;display:flex;align-items:center;gap:32px}.brand img{display:block;width:178px;height:auto}.brand .compact{display:none}.main-nav{margin-left:auto;display:flex;gap:27px;align-items:center;font-size:.9rem;font-weight:700}.main-nav a{padding:12px 0}.main-nav a[aria-current=page]{box-shadow:inset 0 -3px var(--ink)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:16px;border:1px solid var(--ink);padding:13px 23px;background:transparent;font-weight:700;font-size:.95rem;border-radius:3px;line-height:1.3}.btn:hover{background:#e8ecdf}.btn.primary{background:var(--lime);border-color:var(--lime);color:var(--ink)}.btn.primary:hover{background:#c0e220}.btn.dark{background:var(--ink);color:white}.btn.light{color:white;border-color:#7b8578}.btn.small{padding:8px 13px;font-size:.88rem}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.75rem;font-weight:800;margin-bottom:18px}.hero{background:var(--dark);color:white;position:relative;overflow:hidden}.hero-inner{display:grid;grid-template-columns:1fr 1.05fr;min-height:610px;align-items:center}.hero-copy{padding:68px 45px 76px 0;z-index:1}.hero h1{max-width:650px}.hero h1 em{color:var(--lime);font-style:normal}.hero p{color:#c1c8bd;max-width:375px;margin-top:26px;font-size:1.06rem}.hero .actions{margin-top:34px}.hero-photo{align-self:stretch;position:relative;min-width:0}.hero-photo img{position:absolute;width:calc(100% + 150px);height:100%;object-fit:cover;object-position:44% center}.hero-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,var(--dark),transparent 32%),linear-gradient(0deg,#0005,transparent)}.photo-caption{position:absolute;bottom:32px;right:16px;z-index:1;background:#121b16cc;border-left:3px solid var(--lime);padding:14px 20px;font-size:.8rem;letter-spacing:.05em}.actions{display:flex;gap:12px;flex-wrap:wrap}.fact-strip{background:var(--lime)}.facts{display:grid;grid-template-columns:repeat(4,1fr);padding:26px 0}.fact{padding:0 30px;border-right:1px solid #a3be31;display:flex;align-items:center;gap:14px}.fact:first-child{padding-left:0}.fact:last-child{border:0}.fact strong{font-size:2rem;line-height:1}.fact span{font-size:.85rem;line-height:1.25}.section{padding:76px 0}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:34px}.section-heading p{color:var(--muted);max-width:380px}.tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.tool-card{padding:32px;border:1px solid var(--line);background:white;display:grid;grid-template-columns:1fr auto;gap:20px;transition:transform .2s}.tool-card:hover{transform:translateY(-3px);border-color:var(--ink)}.tool-card p{color:var(--muted);margin:12px 0 23px}.tool-icon{height:54px;width:54px;display:grid;place-items:center;background:var(--lime);border-radius:50%;font-size:1.5rem}.text-link{font-weight:700;text-decoration:underline;text-underline-offset:5px}.venue-teaser{display:grid;grid-template-columns:1.15fr 1fr;gap:52px;align-items:center}.venue-teaser img{width:100%;aspect-ratio:1.45;object-fit:cover;border-radius:4px}.venue-teaser p{color:var(--muted);margin:25px 0}.site-footer{background:var(--dark);color:#dbe0d8;padding:40px 0}.footer-inner{display:flex;justify-content:space-between;align-items:center;gap:28px}.footer-title{color:white;font-weight:800;letter-spacing:.04em}.site-footer small{font-size:.8rem;color:#a9b4a4}.page-heading{padding:50px 0 32px}.page-heading h1{font-size:clamp(2.5rem,5vw,4.8rem)}.page-heading p{color:var(--muted);margin-top:20px}.page-heading .eyebrow{color:#556734}.panel{background:white;border:1px solid var(--line);border-radius:5px;padding:28px}.field{display:flex;flex-direction:column;gap:7px;font-size:.875rem;font-weight:700}.field input,.field select,.field textarea{border:1px solid #bbc4b5;background:white;border-radius:3px;padding:12px;color:var(--ink);width:100%;font-weight:400;min-height:46px}.field textarea{resize:vertical;min-height:165px}.field small{font-weight:400;color:var(--muted)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.full{grid-column:1/-1}.notice{background:#edf1e6;border-left:3px solid #738650;padding:14px 18px;font-size:.88rem;color:#45513d}.error{color:#a32119;font-size:.9rem}.hidden,[hidden]{display:none!important}.skip{position:absolute;top:-70px;background:var(--lime);padding:10px;z-index:100}.skip:focus{top:0}.muted{color:var(--muted)}.spacer{margin-top:24px}.menu-button{display:none}.tag{display:inline-block;background:#e9efdf;font-size:.75rem;font-weight:700;padding:4px 9px;border-radius:3px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(max-width:1000px){.main-nav{gap:16px}.header-inner{gap:18px}.brand img{width:140px}.header-contact{display:none}.hero-inner{min-height:540px}.hero h1{font-size:4.5rem}.hero-copy{padding-right:10px}.fact{padding:0 18px}.fact strong{font-size:1.7rem}}
@media(max-width:700px){.wrap{width:calc(100% - 36px)}.header-inner{height:76px;position:relative}.brand img{width:150px}.menu-button{display:block;margin-left:auto;border:1px solid var(--line);background:white;padding:8px 12px}.main-nav{display:none;position:absolute;top:76px;left:-18px;right:-18px;background:white;z-index:20;padding:20px;flex-direction:column;align-items:stretch;gap:2px;box-shadow:0 10px 18px #0001}.main-nav.open{display:flex}.hero-inner{display:block;min-height:0}.hero-copy{padding:44px 0 38px}.hero h1{font-size:clamp(3.5rem,15vw,5.3rem)}.hero p{max-width:330px}.hero-photo{height:300px;margin:0 -18px}.hero-photo img{width:100%;object-position:center 60%}.hero-photo:after{background:linear-gradient(180deg,var(--dark),transparent 30%)}.facts{grid-template-columns:1fr 1fr;gap:24px;padding:25px 0}.fact:nth-child(3){padding-left:0}.fact:nth-child(2){border:0}.section{padding:48px 0}.section-heading{display:block}.section-heading p{margin-top:20px}.tool-grid,.venue-teaser{grid-template-columns:1fr}.tool-card{padding:24px}.venue-teaser{gap:26px}.footer-inner{align-items:start;flex-direction:column}.form-grid{grid-template-columns:1fr}.panel{padding:20px}.page-heading{padding-top:35px}.page-heading h1{font-size:2.9rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
.section-tight{padding:0 0 70px}.tool-layout{display:grid;grid-template-columns:1.25fr 1fr;gap:28px;align-items:start}.panel-title{display:flex;gap:14px;justify-content:space-between;align-items:center;margin-bottom:24px}.panel-title h2{font-size:1.25rem;letter-spacing:-.025em;line-height:1.2}.check-field{display:flex;align-items:start;gap:9px;flex-wrap:wrap;font-size:.88rem}.check-field input{accent-color:#5b750c;width:19px;height:19px;flex:none}.check-field small{flex-basis:100%;color:var(--muted);padding-left:28px}.score-intro{background:var(--dark);color:white;padding:40px;border-radius:5px}.score-intro p{color:#bcc7b6;margin-top:18px}.demo-score{font-size:clamp(4rem,10vw,9rem);font-weight:900;letter-spacing:-.06em;color:var(--lime);line-height:1.1;margin-bottom:26px}.demo-score span{color:#708163;margin:0 20px}.score-intro .notice{background:#273026;color:#c6d2c0}.score-intro .btn{color:white;border-color:#acb69e}.tournament-form{display:grid;grid-template-columns:1.15fr 1fr;gap:45px}.entry-panel{border-left:1px solid var(--line);padding-left:36px}.entry-panel textarea{min-height:260px}.local-note{font-size:.8rem;color:var(--muted);margin-top:22px}.event-heading{display:flex;align-items:start;justify-content:space-between;gap:25px}.event-heading h2{font-size:2.8rem}.bracket-scroll{overflow-x:auto;overscroll-behavior-x:contain;padding:32px 0}.bracket{display:flex;gap:38px;min-width:min-content}.bracket-round{width:260px;flex:none;display:flex;flex-direction:column}.bracket-round h3{margin-bottom:24px;font-size:1rem;text-transform:uppercase;letter-spacing:.06em}.round-matches{flex:1;display:flex;flex-direction:column;justify-content:space-around;gap:18px}.match-card{position:relative;display:block;width:100%;background:white;border:1px solid #cbd3c3;box-shadow:0 2px 0 #cbd3c34d;border-radius:4px;text-align:left;padding:12px 0;color:var(--ink);overflow:visible}.match-card:hover:not(:disabled){border-color:#5b7700;box-shadow:0 0 0 2px #cce880}.match-card:disabled{opacity:.65}.bracket-round:not(:last-child) .match-card:after{content:'';position:absolute;right:-39px;top:50%;width:38px;border-top:1px solid #9fae94}.match-status,.match-hint{display:block;font-size:.68rem;font-weight:700;letter-spacing:.08em;color:var(--muted);padding:0 14px 8px}.match-hint{font-size:.73rem;font-weight:400;letter-spacing:0;padding:8px 14px 0}.match-team{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 14px;border-top:1px solid #edf0e8;font-size:.95rem}.match-team span{overflow-wrap:anywhere}.match-team b{flex:none}.match-winner{background:#eff6d8;font-weight:700}.champion{margin-top:25px;background:var(--lime);padding:24px 30px;display:flex;gap:22px;align-items:center}.champion span{font-size:.75rem;font-weight:800;letter-spacing:.12em}.champion strong{font-size:1.7rem}.table-scroll{overflow-x:auto;margin-top:20px}table{border-collapse:collapse;width:100%;font-size:.88rem;text-align:left;white-space:nowrap}th,td{padding:11px 12px;border-bottom:1px solid var(--line)}thead th{font-size:.75rem;text-transform:uppercase;color:var(--muted)}tbody th{white-space:normal;min-width:150px}.pool-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:30px}.fixture-rounds{display:grid;gap:24px;margin-top:30px}.fixture-title{font-size:.9rem;margin-bottom:12px}.fixture-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}dialog{border:0;padding:0;border-radius:6px;width:min(1120px,96vw);max-width:96vw;max-height:94dvh;background:var(--dark);color:white}dialog::backdrop{background:#0d160dd9;backdrop-filter:blur(5px)}.scoreboard{background:#141c16;color:white;border-radius:5px;padding:26px}.board-top{display:flex;justify-content:space-between;align-items:start;gap:20px}.board-top .eyebrow{margin-bottom:8px}.board-rules{font-size:.82rem;color:#acbba4}.board-top .actions{gap:7px}.serve-call{text-align:center;padding:24px 0;color:var(--lime);font-size:2.5rem;letter-spacing:.02em;font-weight:800;overflow-wrap:anywhere}.serve-call>span{display:block;color:#aaba9e;font-size:.72rem;text-transform:uppercase;letter-spacing:.15em}.serve-call small{display:block;color:#c4cebf;font-size:.9rem;font-weight:400;letter-spacing:0}.score-teams{display:grid;grid-template-columns:1fr 1fr;gap:18px}.score-team{background:#202c22;border:2px solid #374c36;padding:24px 20px 18px;color:white;border-radius:4px;text-align:center}.score-team.serving{border-color:var(--lime)}.score-team.winner{background:#314d21}.score-team:disabled{opacity:1;cursor:default}.score-team:hover:not(:disabled){background:#2c4026}.team-name{display:flex;justify-content:center;align-items:center;gap:15px;font-weight:700;font-size:1.6rem;overflow-wrap:anywhere;min-height:42px}.serve-indicator{display:flex;gap:5px;flex:none;color:var(--lime)}.serve-ball{width:23px;height:23px}.point-number{font-size:clamp(6rem,14vw,12rem);font-weight:900;font-variant-numeric:tabular-nums;letter-spacing:-.06em;line-height:1.2}.serving .point-number{color:var(--lime)}.rally-label{font-size:.68rem;letter-spacing:.08em;color:#a5b69b}.board-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:24px}.board-hint{font-size:.78rem;color:#a9bba0;max-width:340px}.correction{margin-top:24px;border-top:1px solid #49633c;padding-top:24px}.correction input,.correction select{background:#f7f8f4}.board-message{font-size:.85rem;color:#d8ef99;margin-top:15px}.display-page .site-header,.display-page .site-footer{display:none}.display-page{background:#141c16}.display-page .scoreboard{min-height:100dvh}.display-page .point-number{font-size:clamp(8rem,25vh,22rem)}#standalone-board:fullscreen,#match-board:fullscreen,#display-root:fullscreen{overflow:auto;background:#141c16;height:100dvh;padding:15px}.contact-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:32px;align-items:start}.contact-photo{width:100%;height:auto;border-radius:4px}.caption{font-size:.82rem;color:var(--muted);margin-top:14px}.contact-details h2{font-size:3rem}.contact-details address{font-style:normal;margin:25px 0;color:var(--muted)}.map-links{display:grid;gap:10px}.map-links .btn{justify-content:space-between}.contact-details hr{border:0;border-top:1px solid var(--line);margin:32px 0}.team-empty{padding:60px;background:white;border:1px solid var(--line);text-align:center}.team-empty img{width:190px;height:auto;margin-bottom:35px}.team-empty h2{font-size:3rem}.team-empty p{margin:24px auto}.team-empty .btn{margin-top:8px}
@media(max-width:900px){.tool-layout,.tournament-form,.contact-grid{grid-template-columns:1fr}.entry-panel{border-left:0;border-top:1px solid var(--line);padding:26px 0 0}.pool-grid{grid-template-columns:1fr}.score-intro{padding:30px}.demo-score{display:none}.board-top{flex-direction:column}.board-bottom{align-items:start;flex-direction:column}}
@media(max-width:600px){.scoreboard{padding:16px}.score-teams{gap:8px}.score-team{padding:18px 8px}.team-name{font-size:1rem;flex-direction:column;gap:7px}.point-number{font-size:5.5rem}.serve-ball{width:17px;height:17px}.serve-indicator{height:18px}.serve-call{font-size:2rem}.board-top .btn{font-size:.75rem}.event-heading{display:block}.event-heading .btn{margin-top:20px}.event-heading h2{font-size:2.2rem}.champion{display:block}.champion strong{display:block;margin-top:10px}.team-empty{padding:35px 18px}.team-empty h2{font-size:2rem}.rally-label{font-size:.65rem}.bracket-round{width:235px}}
.map-toolbar{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:20px}.map-toolbar .text-link{font-size:.85rem}.venue-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;border:1px solid var(--line);border-radius:5px;overflow:hidden;background:#e9ede7}.map-surface{padding:18px;position:relative}.map-surface svg{display:block;width:100%;max-height:750px;min-height:420px}.map-hotspot{cursor:pointer;outline:none}.map-hotspot:hover>rect:first-child,.map-hotspot.selected>rect:first-child,.map-hotspot:focus>rect:first-child{stroke:#d5fa32;stroke-width:5}.map-hotspot:hover>polygon,.map-hotspot:focus>polygon{stroke:#7f9f19;stroke-width:5}.court-name{fill:#fff;font-size:23px;font-weight:700;text-anchor:middle;font-family:Arial,sans-serif}.court-size{fill:#d3dfa6;font-size:16px;font-weight:700;text-anchor:middle;font-family:Arial,sans-serif}.room-name{font-family:Arial,sans-serif;fill:#32452e;font-size:20px;font-weight:800;text-anchor:middle}.small-room{font:700 15px Arial,sans-serif;text-anchor:middle;fill:#34492c}.tiny-name{font:700 12px Arial,sans-serif;text-anchor:middle;fill:#34492c}.micro-name{font:700 8px Arial,sans-serif;text-anchor:middle;fill:#34492c}.path-label{font:700 9px Arial,sans-serif;text-anchor:middle;fill:#647637;letter-spacing:.4px}.entrance-label{font:800 18px Arial,sans-serif;text-anchor:middle;fill:#3e5718}.ground-label{font:700 24px Arial,sans-serif;fill:#718165;letter-spacing:4px}.parking-space{fill:none;stroke:#af9f41;stroke-width:2}.map-legend{display:flex;gap:20px;justify-content:center;font-size:.75rem;margin-top:10px}.map-legend span{display:flex;align-items:center;gap:6px}.map-legend i{width:12px;height:12px;display:inline-block}.legend-court{background:#253529}.legend-path{background:#cbd8ad}.legend-entrance{background:var(--lime);border:1px solid #839d23;border-radius:50%}.place-panel{background:white;border-left:1px solid var(--line)}.place-panel img{width:100%;height:230px;object-fit:cover}.place-copy{padding:26px}.place-copy .eyebrow{font-size:.7rem;margin-bottom:13px}.place-copy h2{font-size:2rem}.place-copy p{font-size:.9rem;color:var(--muted);margin-top:22px}.dimension{display:inline-block;background:#edf3df;color:#536531;border-radius:3px;font-size:.85rem;font-weight:700;padding:7px 10px;margin-top:15px}.amenity-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:25px}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.photo-card{border:1px solid var(--line);padding:0;background:white;text-align:left;border-radius:4px;overflow:hidden}.photo-card img{width:100%;height:auto;aspect-ratio:1.45;object-fit:cover;display:block}.photo-card span{display:flex;justify-content:space-between;padding:18px;font-size:.95rem;font-weight:700}.photo-card:hover{border-color:#708b25}.photo-card:hover img{filter:brightness(1.04)}#photo-dialog{padding:18px;width:min(1250px,96vw)}#photo-dialog img{display:block;max-width:100%;max-height:74dvh;margin:14px auto;object-fit:contain}#lightbox-caption{text-align:center}.map-surface svg:focus-visible{outline:3px solid #6b852d}
@media(max-width:900px){.venue-layout{grid-template-columns:1fr}.place-panel{border-left:0;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1.2fr}.place-panel img{height:100%;min-height:250px;object-fit:cover}.map-surface svg{min-height:0;max-height:none}.photo-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.map-toolbar{align-items:start;flex-direction:column}.map-surface{padding:10px}.place-panel{display:block}.place-panel img{height:200px;min-height:0}.place-copy{padding:22px}.photo-grid{gap:15px}.photo-card span{font-size:.8rem;padding:13px}.map-legend{gap:12px;font-size:.7rem}.amenity-links .btn{font-size:.76rem;padding:8px}.map-toolbar .actions{gap:7px}.map-toolbar .btn{font-size:.8rem}}
