/* courtcrowd.com, redesign 2026-11-01. Static HTML/CSS, no framework. */
:root{
  --bg:#121212; --bg2:#0c0c0c; --panel:#1a1a1a; --panel2:#222; --panel3:#2a2a2a;
  --t1:#fff; --t2:#B5B5B5; --t3:#7A7A7A; --lime:#B8F000; --lime-ink:#121212;
  --amber:#F2B33D; --r:8px; --r-sm:6px;
  --pad:clamp(16px,4vw,56px); --max:1240px;
  --shadow:0 2px 4px rgba(0,0,0,.35),0 12px 24px rgba(0,0,0,.35),0 40px 80px rgba(0,0,0,.45);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--t1);line-height:1.5;font-size:17px;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--pad)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---------- type ---------- */
.h1,.h2,.h3{font-weight:900;letter-spacing:-.045em;line-height:.95;text-wrap:balance}
.h1{font-size:clamp(44px,6.3vw,92px)}
.h2{font-size:clamp(40px,5.4vw,80px)}
.h3{font-size:clamp(26px,2.6vw,36px);letter-spacing:-.03em;line-height:1.05;font-weight:800}
.lede{font-size:clamp(17px,1.5vw,21px);color:var(--t2);line-height:1.45;max-width:34em;font-weight:500}
.muted{color:var(--t3)}
.lime{color:var(--lime)}

