*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--ground);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.5}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:.005em;margin:0;font-weight:700;line-height:1.2}h1{font-size:24px}h2{font-size:18px}h3{font-size:16px}p{margin:0 0 8px}a{color:var(--court);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;display:block}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0;padding:0}:focus-visible{outline:2px solid var(--court);outline-offset:2px;border-radius:6px}.num,.display{font-family:var(--font-display);font-weight:600}.muted{color:var(--muted)}.small{font-size:13px}.tiny{font-size:12px}.bold{font-weight:600}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.mb-8{margin-bottom:8px}.row{align-items:center;gap:8px;display:flex}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.grow{flex:1;min-width:0}.stack{flex-direction:column;gap:12px;display:flex}.stack-8{flex-direction:column;gap:8px;display:flex}.ellipsis{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.app{flex-direction:column;min-height:100dvh;display:flex}.topbar{z-index:30;height:var(--topbar-h);background:color-mix(in srgb, var(--ground) 88%, transparent);-webkit-backdrop-filter:saturate(160%)blur(10px);backdrop-filter:saturate(160%)blur(10px);border-bottom:1px solid var(--line);position:sticky;top:0}.topbar-inner{max-width:var(--max);height:100%;padding:0 var(--gutter);align-items:center;gap:12px;margin:0 auto;display:flex}.logo{font-family:var(--font-display);letter-spacing:.06em;color:var(--ink);align-items:center;gap:4px;font-size:20px;font-weight:700;display:inline-flex}.logo:hover{text-decoration:none}.logo-dot{background:var(--ball);border-radius:50%;width:9px;height:9px;margin-top:-10px}.topnav{gap:4px;margin-left:8px;display:none}.topnav a{color:var(--muted);border-radius:8px;padding:8px 10px;font-weight:500}.topnav a.on{color:var(--ink);background:var(--surface)}.topnav a:hover{color:var(--ink);text-decoration:none}.topbar-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.iconbtn{width:40px;height:40px;color:var(--ink);border-radius:50%;justify-content:center;align-items:center;display:inline-flex;position:relative}.iconbtn:hover{background:var(--surface)}.iconbtn .dot{background:var(--ball);border:2px solid var(--ground);border-radius:50%;width:8px;height:8px;position:absolute;top:8px;right:8px}main.page{width:100%;max-width:var(--max);padding:16px var(--gutter) calc(var(--tabbar-h) + 24px + env(safe-area-inset-bottom));flex:1;margin:0 auto}main.page.wide{max-width:1040px}.tabbar{z-index:30;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tabbar a{height:var(--tabbar-h);color:var(--muted);font-family:var(--font-display);letter-spacing:.02em;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:11px;font-weight:600;display:flex}.tabbar a:hover{text-decoration:none}.tabbar svg{width:22px;height:22px}.footer{border-top:1px solid var(--line);padding:16px var(--gutter) calc(var(--tabbar-h) + 16px);text-align:center;color:var(--muted);font-size:12px}.footer a{color:var(--muted);margin:0 6px}@media (width>=720px){.tabbar{display:none}.topnav{display:flex}main.page{padding-top:24px;padding-bottom:48px}.footer{padding-bottom:24px}}.btn{border-radius:var(--r-pill);min-height:40px;font-family:var(--font-display);letter-spacing:.01em;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:0 16px;font-size:14px;font-weight:600;transition:background .15s,transform 50ms;display:inline-flex}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:var(--court);color:var(--court-ink)}.btn.secondary{background:var(--surface);color:var(--ink);border-color:var(--line)}.btn.secondary:hover{background:var(--surface-2)}.btn.soft{background:var(--court-soft);color:var(--court)}.btn.ghost{color:var(--court)}.btn.ghost:hover{background:var(--court-soft)}.btn.danger{background:var(--red-soft);color:var(--red)}.btn.success{background:var(--green-soft);color:var(--green)}.btn.line{background:var(--line-green);color:#fff}.btn.line:hover{background:#05b04c}.btn.sm{min-height:32px;padding:0 12px;font-size:13px}.btn.lg{min-height:48px;padding:0 22px;font-size:16px}.btn.block{width:100%}.btn svg{width:18px;height:18px}.linkbtn{color:var(--court);align-items:center;min-height:40px;padding:0 4px;font-weight:600;display:inline-flex}.linkbtn.danger{color:var(--red)}.chip{border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--line);min-height:32px;color:var(--ink);white-space:nowrap;align-items:center;gap:4px;padding:0 12px;font-size:13px;font-weight:500;display:inline-flex}.chip.sm{min-height:24px;padding:0 8px;font-size:12px}.chip.soft{background:var(--court-soft);color:var(--court);border-color:#0000}.chip.ball{background:var(--ball-soft);color:color-mix(in srgb, var(--ball) 60%, var(--ink));border-color:#0000}.chip.green{background:var(--green-soft);color:var(--green);border-color:#0000}.chip.red{background:var(--red-soft);color:var(--red);border-color:#0000}.chip.plain{background:var(--surface-2);color:var(--muted);border-color:#0000}.chips .select{border-radius:var(--r-pill);width:auto;min-height:32px;padding:4px 30px 4px 12px;font-size:13px}button.chip:hover{border-color:var(--muted)}button.chip.on:hover{border-color:var(--ink)}.chips{flex-wrap:wrap;gap:8px;display:flex}.chips.scroll{scrollbar-width:none;margin:0 calc(-1 * var(--gutter));padding:2px var(--gutter);flex-wrap:nowrap;overflow-x:auto}.chips.scroll::-webkit-scrollbar{display:none}.badge{height:22px;font-family:var(--font-display);letter-spacing:.03em;text-transform:uppercase;border-radius:6px;align-items:center;padding:0 8px;font-size:11px;font-weight:600;display:inline-flex}.badge.green{background:var(--green-soft);color:var(--green)}.badge.ball{background:var(--ball-soft);color:color-mix(in srgb, var(--ball) 55%, var(--ink))}.badge.gray{background:var(--surface-2);color:var(--muted)}.badge.red{background:var(--red-soft);color:var(--red)}.badge.court{background:var(--court-soft);color:var(--court)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:14px}.card.pad-0{padding:0;overflow:hidden}a.card,.card.clickable{color:inherit;transition:border-color .15s,box-shadow .15s;display:block}a.card.row{display:flex}a.court-card,button.court-card,a.club-card{display:grid}a.card:hover,.card.clickable:hover{border-color:color-mix(in srgb, var(--court) 40%, var(--line));box-shadow:var(--shadow);text-decoration:none}.card-title{font-family:var(--font-display);font-size:16px;font-weight:700;line-height:1.25}.section-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;display:flex}.section-head h2{font-size:17px}.section-head a{font-size:13px;font-weight:600}.grid-2{gap:12px;display:grid}@media (width>=720px){.grid-2{grid-template-columns:1fr 1fr}.cols{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:24px;display:grid}.cols>aside{top:calc(var(--topbar-h) + 16px);position:sticky}}.hscroll{scroll-snap-type:x mandatory;margin:0 calc(-1 * var(--gutter));padding:2px var(--gutter) 6px;scrollbar-width:none;gap:12px;display:flex;overflow-x:auto}.hscroll::-webkit-scrollbar{display:none}.hscroll>*{scroll-snap-align:start;flex:none}.session-card{grid-template-columns:52px 1fr;gap:12px;display:grid}.session-card .when{background:var(--court-soft);color:var(--court);font-family:var(--font-display);text-align:center;border-radius:8px;flex-direction:column;justify-content:center;align-self:start;align-items:center;padding:6px 2px;font-weight:700;line-height:1.1;display:flex}.session-card .when .d{font-size:20px}.session-card .when .m{letter-spacing:.04em;font-size:11px;font-weight:600}.session-card .when.today{background:var(--ball-soft);color:color-mix(in srgb, var(--ball) 55%, var(--ink))}.session-card .meta{color:var(--muted);flex-wrap:wrap;gap:4px 8px;font-size:13px;display:flex}.session-card .foot{justify-content:space-between;align-items:center;gap:8px;margin-top:10px;display:flex}.session-card .price{font-family:var(--font-display);font-size:15px;font-weight:700}.session-card.cancelled{opacity:.6}.court-card{grid-template-columns:96px 1fr;display:grid}.court-card .cover{background:var(--court-soft);object-fit:cover;width:100%;height:100%;min-height:84px}.court-card .body{min-width:0;padding:12px}.court-card.tile{grid-template-columns:1fr;width:200px}.court-card.tile .body .row{flex-wrap:wrap;gap:2px 8px}.court-card.tile .cover,.court-card.tile .cover-ph{aspect-ratio:16/10;height:auto}.cover-ph{background:linear-gradient(135deg, var(--court-soft), var(--surface-2));width:100%;height:100%;min-height:60px;position:relative;overflow:hidden}.cover-ph:after{content:"";border:2px solid color-mix(in srgb, var(--court) 30%, transparent);background:linear-gradient(to right, transparent calc(50% - 1px), color-mix(in srgb, var(--court) 30%, transparent) calc(50% - 1px), color-mix(in srgb, var(--court) 30%, transparent) calc(50% + 1px), transparent calc(50% + 1px));border-radius:4px;position:absolute;inset:22% 18%}.club-card{grid-template-columns:56px 1fr;align-items:center;gap:12px;display:grid}.club-card .cover{object-fit:cover;background:var(--court-soft);border-radius:10px;width:56px;height:56px}.club-card .cover-ph{border-radius:10px;width:56px;height:56px;min-height:0}.avatar{object-fit:cover;background:var(--court-soft);width:40px;height:40px;color:var(--court);font-family:var(--font-display);-webkit-user-select:none;user-select:none;border:0;border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:inline-flex;overflow:hidden}.avatar.xs{width:24px;height:24px;font-size:10px}.avatar.sm{width:32px;height:32px;font-size:12px}.avatar.lg{width:56px;height:56px;font-size:20px}.avatar.xl{width:88px;height:88px;font-size:30px}.avatar-stack{align-items:center;display:inline-flex}.avatar-stack .avatar{box-shadow:0 0 0 2px var(--surface);margin-left:-8px}.avatar-stack .avatar:first-child{margin-left:0}.avatar-stack .count{font-family:var(--font-display);margin-left:8px;font-size:14px;font-weight:700}.avatar-stack .count .cap{color:var(--muted);font-weight:600}.avatar-grid{grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:10px 6px;display:grid}.avatar-grid .cell{color:inherit;text-align:center;border-radius:8px;flex-direction:column;align-items:center;gap:4px;min-width:0;padding:4px 2px;display:flex;position:relative}.avatar-grid .cell:hover{background:var(--surface-2);text-decoration:none}.avatar-grid .cell .name{white-space:nowrap;text-overflow:ellipsis;width:100%;font-size:12px;overflow:hidden}.avatar-grid .cell .role{position:absolute;top:0;right:4px}.avatar-grid .cell.toggle{cursor:pointer}.avatar-grid .cell.toggle .avatar{transition:box-shadow .15s;box-shadow:0 0 0 2px #0000}.avatar-grid .cell.toggle.on .avatar{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--green)}.avatar-grid .cell.toggle.on:after{content:"✓";background:var(--green);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:11px;display:flex;position:absolute;top:0;right:10px}.avatar-row{scrollbar-width:none;margin:0 calc(-1 * var(--gutter));padding:2px var(--gutter);gap:8px;display:flex;overflow-x:auto}.avatar-row::-webkit-scrollbar{display:none}.avatar-row .cell{flex:0 0 60px}.tabs{border-bottom:1px solid var(--line);scrollbar-width:none;margin:0 calc(-1 * var(--gutter));padding:0 var(--gutter);gap:2px;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tabs>a,.tabs>button{min-height:44px;font-family:var(--font-display);color:var(--muted);white-space:nowrap;border-bottom:2px solid #0000;flex:none;align-items:center;gap:6px;margin-bottom:-1px;padding:0 12px;font-size:14px;font-weight:600;display:inline-flex}.tabs>a:hover,.tabs>button:hover{color:var(--ink);text-decoration:none}.tabs>.on{color:var(--court);border-bottom-color:var(--court)}.tabs.seg{background:var(--surface-2);border-radius:var(--r-pill);border:0;gap:2px;margin:0;padding:3px}.tabs.seg>a,.tabs.seg>button{border-radius:var(--r-pill);border:0;flex:1;justify-content:center;min-height:36px;margin:0}.tabs.seg>.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.page-header{align-items:center;gap:8px;min-height:40px;margin-bottom:16px;display:flex}.page-header h1{flex:1;min-width:0;font-size:22px}.page-header .sub{color:var(--muted);margin-top:2px;font-size:13px}.backbtn{width:40px;height:40px;color:var(--ink);border-radius:50%;justify-content:center;align-items:center;margin-left:-8px;display:inline-flex}.backbtn:hover{background:var(--surface)}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.field>label,.field-label{font-family:var(--font-display);letter-spacing:.02em;color:var(--ink);font-size:13px;font-weight:600}.field .hint{color:var(--muted);font-size:12px}.field .err{color:var(--red);font-size:12px}.input,.select,.textarea{border:1px solid var(--line);background:var(--surface);width:100%;min-height:44px;color:var(--ink);border-radius:8px;padding:10px 12px}.textarea{resize:vertical;min-height:88px}.input:focus,.select:focus,.textarea:focus{outline:2px solid var(--court);outline-offset:0;border-color:#0000}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%235C6B75' stroke-width='2.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:34px}.field-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.check{cursor:pointer;align-items:flex-start;gap:10px;min-height:40px;display:flex}.check input{width:20px;height:20px;accent-color:var(--court);flex:none;margin:2px 0 0}.switch{cursor:pointer;align-items:center;gap:8px;min-height:40px;display:inline-flex}.switch input{appearance:none;background:var(--line);border-radius:999px;width:42px;height:24px;margin:0;transition:background .15s;position:relative}.switch input:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:left .15s;position:absolute;top:3px;left:3px}.switch input:checked{background:var(--court)}.switch input:checked:after{left:21px}.optcards{gap:10px;display:grid}.optcard{text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:var(--r-card);color:var(--ink);align-items:center;gap:12px;padding:12px 14px;display:flex}.optcard .t{font-family:var(--font-display);font-weight:700}.optcard .d{color:var(--muted);font-size:13px}.optcard.on{border-color:var(--court);background:var(--court-soft);box-shadow:inset 0 0 0 1px var(--court)}.optcard .n{background:var(--surface-2);width:36px;height:36px;font-family:var(--font-display);border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.optcard.on .n{background:var(--court);color:var(--court-ink)}.stepper{gap:6px;margin-bottom:16px;display:flex}.stepper span{background:var(--line);border-radius:2px;flex:1;height:4px}.stepper span.on{background:var(--court)}.stepper span.done{background:var(--green)}.wizard-foot{gap:8px;margin-top:20px;display:flex}.wizard-foot .btn{flex:1}.rating{gap:2px;display:inline-flex}.rating button{width:36px;height:36px;color:var(--line);font-size:24px;line-height:1}.rating button.on,.star{color:var(--ball)}.sheet-back{background:var(--overlay);z-index:50;justify-content:center;align-items:flex-end;animation:.15s ease-out fade;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;max-width:560px;padding:8px 20px calc(20px + env(safe-area-inset-bottom));border-radius:16px 16px 0 0;max-height:92dvh;animation:.2s ease-out up;overflow-y:auto}.sheet .grip{background:var(--line);border-radius:2px;width:40px;height:4px;margin:4px auto 14px}.sheet h2{margin-bottom:4px}@media (width>=720px){.sheet-back{align-items:center}.sheet{border-radius:16px;padding-top:20px;animation:.15s ease-out fade}.sheet .grip{display:none}}@keyframes up{0%{opacity:.6;transform:translateY(24px)}}@keyframes fade{0%{opacity:0}}.lightbox{z-index:60;color:#fff;background:#000000eb;flex-direction:column;animation:.15s fade;display:flex;position:fixed;inset:0}.lightbox .lb-top{padding:8px 12px;padding-top:calc(8px + env(safe-area-inset-top));align-items:center;gap:8px;display:flex}.lightbox .lb-top .iconbtn{color:#fff}.lightbox .lb-top .iconbtn:hover{background:#ffffff1f}.lightbox .lb-img{flex:1;justify-content:center;align-items:center;min-height:0;display:flex;position:relative}.lightbox .lb-img img{object-fit:contain;max-width:100%;max-height:100%}.lightbox .lb-nav{color:#fff;background:#ffffff1f;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.lightbox .lb-nav.prev{left:8px}.lightbox .lb-nav.next{right:8px}.lightbox .lb-info{padding:12px 16px calc(16px + env(safe-area-inset-bottom));background:linear-gradient(#0000,#0009);font-size:14px}.lightbox .lb-info a{color:#fff;font-weight:600}.lightbox .lb-actions{flex-wrap:wrap;gap:4px;margin-top:8px;display:flex}.lightbox .lb-actions button{color:#ffffffd9;border-radius:8px;min-height:36px;padding:0 10px;font-size:13px}.lightbox .lb-actions button:hover{background:#ffffff1f}.lightbox .dots{justify-content:center;gap:4px;margin-bottom:8px;display:flex}.lightbox .dots span{background:#ffffff59;border-radius:50%;width:6px;height:6px}.lightbox .dots span.on{background:#fff}.photo-grid{grid-template-columns:repeat(3,1fr);gap:3px;display:grid}.photo-grid button{aspect-ratio:1;background:var(--surface-2);border-radius:4px;position:relative;overflow:hidden}.photo-grid img{object-fit:cover;width:100%;height:100%}.photo-grid .more{color:#fff;font-size:11px;font-family:var(--font-display);background:#0000008c;border-radius:6px;padding:1px 6px;font-weight:600;position:absolute;top:6px;right:6px}@media (width>=720px){.photo-grid{grid-template-columns:repeat(4,1fr);gap:6px}}.photo-strip{margin:0 calc(-1 * var(--gutter));padding:2px var(--gutter);scrollbar-width:none;gap:8px;display:flex;overflow-x:auto}.photo-strip::-webkit-scrollbar{display:none}.photo-strip a{background:var(--surface-2);border-radius:8px;flex:0 0 120px;height:120px;position:relative;overflow:hidden}.photo-strip img{object-fit:cover;width:100%;height:100%}.photo-strip .cap{color:#fff;white-space:nowrap;text-overflow:ellipsis;background:linear-gradient(#0000,#000000a6);padding:16px 8px 6px;font-size:11px;font-weight:600;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.uploader{flex-wrap:wrap;gap:8px;display:flex}.uploader .thumb{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;width:84px;height:84px;position:relative;overflow:hidden}.uploader .thumb img{object-fit:cover;width:100%;height:100%}.uploader .thumb .prog{background:#0003;height:4px;position:absolute;bottom:0;left:0;right:0}.uploader .thumb .prog i{background:var(--court);height:100%;display:block}.uploader .thumb .rm{color:#fff;background:#0009;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;display:flex;position:absolute;top:2px;right:2px}.uploader .thumb.err{border-color:var(--red)}.uploader .add{border:1.5px dashed var(--line);width:84px;height:84px;color:var(--muted);background:var(--surface);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:12px;display:flex}.uploader .add:hover{border-color:var(--court);color:var(--court)}.uploader .add.single{width:100%;height:120px}.uploader .thumb.single{width:100%;height:160px}.empty{text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:var(--r-card);padding:32px 16px}.empty svg{width:120px;height:72px;color:var(--court);opacity:.55;margin:0 auto 12px;display:block}.empty .t{font-family:var(--font-display);color:var(--ink);font-size:16px;font-weight:700}.empty .d{margin-top:4px;font-size:13px}.empty .btn{margin-top:14px}.errbox{background:var(--red-soft);color:var(--red);border-radius:var(--r-card);justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;font-size:14px;display:flex}.notice{background:var(--court-soft);color:var(--court);border-radius:var(--r-card);padding:12px 14px;font-size:14px}.notice.ball{background:var(--ball-soft);color:color-mix(in srgb, var(--ball) 55%, var(--ink))}.skeleton{background:linear-gradient(90deg, var(--surface-2) 25%, var(--surface) 50%, var(--surface-2) 75%);background-size:200% 100%;border-radius:8px;min-height:14px;animation:1.4s infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.spinner{border:2px solid var(--line);border-top-color:var(--court);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.toasts{left:50%;bottom:calc(var(--tabbar-h) + 16px + env(safe-area-inset-bottom));z-index:70;pointer-events:none;flex-direction:column;gap:8px;width:min(92vw,420px);display:flex;position:fixed;transform:translate(-50%)}.toast{background:var(--ink);color:var(--ground);box-shadow:var(--shadow);pointer-events:auto;border-radius:10px;align-items:center;gap:8px;padding:10px 14px;font-size:14px;animation:.2s up;display:flex}.toast.success{background:var(--green);color:#fff}.toast.error{background:var(--red);color:#fff}@media (width>=720px){.toasts{bottom:24px}}.cover-hero{aspect-ratio:16/8;border-radius:var(--r-card);background:var(--court-soft);margin-bottom:14px;position:relative;overflow:hidden}.cover-hero img{object-fit:cover;width:100%;height:100%}.cover-hero .cover-ph{position:absolute;inset:0}.profile-head{align-items:flex-end;gap:12px;margin-top:-44px;padding-left:12px;display:flex;position:relative}.profile-head .avatar{box-shadow:0 0 0 3px var(--ground)}.stat-row{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.stat{text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:10px 6px}.stat .v{font-family:var(--font-display);font-size:22px;font-weight:700;line-height:1.1}.stat .l{color:var(--muted);font-size:12px}.kv{grid-template-columns:auto 1fr;gap:6px 14px;font-size:14px;display:grid}.kv dt{color:var(--muted)}.kv dd{margin:0}.bigjoin{bottom:calc(var(--tabbar-h) + 8px + env(safe-area-inset-bottom));z-index:10;background:color-mix(in srgb, var(--ground) 85%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);margin:8px calc(-1 * var(--gutter)) 0;padding:8px 0;padding-left:var(--gutter);padding-right:var(--gutter);position:sticky}@media (width>=720px){.bigjoin{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;margin:12px 0 0;padding:0;position:static}}.hero-share{background:var(--surface);border:1px solid var(--line);text-align:center;border-radius:14px;padding:18px}.hero-share .big{font-family:var(--font-display);font-size:22px;font-weight:700}.notif{border-bottom:1px solid var(--line);color:inherit;gap:10px;padding:10px 0;display:flex}.notif:last-child{border-bottom:0}.notif .ic{background:var(--court-soft);width:32px;height:32px;color:var(--court);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.notif.unread .ic{background:var(--ball-soft);color:color-mix(in srgb, var(--ball) 55%, var(--ink))}.prose{font-size:15px;line-height:1.7}.prose h2{margin:24px 0 8px}.prose h3{margin:16px 0 6px}.prose ul,.prose ol{padding-left:22px}.prose li{margin-bottom:4px}.table{border-collapse:collapse;width:100%;font-size:14px}.table th,.table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:8px 6px}.table th{font-family:var(--font-display);color:var(--muted);font-size:12px;font-weight:600}.dow-picker{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.dow-picker button{border:1px solid var(--line);background:var(--surface);min-height:40px;font-family:var(--font-display);border-radius:8px;font-weight:600}.dow-picker button.on{background:var(--court);color:var(--court-ink);border-color:var(--court)}.gallery{grid-template-columns:repeat(3,1fr);gap:4px;display:grid}.gallery button{aspect-ratio:4/3;background:var(--surface-2);border-radius:6px;overflow:hidden}.gallery img{object-fit:cover;width:100%;height:100%}.countbubble{background:var(--ball);color:#152230;min-width:18px;height:18px;font-family:var(--font-display);border-radius:9px;justify-content:center;align-items:center;padding:0 5px;font-size:11px;font-weight:700;display:inline-flex}.dev-row{color:var(--muted);flex-wrap:wrap;justify-content:center;gap:4px 10px;margin-top:12px;font-size:12px;display:flex}.dev-row a{color:var(--muted);align-items:center;min-height:32px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;display:inline-flex}:root{--live:#2ee86b;--live-glow:#2ee86b8c}.session-card{position:relative}.status-dot{pointer-events:none;border-radius:50%;width:9px;height:9px;position:absolute;top:10px;right:10px}.status-dot.today{background:var(--ball);box-shadow:0 0 0 2px color-mix(in srgb, var(--ball) 25%, transparent)}.status-dot.live{background:var(--live);box-shadow:0 0 0 2px #2ee86b38, 0 0 10px 2px var(--live-glow);animation:2.6s ease-in-out infinite live-pulse}.session-card.is-live{border-color:color-mix(in srgb, var(--live) 45%, var(--line));box-shadow:0 0 0 1px color-mix(in srgb, var(--live) 18%, transparent), var(--shadow)}@keyframes live-pulse{0%,to{box-shadow:0 0 0 2px #2ee86b38, 0 0 8px 1px var(--live-glow);opacity:1}50%{box-shadow:0 0 0 4px #2ee86b1a, 0 0 16px 4px var(--live-glow);opacity:.82}}@media (prefers-reduced-motion:reduce){.status-dot.live{animation:none}}.live-badge{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:color-mix(in srgb, var(--live) 70%, var(--ink));background:color-mix(in srgb, var(--live) 14%, transparent);border-radius:999px;align-items:center;gap:6px;padding:2px 8px 2px 6px;font-size:11px;font-weight:700;display:inline-flex}.live-badge .status-dot{width:8px;height:8px;position:static}.section-live-title{font-family:var(--font-display);align-items:center;gap:8px;margin:4px 0 8px;font-size:15px;font-weight:700;display:flex}.section-live-title .status-dot{position:static}.btn.live-on{background:color-mix(in srgb, var(--live) 18%, var(--surface));color:color-mix(in srgb, var(--live) 65%, var(--ink));border:1px solid color-mix(in srgb, var(--live) 50%, var(--line))}.status-dot.inline{vertical-align:middle;flex:none;margin-right:6px;display:inline-block;position:static}.home-feed .live-strip .section-live-title{margin-top:0}.home-feed .live-strip .section-live-title a{align-items:center;gap:2px;font-weight:600;display:inline-flex}.home-feed .live-cards>.session-card{width:min(320px,86vw)}.home-feed .all-sessions-link{min-height:32px;margin-bottom:12px}.home-feed .all-sessions-link a{align-items:center;gap:2px;display:inline-flex}.compose-entry{text-align:left;align-items:center;gap:10px;width:100%;margin-bottom:12px;padding:10px 12px;transition:border-color .15s,box-shadow .15s;display:flex}.compose-entry:hover{border-color:color-mix(in srgb, var(--court) 40%, var(--line));box-shadow:var(--shadow)}.compose-entry .ph{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:15px;overflow:hidden}.feed-post{flex-direction:column;gap:10px;padding:12px 14px 8px;display:flex}.fp-head{align-items:center;gap:10px;display:flex}.fp-avatar{flex:none;display:inline-flex}.fp-line1{align-items:center;gap:6px;min-width:0;display:flex}.fp-name{color:var(--ink);min-width:0;font-size:15px;font-weight:600}.fp-name:hover{color:var(--court);text-decoration:none}.fp-club{min-height:22px;font-family:var(--font-display);letter-spacing:.02em;flex:none;font-weight:600}.fp-club:hover{filter:brightness(.96);text-decoration:none}.fp-line2{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;margin-top:1px;display:flex}.fp-court{color:var(--muted);align-items:center;gap:2px;display:inline-flex}.fp-session{max-width:180px;min-height:20px;font-size:11px;line-height:20px;display:inline-block}.fp-caption{overflow-wrap:anywhere;margin:0;font-size:15px;line-height:1.55}.hashtag{color:var(--court);font-weight:600}.fp-tagged a{color:var(--ink);font-weight:600}.fp-actions{border-top:1px solid var(--line);align-items:center;gap:4px;margin:0 -6px;padding-top:4px;display:flex}.fp-act,.dinkr-btn{min-height:40px;color:var(--muted);font-size:13px;font-weight:600;font-family:var(--font-display);letter-spacing:.01em;white-space:nowrap;border-radius:8px;align-items:center;gap:6px;padding:0 10px;display:inline-flex}.fp-act:hover,.dinkr-btn:hover{background:var(--surface-2);color:var(--ink);text-decoration:none}.fp-act.on{color:var(--court);background:var(--court-soft)}.fp-act .cnt,.dinkr-btn .cnt{font-size:13px}.fp-share{padding-bottom:6px}.post-media{background:var(--surface-2);border-radius:8px;gap:3px;margin:0 -4px;display:grid;overflow:hidden}.post-media .cell{background:var(--surface-2);display:block;position:relative;overflow:hidden}.post-media img{object-fit:cover;width:100%;height:100%;display:block}.post-media.one{grid-template-columns:1fr}.post-media.one .cell{aspect-ratio:4/3}.post-media.two{grid-template-columns:1fr 1fr}.post-media.two .cell{aspect-ratio:1}.post-media.many{aspect-ratio:3/2;grid-template-rows:1fr 1fr;grid-template-columns:2fr 1fr}.post-media.many .cell.big{grid-row:1/span 2}.post-media .more{color:#fff;font-family:var(--font-display);background:#00000073;justify-content:center;align-items:center;font-size:22px;font-weight:700;display:flex;position:absolute;inset:0}a.post-media:hover{text-decoration:none}.pickleball .ball{fill:none;stroke:currentColor;stroke-width:1.8px}.pickleball .holes circle{fill:currentColor;opacity:.7}.pickleball.filled .ball{fill:var(--ball);stroke:color-mix(in srgb, var(--ball) 70%, var(--ink))}.pickleball.filled .holes circle{fill:color-mix(in srgb, var(--ball) 55%, var(--ink));opacity:1}.dinkr-btn.on{color:color-mix(in srgb, var(--ball) 55%, var(--ink));background:var(--ball-soft)}.dinkr-btn .pickleball{transition:transform .15s ease-out}.dinkr-btn:active .pickleball{transform:scale(.9)}.dinkr-btn.pop .pickleball{animation:.45s cubic-bezier(.34,1.56,.64,1) dinkr-pop}@keyframes dinkr-pop{0%{transform:scale(.7)rotate(-20deg)}55%{transform:scale(1.35)rotate(10deg)}to{transform:scale(1)rotate(0)}}.dinkr-btn.sm{min-height:32px;padding:0 8px}@media (prefers-reduced-motion:reduce){.dinkr-btn.pop .pickleball{animation:none}.dinkr-btn .pickleball{transition:none}}.post-carousel{margin:0 -4px;position:relative}.post-carousel .track{scroll-snap-type:x mandatory;scrollbar-width:none;background:var(--surface-2);-webkit-overflow-scrolling:touch;border-radius:8px;display:flex;overflow-x:auto}.post-carousel .track::-webkit-scrollbar{display:none}.post-carousel .slide{scroll-snap-align:start;aspect-ratio:4/3;flex:0 0 100%;max-height:70dvh}.post-carousel .slide img{object-fit:contain;background:#0f161c;width:100%;height:100%}.post-carousel .counter{color:#fff;background:#0000008c;border-radius:6px;padding:1px 6px;font-size:11px;position:absolute;top:8px;right:12px}.post-carousel .dots{justify-content:center;gap:5px;margin-top:8px;display:flex}.post-carousel .dots span{background:var(--line);border-radius:50%;width:6px;height:6px;transition:background .15s}.post-carousel .dots span.on{background:var(--court)}.comment-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.comment{align-items:flex-start;gap:10px;display:flex}.comment .body{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.5}.comment a{color:var(--ink)}.comment-box{align-items:flex-start;gap:10px;display:flex}.lb-postlink{font-weight:700}.session-cover{aspect-ratio:4/3;max-height:320px;position:relative}.session-cover img{object-fit:cover;width:100%;height:100%}.session-cover .lbl{color:#fff;font-family:var(--font-display);letter-spacing:.02em;background:#0000008c;border-radius:6px;align-items:center;gap:4px;padding:3px 8px;font-size:12px;font-weight:600;display:inline-flex;position:absolute;bottom:10px;left:10px}.status-row{align-items:center;gap:8px;min-height:52px;padding:10px 14px;display:flex}.status-row .txt{font-family:var(--font-display);min-width:0;font-size:14px;font-weight:600}.status-row.live{border-color:color-mix(in srgb, var(--live) 45%, var(--line));background:color-mix(in srgb, var(--live) 7%, var(--surface))}.status-row.live .txt{color:color-mix(in srgb, var(--live) 60%, var(--ink))}.status-row .status-dot.inline{margin-right:0}.status-row .btn.sm{flex:none}.avatar-grid .cell.invite-tile{cursor:pointer;color:var(--court)}.avatar-grid .cell.invite-tile .avatar.plus{background:var(--surface);border:1.5px dashed color-mix(in srgb, var(--court) 60%, var(--line));color:var(--court)}.avatar-grid .cell.invite-tile:hover .avatar.plus{background:var(--court-soft);border-style:solid}.avatar-grid .cell.invite-tile .name{color:var(--court);font-weight:600}.session-card .cover-thumb{background:var(--surface-2);border-radius:8px;flex:none;width:56px;height:56px;margin:-2px 0 0 4px;position:relative;overflow:hidden}.session-card .cover-thumb img{object-fit:cover;width:100%;height:100%}.session-card .cover-thumb .pc{color:#fff;font-family:var(--font-display);background:#0009;border-radius:5px;align-items:center;gap:2px;padding:0 4px;font-size:10px;font-weight:600;line-height:15px;display:inline-flex;position:absolute;bottom:3px;right:3px}.session-card.has-cover .card-title .status-dot.inline{vertical-align:2px;margin-right:5px}.user-row{text-align:left;width:100%;color:inherit;padding:10px 12px}.user-row.toggle{cursor:pointer;transition:border-color .15s,background .15s}.user-row.toggle.on{border-color:var(--green);background:var(--green-soft)}.user-row .checkmark{border:1.5px solid var(--line);color:#fff;background:0 0;border-radius:50%;flex:none;justify-content:center;align-items:center;width:24px;height:24px;font-size:13px;display:inline-flex}.user-row .checkmark.on{background:var(--green);border-color:var(--green)}.invite-selected{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.invite-selected .chip{gap:6px;padding-left:4px}.invite-list{max-height:46dvh;padding-right:2px;overflow-y:auto}.search-box{align-items:center;display:flex;position:relative}.search-box .ic{color:var(--muted);pointer-events:none;position:absolute;left:12px}.search-box .input{padding-left:38px;padding-right:44px}.search-box .clr{width:36px;height:36px;color:var(--muted);position:absolute;right:2px}.search-box input[type=search]::-webkit-search-cancel-button{display:none}.topsearch{align-items:center;display:none;position:relative}.topsearch .ic{color:var(--muted);pointer-events:none;position:absolute;left:10px}.topsearch input{border-radius:var(--r-pill);border:1px solid var(--line);background:var(--surface);width:190px;min-height:36px;color:var(--ink);padding:6px 10px 6px 32px;font-size:13px;transition:width .15s}.topsearch input:focus{outline:2px solid var(--court);outline-offset:0;border-color:#0000;width:240px}.topsearch input::-webkit-search-cancel-button{display:none}.topsearch-btn.on{color:var(--court);background:var(--court-soft)}@media (width>=720px){.topsearch{display:flex}.topsearch-btn{display:none}}@media (width<=400px){.topbar-actions .btn.primary.sm span,.topbar-actions .btn.primary.sm{padding:0 10px}}.target-list{flex-direction:column;gap:6px;max-height:60dvh;display:flex;overflow-y:auto}.target-row{border-radius:var(--r-card);border:1px solid var(--line);background:var(--surface);text-align:left;width:100%;color:inherit;align-items:center;gap:12px;padding:8px 10px;display:flex}.target-row:hover{border-color:color-mix(in srgb, var(--court) 40%, var(--line));background:var(--surface-2)}.target-row .tcover{background:var(--surface-2);border-radius:8px;flex:none;width:48px;height:48px;position:relative;overflow:hidden}.target-row .tcover .cover,.target-row .tcover .cover-ph{object-fit:cover;width:100%;height:100%;min-height:0}.target-row .tkind{color:#fff;background:#0009;border-radius:5px;justify-content:center;align-items:center;width:18px;height:18px;display:flex;position:absolute;bottom:2px;right:2px}.club-tag{color:var(--muted);letter-spacing:.01em;word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}a.club-tag:hover{color:var(--court)}.club-title{flex-wrap:wrap;align-items:baseline;gap:8px;min-width:0;display:flex}.club-tag-row{align-items:center;gap:2px;display:inline-flex}.club-tag-row .club-tag{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:14px;font-weight:400}.iconbtn.copy{width:28px;height:28px;color:var(--muted)}.tag-input{align-items:center;display:flex;position:relative}.tag-input .hash{color:var(--muted);pointer-events:none;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:600;position:absolute;left:12px}.tag-input .input{padding-left:28px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.tag-input .input[aria-invalid=true]{border-color:var(--red)}.title-roll{align-items:stretch;gap:8px;display:flex}.title-roll .input{flex:1;min-width:0}.title-roll .dice{border-radius:8px;flex:none;min-height:44px;padding:0 12px}.title-roll .dice:active svg{transform:rotate(90deg)}.title-roll .dice svg{transition:transform .2s}@media (width<=420px){.title-roll .dice span{display:none}}.idea-chips{margin-top:8px}.idea-chips .chip{text-overflow:ellipsis;max-width:260px;font-weight:500;overflow:hidden}@media (prefers-reduced-motion:reduce){.title-roll .dice svg{transition:none}}.sheet>.card.stack{background:0 0;border:0;padding:0}.topnav a{white-space:nowrap}.topsearch input{width:140px}.topsearch input:focus{width:200px}@media (width>=960px){.topsearch input{width:190px}.topsearch input:focus{width:240px}}.policy-gate{z-index:65}.policy-gate .sheet .check.card{padding:12px 14px}.policy-bar{left:0;right:0;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom));z-index:40;background:var(--ink);color:var(--ground);justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex;position:fixed;box-shadow:0 -4px 16px #0000001f}@media (width>=720px){.policy-bar{border-radius:12px 12px 0 0;width:min(92vw,560px);bottom:0;left:50%;right:auto;transform:translate(-50%)}}.policy-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 12px;margin-bottom:8px;font-size:13px;display:flex}.policy-meta strong{color:var(--ink)}.prose .toc{flex-wrap:wrap;gap:6px;margin:8px 0 12px;padding:0;list-style:none;display:flex}.prose .toc li{margin:0}.prose .toc a{border-radius:var(--r-pill);background:var(--surface-2);padding:4px 10px;font-size:13px;display:inline-block}.prose table.policy-table{border-collapse:collapse;width:100%;margin:8px 0;font-size:14px}.prose table.policy-table th,.prose table.policy-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:8px 6px}.card.danger-zone{border:1px solid color-mix(in srgb, var(--red) 40%, transparent)}.btn.danger.solid{background:var(--red);color:#fff}.btn.danger.solid:disabled{opacity:.5}:root{--brand:#d5ff00;--brand-ink:#20251a;--ground:#f6f7f2;--surface:#fff;--surface-2:#edf0e7;--ink:#22291f;--muted:#65705f;--line:#dce2d5;--court:#4b651f;--court-ink:#fff;--court-soft:#edf3dc;--ball:#829600;--ball-soft:#f1f6d7;--green:#28774c;--green-soft:#e5f3e9;--red:#b83c35;--red-soft:#fcebe9;--line-green:#06c755;--overlay:#10180faa;--shadow:0 6px 24px #26321b08, 0 1px 3px #26321b06;--r-card:20px;--r-pill:999px;--font-body:"Sarabun", system-ui, sans-serif;--font-display:"Sarabun", system-ui, sans-serif;--tabbar-h:64px;--topbar-h:80px;--gutter:24px;--max:880px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--ground:#151914;--surface:#1e241c;--surface-2:#292f25;--ink:#eff2e8;--muted:#a8b29f;--line:#363f30;--court:#d5ed9b;--court-ink:#20251a;--court-soft:#303b22;--ball:#d5ff00;--ball-soft:#343d15;--green:#86d5a1;--green-soft:#203c2b;--red:#ffaaa3;--red-soft:#442725;--overlay:#000b;--shadow:0 8px 28px #0002;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{font-size:16px;line-height:1.65}h1{letter-spacing:-.035em;font-size:clamp(26px,3vw,34px);line-height:1.4}h2{font-size:21px;line-height:1.5}h3,.card-title{line-height:1.5}a{text-underline-offset:4px}:focus-visible{outline:3px solid var(--court);outline-offset:4px}.topbar{background:color-mix(in srgb, var(--ground) 94%, transparent)}.topbar-inner{gap:24px;max-width:1240px}.logo{flex-shrink:0;width:138px;overflow:hidden}.logo img{width:150px;max-width:none;margin:-8px -6px}.logo-night,[data-theme=dark] .logo-day{display:none}[data-theme=dark] .logo-night{display:block}.topnav{gap:4px;margin-left:0}.topnav a{padding:10px 14px;font-size:14px}.topnav a.on{background:var(--surface-2)}.topbar-actions{gap:10px}.theme-toggle{border:1px solid var(--line);background:var(--surface);flex-shrink:0}.theme-toggle svg{width:19px;height:19px}.skip-link{z-index:100;background:var(--brand);color:var(--brand-ink);border-radius:12px;padding:12px 20px;position:fixed;top:-100px;left:16px}.skip-link:focus{top:12px}main.page{padding-top:36px}main.page.home-feed{max-width:1200px}.btn{border-radius:12px;gap:8px;min-height:46px;font-size:14px}.btn.sm{border-radius:10px;min-height:38px}.btn.primary{background:var(--brand);color:var(--brand-ink);border-color:#b9d900}.btn.primary:hover{background:#c7ed00}.btn:hover{text-decoration:none}.iconbtn{min-width:44px;height:44px}.card{box-shadow:var(--shadow);padding:24px}.card.pad-0{padding:0}.stack,.grid-2{gap:20px}.page-header{margin-bottom:28px}.page-header .sub{margin-top:8px}.input,.select,.textarea{background:var(--surface);border-radius:12px;min-height:48px}.chip{min-height:36px}.chip.on{background:var(--court-soft);color:var(--court);border-color:var(--court)}.chip.on .muted{color:inherit}.section{margin-top:32px}.empty{border:1px dashed var(--line);border-radius:var(--r-card);padding:48px 24px}.sheet{border-radius:24px 24px 0 0}.tabbar a.on{color:var(--ink)}.tabbar a.on svg{background:var(--brand);color:var(--brand-ink);box-shadow:0 0 0 6px var(--brand);border-radius:8px}.tabbar a{gap:7px}.footer{margin-top:24px;padding-top:32px}.home-intro{justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px;display:flex}.eyebrow{letter-spacing:.17em;color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:700}.home-intro p{color:var(--muted);margin:6px 0 0;font-size:14px}.welcome-hero{color:#f6f8ef;background:#263323;border-radius:24px;grid-template-columns:1.25fr 1fr;min-height:300px;margin-bottom:28px;padding:40px;display:grid;position:relative;overflow:hidden}.welcome-hero .eyebrow{color:#d5ff00}.welcome-hero h2{letter-spacing:-.035em;margin:16px 0;font-size:clamp(30px,4vw,46px);line-height:1.35}.welcome-hero p{color:#c4cebc;max-width:370px;margin-bottom:24px;font-size:15px}.hero-copy{z-index:1;position:relative}.court-art{background:#43583b;border:2px solid #91a780;border-radius:4px;align-self:center;height:225px;margin-left:36px;position:relative;transform:rotate(-12deg);box-shadow:18px 18px #1f2b1d}.court-art:before{content:"";background:#32452d;border-top:2px solid #a6b599;border-bottom:2px solid #a6b599;position:absolute;inset:22% 0}.court-art:after{content:"";background:#dbe4d2;width:2px;height:100%;position:absolute;left:50%}.court-art .net{z-index:1;background:#eaf1e5;width:100%;height:2px;position:absolute;top:50%}.court-art .ball{z-index:2;background:#d5ff00;border-radius:50%;width:40px;height:40px;position:absolute;top:15%;right:18%;box-shadow:6px 12px #0002}.court-art .ball:after{content:"•••";color:#7c9600;letter-spacing:0;font-size:22px;position:absolute;top:-1px;left:5px}.home-layout{grid-template-columns:minmax(0,1fr) 292px;align-items:start;gap:28px;display:grid}.home-main{min-width:0}.home-aside{gap:20px;display:grid;position:sticky;top:104px}.aside-card h2{margin:10px 0 16px;font-size:18px}.explore-link{color:var(--ink);border-top:1px solid var(--line);align-items:center;gap:12px;padding:16px 0;display:flex}.explore-link:hover{color:var(--court);text-decoration:none}.explore-link>svg:first-child{background:var(--surface-2);border-radius:12px;flex-shrink:0;width:40px;height:40px;padding:10px}.explore-link strong{font-size:14px;display:block}.explore-link small{color:var(--muted);font-size:12px;display:block}.aside-note{background:var(--court-soft);border-radius:20px;padding:24px}.aside-note h3{margin:8px 0;font-size:18px}.aside-note p{color:var(--muted);font-size:13px}.feed-heading{align-items:center;gap:10px;margin:24px 0 16px;display:flex}.feed-heading span{color:var(--muted);font-size:12px}.compose-entry{margin-bottom:20px;padding:16px 20px}.feed-post{gap:16px;padding:20px}.fp-actions{padding-top:10px}.post-media{border-radius:14px;margin:0}.home-feed .live-strip{margin-bottom:24px}.section-live-title{margin-bottom:14px}.home-feed .all-sessions-link{background:var(--surface-2);border-radius:14px;gap:12px;padding:16px}.home-feed .live-cards{margin:0;padding:2px 0 10px}.session-card{padding:20px}.topsearch input,.topsearch input:focus{border-radius:12px;width:210px;min-height:42px}@media (width>=720px) and (width<=1100px){.topsearch{display:none}.topsearch-btn{display:inline-flex}.topbar-inner{gap:12px}.topnav a{padding:8px}}@media (width<=900px){.home-layout{grid-template-columns:minmax(0,1fr)}.home-aside{grid-template-columns:1fr 1fr;position:static}}@media (width<=719px){:root{--gutter:20px;--topbar-h:68px}.topbar-inner{gap:8px;padding:0 16px}.logo{width:104px}.logo img{width:116px}.topbar-actions{gap:4px}.topbar-actions>.btn.primary{display:none}.topbar-actions>.btn.secondary{padding:0 10px;font-size:12px}main.page{padding-top:24px}.home-intro{align-items:start}.home-intro>.eyebrow{display:none}.welcome-hero{border-radius:20px;grid-template-columns:1fr;min-height:0;padding:28px}.welcome-hero h2{font-size:34px}.welcome-hero p{max-width:240px}.court-art{opacity:.35;width:200px;height:170px;position:absolute;bottom:-55px;right:-85px}.home-aside{grid-template-columns:1fr}.card{padding:20px}.card.pad-0{padding:0}.feed-post{padding:16px}.compose-entry{padding:14px}.home-feed .all-sessions-link{flex-wrap:wrap}.page-header{flex-wrap:wrap;gap:12px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.countbubble{background:var(--brand);color:var(--brand-ink)}@media (width>=720px) and (width<=1000px){.topnav{display:none}.tabbar{display:grid}main.page{padding-bottom:calc(var(--tabbar-h) + 32px)}.footer{padding-bottom:calc(var(--tabbar-h) + 24px)}.policy-bar{bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom))}}@media (width<=380px){.logo{width:86px}.logo img{width:98px}.topbar-actions{gap:2px}}#main-content{scroll-margin-top:calc(var(--topbar-h) + 20px)}.logo{overflow:visible}.logo img{object-fit:contain;width:100%;max-width:100%;height:auto;margin:0}.welcome-hero{isolation:isolate;grid-template-columns:1fr;min-height:360px}.hero-photo{object-fit:cover;object-position:center 28%;z-index:-2;width:100%;height:100%;position:absolute;inset:0}.welcome-hero:after{content:"";z-index:-1;background:linear-gradient(90deg,#101e10f2 0%,#142314cf 38%,#17271533 75%);position:absolute;inset:0}.welcome-hero h2{font-size:clamp(28px,3.3vw,42px)}.welcome-hero p{color:#f0f3e9}.home-main>.card.stack{margin-bottom:24px}a.card.room-card{border-radius:24px;padding:0;display:block;overflow:hidden}.room-cover{height:170px;overflow:hidden}.room-cover img{object-fit:cover;width:100%;height:100%}.room-content{padding:24px}.room-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.room-date{color:var(--court);font-size:13px;font-weight:600}.room-body{grid-template-columns:minmax(0,1fr) 144px;align-items:center;gap:24px;display:grid}.room-card .card-title{overflow-wrap:anywhere;font-size:22px;line-height:1.5}.room-location{color:var(--muted);align-items:baseline;gap:4px;margin-top:10px;font-size:13px;display:flex}.room-location svg{flex-shrink:0}.room-host{color:var(--muted);margin-top:8px;font-size:12px}.room-faces{grid-template-columns:1fr 1fr;gap:8px;display:grid}.room-faces .avatar{border:2px solid var(--surface);border-radius:40%;width:64px;height:64px;font-size:24px}.room-faces.solo{justify-content:center;display:flex}.room-faces.solo .avatar{width:104px;height:104px}.room-tags{margin-top:24px}.room-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;margin-top:20px;padding-top:16px;display:flex}.room-price{font-size:18px;font-weight:700}.room-price small{color:var(--muted);font-size:12px;font-weight:400}.home-feed .live-cards>.room-card{width:min(390px,86vw)}.room-card.compact .card-title{font-size:18px}.room-card.compact .room-body{grid-template-columns:minmax(0,1fr) 104px;gap:16px}.room-card.compact .room-faces .avatar{width:48px;height:48px}.room-members .avatar-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 16px;padding:16px 0;display:grid}.room-members .avatar-grid .cell{gap:10px;width:auto;min-width:0}.room-members .avatar-grid .avatar{border-radius:40%;width:80px;height:80px}.room-members .avatar-grid .name{max-width:100%;font-size:14px}.room-members .avatar-grid .role{position:static}.room-members .avatar-grid .role .badge{height:auto!important;padding:2px 8px!important;font-size:11px!important}@media (width<=719px){.hero-photo{object-position:35% top}.welcome-hero{min-height:380px;padding:28px 24px}.welcome-hero:after{background:linear-gradient(#17271520 0%,#142314cf 52%,#101e10f5 100%)}.hero-copy{align-self:end}.welcome-hero h2{font-size:30px}.room-content{padding:20px}.room-body{grid-template-columns:minmax(0,1fr) 112px;gap:16px}.room-card .card-title{font-size:19px}.room-faces .avatar{width:52px;height:52px}.room-faces.solo .avatar{width:92px;height:92px}.room-members .avatar-grid .avatar{width:68px;height:68px}}@media (width<=380px){.room-body{grid-template-columns:minmax(0,1fr) 88px;gap:12px}.room-faces .avatar{width:40px;height:40px}.room-faces.solo .avatar{width:80px;height:80px}}.chips.scroll{position:relative}.empty .btn svg{width:18px;height:18px}@media (width<=719px){.hero-photo{object-position:35% top;height:170%}}main.page.court-directory{max-width:1200px}main.page.court-detail{max-width:1120px}.court-grid{gap:24px}a.card.venue-card{border-radius:22px;flex-direction:column;height:100%;display:flex}.venue-image{aspect-ratio:16/10;background:var(--surface-2);position:relative;overflow:hidden}.venue-card .venue-image .cover,.venue-card .venue-image .cover-ph{aspect-ratio:auto;object-fit:cover;object-position:center 60%;width:100%;height:100%}.venue-type{color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#172014df;height:auto;padding:6px 10px;position:absolute;top:16px;left:16px}.venue-card .body{flex-direction:column;flex:1;gap:10px;padding:20px;display:flex}.venue-card .card-title{white-space:normal;overflow-wrap:anywhere;font-size:19px;line-height:1.5}.venue-meta{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:8px 16px;margin-top:auto;padding-top:16px;font-size:13px;display:flex}.venue-meta .num{color:var(--ink);font-size:15px}.court-card.mini,.court-card.mini .body{min-width:0}.court-card.mini .cover{object-fit:cover;height:100%}.court-hero{aspect-ratio:16/7;background:var(--surface-2);border-radius:24px;width:100%;margin-bottom:28px;display:block;position:relative;overflow:hidden}.court-hero img{object-fit:cover;object-position:center 60%;width:100%;height:100%}.court-hero:after{content:"";pointer-events:none;background:linear-gradient(#0000,#0007);position:absolute;inset:55% 0 0}.court-hero-label{color:#fff;z-index:1;background:#142010d9;border:1px solid #ffffff50;border-radius:12px;align-items:center;gap:8px;padding:10px 16px;font-size:13px;display:flex;position:absolute;bottom:20px;right:20px}.court-hero-placeholder{border-radius:24px;height:240px;margin-bottom:28px}.court-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.court-gallery.single{grid-template-columns:1fr}.court-gallery button{aspect-ratio:16/10;border-radius:14px;overflow:hidden}.court-gallery img{object-fit:cover;object-position:center 60%;width:100%;height:100%}@media (width>=1100px){.court-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=719px){.court-hero{aspect-ratio:4/3;border-radius:20px;margin-bottom:24px}.court-hero-label{padding:8px 12px;bottom:12px;right:12px}.court-grid{gap:24px}}.admin-toolbar{grid-template-columns:minmax(0,1fr) 180px;gap:12px;display:grid}.admin-caption{white-space:pre-wrap;overflow-wrap:anywhere}.admin-post-photos{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:10px;display:grid}.admin-post-photos img{aspect-ratio:4/3;object-fit:cover;border-radius:12px;width:100%}.peer-reviews h2{margin:8px 0}.peer-row{border-top:1px solid var(--line);padding:20px 0}.peer-row:first-of-type{margin-top:20px}.peer-row:last-child{padding-bottom:0}.peer-editor{background:var(--surface-2);border-radius:16px;gap:20px;margin-top:20px;padding:20px;display:grid}.rating-field{border:0;min-width:0;margin:0;padding:0}.rating-field legend{margin-bottom:8px;font-size:14px;font-weight:600}.rating-stars{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.rating-stars button{width:44px;height:44px;color:var(--muted);border:1px solid var(--line);background:var(--surface);border-radius:10px;font-size:28px}.rating-stars button.selected{color:var(--brand-ink);background:var(--brand);border-color:var(--brand)}.rating-stars button:disabled{opacity:.7;cursor:wait}.rating-stars>span{margin-left:8px}@media (width<=550px){.admin-toolbar{grid-template-columns:1fr}.admin-person{flex-wrap:wrap}.peer-editor{padding:12px}.rating-stars{gap:2px}.rating-stars button{width:40px}}.home-feed .home-banner{justify-content:space-between;align-items:center;gap:16px;height:170px;min-height:0;margin-bottom:22px;padding:28px 32px;display:flex}.home-banner h1{color:#fff;letter-spacing:-.025em;margin-top:8px;font-size:30px;line-height:1.35}.home-banner h1 span{color:var(--brand)}.home-banner .hero-photo{object-position:center 20%;height:300%;top:-85%}.home-banner:after{background:linear-gradient(90deg,#12220ef2 5%,#142512bc 55%,#17271544)}.home-banner>.btn{z-index:1;flex-shrink:0;position:relative}.home-feed .feed-heading{margin:0 0 12px}.home-feed .compose-capsule{min-height:62px;box-shadow:var(--shadow);border-radius:999px;gap:12px;margin-bottom:18px;padding:10px 16px}.compose-capsule .ph{font-size:14px}.capsule-action{color:var(--court);border-left:1px solid var(--line);align-items:center;gap:8px;padding-left:12px;font-size:13px;font-weight:600;display:flex}.capsule-icon{background:var(--court-soft);width:32px;height:32px;color:var(--court);border-radius:50%;place-items:center;display:grid}.home-aside .live-cards{gap:12px;display:grid;overflow:visible}.home-aside .live-cards>.room-card{width:100%}.home-aside .section-live-title{flex-wrap:wrap}.home-aside .live-strip{margin-bottom:0}.home-main>.empty{padding:28px 20px}.admin-entry{color:var(--ink);justify-content:space-between;align-items:center;margin-bottom:24px;display:flex!important}.admin-entry small{color:var(--muted);margin-top:4px;display:block}@media (width<=719px){main.page.home-feed{padding-top:16px}.home-feed .home-banner{border-radius:20px;height:142px;margin-bottom:18px;padding:20px}.home-banner h1{font-size:clamp(21px,5.6vw,27px)}.home-banner .eyebrow{letter-spacing:.13em;font-size:9px}.home-banner>.btn{min-height:38px;padding:0 10px;font-size:12px}.home-banner>.btn>svg:last-child{display:none}.home-banner .hero-photo{object-position:40% top;height:280%;top:-70%}.home-feed .compose-capsule{gap:8px;min-height:58px;padding:10px 12px}.capsule-action span{display:none}.home-feed .feed-heading h2{font-size:19px}.home-feed .feed-heading>span{font-size:11px}}@media (width<=380px){.home-feed .home-banner{gap:8px;padding:16px}.home-banner h1{font-size:21px}.home-banner>.btn svg{display:none}}.admin-menu{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.admin-menu a{border:1px solid var(--line);background:var(--surface);min-height:52px;color:var(--ink);text-align:center;overflow-wrap:anywhere;border-radius:14px;justify-content:center;align-items:center;padding:12px;display:flex}.admin-menu a.on{background:var(--ball);color:#202719;border-color:var(--ball);font-weight:700}@media (width<=550px){.admin-menu{grid-template-columns:repeat(2,minmax(0,1fr))}}.profile-head{align-items:flex-start;margin-top:16px;padding-left:12px}.profile-head>.avatar{flex-shrink:0;margin-top:-44px}.profile-head>.grow{overflow-wrap:anywhere;min-width:0}.profile-head>.btn{flex-shrink:0}@media (width<=550px){.profile-head{grid-template-columns:96px minmax(0,1fr);gap:12px 16px;padding:0 8px;display:grid}.profile-head>.btn{white-space:normal;grid-column:2;justify-self:start;max-width:100%}}.lightbox{overscroll-behavior:contain;background:#101210;overflow-y:auto}.lightbox .lb-img{touch-action:pan-y pinch-zoom}.lightbox .lb-img img{-webkit-user-select:none;user-select:none}.lightbox .lb-nav{background:#000000a6;min-width:44px;min-height:44px}.post-media>button.cell{background:var(--surface-2);cursor:zoom-in;border:0;min-width:0;padding:0}.post-media>button.cell:focus-visible{outline:3px solid var(--court);outline-offset:-3px}.club-members{padding:22px 18px}.member-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.member-heading h2{margin:4px 0 0;font-size:23px}.member-total{text-align:right;font-size:24px;font-weight:700}.member-total small{color:var(--muted);font-size:12px;font-weight:400;display:block}.member-presence-note{margin:12px 0 22px}.club-members-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 10px;display:grid}.club-member{min-width:0;color:var(--ink);flex-direction:column;align-items:center;gap:8px;display:flex}.member-avatar{display:inline-flex;position:relative}.member-avatar .avatar{border-radius:25px;width:68px;height:68px}.member-online{border:3px solid var(--surface);background:#a3ff12;border-radius:50%;width:15px;height:15px;position:absolute;top:0;right:0;box-shadow:0 0 8px #a3ff1266}.member-name{text-align:center;overflow-wrap:anywhere;max-width:100%;font-size:13px;line-height:1.5}@media (width<=900px){:root{--tabbar-h:76px}.tabbar a{box-sizing:border-box;gap:8px;padding-top:10px}main.page{padding-bottom:calc(var(--tabbar-h) + 32px + env(safe-area-inset-bottom))}}.player-reviews{margin-top:20px}.player-score-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.player-score{border:1px solid var(--line);background:var(--surface);border-radius:20px;flex-direction:column;gap:6px;padding:18px;display:flex}.score-label{align-items:center;gap:8px;font-weight:600;display:flex}.skill-score svg,.skill-points svg,.rating-stars .selected.skill-rating{color:#ffc42b}.fun-score svg,.fun-points svg,.rating-stars .selected.fun-rating{color:#b8ff18}.fun-score{color:#f5ffe9;background:#222d20;border-color:#3a4d2b}.player-score strong{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;font-size:38px;line-height:1.15}.player-score small{opacity:.75}.review-history,.profile-match-list{gap:8px;display:grid}.review-history-row,.profile-match{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:14px;align-items:center;gap:12px;padding:12px;display:flex}.review-history-row .grow,.profile-match .grow{min-width:0}.review-history-row strong,.profile-match strong{overflow-wrap:anywhere;font-size:14px;display:block}.review-history-row small,.profile-match small{color:var(--muted);font-size:12px;display:block}.review-points{white-space:nowrap;align-items:center;gap:3px;font-size:14px;font-weight:700;display:flex}.fun-points{color:#ceff69;background:#25321d;border-radius:8px;padding:5px}.review-empty{border:1px dashed var(--line);border-radius:14px;padding:16px}.match-date{color:var(--muted);flex:0 0 64px;font-size:12px}@media (width<=550px){.member-profile .cover-hero{max-height:120px}.member-profile .profile-head{grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:10px;margin-top:12px;padding:0}.member-profile .profile-head>.avatar{width:64px;height:64px;margin-top:-26px}.member-profile .profile-head>.btn{grid-area:1/3;justify-self:end;padding:8px;font-size:12px}.member-profile .profile-head>.grow{grid-area:1/2}.member-profile .profile-head h1{font-size:19px!important}.player-reviews .section-head{gap:8px}.player-reviews h2{font-size:18px}.player-score{padding:14px}.review-history-row{gap:6px}}a.card.room-card.day-today,a.card.room-card.day-tomorrow,a.card.room-card.day-later{--ink:#20261b;--muted:#4c5545;--court:#334427;--court-soft:#e5ebd8;--line:#20261b26;--surface:#fff;color:var(--ink);background:var(--day-color);border-color:#20261b26}a.card.room-card.day-today{--day-color:#d4ff00}a.card.room-card.day-tomorrow{--day-color:#ffe780}a.card.room-card.day-later{--day-color:#eeefeb}.room-card:is(.day-today,.day-tomorrow,.day-later) .chip{color:#334427;background:#ffffff80;border-color:#20261b1a}.room-card .room-cover{height:112px}.room-card .room-content{padding:16px 18px}.room-card .room-top{gap:8px;margin-bottom:10px}.room-card .room-body{grid-template-columns:minmax(0,1fr) 104px;gap:14px}.room-card .card-title{font-size:19px;line-height:1.4}.room-card .room-location{margin-top:5px}.room-card .room-host{margin-top:4px}.room-card .room-faces{gap:6px}.room-card .room-faces .avatar{width:48px;height:48px}.room-card .room-faces.solo .avatar{width:76px;height:76px}.room-card .room-tags{margin-top:12px}.room-card .room-footer{margin-top:10px;padding-top:10px}.room-card .room-price{font-size:16px}.room-card.compact .room-content{padding:14px 16px}.room-card.compact .room-cover{height:88px}.room-card.compact .room-faces.solo .avatar{width:68px;height:68px}@media (width<=380px){.room-card .room-content{padding:14px}.room-card .room-body,.room-card.compact .room-body{grid-template-columns:minmax(0,1fr) 86px;gap:10px}.room-card .room-faces .avatar{width:40px;height:40px}.room-card .card-title{font-size:17px}}.room-card .face-cluster{width:104px;height:98px;display:block;position:relative}.room-card .face-cluster .avatar{border:2px solid var(--day-color,var(--surface));border-radius:42%;width:45px;height:45px;position:absolute;box-shadow:0 2px 5px #0001}.room-card .face-cluster .avatar:first-child{z-index:2;width:58px;height:58px;top:4px;left:0}.room-card .face-cluster .avatar:nth-child(2){top:0;right:0;transform:rotate(5deg)}.room-card .face-cluster .avatar:nth-child(3){z-index:3;bottom:0;left:8px;transform:rotate(-6deg)}.room-card .face-cluster .avatar:nth-child(4){z-index:4;bottom:4px;right:0}.room-card .face-cluster .avatar:nth-child(5){z-index:5;width:38px;height:38px;top:28px;left:32px}.room-card .face-cluster .avatar:nth-child(6){z-index:6;width:34px;height:34px;top:32px;right:-2px}.room-card .faces-1 .avatar{width:76px;height:76px;top:10px;left:16px}.room-card .faces-2 .avatar:nth-child(2){z-index:3;width:54px;height:54px;top:36px}.faces-more{z-index:8;color:#fff;background:#20261b;border-radius:20px;padding:1px 7px;font-size:11px;position:absolute;bottom:-5px;right:0}.pending-invites{border:1px dashed var(--line);background:var(--surface-2);border-radius:16px;margin:20px 0;padding:16px}.invite-pending-list{flex-wrap:wrap;gap:12px;margin-top:12px;display:flex}.notification-count{color:#fff;border:2px solid var(--ground);background:#d72d40;border-radius:999px;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 4px;font-size:11px;font-weight:700;line-height:1;display:flex;position:absolute;top:-3px;right:-2px}.notif{border:1px solid var(--line);background:var(--surface);border-radius:18px;align-items:center;gap:16px;margin-bottom:10px;padding:18px 16px}.notif.unread{background:var(--court-soft)}.notif-person{flex-shrink:0;width:52px;height:52px;position:relative}.notif-person .avatar{width:52px;height:52px}.notif-kind{border:2px solid var(--surface);background:var(--brand);color:#20261b;border-radius:50%;padding:4px;display:flex;position:absolute;bottom:-3px;right:-4px}.notif-system{background:var(--surface-2);border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;display:flex}.notif-copy{overflow-wrap:anywhere;font-size:15px;line-height:1.65}.notif-new{color:var(--court);font-weight:700}@media (width<=380px){.room-card .face-cluster{transform-origin:100%;width:86px;transform:scale(.86)}}.peer-reviews .rating-stars button.selected.skill-rating{color:#ffd343;background:#323b27;border-color:#323b27}.peer-reviews .rating-stars button.selected.fun-rating{color:#d5ff00;background:#323b27;border-color:#323b27}.preview-notice{border-radius:16px;padding:16px}.preview-notice p{margin:6px 0 12px}
