/* Public sports hub. Brand colors still follow the club's chosen accent. */
.public-site{--surface:#121a18;--surface-2:#1a2721;--line:#2a3b33;background:radial-gradient(ellipse at 95% 6%,#b9ff4310,transparent 32%),radial-gradient(ellipse at 0 45%,#645bff0b,transparent 35%),#090f0d}
.public-site .site-header{background:#101813e8;backdrop-filter:blur(20px);border-bottom-color:#b9f76920}
.public-site .brand{font-family:Arial,Helvetica,sans-serif;font-weight:900;letter-spacing:-1.2px}
.public-site .header-nav a.active:after{box-shadow:0 0 16px var(--accent)}
.public-site .shell{padding-top:45px}
.public-site .page-heading{margin-bottom:34px}
.public-site .page-heading h1{max-width:800px;font-family:'Arial Black',Arial,sans-serif;font-size:clamp(34px,4.2vw,60px);font-weight:900;letter-spacing:-2.8px;line-height:1.05}
.public-site .page-heading .eyebrow{letter-spacing:2.5px;font-size:9px}
.public-site .page-heading>div>p:last-child{font-size:13px;margin-top:14px}
.public-site .heading-mark{padding:12px 15px;border:1px solid #b9f76930;border-radius:8px;transform:rotate(-3deg);color:var(--accent)}
.public-site .button{border-radius:9px;box-shadow:0 3px 0 #0003;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}
.public-site .button:hover{transform:translateY(-2px);box-shadow:0 7px 24px #d4f76a1a}
.public-site .button:active{transform:translateY(1px)}
.public-site .tournament-strip{gap:12px;padding-bottom:8px}
.public-site .tournament-chip{min-width:350px;border-radius:13px;padding:15px 18px;transition:transform .22s,border-color .22s,background .22s}
.public-site .tournament-chip:hover{transform:translateY(-3px);border-color:var(--accent)}
.public-site .tournament-chip.selected{background:linear-gradient(110deg,#324324,#19261c);border-color:#95b65a;box-shadow:inset 0 1px 0 #d4f76a20}
.public-site .tournament-chip strong{font-size:12px}.public-site .chip-ball{border-radius:9px;background:#d4f76a20}
.public-site .hero{min-height:340px;border-radius:22px;border-color:#88a85b66;background:radial-gradient(ellipse at 85% 25%,#c1ff4924,transparent 60%),linear-gradient(120deg,#1e321c 0%,#15231b 55%,#122e26 100%);box-shadow:inset 0 1px 0 #e2ff9c20,0 24px 70px #0002;isolation:isolate;animation:surface-enter .65s ease both}
.public-site .hero:after{content:'';position:absolute;inset:0;z-index:-1;background:repeating-linear-gradient(125deg,transparent 0,transparent 80px,#d5ff7905 80px,#d5ff7905 81px);pointer-events:none}
.public-site .hero-content{padding:36px 40px;max-width:70%}
.public-site .hero h2{font-family:'Arial Black',Arial,sans-serif;font-size:clamp(30px,3.5vw,49px);font-weight:900;text-transform:uppercase;letter-spacing:-1.7px;line-height:1.08;max-width:680px}
.public-site .hero p{font-size:12px;max-width:500px;color:#c1cdb7}
.public-site .hero-kicker{gap:15px}.public-site .hero-kicker .status{font-size:9px;padding:5px 9px;background:#d4f76a;color:#243314}
.public-site .hero-details{gap:15px;margin-bottom:24px}
.public-site .hero-art{width:40%;overflow:visible;z-index:-1}
.public-site .court{top:85px;left:55px;border-color:#b9ea7270;transform:rotate(-28deg) skew(-8deg);box-shadow:0 0 0 25px #9ad96605,0 0 0 65px #9ad96604;background:#568e3812}
.public-site .tennis-ball{width:130px;height:130px;right:85px;top:38px;animation:ball-hover 7s ease-in-out infinite;box-shadow:15px 35px 50px #0008,inset -6px -8px 12px #65831b66}
.public-site .tennis-ball:before,.public-site .tennis-ball:after{height:155px;width:106px}.public-site .tennis-ball:before{left:-70px}.public-site .tennis-ball:after{right:-70px}
.hero-sport-stamp{position:absolute;right:26px;bottom:48px;transform:rotate(-8deg);color:#e7ffc6;text-align:right;text-shadow:0 6px 30px #0004}
.hero-sport-stamp>span{font-size:6px;letter-spacing:1.5px}.hero-sport-stamp strong{display:block;font-family:'Arial Black',Arial,sans-serif;font-size:68px;font-weight:900;line-height:.85;letter-spacing:-5px;margin:10px 0;color:#dcfa9d}
.hero-sport-stamp small{font-size:7px;letter-spacing:4px}.public-site .art-label{font-size:7px;letter-spacing:2px;bottom:15px;right:28px}
.public-site .stats-row{gap:13px;margin-bottom:18px}
.public-site .stats-row>div{border-radius:13px;background:linear-gradient(130deg,#1c2721,#131b17);border-color:#394a36;overflow:hidden;transition:transform .2s,border-color .2s;animation:surface-enter .65s ease both}
.public-site .stats-row>div:nth-child(2){animation-delay:.06s}.public-site .stats-row>div:nth-child(3){animation-delay:.12s}.public-site .stats-row>div:nth-child(4){animation-delay:.18s}
.public-site .stats-row>div:before{content:'';position:absolute;left:0;top:18px;bottom:18px;width:3px;background:var(--accent);opacity:.8}
.public-site .stats-row>div:hover{transform:translateY(-3px);border-color:#71874d}
.public-site .stats-row strong{font-family:'Arial Black',Arial,sans-serif;font-size:33px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-1.5px}
.public-site .stats-row small{font-family:Arial,sans-serif}.public-site .stats-row>div>span:first-child{font-size:8px;letter-spacing:1.4px}
.competition-progress{display:flex;align-items:center;gap:25px;padding:19px 23px;border:1px solid var(--line);border-radius:13px;background:#111a15;margin:0 0 27px}
.progress-caption{min-width:130px}.progress-caption .eyebrow{display:block;font-size:7px;margin-bottom:6px}.progress-caption strong{font-size:22px;color:var(--accent);font-variant-numeric:tabular-nums}.progress-caption strong>span{font-size:11px;font-weight:400;color:var(--muted)}
.progress-body{flex:1}.progress-body progress{display:block;height:5px;border:0;appearance:none;border-radius:5px;overflow:hidden;width:100%;background:#26332a}.progress-body progress::-webkit-progress-bar{background:#26332a}.progress-body progress::-webkit-progress-value{background:linear-gradient(90deg,#749f36,var(--accent));border-radius:5px}.progress-body progress::-moz-progress-bar{background:var(--accent)}
.progress-stages{display:flex;justify-content:space-between;gap:12px;font-size:8px;color:#66786c;margin-top:10px}.progress-stages b{font-weight:500;margin-left:4px}.progress-stages .is-current{color:var(--accent)}
.forecast-caption{max-width:150px;font-size:9px;color:#8fa188;line-height:1.7;text-align:right}.forecast-caption strong{color:var(--text)}.forecast-caption>span{color:var(--accent);margin:0 3px}
.public-site .tabs{position:sticky;top:12px;z-index:10;padding:13px 17px 0;gap:25px;background:#132018ed;border:1px solid #4b6342;border-radius:12px;backdrop-filter:blur(18px);box-shadow:0 9px 22px #0003;margin-bottom:26px}
.public-site .tabs>a{padding-bottom:13px;font-weight:600}.public-site .tabs>a.active:after{height:3px;border-radius:3px 3px 0 0;box-shadow:0 0 12px #d4f76a55}.public-site .tabs>a.active{color:var(--accent)}
.public-site .panel{border-color:#304235;background:linear-gradient(135deg,#151f19,#111914);border-radius:17px}
.public-site .section-heading h3{font-size:22px;font-weight:800}.public-site .section-heading .eyebrow{color:#96b379}
.public-site .standings th{background:#0f1812;color:#8da17f}.public-site .standings td{padding-top:15px;padding-bottom:15px}.public-site .table-player strong{font-size:12px}.public-site .standings .points{font-size:16px;font-variant-numeric:tabular-nums}
.public-site .standings tbody tr:first-child{background:#c2ee6a08}.public-site .rank.qualified{border-left:0;border-radius:6px;background:#c2ee6a18;font-weight:700}
.public-site .next-panel{border-radius:17px;background:linear-gradient(130deg,#19251c,#101a14);border-color:#3a4d35}
.public-site .match-card{padding:19px 18px 0;border-radius:15px;border-color:#344934;background:linear-gradient(135deg,#19261d,#111914);position:relative;overflow:hidden;transition:transform .22s,border-color .22s,box-shadow .22s}
.public-site .match-card:before{content:'';position:absolute;top:0;left:20px;right:20px;height:1px;background:linear-gradient(90deg,transparent,#b9ec6b60,transparent)}
.public-site .match-card:hover{transform:translateY(-4px);border-color:#80a05b;box-shadow:0 14px 30px #0004}
.public-site .match-meta{margin-bottom:20px;font-size:8px;letter-spacing:.6px}.public-site .time-label{background:#c5f36d12;padding:3px 6px;border-radius:4px;font-size:8px;color:#c7eb93}
.public-site .final-label{background:#b0e88715;padding:3px 6px;border-radius:4px;color:#b4e99b}
.public-site .competitor{font-size:12px;gap:10px;min-height:35px;margin-bottom:10px}.public-site .competitor .avatar{height:32px;width:32px;border-radius:9px;font-size:9px}
.public-site .competitor strong{background:#090f0d80;border:1px solid #39502f55;border-radius:6px;padding:1px 10px;min-width:36px;text-align:center;font-size:22px;line-height:1.45;font-variant-numeric:tabular-nums}
.public-site .competitor.winner strong{background:#caef6d16;border-color:#c4e76d4d;color:var(--accent)}
.fixture-note{font-size:8px;letter-spacing:.4px;color:#7e9980;margin-top:16px}.fixture-pending{border-style:dashed!important}.fixture-pending .avatar{opacity:.5}.fixture-pending .competitor>span:nth-child(2){color:#829785;font-style:italic}.fixture-pending .fixture-note{color:#d8ba76}
.public-site .match-footer{margin-top:10px;padding:12px 0;color:#8b9e87;font-size:9px;gap:6px}.public-site .rule-card{border-radius:17px;border-color:#6d7c3b;background:radial-gradient(ellipse at 100% 0,#bedf6515,transparent 80%),#202c18}
.public-site .rule-card h3{font-family:'Arial Black',Arial,sans-serif;font-weight:800;letter-spacing:-.9px;font-size:25px}
.public-site .player-card{border-radius:17px;background:linear-gradient(140deg,#203020,#101a14);transition:transform .22s,border-color .22s}.public-site .player-card:hover{transform:translateY(-5px);border-color:var(--accent)}.public-site .player-card>.avatar{border-radius:14px}
.public-site .sponsors-heading h3{font-size:14px}.public-site .sponsors-heading .eyebrow{font-size:6px}.public-site .sponsor-banner{aspect-ratio:8/1;min-height:125px}.public-site .sponsor-copy strong{font-size:34px}.public-site .sponsors-carousel{margin-bottom:23px}.public-site .carousel-footer{padding-top:3px}
.public-site .site-footer{font-size:8px;letter-spacing:1.1px}
.reveal-pending{opacity:0;transform:translateY(20px);transition:opacity .5s ease,transform .5s ease}.reveal-visible{opacity:1;transform:translateY(0)}
@keyframes surface-enter{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes ball-hover{0%,100%{transform:translateY(0) rotate(-30deg)}50%{transform:translateY(-14px) rotate(-18deg)}}
@media(max-width:1150px){.public-site .hero-content{padding:32px;max-width:73%}.public-site .hero h2{font-size:37px}.public-site .hero-art{width:36%}.hero-sport-stamp strong{font-size:55px}.public-site .stats-row strong{font-size:30px}.forecast-caption{display:none}.public-site .page-heading h1{font-size:44px}}
@media(max-width:900px){.public-site .hero-art{opacity:.55}.public-site .hero-content{max-width:80%}.public-site .hero h2{font-size:36px}.competition-progress{gap:20px}.public-site .stats-row strong{font-size:29px}.public-site .table-player .avatar{display:flex}.public-site .sponsor-banner{min-height:115px}}
@media(max-width:640px){.public-site .shell{padding-top:28px}.public-site .page-heading h1{font-size:37px;letter-spacing:-1.9px}.public-site .page-heading .eyebrow{font-size:7px;letter-spacing:1.8px}.public-site .page-heading>div>p:last-child{font-size:11px}.public-site .page-heading{margin-bottom:25px}.public-site .tournament-chip{min-width:285px;padding:13px}.public-site .hero{min-height:330px;border-radius:17px}.public-site .hero-content{max-width:100%;padding:26px 23px}.public-site .hero h2{font-size:32px;letter-spacing:-1.2px;max-width:320px}.public-site .hero p{font-size:11px;max-width:310px}.public-site .hero-art{width:100%;opacity:.25}.public-site .tennis-ball{right:-5px;top:50px;width:110px;height:110px}.public-site .court{left:190px;top:90px}.hero-sport-stamp{right:13px;bottom:30px}.hero-sport-stamp strong{font-size:62px}.public-site .stats-row{gap:9px}.public-site .stats-row>div{padding:15px 17px}.public-site .stats-row strong{font-size:28px}.public-site .stats-row small{font-size:8px}.public-site .stats-row>div>span:first-child{font-size:7px}.competition-progress{display:block;padding:17px;margin-bottom:23px}.progress-caption{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.progress-caption .eyebrow{margin:0;font-size:6px}.progress-caption strong{font-size:18px}.progress-caption strong>span{font-size:9px}.progress-stages{gap:6px;font-size:7px}.progress-stages b{margin-left:2px}.public-site .tabs{gap:20px;top:7px;padding:11px 13px 0;border-radius:10px}.public-site .tabs>a{font-size:10px;padding-bottom:11px}.public-site .section-heading h3{font-size:19px}.public-site .table-player strong{font-size:10px}.public-site .standings .table-player .avatar{display:none}.public-site .standings td{padding-top:13px;padding-bottom:13px}.public-site .standings .points{font-size:14px}.public-site .sponsor-copy{padding:19px}.public-site .sponsor-copy strong{font-size:28px}.public-site .sponsor-banner{min-height:125px;aspect-ratio:3/1}.public-site .match-meta{font-size:8px}.public-site .match-footer{font-size:9px}.public-site .competitor{font-size:12px}.public-site .match-card{padding:18px 17px 0}.public-site .hero-details{gap:9px 14px}}
@media(prefers-reduced-motion:reduce){.public-site *, .public-site *:before, .public-site *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal-pending{opacity:1;transform:none}}