/* ---------- header ---------- */
.hdr{position:sticky;top:0;z-index:50;background:rgba(18,18,18,.92);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px)}
.hdr .wrap{display:flex;align-items:center;gap:28px;height:68px}
.logo{display:flex;align-items:center;gap:10px;font-weight:900;font-size:20px;letter-spacing:-.03em}
.logo img{width:34px;height:34px}
.nav{display:flex;gap:4px;margin-left:auto}
.nav a{padding:9px 14px;border-radius:var(--r-sm);font-weight:600;font-size:15px;color:var(--t2);transition:color .2s,background .2s}
.nav a:hover,.nav a[aria-current]{color:#fff;background:rgba(255,255,255,.06)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;height:46px;padding:0 20px;border-radius:var(--r);font-weight:800;font-size:15px;white-space:nowrap;transition:transform .15s,background .2s,box-shadow .2s}
.btn:active{transform:scale(.97)}
.btn-lime{background:var(--lime);color:var(--lime-ink)}
.btn-lime:hover{box-shadow:0 0 0 4px rgba(184,240,0,.18)}
.btn-dark{background:var(--panel2);color:#fff}
.btn-dark:hover{background:var(--panel3)}
.btn svg{width:18px;height:18px;flex:none}
.menu-btn{display:none;width:44px;height:44px;border-radius:var(--r);background:var(--panel2);align-items:center;justify-content:center}
.menu-btn svg{width:22px;height:22px}
@media (max-width:860px){
  .hdr .wrap{height:60px;gap:12px}
  .nav{display:none;position:absolute;top:60px;left:0;right:0;flex-direction:column;background:#151515;padding:8px var(--pad) 16px;box-shadow:0 20px 40px rgba(0,0,0,.5)}
  .nav.open{display:flex}
  .nav a{padding:14px 12px;font-size:17px}
  .hdr .btn-get{margin-left:auto;height:42px;padding:0 14px}
  .menu-btn{display:inline-flex}
}

/* ---------- live bits ---------- */
.dot{width:8px;height:8px;border-radius:50%;background:var(--lime);display:inline-block;position:relative;flex:none}
.dot::after{content:"";position:absolute;inset:0;border-radius:50%;background:inherit;animation:pulse 1.8s ease-out infinite}
.dot.ink{background:var(--lime-ink)}
@keyframes pulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(3.2);opacity:0}}
.live{display:inline-flex;align-items:center;gap:8px;background:var(--lime);color:var(--lime-ink);font-weight:800;font-size:13px;padding:6px 10px;border-radius:var(--r-sm);white-space:nowrap}
.quiet{display:inline-flex;align-items:center;gap:8px;background:rgba(30,30,30,.9);color:var(--t2);font-weight:700;font-size:13px;padding:6px 10px;border-radius:var(--r-sm);white-space:nowrap}
.quiet::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--t3)}
.chip{display:inline-flex;align-items:center;gap:8px;background:var(--panel);color:#fff;font-weight:700;font-size:14px;padding:9px 13px;border-radius:var(--r);white-space:nowrap}
.chip svg{width:16px;height:16px;color:var(--lime)}
.faces{display:flex}
.faces img{width:34px;height:34px;border-radius:6px;border:2px solid var(--bg);object-fit:cover}
.faces img+img{margin-left:-8px}

/* ---------- badges ---------- */
.badges{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.badges a{display:block;transition:transform .15s}
.badges a:hover{transform:translateY(-2px)}
.badges img{height:52px;width:auto}
.badges .gp{height:52px;width:auto}

/* ---------- phone ---------- */
.phone{position:relative;height:620px;aspect-ratio:9/19.5;border-radius:15%/7%;padding:2.3%;
  background:linear-gradient(135deg,#8e8e93 0%,#3a3a3c 22%,#1c1c1e 50%,#48484a 78%,#a1a1a6 100%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.25),0 4px 8px rgba(0,0,0,.4),0 30px 60px rgba(0,0,0,.55),0 80px 140px rgba(0,0,0,.6);transform-style:preserve-3d}
.phone::before{content:"";position:absolute;inset:.9%;border-radius:14.4%/6.7%;background:#050505}
.phone .btn-side{position:absolute;width:1.2%;border-radius:2px;background:linear-gradient(90deg,#5a5a5e,#9a9aa0)}
.phone .b1{left:-1%;top:18%;height:5.5%}.phone .b2{left:-1%;top:26%;height:9%}.phone .b3{right:-1%;left:auto;top:28%;height:12%}
.screen{position:relative;height:100%;border-radius:12.6%/5.9%;overflow:hidden;background:var(--bg);container-type:inline-size;isolation:isolate}
.island{position:absolute;z-index:20;top:2.6cqw;left:50%;transform:translateX(-50%);width:31cqw;height:9cqw;border-radius:4.5cqw;background:#000}
.glare{position:absolute;inset:0;z-index:21;pointer-events:none;background:linear-gradient(115deg,rgba(255,255,255,0) 35%,rgba(255,255,255,.09) 45%,rgba(255,255,255,0) 56%)}
.status{position:absolute;z-index:19;top:3.6cqw;left:9cqw;right:8cqw;display:flex;justify-content:space-between;font-size:3.6cqw;font-weight:700}
.status i{font-style:normal;letter-spacing:.05em}

/* screen: court card (matches the shipped home feed) */
.sc{position:absolute;inset:0;transition:opacity .5s ease,transform .6s cubic-bezier(.22,1,.36,1)}
.sc-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 85%}
.sc-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.75) 0%,rgba(0,0,0,0) 22%,rgba(0,0,0,0) 34%,rgba(0,0,0,.6) 55%,rgba(12,12,12,.97) 78%)}
.sc-top{position:absolute;z-index:3;top:13cqw;left:4.5cqw;right:4.5cqw}
.sc-top .row{display:flex;justify-content:space-between;align-items:center}
.sc-near{display:flex;align-items:center;gap:1.4cqw;font-weight:800;font-size:5cqw}
.sc-near svg{width:4.6cqw;height:4.6cqw;color:var(--lime)}
.sc-top img{width:8cqw;height:8cqw}
.sc-tabs{display:flex;gap:1.6cqw;margin-top:2.6cqw}
.sc-tabs span{padding:1.3cqw 2.6cqw;border-radius:1.1cqw;font-size:3.4cqw;font-weight:700;background:rgba(30,30,30,.85)}
.sc-tabs span:first-child{background:var(--lime);color:var(--lime-ink)}
.sc-body{position:absolute;z-index:3;left:5.2cqw;right:5.2cqw;bottom:6cqw}
.sc .live,.sc .quiet{font-size:3.9cqw;padding:1.6cqw 2.9cqw;gap:1.6cqw;border-radius:1.1cqw}
.sc .live .dot{width:1.8cqw;height:1.8cqw}
.sc .faces{margin-top:2.9cqw}
.sc .faces img{width:8cqw;height:8cqw;border-radius:1.3cqw;border-width:.4cqw}
.sc .faces img+img{margin-left:-1.8cqw}
.sc-name{font-size:8cqw;font-weight:800;letter-spacing:-.02em;line-height:1.05;margin-top:2.6cqw}
.sc-meta{display:flex;gap:3.4cqw;margin-top:2.3cqw;color:var(--t2);font-size:3.5cqw;font-weight:600;flex-wrap:wrap}
.sc-meta span{display:flex;align-items:center;gap:1cqw}
.sc-meta svg{width:3.6cqw;height:3.6cqw;color:var(--t3)}
.sc-wind{display:flex;align-items:center;gap:1.8cqw;margin-top:2.9cqw;font-size:3.9cqw;font-weight:700;color:#fff}
.sc-wind svg{width:4.2cqw;height:4.2cqw;color:var(--lime);flex:none}
.sc-btns{display:flex;gap:1.8cqw;margin-top:3.9cqw}
.sc-btns span{height:12cqw;display:flex;align-items:center;justify-content:center;gap:1.3cqw;padding:0 3.4cqw;border-radius:1.1cqw;font-size:3.9cqw;font-weight:800;background:#262626}
.sc-btns span:first-child{flex:1;background:var(--lime);color:var(--lime-ink)}
.sc-btns svg{width:4.4cqw;height:4.4cqw}

/* screen: generic app page */
.sp{position:absolute;inset:0;padding:15cqw 5.2cqw 6cqw;display:flex;flex-direction:column;gap:3cqw;background:var(--bg)}
.sp-k{font-size:3.3cqw;font-weight:700;color:var(--t3)}
.sp-t{font-size:6.6cqw;font-weight:800;letter-spacing:-.02em;line-height:1.08}
.sp-card{background:#1c1c1c;border-radius:2cqw;padding:3.6cqw}
.sp-row{display:flex;align-items:center;gap:3cqw;padding:2.2cqw 0}
.sp-row img{width:10.5cqw;height:10.5cqw;border-radius:1.6cqw;object-fit:cover}
.sp-row b{font-size:4.2cqw;font-weight:800;display:block;line-height:1.1}
.sp-row small{font-size:3.2cqw;color:var(--t3);font-weight:600}
.sp-row .lv{margin-left:auto;font-size:3.2cqw;font-weight:800;color:var(--t2);background:#262626;padding:1cqw 2cqw;border-radius:1cqw}
.sp .live{font-size:3.9cqw;padding:1.6cqw 2.9cqw;gap:1.6cqw;border-radius:1.1cqw;align-self:flex-start}
.sp .live .dot{width:1.8cqw;height:1.8cqw}
.sp-cta{margin-top:auto;height:12cqw;display:flex;align-items:center;justify-content:center;border-radius:1.4cqw;background:var(--lime);color:var(--lime-ink);font-weight:800;font-size:4.2cqw}
.gauge{position:relative;width:62cqw;margin:1cqw auto 0}
.gauge svg{width:100%;height:auto;display:block}
.gauge .v{position:absolute;left:0;right:0;bottom:2cqw;text-align:center}
.gauge .v b{display:block;font-size:13cqw;font-weight:900;letter-spacing:-.04em;line-height:1}
.gauge .v small{font-size:3.4cqw;color:var(--t2);font-weight:700}
.call{display:flex;gap:2.4cqw;align-items:flex-start;background:rgba(184,240,0,.1);border-radius:1.6cqw;padding:3cqw}
.call svg{width:5cqw;height:5cqw;color:var(--lime);flex:none;margin-top:.3cqw}
.call b{font-size:4.2cqw;font-weight:800;display:block;line-height:1.2}
.call small{font-size:3.2cqw;color:var(--t2);font-weight:600}
.bars{display:flex;align-items:flex-end;gap:1.4cqw;height:22cqw}
.bars div{flex:1;display:flex;flex-direction:column;align-items:center;gap:1cqw;height:100%;justify-content:flex-end}
.bars i{display:block;width:100%;border-radius:.8cqw .8cqw .3cqw .3cqw;background:var(--lime)}
.bars i.w{background:var(--amber)}
.bars span{font-size:2.6cqw;color:var(--t3);font-weight:700}
.hm{display:grid;grid-template-columns:7cqw repeat(15,1fr);gap:.7cqw;align-items:center}
.hm span{font-size:2.6cqw;color:var(--t3);font-weight:700}
.hm i{display:block;aspect-ratio:1;border-radius:.5cqw;background:rgba(184,240,0,var(--a))}
.hm-x{display:flex;justify-content:space-between;padding-left:7.7cqw;font-size:2.6cqw;color:var(--t3);font-weight:700}

/* ---------- floating cards ---------- */
.float{position:absolute;z-index:5;background:rgba(26,26,26,.88);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:var(--r);padding:14px 16px;box-shadow:var(--shadow);font-size:14px;white-space:nowrap;animation:bob 6s ease-in-out infinite}
.float:nth-of-type(2n){animation-delay:-2s;animation-duration:7s}
.float:nth-of-type(3n){animation-delay:-4s;animation-duration:8s}
.float b{font-weight:800}
.float small{display:block;color:var(--t3);font-weight:600;font-size:12px}
.float .row{display:flex;align-items:center;gap:10px}
.float img.av{width:36px;height:36px;border-radius:6px;object-fit:cover}
@keyframes bob{0%,100%{translate:0 0}50%{translate:0 -10px}}

/* ---------- hero ---------- */
.hero{position:relative;min-height:calc(100svh - 68px);display:flex;align-items:center;overflow:hidden}
.hero::before{content:"";position:absolute;width:1100px;height:1100px;right:-260px;top:-300px;background:radial-gradient(circle,rgba(184,240,0,.16),transparent 60%);filter:blur(30px);pointer-events:none;animation:drift 18s ease-in-out infinite alternate}
.hero::after{content:"";position:absolute;width:900px;height:900px;left:-300px;bottom:-500px;background:radial-gradient(circle,rgba(56,189,148,.12),transparent 62%);filter:blur(30px);pointer-events:none}
@keyframes drift{to{transform:translate(-120px,80px)}}
.hero .wrap{position:relative;z-index:2;width:100%;display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;padding-top:24px;padding-bottom:24px}
.hero-copy{display:flex;flex-direction:column;gap:26px;align-items:flex-start}
.hero .lede{max-width:28em}
.stage{position:relative;height:min(640px,calc(100svh - 150px));display:flex;justify-content:center;align-items:center;perspective:1700px}
.stage .phone{height:100%;transform:rotateY(-17deg) rotateX(7deg) rotateZ(1.5deg);transition:transform .2s linear}
.stage .f1{left:-2%;top:16%}
.stage .f2{right:-4%;top:36%}
.stage .f3{left:-6%;top:44%}
.stage .f4{right:-2%;top:8%}
.wind-mini{display:flex;align-items:center;gap:12px}
.wind-mini svg{width:56px;height:31px}
.trust{display:flex;gap:18px;flex-wrap:wrap;color:var(--t3);font-size:14px;font-weight:600}
.trust b{color:#fff;font-weight:800}
@media (max-width:860px){
  .hero{min-height:calc(100svh - 60px);align-items:flex-start}
  .hero .wrap{grid-template-columns:1fr;gap:20px;padding-top:20px;padding-bottom:16px}
  .hero-copy{gap:14px}
  .hero .lede{font-size:16.5px}
  .badges img,.badges .gp{height:44px}
  .stage{height:min(440px,calc(100svh - 425px));min-height:300px;perspective:1100px}
  .stage .float{padding:9px 11px;font-size:12px}
  .stage .float small{font-size:10.5px}
  .stage .float img.av{width:28px;height:28px}
  .stage .f1{left:0;top:4%}
  .stage .f2{right:0;top:30%}
  .stage .f3,.stage .f4{display:none}
  .wind-mini svg{width:40px;height:22px}
  .trust{display:none}
}

/* ---------- sections ---------- */
.sec{padding:clamp(80px,11vw,160px) 0}
.sec-tight{padding:clamp(56px,7vw,100px) 0}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:clamp(28px,4vw,48px);flex-wrap:wrap}
.sec-head .h2{max-width:14em}
.link-arrow{display:inline-flex;align-items:center;gap:8px;font-weight:800;color:var(--lime);font-size:16px}
.link-arrow svg{width:18px;height:18px;transition:transform .2s}
.link-arrow:hover svg{transform:translateX(4px)}

/* live strip */
.strip{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(280px,1fr);gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px;scrollbar-width:none}
.strip::-webkit-scrollbar{display:none}
.ccard{scroll-snap-align:start;position:relative;border-radius:var(--r);overflow:hidden;background:var(--panel);display:flex;flex-direction:column;transition:transform .25s cubic-bezier(.22,1,.36,1),box-shadow .25s}
.ccard:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.ccard .art{position:relative;aspect-ratio:4/3;overflow:hidden}
.ccard .art img,.ccard .art svg{width:100%;height:100%;object-fit:cover}
.ccard .art::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 45%,rgba(26,26,26,1) 100%)}
.ccard .tag{position:absolute;z-index:2;left:14px;top:14px}
.ccard .b{padding:4px 16px 18px;display:flex;flex-direction:column;gap:8px;flex:1}
.ccard .n{font-size:19px;font-weight:800;letter-spacing:-.02em;line-height:1.15}
.ccard .m{font-size:14px;color:var(--t3);font-weight:600}
.ccard .w{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700;color:#fff;margin-top:auto}
.ccard .w svg{width:16px;height:16px;color:var(--lime);flex:none}
.ccard .w.warn svg{color:var(--amber)}
.ccard .faces{position:absolute;z-index:2;left:14px;bottom:10px}
.ccard .faces img{width:30px;height:30px}

/* problem band */
.problem{position:relative;display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(24px,5vw,72px);align-items:center}
.problem .shot{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:4/5;box-shadow:var(--shadow)}
.problem .shot img{width:100%;height:100%;object-fit:cover;object-position:50% 40%;filter:saturate(.8) contrast(1.05)}
.problem .shot .float{left:auto;right:16px;bottom:16px;top:auto;animation:none}
@media (max-width:860px){.problem{grid-template-columns:1fr}.problem .shot{aspect-ratio:4/3.4}}

/* scenes */
.scenes{display:grid;grid-template-columns:1fr 1fr;gap:40px;position:relative}
.scene{min-height:88vh;display:flex;flex-direction:column;justify-content:center;gap:22px;max-width:520px}
.scene .num{font-size:15px;font-weight:800;color:var(--t3)}
.scene.on .num{color:var(--lime)}
.scene .h2{font-size:clamp(40px,4.6vw,68px)}
.scene ul{list-style:none;display:flex;flex-direction:column;gap:10px;color:var(--t2);font-weight:600}
.scene li{display:flex;gap:10px;align-items:flex-start}
.scene li svg{width:20px;height:20px;color:var(--lime);flex:none;margin-top:2px}
.pin-col{position:relative}
.pin-phone{position:sticky;top:calc(50vh - 310px + 34px);height:620px;display:flex;justify-content:center;perspective:1600px}
.pin-phone .phone{height:620px;transform:rotateY(-12deg) rotateX(4deg)}
.pin-phone .sc,.pin-phone .sp{opacity:0;transform:translateY(4%) scale(.98)}
.pin-phone [data-s].on{opacity:1;transform:none}
.pin-phone .float{z-index:6;transition:opacity .4s,transform .5s cubic-bezier(.22,1,.36,1);opacity:0}
.pin-phone .float.on{opacity:1}
.scene .inline-phone{display:none}
@media (max-width:860px){
  .scenes{grid-template-columns:1fr;gap:0}
  .pin-col{display:none}
  .scene{min-height:0;padding:40px 0;max-width:none}
  .scene .inline-phone{display:flex;justify-content:center;margin-top:12px;perspective:1100px}
  .scene .inline-phone .phone{height:520px;transform:rotateY(-8deg) rotateX(3deg)}
}

/* round robin band */
.rr{position:relative;border-radius:var(--r);overflow:hidden;min-height:680px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:32px;padding:clamp(28px,5vw,72px)}
.rr>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 70%;z-index:0}
.rr::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(10,10,10,.96) 0%,rgba(10,10,10,.85) 42%,rgba(10,10,10,.35) 75%,rgba(10,10,10,.55) 100%)}
.rr>*:not(img){position:relative;z-index:2}
.rr-copy{display:flex;flex-direction:column;gap:22px;align-items:flex-start}
.rr-free{display:inline-flex;align-items:center;gap:8px;background:rgba(184,240,0,.12);color:var(--lime);font-weight:800;font-size:15px;padding:8px 12px;border-radius:var(--r-sm)}
.rr-cards{position:relative;height:520px}
.rr-cards .float{white-space:normal}
.match{width:300px;left:4%;top:2%}
.match .team{display:flex;align-items:center;justify-content:space-between;padding:8px 0}
.match .team .faces img{width:30px;height:30px}
.match .team b{font-size:15px}
.match .score{font-size:30px;font-weight:900;letter-spacing:-.03em;min-width:44px;text-align:right}
.match .win .score{color:var(--lime)}
.standings{width:290px;right:0;top:30%}
.standings ol{list-style:none;display:flex;flex-direction:column;gap:2px;margin-top:8px}
.standings li{display:grid;grid-template-columns:22px 30px 1fr auto auto;gap:10px;align-items:center;padding:6px 0;font-weight:700}
.standings li img{width:28px;height:28px;border-radius:5px}
.standings li .r{color:var(--t3);font-weight:800}
.standings li .rec{color:var(--t2);font-variant-numeric:tabular-nums}
.standings li .pd{color:var(--lime);font-weight:800;min-width:34px;text-align:right}
.champ{width:250px;left:10%;bottom:0;display:flex;gap:14px;align-items:center}
.champ .trophy{width:54px;height:54px;border-radius:8px;background:var(--lime);display:grid;place-items:center;color:var(--lime-ink);flex:none}
.champ .trophy svg{width:30px;height:30px}
@media (max-width:860px){
  .rr{grid-template-columns:1fr;min-height:0}
  .rr::before{background:linear-gradient(180deg,rgba(10,10,10,.92) 0%,rgba(10,10,10,.75) 50%,rgba(10,10,10,.6) 100%)}
  .rr-cards{height:470px}
  .match{width:min(300px,92%);left:0}
  .standings{width:min(280px,88%);right:0;top:33%}
  .champ{left:0;width:min(250px,80%)}
}

/* city list */
.bigcount{display:flex;flex-wrap:wrap;gap:12px 40px;margin-bottom:clamp(36px,5vw,64px)}
.bigcount div{display:flex;flex-direction:column}
.bigcount b{font-size:clamp(48px,6vw,88px);font-weight:900;letter-spacing:-.05em;line-height:1;font-variant-numeric:tabular-nums}
.bigcount span{color:var(--t3);font-weight:700;font-size:15px;margin-top:6px}
.cities{display:grid;grid-template-columns:1fr 1fr;column-gap:56px}
.city{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:10px 0;transition:color .2s}
.city .nm{font-size:clamp(28px,3.5vw,52px);font-weight:800;letter-spacing:-.04em;line-height:1.05}
.city .nm small{font-size:.45em;color:var(--t3);font-weight:700;letter-spacing:0;margin-left:10px}
.city .ct{font-size:clamp(17px,1.5vw,20px);font-weight:700;color:var(--t3);white-space:nowrap;font-variant-numeric:tabular-nums}
.city:hover .nm{color:var(--lime)}
.city:hover .ct{color:#fff}
@media (max-width:860px){.cities{grid-template-columns:1fr}}

/* guides */
.guides{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.guide{position:relative;border-radius:var(--r);overflow:hidden;background:var(--panel);min-height:420px;display:flex;flex-direction:column;justify-content:flex-end;padding:24px;transition:transform .25s cubic-bezier(.22,1,.36,1)}
.guide:hover{transform:translateY(-4px)}
.guide>img,.guide>.art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.22,1,.36,1)}
.guide:hover>img{transform:scale(1.04)}
.guide::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(0,0,0,0) 25%,rgba(10,10,10,.92) 75%)}
.guide>*:not(img):not(.art){position:relative;z-index:2}
.guide .k{font-size:13px;font-weight:800;color:var(--t2);margin-bottom:10px}
.guide .h3{margin-bottom:12px}
.guide p{color:var(--t2);font-size:15px;margin-bottom:16px}
@media (max-width:960px){.guides{grid-template-columns:1fr}.guide{min-height:340px}}

/* close */
.close{position:relative;overflow:hidden;text-align:left}
.close .wrap{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.fan{position:relative;height:640px;perspective:1800px}
.fan .phone{position:absolute;height:540px;top:50px;left:50%}
.fan .p1{transform:translateX(-118%) rotate(-11deg) translateY(30px)}
.fan .p2{transform:translateX(-50%);z-index:2}
.fan .p3{transform:translateX(18%) rotate(11deg) translateY(30px)}
@media (max-width:860px){
  .close .wrap{grid-template-columns:1fr}
  .fan{height:440px}
  .fan .phone{height:370px;top:30px}
  .fan .p1{transform:translateX(-106%) rotate(-10deg) translateY(30px)}
  .fan .p3{transform:translateX(6%) rotate(10deg) translateY(30px)}
}

/* footer */
.ftr{background:var(--bg2);padding:72px 0 40px;margin-top:40px;color:var(--t3);font-size:15px}
.ftr .top{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;margin-bottom:48px}
.ftr .cols{display:flex;gap:56px;flex-wrap:wrap}
.ftr .cols div{display:flex;flex-direction:column;gap:10px}
.ftr .cols b{color:#fff;font-weight:800;margin-bottom:4px}
.ftr a:hover{color:#fff}
.ftr .bottom{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13px}

/* ---------- directory ---------- */
.page-head{padding-top:clamp(28px,5vw,64px);padding-bottom:clamp(20px,3vw,32px)}
.crumbs{display:flex;gap:8px;flex-wrap:wrap;color:var(--t3);font-size:14px;font-weight:600;margin-bottom:18px}
.crumbs a:hover{color:#fff}
.crumbs span{color:#444}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin:24px 0 8px}
.filter{display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 14px;border-radius:var(--r);background:var(--panel);font-weight:700;font-size:15px;color:var(--t2);transition:background .2s,color .2s}
.filter:hover{background:var(--panel2);color:#fff}
.filter[aria-pressed=true]{background:var(--lime);color:var(--lime-ink)}
.filter svg{width:16px;height:16px}
.dir{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:24px;align-items:start}
.dir-list{display:flex;flex-direction:column;gap:10px}
.dir-count{font-weight:700;color:var(--t3);font-size:15px;margin-bottom:6px;display:flex;justify-content:space-between}
.row{display:grid;grid-template-columns:96px 1fr auto;gap:16px;align-items:center;padding:12px;border-radius:var(--r);background:var(--panel);transition:background .2s,transform .2s,opacity .3s}
.row:hover,.row.hl{background:#212121}
.row .art{width:96px;height:72px;border-radius:6px;overflow:hidden}
.row .art img,.row .art svg{width:100%;height:100%;object-fit:cover}
.row .n{font-weight:800;font-size:17px;letter-spacing:-.01em;line-height:1.2}
.row .m{font-size:14px;color:var(--t3);font-weight:600;margin-top:3px}
.row .tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.row .tags span{font-size:12px;font-weight:700;color:var(--t2);background:#262626;padding:3px 7px;border-radius:5px}
.row .right{display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.row .dist{font-size:14px;font-weight:800;color:#fff}
.row[hidden]{display:none}
.empty{padding:40px;text-align:center;color:var(--t3);background:var(--panel);border-radius:var(--r)}
.map{position:sticky;top:84px;border-radius:var(--r);overflow:hidden;background:#0d0f0d;aspect-ratio:1/1.05;box-shadow:var(--shadow)}
.map svg.base{position:absolute;inset:0;width:100%;height:100%}
.pin{position:absolute;transform:translate(-50%,-100%);transition:opacity .3s,transform .3s;z-index:2}
.pin i{display:block;width:26px;height:26px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--lime);box-shadow:0 6px 14px rgba(0,0,0,.6)}
.pin i::after{content:"";position:absolute;inset:8px;border-radius:50%;background:var(--lime-ink)}
.pin.dim i{background:#5c5c5c}
.pin.hl{transform:translate(-50%,-100%) scale(1.35);z-index:3}
.pin[hidden]{display:none}
.pin .lbl{position:absolute;left:50%;bottom:34px;transform:translateX(-50%);background:rgba(18,18,18,.92);padding:5px 8px;border-radius:5px;font-size:12px;font-weight:800;white-space:nowrap;opacity:0;transition:opacity .2s;pointer-events:none}
.pin.hl .lbl,.pin.show .lbl{opacity:1}
.pin .ring{position:absolute;left:50%;top:13px;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:var(--lime);animation:pulse 2s ease-out infinite;opacity:.5}
.map .you{position:absolute;width:16px;height:16px;border-radius:50%;background:#4aa3ff;border:3px solid #fff;transform:translate(-50%,-50%);box-shadow:0 0 0 8px rgba(74,163,255,.2)}
.map .legend{position:absolute;left:12px;bottom:12px;background:rgba(18,18,18,.88);padding:8px 10px;border-radius:6px;font-size:12px;font-weight:700;color:var(--t2);display:flex;gap:12px}
.map .legend span{display:flex;align-items:center;gap:6px}
@media (max-width:960px){.dir{grid-template-columns:1fr}.map{position:relative;top:0;order:-1;aspect-ratio:4/3}.first-dir .map{aspect-ratio:auto;width:100%;min-height:240px}}
@media (max-width:520px){.row{grid-template-columns:72px 1fr;gap:12px}.row .art{width:72px;height:72px}.row .right{grid-column:2;flex-direction:row;align-items:center;justify-content:space-between}}
.states{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.state{background:var(--panel);border-radius:var(--r);padding:20px}
.state h3{display:flex;justify-content:space-between;align-items:baseline;font-size:20px;font-weight:800;letter-spacing:-.02em;margin-bottom:12px}
.state h3 span{font-size:14px;color:var(--t3);font-weight:700}
.state .cl{display:flex;flex-wrap:wrap;gap:6px}
.state .cl a{font-size:14px;font-weight:600;color:var(--t2);background:#232323;padding:6px 9px;border-radius:6px;transition:background .2s,color .2s}
.state .cl a:hover{background:#2e2e2e;color:#fff}
.state .cl a.built{background:rgba(184,240,0,.14);color:var(--lime)}
.state .cl a span{color:var(--t3);margin-left:5px}
.state .more{margin-top:10px;font-size:14px;font-weight:800;color:var(--lime)}
@media (max-width:960px){.states{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.states{grid-template-columns:1fr}}

/* ---------- city page ---------- */
.updated{color:var(--t3);font-weight:600;font-size:14px;margin-top:16px}
.tiles{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:32px}
.tile{background:var(--panel);border-radius:var(--r);padding:18px}
.tile b{display:block;font-size:clamp(34px,3.6vw,52px);font-weight:900;letter-spacing:-.05em;line-height:1;font-variant-numeric:tabular-nums}
.tile>span{display:block;color:var(--t3);font-weight:700;font-size:14px;margin-top:8px}
.tile.live-t{background:linear-gradient(160deg,rgba(184,240,0,.16),rgba(184,240,0,.04))}
.tile.live-t b{display:flex;align-items:center;gap:12px}
.tile.live-t .dot{width:10px;height:10px}
@media (max-width:960px){.tiles{grid-template-columns:repeat(4,1fr);gap:8px;margin-top:20px}.tile{padding:12px 10px}.tile b{font-size:30px}.tile>span{font-size:12px;margin-top:4px;line-height:1.2}.tile.live-t{grid-column:1/-1;display:flex;align-items:center;gap:12px}.tile.live-t>span{margin-top:0}}
.today{display:grid;grid-template-columns:1.1fr 1fr;gap:16px;margin-top:16px}
.panel{background:var(--panel);border-radius:var(--r);padding:clamp(18px,2.6vw,28px)}
.panel-k{font-size:14px;font-weight:800;color:var(--t3);margin-bottom:10px}
.windcall{display:flex;gap:16px;align-items:flex-start}
.windcall .ic{width:52px;height:52px;border-radius:8px;background:rgba(184,240,0,.12);display:grid;place-items:center;color:var(--lime);flex:none}
.windcall .ic svg{width:28px;height:28px}
.windcall b{display:block;font-size:clamp(24px,2.4vw,32px);font-weight:900;letter-spacing:-.03em;line-height:1.1}
.windcall p{color:var(--t2);font-weight:600;margin-top:6px}
.hours{display:grid;grid-template-columns:repeat(10,1fr);gap:6px;margin-top:22px;align-items:end;height:120px}
.hours div{display:flex;flex-direction:column;align-items:center;gap:6px;justify-content:flex-end;height:100%}
.hours i{display:block;width:100%;max-width:34px;border-radius:4px 4px 2px 2px;background:var(--lime)}
.hours i.w{background:var(--amber)}
.hours span{font-size:12px;color:var(--t3);font-weight:700;white-space:nowrap}
.hours em{font-style:normal;font-size:12px;font-weight:800;color:var(--t2)}
@media (max-width:860px){.today{grid-template-columns:1fr}.hours{gap:3px}.hours span{font-size:10px}}
.rowsec{margin-top:clamp(48px,6vw,80px)}
.rowsec .h3{margin-bottom:6px}
.rowsec p.sub{color:var(--t3);font-weight:600;margin-bottom:18px}
.faq{display:flex;flex-direction:column;gap:8px;max-width:860px}
.faq details{background:var(--panel);border-radius:var(--r);padding:0 20px}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 0;font-weight:800;font-size:18px;letter-spacing:-.01em}
.faq summary::-webkit-details-marker{display:none}
.faq summary svg{width:20px;height:20px;color:var(--t3);transition:transform .25s;flex:none}
.faq details[open] summary svg{transform:rotate(45deg);color:var(--lime)}
.faq details p{color:var(--t2);padding:0 0 20px;max-width:46em}
.faq details p a{color:var(--lime);font-weight:700}
.citymap{position:relative;border-radius:var(--r);overflow:hidden;background:#0d0f0d;aspect-ratio:16/8}
@media (max-width:860px){.citymap{aspect-ratio:4/3.4}}

/* ---------- court page ---------- */
.court-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(20px,3vw,40px);align-items:center;padding-bottom:8px}
.facts-line{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:16px;color:var(--t2);font-weight:700;font-size:15px}
.facts-line span{display:flex;align-items:center;gap:7px}
.facts-line svg{width:17px;height:17px;color:var(--t3)}
.court-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.livepanel{background:linear-gradient(160deg,#1d2410 0%,#1a1a1a 55%);border-radius:var(--r);padding:clamp(18px,2.4vw,28px);display:flex;flex-direction:column;gap:16px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.livepanel .big{display:flex;align-items:center;gap:14px}
.livepanel .big b{font-size:clamp(44px,5vw,72px);font-weight:900;letter-spacing:-.05em;line-height:.9}
.livepanel .big span{font-weight:800;font-size:18px;line-height:1.15}
.livepanel .who{display:flex;gap:8px;flex-wrap:wrap}
.livepanel .who div{display:flex;align-items:center;gap:8px;background:rgba(0,0,0,.3);padding:5px 10px 5px 5px;border-radius:6px;font-weight:700;font-size:14px}
.livepanel .who img{width:28px;height:28px;border-radius:5px;object-fit:cover}
.livepanel .wc{display:flex;gap:12px;align-items:center;background:rgba(184,240,0,.1);border-radius:6px;padding:12px 14px;font-weight:800}
.livepanel .wc svg{width:22px;height:22px;color:var(--lime);flex:none}
.livepanel .wc small{display:block;font-weight:600;color:var(--t2);font-size:13px}
.livepanel .foot{display:flex;justify-content:space-between;gap:12px;color:var(--t3);font-weight:600;font-size:14px;flex-wrap:wrap}
@media (max-width:960px){.court-head{grid-template-columns:1fr}}
.mosaic{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:200px 200px;gap:8px;border-radius:var(--r);overflow:hidden;margin-top:clamp(40px,5vw,64px)}
.mosaic>*{position:relative;overflow:hidden;background:var(--panel)}
.mosaic .m1{grid-row:1/3}
.mosaic img,.mosaic svg{width:100%;height:100%;object-fit:cover}
.mosaic .cap{position:absolute;left:10px;bottom:10px;background:rgba(18,18,18,.85);padding:5px 8px;border-radius:5px;font-size:12px;font-weight:700;color:var(--t2)}
.mosaic .add{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--t2);font-weight:800;text-align:center;padding:16px;transition:background .2s}
.mosaic .add:hover{background:var(--panel2);color:#fff}
.mosaic .add svg{width:28px;height:28px;color:var(--lime)}
@media (max-width:700px){.mosaic{grid-template-columns:1fr 1fr;grid-template-rows:220px 140px 140px}.mosaic .m1{grid-column:1/-1;grid-row:auto}}
.two{display:grid;grid-template-columns:1.3fr 1fr;gap:16px}
@media (max-width:960px){.two{grid-template-columns:1fr}}
.heat{display:grid;grid-template-columns:44px repeat(15,minmax(0,1fr));gap:4px;align-items:center}
.heat span{font-size:12px;font-weight:700;color:var(--t3)}
.heat i{display:block;aspect-ratio:1/1;border-radius:3px;background:rgba(184,240,0,var(--a));transition:transform .2s}
.heat i:hover{transform:scale(1.25);outline:2px solid #fff}
.heat-x{display:grid;grid-template-columns:44px repeat(15,minmax(0,1fr));gap:4px;margin-top:6px;font-size:11px;font-weight:700;color:var(--t3)}
.heat-x span:nth-child(even){visibility:hidden}
.heat-best{display:flex;gap:12px;align-items:center;margin-bottom:18px;font-weight:800;font-size:18px}
.heat-best svg{width:22px;height:22px;color:var(--lime)}
.days{display:flex;flex-direction:column;gap:4px}
.day{display:grid;grid-template-columns:56px 28px 70px 1fr;gap:12px;align-items:center;padding:10px 12px;border-radius:6px;background:#1f1f1f;font-weight:700;font-size:14px}
.day svg{width:22px;height:22px;color:var(--t2)}
.day .t{color:var(--t2)}
.day .c{display:flex;align-items:center;gap:8px;justify-content:flex-end;text-align:right}
.day .c i{width:8px;height:8px;border-radius:2px;background:var(--lime);flex:none}
.day .c i.w{background:var(--amber)}
.day .c i.x{background:#e05d4f}
.dl{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.dl div{background:var(--panel);border-radius:var(--r);padding:18px}
.dl dt{font-size:13px;font-weight:800;color:var(--t3);margin-bottom:6px}
.dl dd{font-weight:600;color:#fff}
@media (max-width:700px){.dl{grid-template-columns:1fr}}
.suggest{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.suggest form{display:none;width:100%;gap:10px;flex-direction:column;margin-top:16px}
.suggest.open form{display:flex}
.suggest select,.suggest textarea{background:#232323;border:0;border-radius:6px;color:#fff;font:inherit;padding:12px 14px}
.suggest textarea{min-height:90px;resize:vertical}

/* toast */
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);background:#242424;color:#fff;font-weight:700;padding:12px 16px;border-radius:var(--r);box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;z-index:100;font-size:14px;max-width:calc(100vw - 32px)}
.toast.on{opacity:1;transform:translate(-50%,0)}

/* reveal */
.rv{opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1)}
.rv.in{opacity:1;transform:none}
.rv.d1{transition-delay:.08s}.rv.d2{transition-delay:.16s}.rv.d3{transition-delay:.24s}.rv.d4{transition-delay:.32s}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .rv{opacity:1;transform:none}
}

/* first screen wrappers */
.first{min-height:calc(100svh - 68px);display:flex;flex-direction:column;justify-content:center}
.court-h1{font-size:clamp(40px,5.6vw,84px)}
.city-h1{font-size:clamp(36px,5vw,76px);max-width:15em}
@media (min-width:961px){
  .first-dir{height:calc(100svh - 68px);min-height:600px;display:flex;flex-direction:column}
  .first-dir .page-head{padding-bottom:16px}
  .first-dir .dir{flex:1;min-height:0;padding-bottom:24px;width:100%}
  .first-dir .dir-list{height:100%;overflow-y:auto;padding-right:6px;scrollbar-width:thin;scrollbar-color:#333 transparent}
  .first-dir .map{position:relative;top:0;height:100%;aspect-ratio:auto}
}
@media (max-width:860px){
  .first{min-height:calc(100svh - 60px);justify-content:flex-start}
  .first .page-head{padding-top:20px}
}

.busy{display:flex;align-items:center;gap:14px;padding:12px 0}
.busy .bt{flex:1;min-width:0}
.busy b{display:block;font-weight:800;font-size:17px;line-height:1.2}
.busy small{display:block;color:var(--t3);font-weight:600;font-size:14px}
.busy:hover b{color:var(--lime)}
.busy .faces img{width:30px;height:30px}
.first .today{margin-top:16px}
@media (max-width:860px){
  .city-h1{font-size:38px}
  .first .updated{margin-top:10px;font-size:13px}
  .first .today{margin-top:8px}
  .first .today .panel:nth-child(2){display:none}
  .first .windcall b{font-size:20px}
  .first .windcall .ic{width:40px;height:40px}
  .first .windcall p{font-size:14px}
  .hours{height:86px;margin-top:14px}
  .hours em{font-size:10px}
  .filters{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-left:calc(-1 * var(--pad));margin-right:calc(-1 * var(--pad));padding:0 var(--pad)}
  .filters::-webkit-scrollbar{display:none}
  .filter{flex:none}
}
/* Hero: two-line headline, wider copy column, no floating widgets (Leander 2026-11-01) */
.hero .wrap{grid-template-columns:1.35fr .65fr}
.hero-h1{font-size:clamp(40px,5.1vw,80px);line-height:1.02}
.hero-h1 span{white-space:nowrap}
@media (max-width:860px){.hero .wrap{grid-template-columns:1fr}.hero-h1 span{white-space:normal}}

/* ================= real site (2026-11-01): honest data, shared pages ================= */
.ul{text-decoration:underline;color:inherit}
.ftr .bottom span{max-width:72em}

/* maps: real court positions, no drawn streets */
.cmap{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:1/1;background-color:#0e110e;
  background-image:radial-gradient(rgba(255,255,255,.07) 1px,transparent 1.4px);background-size:22px 22px;box-shadow:var(--shadow)}
.dir .cmap{position:sticky;top:84px}
@media (max-width:960px){.dir .cmap{position:relative;top:0;order:0;aspect-ratio:1/1}}
.pin i{background:#d9d9d9}
.pin:hover i,.pin.hl i,.pin.on i{background:var(--lime)}
.pin.on{z-index:4}
.pin:focus-visible{outline:2px solid var(--lime);outline-offset:4px;border-radius:4px}
.cmap .scale{position:absolute;right:12px;bottom:12px;display:flex;flex-direction:column;align-items:flex-end;gap:4px;font-size:12px;font-weight:700;color:var(--t2)}
.cmap .scale i{display:block;height:4px;background:var(--t2);border-radius:2px}
.cmap .gm{position:absolute;left:12px;bottom:12px;background:rgba(18,18,18,.88);padding:7px 10px;border-radius:6px;font-size:12px;font-weight:800;color:#fff;display:flex;gap:6px;align-items:center}
.cmap .gm svg{width:14px;height:14px}

/* city tiles: only real counts, so the number of tiles varies */
.tiles{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
@media (max-width:960px){.tiles{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}}
.today{grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr))}
@media (max-width:860px){.first .today .panel:nth-child(2){display:block}}

/* "who's here now" lives in the app: an honest prompt, not a fake number */
.apppanel{background:linear-gradient(160deg,#1d2410 0%,#1a1a1a 60%);border-radius:var(--r);padding:clamp(18px,2.4vw,28px);display:flex;flex-direction:column;gap:14px}
.apppanel .q{font-size:clamp(24px,2.4vw,32px);font-weight:900;letter-spacing:-.03em;line-height:1.1}
.apppanel p{color:var(--t2);font-weight:600}
.apppanel .badges img,.apppanel .badges .gp{height:46px}
.apppanel .foot{color:var(--t3);font-weight:600;font-size:14px;display:flex;gap:8px;align-items:center}
.apppanel .foot svg{width:16px;height:16px;color:var(--t3);flex:none}

/* live forecast (Open-Meteo, loaded in the browser; hidden until it arrives) */
[data-wx][hidden]{display:none!important}
.wx .hours{grid-template-columns:repeat(15,1fr);height:130px}
.wx .hours i.x{background:#e05d4f}
.wx .hours span:empty{visibility:hidden}
.wx .src{color:var(--t3);font-size:13px;font-weight:600;margin-top:14px}
.wx .gust{color:var(--amber);font-weight:700;margin-top:6px;font-size:15px}
.windcall .ic.w{background:rgba(242,179,61,.14);color:var(--amber)}
.windcall .ic.x{background:rgba(224,93,79,.14);color:#e05d4f}
@media (max-width:600px){.wx .hours em{display:none}.wx .hours{gap:2px}}
.day{grid-template-columns:48px 26px 74px 1fr}
@media (max-width:420px){.day{grid-template-columns:40px 22px 64px 1fr;gap:8px;padding:9px 10px;font-size:13px}}

/* court page */
.mosaic .tile-link{display:flex;flex-direction:column;justify-content:flex-end;gap:6px;padding:18px;background:var(--panel)}
.mosaic .tile-link b{font-size:clamp(30px,3vw,44px);font-weight:900;letter-spacing:-.04em;line-height:1}
.mosaic .tile-link span{color:var(--t2);font-weight:700}
.mosaic .tile-link:hover{background:var(--panel2)}
.mosaic .cmap{border-radius:0;aspect-ratio:auto;height:100%;box-shadow:none}
.note{color:var(--t3);font-size:14px;font-weight:600;margin-top:14px}
.note a{color:var(--lime)}
.suggest form .row2{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.suggest form small{color:var(--t3);font-weight:600}

/* city list rows (no live status) */
.row{grid-template-columns:96px 1fr}
@media (max-width:520px){.row{grid-template-columns:72px 1fr}}
.ccard .w{color:var(--t2)}
.ccard .w svg{color:var(--t3)}

/* directory */
.findcity{display:flex;align-items:center;gap:10px;background:var(--panel);border-radius:var(--r);padding:0 14px;height:52px;max-width:460px;margin-top:24px}
.findcity svg{width:20px;height:20px;color:var(--t3);flex:none}
.findcity input{flex:1;min-width:0;background:none;border:0;color:#fff;font:inherit;font-weight:600;font-size:17px;outline:none}
.findcity input::placeholder{color:var(--t3)}
.findcity:focus-within{box-shadow:0 0 0 2px var(--lime)}
.states{align-items:start}
.state[hidden]{display:none}
.state .cl a[hidden]{display:none}
.state details summary{list-style:none;cursor:pointer;margin-top:10px;font-size:14px;font-weight:800;color:var(--lime)}
.state details summary::-webkit-details-marker{display:none}
.state details[open] summary{display:none}
.state details .cl{margin-top:6px}
.top-cities{margin-top:clamp(40px,5vw,64px)}

/* hand-written pages: guides, privacy, terms, delete account, get */
.doc>.wrap,.doc>.container{max-width:820px;margin:0 auto;padding:clamp(28px,5vw,56px) var(--pad) 72px}
.doc .content{max-width:none}
.doc .crumb{font-size:14px;color:var(--t3);font-weight:600;margin-bottom:16px}
.doc .crumb a{color:var(--t3)}
.doc h1{font-size:clamp(36px,5vw,60px);font-weight:900;letter-spacing:-.045em;line-height:1;text-wrap:balance;margin-bottom:16px;color:#fff}
.doc h2{font-size:clamp(22px,2.2vw,28px);font-weight:800;letter-spacing:-.025em;line-height:1.15;margin:40px 0 12px}
.doc h3{font-size:19px;font-weight:800;margin:24px 0 10px}
.doc p,.doc li{color:var(--t2);font-weight:500;line-height:1.65}
.doc p{margin-bottom:14px}
.doc ul,.doc ol{margin:0 0 16px 22px}
.doc li{margin-bottom:8px}
.doc strong{color:#fff}
.doc a{color:var(--lime);font-weight:600}
.doc a:hover{text-decoration:underline}
.doc .addr,.doc .intro{font-size:clamp(18px,1.6vw,21px);color:var(--t2);margin-bottom:20px}
.doc .last-updated{color:var(--t3);font-size:14px;font-weight:600;margin-bottom:28px}
.doc img.hero{min-height:0;height:auto;display:block;overflow:visible;width:100%;border-radius:var(--r);margin:20px 0 28px;aspect-ratio:16/10;object-fit:cover;background:#222}
.doc .cta,.doc .info-box,.doc .warning-box{background:var(--panel);border-radius:var(--r);padding:clamp(18px,2.6vw,28px);margin:32px 0}
.doc .warning-box{background:rgba(242,179,61,.08)}
.doc .cta h2,.doc .info-box h3,.doc .warning-box h3{margin-top:0}
.doc .cta .badges{margin-top:14px}
.doc .cta .badges img{height:46px;width:auto}
.doc .src{font-size:14px;color:var(--t3);margin-top:44px;line-height:1.6}
.doc .src a{color:var(--t2);font-weight:600}
.doc .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;margin-top:28px}
.doc>.wrap:has(.grid){max-width:var(--max)}
.doc .card{background:var(--panel);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;color:#fff;transition:transform .25s cubic-bezier(.22,1,.36,1)}
.doc .card:hover{transform:translateY(-4px);text-decoration:none}
.doc .card img{width:100%;aspect-ratio:16/10;object-fit:cover;background:#222}
.doc .card .b{padding:16px 18px 20px}
.doc .card .n{font-weight:800;font-size:19px;letter-spacing:-.02em;line-height:1.2;margin-bottom:6px;color:#fff}
.doc .card .m{font-size:15px;color:var(--t3);font-weight:600}
.doc>.wrap:has(.mark){max-width:480px;text-align:center;min-height:60svh;display:flex;flex-direction:column;justify-content:center}
.doc .mark{width:96px;height:96px;border-radius:8px;margin:0 auto 22px}
.doc h1 span{color:var(--lime)}
.doc>.wrap:has(.mark) .badges{justify-content:center}
.doc .badge{display:inline-block;background:var(--lime);color:var(--lime-ink);font-weight:800;font-size:15px;padding:13px 22px;border-radius:var(--r)}
.doc .badge.alt{background:var(--panel2);color:#fff}
.doc .note{color:var(--t3);font-size:14px;margin-top:20px}
.doc table{width:100%;border-collapse:collapse;margin:16px 0}
.doc td,.doc th{padding:10px 12px;text-align:left;color:var(--t2);background:var(--panel)}
[hidden]{display:none!important}
/* inner pages size to their content (no stretched first screen) */
.first{min-height:0;justify-content:flex-start}
/* hero rotating phrase */
.hero-h1 .rot{display:inline-grid;color:var(--lime)}
.hero-h1 .rot>b{grid-area:1/1;font-weight:inherit;opacity:0;transform:translateY(.32em);transition:opacity .5s ease,transform .5s cubic-bezier(.2,.8,.2,1)}
.hero-h1 .rot>b.on{opacity:1;transform:none}
.hero-h1 .rot>b.out{opacity:0;transform:translateY(-.32em)}
.hero-h1>span{display:block}
@media (prefers-reduced-motion:reduce){.hero-h1 .rot>b{transition:none}}
@media (max-width:860px){.hero .wrap{padding-top:36px}}
/* hero phone: home feed auto-swiping up through courts */
.feed{position:absolute;inset:0;overflow:hidden}
.feed-track{position:absolute;inset:0;animation:feedswipe 10s cubic-bezier(.65,0,.35,1) infinite}
.feed .sc.fs{height:100%;bottom:auto}
.feed-hint{position:absolute;z-index:4;left:0;right:0;bottom:1.6cqw;text-align:center;font-size:2.8cqw;font-weight:700;color:rgba(255,255,255,.55)}
@keyframes feedswipe{
 0%,19%{transform:translateY(0)}
 25%,44%{transform:translateY(-100%)}
 50%,69%{transform:translateY(-200%)}
 75%,94%{transform:translateY(-300%)}
 100%{transform:translateY(-400%)}
}
@media (prefers-reduced-motion:reduce){.feed-track{animation:none}}
/* audit fixes 2026-11-01 */
.sp-facts{display:grid;grid-template-columns:1fr 1fr;gap:3.2cqw 3cqw}
.sp-facts div{display:flex;flex-direction:column;gap:.8cqw}
.sp-facts span{font-size:3cqw;color:var(--t3);font-weight:700}
.sp-facts b{font-size:3.9cqw}
.rr .h2{font-size:clamp(30px,3.05vw,46px);max-width:none}
.rr .h2 .ln{display:block;white-space:nowrap}
.rr{grid-template-columns:1.15fr .85fr}
.rr-cards{height:640px}
.match{left:0;top:0}
.standings{right:0;top:212px}
.champ{left:0;bottom:0}
@media (max-width:860px){.rr{grid-template-columns:1fr}.rr .h2{font-size:clamp(24px,6.5vw,40px)}.rr-cards{height:auto;display:flex;flex-direction:column;gap:14px}.rr-cards .float{position:relative;inset:auto;width:100%;animation:none}}

/* ---------- audit pass 2026-11-01 ---------- */
:root{--t3:#8E8E8E}
.crumbs,.doc .crumb{display:none}
/* footer */
.ftr .bottom{align-items:baseline}
.ftr .uas{color:var(--lime);text-decoration:underline;text-underline-offset:3px;font-weight:800;letter-spacing:.04em}
.ftr .fnote{font-size:12px;color:var(--t3)}
html,body{min-height:100%}
body{min-height:100vh;display:flex;flex-direction:column}
body>main{flex:1}
.ftr{margin-top:auto}
/* court + city heads: two lines max */
.court-head{grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr)}
.court-h1{font-size:clamp(34px,3.9vw,58px);line-height:1}
.city-h1{font-size:clamp(32px,3.6vw,56px);max-width:none;line-height:1}
@media (max-width:960px){.court-head{grid-template-columns:1fr}.court-h1{font-size:clamp(30px,8vw,44px)}}
@media (max-width:600px){.city-h1{font-size:30px}}
/* home: problem headline two lines */
.problem .two-line{font-size:clamp(34px,3.7vw,58px)}
.problem .two-line span{display:block;white-space:nowrap}
/* panel titles are headings, not labels above headings */
.panel-k{font-size:20px;font-weight:800;color:#fff;letter-spacing:-.01em;margin-bottom:14px}
/* wind: no dead space */
.two{align-items:stretch}
.panel.wx[data-wx=today]{display:flex;flex-direction:column}
.panel.wx[data-wx=today] .hours{flex:1;min-height:130px;height:auto}
@media (max-width:960px){.panel.wx[data-wx=today] .hours{flex:none;height:130px}}
/* phone fact cards */
.sp-facts{display:grid;grid-template-columns:1fr 1fr;gap:3.2cqw 3cqw}
/* carousels: whole cards, never a cut title */
.strip{grid-auto-columns:calc((100% - 48px)/4)}
@media (max-width:1100px){.strip{grid-auto-columns:calc((100% - 32px)/3)}}
@media (max-width:760px){.strip{grid-auto-columns:82%}}
.strip>*{scroll-snap-align:start}
.strip-nav{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}
.strip-nav button{width:42px;height:42px;border-radius:var(--r-sm);background:var(--panel2);display:grid;place-items:center;color:#fff}
.strip-nav button:disabled{opacity:.3;cursor:default}
.strip-nav svg{width:20px;height:20px}
/* closing section: one phone on phones */
@media (max-width:760px){.fan{height:auto;display:flex;justify-content:center}.fan .phone{position:relative;top:0;left:0;height:440px}.fan .p1,.fan .p3{display:none}.fan .p2{transform:none}}
/* /courts/ masonry, no holes */
.states{display:block;column-count:3;column-gap:16px}
.states>.state{break-inside:avoid;margin-bottom:16px;display:block}
@media (max-width:960px){.states{column-count:2}}
@media (max-width:600px){.states{column-count:1}}
/* court About: no lone half cells; FAQ full width */
.dl{grid-template-columns:repeat(2,minmax(0,1fr))}
.dl div:last-child:nth-child(odd){grid-column:1/-1}
.faq{max-width:none}
.faq details p{max-width:60em}
/* maps */
.cmap{container-type:inline-size;width:100%}
.cmap .ml{position:absolute;inset:0}
.cmap.live{background:#0e0e0e}
.cmap.live>.pin:not(.mk),.cmap.live>.scale{display:none}
.cmap .pin.mk{position:absolute;left:0;top:0}
.cmap .pin.mk.hl i{transform:rotate(-45deg) scale(1.25)}
.pin.l-left .lbl{left:auto;right:6px;transform:none}
.pin.l-right .lbl{left:6px;transform:none}
.cmap .maplibregl-ctrl-attrib{font-size:11px}
.cmap .maplibregl-ctrl-group{background:rgba(26,26,26,.9)}
.cmap .maplibregl-ctrl-group button .maplibregl-ctrl-icon{filter:invert(1)}
/* /get */
.getmain{display:block}
.getpage{padding:clamp(28px,6vw,80px) 0}
.get-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(24px,5vw,72px);align-items:center}
.get-copy{display:flex;flex-direction:column;gap:22px;align-items:flex-start}
.get-mark{width:72px;height:72px}
.get-h1{font-size:clamp(36px,4.6vw,72px);line-height:1}
.get-h1 span{display:block;white-space:nowrap}
.get-note{color:var(--t2);font-weight:600}
.getpage .stage .phone{height:600px}
@media (max-width:860px){.get-grid{grid-template-columns:1fr}.get-h1{font-size:clamp(30px,8.6vw,44px)}.getpage .stage{display:flex;justify-content:center}.getpage .stage .phone{height:440px}}
/* invite page (/i/*), in the site chrome */
.inv{max-width:560px!important;padding:clamp(28px,5vw,56px) var(--pad) 64px!important}
.inv .brandbar,.inv .pill{display:none}
.inv .hidden{display:none!important}
.inv #viewInvite:not(.hidden),.inv #viewName:not(.hidden){display:flex;flex-direction:column}
.inv #viewInvite>*,.inv #viewName>*{order:3}
.inv #viewInvite>h1,.inv #viewName>h1{order:1}
.inv .kicker{order:2;font-size:16px;font-weight:700;color:var(--lime);margin:0 0 6px}
.inv .kicker:empty{display:none}
.inv h1{font-size:clamp(30px,6vw,44px);font-weight:900;letter-spacing:-.04em;line-height:1.02;margin:0 0 10px;text-wrap:balance}
.inv .inv-h2{font-size:26px;font-weight:900;letter-spacing:-.03em;line-height:1.1;margin:28px 0 12px}
.inv .inv-sub{font-size:16px;color:var(--t2);margin:0 0 18px}
.inv .when{order:2;font-size:18px;color:var(--lime);font-weight:800;margin:0 0 20px}
.inv .facts{display:flex;flex-direction:column;gap:8px;margin-bottom:6px}
.inv .fact{display:flex;gap:16px;padding:14px 16px;background:var(--panel);border-radius:var(--r);font-size:16px}
.inv .fact .k{color:var(--t3);width:64px;flex:0 0 auto;font-weight:700}
.inv .fact .v .sub{display:block;color:var(--t3);font-size:14px;margin-top:2px}
.inv .rsvps{padding:16px 0}
.inv .count{font-size:15px;color:var(--t2);margin-bottom:8px}
.inv .count b{color:#fff}
.inv .people{list-style:none;margin:0;padding:0}
.inv .person{display:flex;align-items:center;gap:10px;padding:7px 0}
.inv .person .dot{width:30px;height:30px;border-radius:6px;flex:0 0 auto;color:#111;font-size:13px;font-weight:800;display:flex;align-items:center;justify-content:center}
.inv .person .nm{font-size:16px;font-weight:700}
.inv .person .meta{font-size:14px;color:var(--t3);margin-left:auto;text-align:right}
.inv .person.you .nm{color:var(--lime)}
.inv .arrive{margin:6px 0 16px}
.inv .arrive label{display:block;font-size:14px;font-weight:700;color:var(--t2);margin-bottom:8px}
.inv select,.inv input{width:100%;background:var(--panel);border:1px solid #2e2e2e;border-radius:var(--r);padding:14px;font-size:16px;color:#fff;font-family:inherit;-webkit-appearance:none;appearance:none;margin-bottom:10px}
.inv select:focus,.inv input:focus{outline:none;border-color:var(--lime)}
.inv input::placeholder{color:var(--t3)}
.inv .saved{font-size:14px;color:var(--t3);margin-top:6px;min-height:1em}
.inv .wx{background:var(--panel);border-radius:var(--r);padding:16px;margin:18px 0}
.inv .wxlbl{font-size:15px;font-weight:800;color:#fff;margin-bottom:10px;letter-spacing:0}
.inv .wxbars{display:flex;align-items:flex-end;gap:4px;height:44px;margin-bottom:8px}
.inv .wxbar{flex:1;border-radius:3px 3px 0 0;min-height:4px}
.inv .wxline{font-size:15px;font-weight:700}
.inv .cta{display:block;width:100%;background:var(--lime);color:#111;border:0;border-radius:var(--r);padding:17px;text-align:center;font-size:17px;font-weight:800;margin-bottom:10px;cursor:pointer;font-family:inherit}
.inv .cta:disabled{opacity:.5}
.inv .cta.two{background:var(--panel2);color:#fff;font-size:16px;font-weight:700;padding:15px}
.inv .fine{font-size:14px;color:var(--t3);text-align:center;margin:10px 0 0}
.inv .confirm{background:rgba(184,240,0,.1);border-radius:var(--r);padding:14px 16px;display:flex;align-items:center;gap:12px;margin:8px 0 0}
.inv .confirm .tick{width:26px;height:26px;border-radius:6px;background:var(--lime);color:#111;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;flex:0 0 auto}
.inv .confirm .txt{font-size:16px;line-height:1.4}
.inv .confirm .txt .sub{color:var(--t2);font-size:14px}
.inv .sell{display:flex;flex-direction:column;gap:8px;padding:4px 0 0}
.inv .sellrow{display:flex;gap:12px;padding:14px 16px;background:var(--panel);border-radius:var(--r)}
.inv .sellrow .ico{color:var(--lime);font-size:17px;flex:0 0 auto;line-height:1.3}
.inv .sellrow .txt{font-size:16px;font-weight:700;line-height:1.35}
.inv .sellrow .txt .sub{display:block;color:var(--t3);font-size:14px;font-weight:600;margin-top:2px}
.inv .err{background:rgba(224,93,79,.12);border-radius:var(--r);padding:12px 14px;font-size:15px;color:#ffb4aa;margin-bottom:12px}
.inv .skel{color:var(--t3);font-size:16px;padding:60px 0;text-align:center}
.court-h1.long{font-size:clamp(28px,2.8vw,40px)}
@media (max-width:960px){.court-h1.long{font-size:clamp(26px,6.6vw,36px)}}
/* wind gauge: number sits inside the arc, the gust line under it */
.gauge .v{position:relative;left:auto;right:auto;bottom:auto;margin-top:-13cqw;text-align:center}
.gauge .v b{font-size:9cqw;letter-spacing:-.03em;line-height:1;margin-bottom:4.5cqw}
.gauge .v small{display:block;font-size:3.3cqw}
.apppanel .q{font-size:clamp(22px,2vw,28px)}
.cmap .pin .lbl{color:#fff;font-family:Inter,-apple-system,sans-serif;line-height:1.2}
/* hero background rally: canvas pickleball court with a live rally (site.js) */
.hero-rally{position:absolute;inset:auto 0 0 0;height:58%;z-index:1;pointer-events:none;opacity:1;-webkit-mask-image:linear-gradient(to top,#000 80%,transparent);mask-image:linear-gradient(to top,#000 80%,transparent)}
.hr-canvas,.hr-ballc{position:absolute;inset:0;width:100%;height:100%}
.hr-top{-webkit-mask-image:none;mask-image:none}
@media (max-width:860px){.hr-top{z-index:3}}
@media (max-width:860px){.hero-rally{height:40%}}
