
:root{
  --bg:#1a1020;--surface:#2a1a30;--accent:#ff6b9d;
  --accent2:#c084fc;--text:#fce7f3;--muted:#d8b4d8;
  --radius:20px;
}
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:'Nunito', system-ui, sans-serif;line-height:1.5;overflow-x:hidden}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
.container{max-width:1320px;margin:0 auto;padding:0 1.25rem}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.site-header{background:var(--surface);border-bottom:1px solid color-mix(in srgb,var(--accent) 25%,transparent);position:sticky;top:0;z-index:100}
.site-header .inner{display:flex;align-items:center;justify-content:space-between;padding:.85rem 0;gap:1rem}
.logo{font-weight:900;font-size:1.35rem;color:var(--text);display:flex;align-items:center;gap:.45rem}
.logo span.accent{color:var(--accent)}
.nav{display:flex;gap:1.1rem;flex-wrap:wrap;font-size:.88rem}
.nav a{color:var(--muted)}
.nav a:hover{color:var(--accent)}
.live-pill{background:color-mix(in srgb,var(--accent) 20%,transparent);color:var(--accent);padding:.25rem .65rem;border-radius:999px;font-size:.72rem;font-weight:800}

.hero{text-align:center;padding:3rem 1.5rem 2rem;background:radial-gradient(ellipse at top,#ff6b9d22,transparent 70%)}
.hero h1{font-size:clamp(2rem,5vw,3.2rem)}

.section{padding:1.5rem 0 2.5rem}
.section h2{font-size:1.35rem;margin:0 0 1rem}
.grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
@media(max-width:1200px){.grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:900px){.grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.grid{grid-template-columns:repeat(2,1fr);gap:10px}}
a.card{display:block;color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
a.card:hover{text-decoration:none}
.card{background:var(--surface);border:1px solid color-mix(in srgb,var(--muted) 20%,transparent);border-radius:var(--radius);overflow:hidden;cursor:pointer;aspect-ratio:3/4;position:relative;transition:transform .2s,box-shadow .2s}
.card:hover{transform:translateY(-3px);box-shadow:0 12px 32px color-mix(in srgb,var(--accent) 30%,transparent)}
.card img{width:100%;height:100%;object-fit:cover;display:block}
.card-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.85) 0%,transparent 55%);pointer-events:none}
.card-meta{position:absolute;left:0;right:0;bottom:0;padding:.65rem .75rem;z-index:2;pointer-events:none}
.card-name{font-weight:700;font-size:.82rem;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card-sub{font-size:.68rem;color:rgba(255,255,255,.6)}
.badge-live{position:absolute;top:8px;right:8px;background:var(--accent);color:#fff;font-size:.58rem;font-weight:800;padding:3px 7px;border-radius:5px;z-index:3;pointer-events:none}
.badge-hd{position:absolute;top:8px;left:8px;background:#2563eb;color:#fff;font-size:.58rem;font-weight:800;padding:3px 6px;border-radius:5px;z-index:3;pointer-events:none}
.badge-viewers{position:absolute;bottom:42px;right:8px;background:rgba(0,0,0,.75);color:#e2e8f0;font-size:.58rem;padding:2px 6px;border-radius:5px;z-index:3;pointer-events:none}
.city-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
.city-link{display:block;padding:.75rem 1rem;background:var(--surface);border-radius:var(--radius);border:1px solid color-mix(in srgb,var(--muted) 15%,transparent);color:var(--text);font-size:.88rem}
.city-link:hover{border-color:var(--accent);text-decoration:none}
.site-footer{margin-top:3rem;border-top:1px solid color-mix(in srgb,var(--muted) 20%,transparent);padding:2rem 0;background:color-mix(in srgb,var(--bg) 80%,#000)}
.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1.5rem;font-size:.8rem}
.footer-grid h4{margin:0 0 .5rem;font-size:.85rem;color:var(--text)}
.footer-grid a{color:var(--muted);display:block;margin:.25rem 0}
.footer-legal{margin-top:1.5rem;padding-top:1rem;border-top:1px solid color-mix(in srgb,var(--muted) 15%,transparent);font-size:.7rem;color:var(--muted);text-align:center}
@keyframes cam-spin{to{transform:rotate(360deg)}}
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:200;display:none;align-items:center;justify-content:center;padding:1rem;backdrop-filter:blur(6px)}
.modal-backdrop.open{display:flex}
.modal{background:var(--surface);border-radius:var(--radius);max-width:min(960px,97vw);width:100%;overflow:hidden;border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);box-shadow:0 24px 64px rgba(0,0,0,.75)}
.modal-head{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid color-mix(in srgb,var(--muted) 15%,transparent)}
.modal-head strong{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.modal-viewers{color:#4ade80;font-size:.8rem;font-weight:700;white-space:nowrap}
.modal-player{position:relative;aspect-ratio:16/9;background:#000;overflow:hidden;min-height:240px}
.modal-player video,.modal-player img{width:100%;height:100%;object-fit:contain;background:#000}
#modalPlayer #modalImg{object-fit:cover;object-position:center top}
#pagePlayer video{display:none}
#pagePlayer #pageImg{display:block;object-fit:cover}
#modalPlayer video,#modalPlayer img{display:none}
.modal-spin{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#000;pointer-events:none}
.modal-spin span{width:40px;height:40px;border-radius:50%;border:3px solid rgba(255,255,255,.12);border-top-color:rgba(255,255,255,.75);animation:cam-spin .75s linear infinite}
.modal-unmute{display:none;position:absolute;top:10px;right:10px;padding:5px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.3);background:rgba(0,0,0,.65);color:#fff;font-size:12px;font-weight:600;cursor:pointer;z-index:10}
.modal-src-label{position:absolute;top:10px;left:10px;padding:3px 9px;border-radius:999px;font-size:10px;font-weight:700;color:rgba(255,255,255,.9);background:rgba(0,0,0,.5);border:1px solid rgba(255,255,255,.12);pointer-events:none;z-index:5}
.modal-overlay-info{position:absolute;bottom:0;left:0;right:0;padding:28px 12px 10px;background:linear-gradient(to top,rgba(0,0,0,.72),transparent);pointer-events:none}
.modal-overlay-info span{color:#fff;font-size:.8rem;font-weight:600;text-shadow:0 1px 3px #000}
.modal-actions{display:flex;gap:.5rem;padding:1rem;flex-wrap:wrap;align-items:center}
.modal-related{padding:.65rem 1rem 1rem;border-top:1px solid color-mix(in srgb,var(--muted) 15%,transparent);background:color-mix(in srgb,var(--bg) 60%,#000)}
.modal-related-label{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 .5rem}
.modal-related-row{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}
.modal-related-row::-webkit-scrollbar{height:4px}
.modal-related-row::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--muted) 40%,transparent);border-radius:4px}
.modal-related-card{position:relative;flex:0 0 72px;width:72px;border-radius:8px;overflow:hidden;aspect-ratio:3/4;background:#12121f;cursor:pointer;transition:transform .15s;border:1px solid color-mix(in srgb,var(--muted) 12%,transparent)}
.modal-related-card:hover{transform:scale(1.06);border-color:color-mix(in srgb,var(--accent) 35%,transparent)}
.modal-related-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.modal-related-card .rel-name{position:absolute;bottom:0;left:0;right:0;padding:3px 5px;background:linear-gradient(to top,rgba(0,0,0,.82),transparent);color:#fff;font-size:9px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.modal-related-card .rel-viewers{color:#4ade80;font-size:8px;font-weight:700}
.btn{display:inline-block;padding:.6rem 1.2rem;border-radius:var(--radius);font-weight:700;font-size:.85rem;border:none;cursor:pointer}
.btn-primary{background:var(--accent);color:#fff}
.btn-secondary{background:transparent;border:1px solid var(--accent);color:var(--accent)}
.prose{max-width:720px;line-height:1.7;color:var(--muted)}
.prose h1{color:var(--text)}
.embed-wrap{aspect-ratio:16/9;background:#000;border-radius:var(--radius);overflow:hidden;margin:1rem 0}
.embed-wrap iframe{width:100%;height:100%;border:0}

/* Premium videos — grid + detail player */
.vid-tag-bar{display:flex;gap:.5rem;overflow-x:auto;padding:.5rem 0 1rem;scrollbar-width:thin}
.vid-tag-bar a{flex-shrink:0;padding:.4rem .85rem;border-radius:999px;font-size:.8rem;font-weight:600;color:var(--muted);border:1px solid color-mix(in srgb,var(--muted) 20%,transparent);background:var(--surface);text-decoration:none}
.vid-tag-bar a:hover,.vid-tag-bar a.active{color:#fff;border-color:var(--accent);background:color-mix(in srgb,var(--accent) 25%,transparent)}
.vid-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}
@media(max-width:1100px){.vid-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:768px){.vid-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:520px){.vid-grid{grid-template-columns:repeat(2,1fr);gap:8px}}
.vid-card{display:block;color:inherit;text-decoration:none;background:var(--surface);border:1px solid color-mix(in srgb,var(--muted) 15%,transparent);border-radius:var(--radius);overflow:hidden;transition:transform .18s,box-shadow .18s}
.vid-card:hover{transform:translateY(-2px);box-shadow:0 10px 28px color-mix(in srgb,var(--accent) 25%,transparent);text-decoration:none}
.vid-card-thumb{position:relative;aspect-ratio:16/9;background:#000;overflow:hidden}
.vid-card-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s}
.vid-card:hover .vid-card-thumb img{transform:scale(1.05)}
.vid-play-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.28);opacity:0;transition:opacity .2s}
.vid-card:hover .vid-play-overlay{opacity:1}
.vid-play-btn{width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.22);border:1px solid rgba(255,255,255,.35);display:flex;align-items:center;justify-content:center}
.vid-dur{position:absolute;bottom:6px;right:6px;padding:2px 6px;background:rgba(0,0,0,.82);color:#fff;font-size:.65rem;font-family:monospace;border-radius:4px}
.vid-badge-hd{position:absolute;top:6px;left:6px;padding:2px 6px;background:#2563eb;color:#fff;font-size:.58rem;font-weight:800;border-radius:4px}
.vid-card-meta{padding:.55rem .65rem}
.vid-card-title{font-size:.78rem;font-weight:700;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.vid-page-layout{display:grid;grid-template-columns:1fr 300px;gap:1.5rem;align-items:start}
@media(max-width:960px){.vid-page-layout{grid-template-columns:1fr}}
.vid-player-wrap{position:relative;aspect-ratio:16/9;background:#000;border-radius:var(--radius);overflow:hidden;margin-bottom:1rem}
.vid-player-wrap img.vid-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.vid-player-shell{position:absolute;inset:0;width:100%;height:100%;z-index:2}
.vid-player-shell iframe{width:100%;height:100%;border:0}
.vid-cta{display:block;text-align:center;padding:.85rem 1rem;margin:1rem 0;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;font-weight:800;border-radius:var(--radius);text-decoration:none}
.vid-cta:hover{filter:brightness(1.08);text-decoration:none}
.vid-tag-list{display:flex;flex-wrap:wrap;gap:.45rem;margin:1rem 0}
.vid-tag-list a{padding:.3rem .7rem;border-radius:999px;font-size:.75rem;background:var(--surface);border:1px solid color-mix(in srgb,var(--muted) 18%,transparent);color:var(--muted);text-decoration:none}
.vid-tag-list a:hover{color:var(--accent);border-color:var(--accent)}
.vid-related{display:flex;flex-direction:column;gap:.65rem}
.vid-rel{display:flex;gap:.6rem;color:inherit;text-decoration:none;padding:.45rem;border-radius:var(--radius);background:var(--surface);border:1px solid color-mix(in srgb,var(--muted) 12%,transparent)}
.vid-rel:hover{border-color:color-mix(in srgb,var(--accent) 35%,transparent);text-decoration:none}
.vid-rel-thumb{position:relative;flex:0 0 88px;width:88px;aspect-ratio:16/9;border-radius:6px;overflow:hidden;background:#000}
.vid-rel-thumb img{width:100%;height:100%;object-fit:cover}
.vid-rel-title{font-size:.75rem;font-weight:700;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.vid-crumb{font-size:.78rem;color:var(--muted);margin-bottom:1rem}
.vid-crumb a{color:var(--accent)}
.vid-pager{display:flex;gap:.5rem;justify-content:center;margin-top:1.5rem;flex-wrap:wrap}
.vid-pager a{padding:.45rem .9rem;border-radius:var(--radius);background:var(--surface);border:1px solid color-mix(in srgb,var(--muted) 15%,transparent);color:var(--text);font-size:.82rem;text-decoration:none}


/* Bunny Girls AI gallery (camstars-style cards) */
.gal-hero{text-align:center;padding:2.5rem 1.25rem 1.5rem;background:radial-gradient(ellipse at top,color-mix(in srgb,var(--accent) 18%,transparent),transparent 70%)}
.gal-hero h1{font-size:clamp(1.8rem,4.5vw,2.8rem);margin:0 0 .75rem}
.gal-hero p{max-width:640px;margin:0 auto;color:var(--muted);line-height:1.65}
.gal-stats{display:flex;gap:.65rem;justify-content:center;flex-wrap:wrap;margin-top:1.25rem}
.gal-stat{padding:.45rem .9rem;border-radius:999px;font-size:.78rem;color:var(--muted);border:1px solid color-mix(in srgb,var(--muted) 20%,transparent);background:color-mix(in srgb,var(--surface) 80%,transparent)}
.gal-stat strong{color:var(--accent)}
.gal-section-head{display:flex;align-items:center;gap:.75rem;margin:0 0 1rem}
.gal-section-head h2{font-size:1.2rem;margin:0}
.gal-section-count{font-size:.72rem;font-weight:700;padding:.3rem .75rem;border-radius:999px;background:color-mix(in srgb,var(--accent) 15%,transparent);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);color:var(--accent)}
.gal-crumb{font-size:.78rem;color:var(--muted);margin-bottom:1rem}
.gal-crumb a{color:var(--muted)}
.gal-crumb a:hover{color:var(--accent)}
.gal-cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;max-width:1100px;margin:0 auto}
.gal-cat-card{display:block;color:inherit;text-decoration:none;border-radius:var(--radius);overflow:hidden;background:var(--surface);border:1px solid color-mix(in srgb,var(--muted) 18%,transparent);transition:transform .22s,box-shadow .22s,border-color .22s}
.gal-cat-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--accent) 40%,transparent);box-shadow:0 14px 36px color-mix(in srgb,var(--accent) 22%,transparent);text-decoration:none}
.gal-cat-thumb{aspect-ratio:4/3;position:relative;overflow:hidden;background:color-mix(in srgb,var(--surface) 70%,#000)}
.gal-cat-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .35s;display:block}
.gal-cat-card:hover .gal-cat-thumb img{transform:scale(1.05)}
.gal-cat-fallback{display:flex;align-items:center;justify-content:center;height:100%;font-size:2.2rem;opacity:.45}
.gal-cat-meta{padding:.85rem 1rem}
.gal-cat-label{font-size:.92rem;font-weight:800;color:var(--text);line-height:1.25}
.gal-cat-count{font-size:.72rem;color:var(--muted);margin-top:.25rem}
.gal-model-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;max-width:1000px;margin:0 auto}
.gal-model-card{display:block;color:inherit;text-decoration:none;border-radius:var(--radius);overflow:hidden;background:var(--surface);border:1px solid color-mix(in srgb,var(--muted) 18%,transparent);transition:transform .22s,box-shadow .22s,border-color .22s;position:relative}
.gal-model-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--accent) 35%,transparent);box-shadow:0 14px 36px color-mix(in srgb,var(--accent) 20%,transparent);text-decoration:none}
.gal-model-thumb{aspect-ratio:2/3;position:relative;overflow:hidden;background:#111}
.gal-model-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .35s;display:block}
.gal-model-card:hover .gal-model-thumb img{transform:scale(1.05)}
.gal-model-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.82) 0%,transparent 52%);pointer-events:none}
.gal-model-meta{position:absolute;left:0;right:0;bottom:0;padding:.75rem .85rem;z-index:2;pointer-events:none}
.gal-model-name{font-size:.88rem;font-weight:800;color:#fff}
.gal-model-sub{font-size:.68rem;color:rgba(255,255,255,.65);margin-top:.15rem}
.gal-photo-badge{position:absolute;top:8px;right:8px;padding:3px 8px;border-radius:999px;font-size:.62rem;font-weight:800;color:#fff;background:rgba(0,0,0,.65);border:1px solid rgba(255,255,255,.12);z-index:3}
.gal-ai-badge{position:absolute;top:8px;left:8px;padding:3px 8px;border-radius:999px;font-size:.58rem;font-weight:800;color:#fff;background:var(--accent);z-index:3}
.gal-char-hero{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;max-width:1000px;margin:0 auto 2rem;align-items:start}
.gal-char-main{border-radius:var(--radius);overflow:hidden;border:1px solid color-mix(in srgb,var(--muted) 18%,transparent);background:#111;cursor:pointer}
.gal-char-main img{width:100%;aspect-ratio:2/3;object-fit:cover;display:block}
.gal-char-side h1{font-size:clamp(1.4rem,3vw,1.9rem);margin:0 0 .65rem}
.gal-char-side p{color:var(--muted);font-size:.92rem;line-height:1.65;margin-bottom:1rem}
.gal-char-tags{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:1rem}
.gal-char-tag{padding:.35rem .7rem;border-radius:999px;font-size:.68rem;font-weight:700;color:var(--muted);border:1px solid color-mix(in srgb,var(--muted) 20%,transparent);background:color-mix(in srgb,var(--surface) 60%,transparent)}
.gal-char-nav{display:flex;gap:.5rem;flex-wrap:wrap}
.gal-char-nav a{padding:.55rem .9rem;border-radius:var(--radius);font-size:.78rem;font-weight:700;color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);background:color-mix(in srgb,var(--accent) 8%,transparent);text-decoration:none}
.gal-char-nav a:hover{background:color-mix(in srgb,var(--accent) 16%,transparent);text-decoration:none}
.gal-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;max-width:1000px;margin:0 auto 2rem}
.gal-gallery img{width:100%;aspect-ratio:2/3;object-fit:cover;border-radius:var(--radius);border:1px solid color-mix(in srgb,var(--muted) 15%,transparent);cursor:pointer;transition:transform .2s,border-color .2s;display:block}
.gal-gallery img:hover{border-color:color-mix(in srgb,var(--accent) 45%,transparent);transform:scale(1.02)}
.gal-lb{position:fixed;inset:0;z-index:300;display:none;align-items:center;justify-content:center;padding:12px 56px}
.gal-lb.open{display:flex}
.gal-lb-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.92);cursor:pointer}
.gal-lb-frame{position:relative;z-index:2;margin:0;max-width:min(95vw,760px);max-height:92vh;display:flex;flex-direction:column;align-items:center;gap:.65rem}
.gal-lb-frame img{max-width:95vw;max-height:86vh;border-radius:var(--radius);border:1px solid color-mix(in srgb,var(--muted) 25%,transparent);object-fit:contain;background:#111}
.gal-lb-cap{font-size:.78rem;font-weight:700;color:rgba(255,255,255,.7)}
.gal-lb-nav,.gal-lb-close{position:absolute;z-index:3;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-family:inherit}
.gal-lb-nav{top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;font-size:1.8rem;line-height:1;color:#fff;background:rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.22)}
.gal-lb-nav:hover{background:color-mix(in srgb,var(--accent) 75%,#000)}
.gal-lb-prev{left:14px}
.gal-lb-next{right:14px}
.gal-lb-close{top:14px;right:14px;width:40px;height:40px;border-radius:50%;font-size:1.5rem;color:#fff;background:rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.2)}
.gal-lb-close:hover{background:color-mix(in srgb,var(--accent2) 70%,#000)}
@media(max-width:900px){{
  .gal-model-grid,.gal-gallery{{grid-template-columns:repeat(2,1fr)}}
  .gal-char-hero{{grid-template-columns:1fr}}
  .gal-cat-grid{{grid-template-columns:repeat(2,1fr)}}
}}
@media(max-width:520px){{
  .gal-model-grid,.gal-gallery{{grid-template-columns:1fr;max-width:340px}}
  .gal-lb{{padding:8px 44px}}
  .gal-lb-nav{{width:38px;height:38px;font-size:1.5rem}}
  .gal-lb-prev{{left:6px}}
  .gal-lb-next{{right:6px}}
}}

