  :root{
    --bg:#0a0612;
    --bg-alt:#150e22;
    --bg-alt2:#1e1433;
    --ink:#f6f3ff;
    --ink-dim:#ab9fc9;
    --ink-faint:#6e6289;
    --accent:#ff2ec4;
    --accent-dim:#c11e97;
    --accent-light:#ff8fe0;
    --accent-2:#20e8ff;
    --accent-3:#a53bff;
    --line:rgba(180,120,255,0.16);
    --radius:14px;
    --nav-h:72px;
  }

  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth; scrollbar-gutter:stable;}
  body{
    background:var(--bg);
    color:var(--ink);
    font-family:'Manrope',sans-serif;
    line-height:1.55;
    overflow-x:hidden;
  }
  img{display:block;max-width:100%;}
  a{color:inherit;text-decoration:none;}
  button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;}
  section, .platforms, footer{scroll-margin-top:var(--nav-h);}

  /* ================= RULE GATE ================= */
  /* #siteMain is hidden by default and only revealed once <html> carries
     the "gate-ok" class. That class is only ever added by the Enter
     button's click handler (or, for returning visitors, by the inline
     script in <head> after checking localStorage). Hiding or deleting
     the gate div itself does not add this class, so the main page stays
     hidden regardless of what happens to the gate element. */
  #siteMain{display:none;}
  html.gate-ok #siteMain{display:block;}

  .rule-gate{
    position:fixed; inset:0; z-index:9999;
    background:rgba(6,6,8,.94); backdrop-filter:blur(8px);
    display:flex; align-items:center; justify-content:center;
    padding:24px;
    opacity:1;
    transition:opacity .4s ease;
  }
  .rule-gate.fade-out{opacity:0;}
  .rule-gate-inner{
    width:100%; max-width:420px;
    background:var(--bg-alt);
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:40px 32px;
    display:flex; flex-direction:column; align-items:center; text-align:center;
    box-shadow:0 20px 60px -20px rgba(0,0,0,.6);
  }
  .rule-gate-logo{margin-bottom:22px;}
  .rule-gate-text{color:var(--ink-dim); font-size:.94rem; line-height:1.65; margin-bottom:30px;}
  .rule-gate-link{color:var(--accent-2); text-decoration:underline; text-underline-offset:2px;}
  .rule-gate-link:hover{color:var(--accent);}
  .rule-gate-actions{display:flex; gap:14px; width:100%;}
  .rule-gate-actions .btn{flex:1;}

  .rule-gate-privacy-modal{
    position:fixed; inset:0; z-index:10000;
    background:rgba(6,6,8,.92); backdrop-filter:blur(6px);
    display:none; align-items:center; justify-content:center;
    padding:24px;
  }
  .rule-gate-privacy-modal.open{display:flex;}

  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:0.01ms !important; transition-duration:0.01ms !important;}
  }

  ::selection{background:var(--accent);color:#fff;}

  .eyebrow{
    font-family:'Poppins',sans-serif;
    font-weight:700;
    letter-spacing:.12em;
    text-transform:uppercase;
    font-size:.72rem;
    color:var(--accent-2);
  }
  .script{
    font-family:'Lobster',cursive;
    font-weight:400;
    font-size:2.3rem;
    display:inline-block;
    background:linear-gradient(90deg, var(--accent) 0%, var(--accent-3) 60%, var(--accent-2) 100%);
    -webkit-background-clip:text;
    background-clip:text;
    -webkit-text-fill-color:transparent;
    filter:drop-shadow(0 0 14px rgba(255,46,196,.45));
  }
  h1,h2,h3{
    font-family:'Poppins',sans-serif;
    font-weight:800;
    letter-spacing:-.01em;
    line-height:1.08;
  }
  .section-head h2, .platforms h2{
    text-transform:uppercase;
    font-size:1.5rem;
    letter-spacing:.02em;
  }
  .btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    background:linear-gradient(90deg, var(--accent) 0%, var(--accent-3) 100%);
    color:#fff;
    font-family:'Poppins',sans-serif;
    font-weight:700;
    font-size:.78rem;
    letter-spacing:.04em;
    text-transform:uppercase;
    padding:14px 26px;
    border-radius:6px;
    border:none;
    outline:none;
    appearance:none;
    cursor:pointer;
    transition:transform .25s ease, box-shadow .25s ease, filter .25s ease;
    white-space:nowrap;
    box-shadow:0 0 0 rgba(255,46,196,0);
  }
  .btn:hover{filter:brightness(1.08); transform:translateY(-2px); box-shadow:0 4px 14px rgba(255,46,196,.35);}
  .btn.ghost{
    background:transparent;
    border:1px solid rgba(255,255,255,.25);
    color:var(--ink);
  }
  .btn.ghost:hover{border-color:var(--accent-2); background:rgba(32,232,255,.08); box-shadow:0 4px 12px rgba(32,232,255,.18);}

  .wrap{max-width:1180px; margin:0 auto; padding:0 24px;}

  /* ---------- Reveal on scroll ---------- */
  .reveal{opacity:0; transform:translateY(28px); transition:opacity .7s ease, transform .7s ease;}
  .reveal.is-visible{opacity:1; transform:translateY(0);}
  .reveal-stagger > *{opacity:0; transform:translateY(24px); transition:opacity .6s ease, transform .6s ease;}
  .reveal-stagger.is-visible > *{opacity:1; transform:translateY(0);}
  .reveal-stagger.is-visible > *:nth-child(1){transition-delay:.05s;}
  .reveal-stagger.is-visible > *:nth-child(2){transition-delay:.12s;}
  .reveal-stagger.is-visible > *:nth-child(3){transition-delay:.19s;}
  .reveal-stagger.is-visible > *:nth-child(4){transition-delay:.26s;}
  .reveal-stagger.is-visible > *:nth-child(5){transition-delay:.33s;}
  .reveal-stagger.is-visible > *:nth-child(6){transition-delay:.40s;}

  /* ---------- Hover-media style (shared) ---------- */
  .media-hover{position:relative; overflow:hidden; border-radius:var(--radius); border:1px solid var(--line); cursor:pointer;}
  .media-hover img{transition:transform .55s cubic-bezier(.2,.7,.2,1), filter .55s ease, opacity .4s ease;}
  .media-hover video{
    position:absolute; inset:0; z-index:0;
    width:100%; height:100%; object-fit:cover;
    opacity:0; transition:opacity .4s ease;
    pointer-events:none;
  }
  .media-hover::after{
    content:"";
    position:absolute; inset:0;
    border-radius:inherit;
    background:linear-gradient(180deg, rgba(10,6,18,0) 40%, rgba(10,6,18,.85) 100%);
    opacity:.7;
    transition:opacity .4s ease, box-shadow .4s ease;
    pointer-events:none;
    z-index:1;
  }
  .media-hover:hover img{transform:scale(1.08); filter:saturate(1.15);}
  .media-hover:hover::after{opacity:.4; box-shadow:inset 0 0 0 2px var(--accent);}
  .media-hover:hover{box-shadow:0 10px 22px -10px rgba(255,45,120,.35);}
  /* Preview visibility is driven by JS (adds/removes .preview-playing)
     rather than pure :hover, so a preview can auto-stop after a few
     seconds even while the cursor is still resting on the card. */
  .media-hover.preview-playing video{opacity:1;}
  .media-hover.has-video-preview.preview-playing img{opacity:0;}

  .play-btn{
    position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
    width:58px; height:58px; border-radius:50%;
    background:rgba(10,6,18,.55);
    border:2px solid #fff;
    display:flex; align-items:center; justify-content:center;
    transition:transform .3s ease, background .3s ease, border-color .3s ease, box-shadow .3s ease;
    z-index:2;
  }
  .play-btn svg{width:18px; height:18px; fill:#fff;}
  .media-hover:hover .play-btn, .video-card:hover .play-btn{transform:translate(-50%,-50%) scale(1.1); background:var(--accent); border-color:var(--accent); box-shadow:0 0 10px rgba(255,46,196,.45);}

  /* ================= NAV ================= */
  header{
    position:sticky; top:0; z-index:200;
    height:var(--nav-h);
    display:flex; align-items:center;
    background:rgba(10,10,12,.86);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  .nav-inner{width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px;}
  .logo{font-family:'Lobster',cursive; font-weight:400; font-size:1.8rem; letter-spacing:0; display:flex; align-items:baseline; gap:0;}
  .hot{color:var(--accent); filter:drop-shadow(0 0 10px rgba(255,46,196,.5));}
  .navlinks{display:flex; gap:14px; align-items:center;}
  .navlinks a{
    font-family:'Poppins',sans-serif; font-weight:600;
    font-size:.62rem; letter-spacing:.05em; text-transform:uppercase;
    color:var(--ink-dim);
    position:relative; padding:6px 0;
    transition:color .25s ease;
    white-space:nowrap;
  }
  .navlinks a::after{
    content:""; position:absolute; left:0; bottom:0; height:2px; width:0;
    background:var(--accent-2);
    box-shadow:0 0 4px var(--accent-2);
    transition:width .3s ease;
  }
  .navlinks a:hover, .navlinks a.active{color:var(--ink);}
  .navlinks a:hover::after, .navlinks a.active::after{width:100%;}
  .nav-actions{display:flex; align-items:center; gap:14px;}
  .hamburger{display:none; flex-direction:column; gap:5px; width:26px;}
  .hamburger span{height:2px; width:100%; background:var(--ink); transition:transform .3s ease, opacity .3s ease;}
  .hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .hamburger.open span:nth-child(2){opacity:0;}
  .hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

  .mobile-panel{
    position:fixed; top:var(--nav-h); left:0; right:0; z-index:190;
    background:var(--bg-alt);
    border-bottom:1px solid var(--line);
    display:flex; flex-direction:column; padding:10px 24px 20px;
    transform:translateY(-110%);
    transition:transform .35s ease;
  }
  .mobile-panel.open{transform:translateY(0);}
  .mobile-panel a{
    padding:14px 0; border-bottom:1px solid var(--line);
    font-family:'Poppins',sans-serif; font-weight:600; letter-spacing:.08em; text-transform:uppercase; font-size:.85rem;
    color:var(--ink-dim);
  }
  .mobile-panel a:hover{color:var(--accent);}
  .mobile-panel a.mobile-panel-cta{
    border-bottom:none;
    color:#fff;
    padding:14px 26px;
    margin-top:14px;
    text-align:center;
  }
  .mobile-panel a.mobile-panel-cta:hover{color:#fff;}

  /* ================= HERO ================= */
  .hero{position:relative; aspect-ratio:16/9; overflow:hidden; background:var(--bg);}
  .hero-bg{position:absolute; inset:0; z-index:0;}
  .hero-bg img{width:100%; height:100%; object-fit:cover; object-position:center 30%; filter:saturate(1.15);}
  .hero-overlay{
    position:absolute; inset:0; z-index:1;
    background:
      radial-gradient(ellipse 60% 50% at 85% 15%, rgba(32,232,255,.22) 0%, rgba(32,232,255,0) 60%),
      radial-gradient(ellipse 55% 55% at 15% 85%, rgba(165,59,255,.28) 0%, rgba(165,59,255,0) 60%),
      linear-gradient(180deg, rgba(10,6,18,.15) 0%, rgba(10,6,18,.1) 45%, rgba(10,6,18,.75) 100%),
      linear-gradient(90deg, rgba(10,6,18,.4) 0%, rgba(10,6,18,.1) 40%, rgba(10,6,18,.05) 75%);
  }
  .hero-cta{
    position:absolute;
    right:0; bottom:0; z-index:3;
    font-size:clamp(.65rem, 1.4vw, .95rem);
    padding:1.1em 2em;
    border-radius:10px 0 0 0;
  }

  /* ================= INTRO ================= */
  .intro{padding:52px 0;}
  .intro .hero-copy{max-width:780px; margin:0 auto; text-align:center;}
  .intro .hero-copy p{margin-left:auto; margin-right:auto;}
  .hero-copy p{color:var(--ink-dim); max-width:56ch; margin:22px 0 32px; font-size:1.2rem; line-height:1.6; overflow-wrap:break-word;}
  .intro h1{font-family:'Lobster',cursive; font-weight:400; font-size:clamp(5.1rem, 10.8vw, 7.5rem); letter-spacing:0; margin-top:.05em; overflow-wrap:break-word;}

  /* ================= ANNOUNCEMENT ================= */
  .announce{
    border-top:1px solid var(--line); border-bottom:1px solid var(--line);
    background:var(--bg-alt);
  }
  .announce .wrap{display:flex; align-items:center; gap:16px; padding:16px 24px; flex-wrap:wrap;}
  .announce-badge{
    display:flex; align-items:center; gap:8px;
    font-family:'Poppins',sans-serif; font-weight:600; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase;
    color:var(--accent); border:1px solid var(--accent); padding:6px 12px; border-radius:20px;
    box-shadow:0 0 8px rgba(255,46,196,.2);
  }
  .announce-text{flex:1; min-width:200px; color:var(--ink-dim); font-size:.92rem;}
  .announce .btn.ghost{padding:9px 16px; font-size:.7rem;}

  /* ================= SECTION HEADERS ================= */
  .section{padding:56px 0;}
  .section-head{display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:30px; flex-wrap:wrap;}
  .section-head.centered{justify-content:center; text-align:center; position:relative;}
  .section-head.centered .view-all{position:absolute; right:0; bottom:6px;}
  .section-head h2{font-size:clamp(1.7rem,3.6vw,2.5rem);}
  .section-head .view-all{font-family:'Poppins',sans-serif; font-weight:600; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-dim); border-bottom:1px solid var(--ink-faint); padding-bottom:2px; transition:color .25s ease, border-color .25s ease;}
  .section-head .view-all:hover{color:var(--accent); border-color:var(--accent);}

  /* ================= TOP VIDEOS ================= */
  .video-grid{display:grid; grid-template-columns:1fr 1fr; gap:22px;}
  .video-card{border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:var(--bg-alt); cursor:pointer; transition:box-shadow .3s ease, border-color .3s ease;}
  .video-card:hover{border-color:var(--accent); box-shadow:0 10px 22px -10px rgba(255,45,120,.35);}
  .video-thumb{position:relative; aspect-ratio:16/9; overflow:hidden;}
  .video-thumb img{width:100%; height:100%; object-fit:cover; transition:transform .55s cubic-bezier(.2,.7,.2,1), filter .55s ease, opacity .4s ease;}
  .video-thumb video{
    position:absolute; inset:0; z-index:0;
    width:100%; height:100%; object-fit:cover;
    opacity:0; transition:opacity .4s ease;
    pointer-events:none;
  }
  .video-card.preview-playing .video-thumb video{opacity:1;}
  .video-card.preview-playing .video-thumb img{opacity:0;}
  .video-card:hover .video-thumb img{transform:scale(1.08); filter:saturate(1.15);}
  .video-caption{padding:16px 18px; font-weight:700; font-size:1rem;}

  .feature-video{
    margin-top:26px;
    display:grid; grid-template-columns:.85fr 1.15fr; gap:0;
    border-radius:var(--radius); overflow:hidden; border:1px solid var(--line);
    background:var(--bg-alt);
  }
  .feature-copy{padding:40px; display:flex; flex-direction:column; justify-content:center; gap:14px;}
  .feature-copy .eyebrow{color:var(--accent-light);}
  .feature-copy h3{font-size:clamp(1.5rem,3vw,2.1rem);}
  .feature-copy p{color:var(--ink-dim); max-width:42ch;}
  .feature-media{position:relative; min-height:280px;}
  .feature-media img{width:100%; height:100%; object-fit:cover; position:absolute; inset:0;}

  /* ================= PLATFORMS ================= */
  .platforms{background:var(--bg-alt); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
  .creators{background:var(--bg-alt); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
  .platform-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
  .platform-card{background:var(--bg-alt2); border:1px solid var(--line); border-radius:var(--radius); padding:26px 22px; display:flex; flex-direction:column; gap:10px; transition:background .3s ease, border-color .3s ease, transform .3s ease, box-shadow .3s ease;}
  .platform-card:hover{background:#271a3d; transform:translateY(-3px); border-color:var(--accent); box-shadow:0 8px 18px -10px rgba(255,45,120,.35);}
  .platform-icon{width:34px; height:34px; color:var(--accent-2);}
  .platform-card h4{font-family:'Manrope',sans-serif; font-weight:800; font-size:1.02rem;}
  .platform-card p{color:var(--ink-dim); font-size:.85rem; flex:1;}
  .platform-card .btn{margin-top:6px; padding:11px 16px; font-size:.68rem;}
  .btn-block{width:100%;}

  /* ================= SERIES ================= */
  .series-grid{display:grid; grid-template-columns:repeat(6,1fr); gap:12px; align-items:start;}
  .series-card{aspect-ratio:16/9; position:relative; width:100%;}
  .series-card img{display:block; width:100%; height:100%; object-fit:cover;}
  .series-name{position:absolute; left:10px; bottom:10px; right:10px; z-index:2; font-size:.78rem; font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}

  /* ================= CREATORS ================= */
  .creator-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:36px; text-align:center;}
  .creator-avatar{width:132px; height:132px; border-radius:50%; margin:0 auto 16px; overflow:hidden; border:2px solid var(--line); position:relative;}
  .creator-avatar img{width:100%; height:100%; object-fit:cover; transition:transform .5s ease;}
  .creator-card:hover .creator-avatar{border-color:var(--accent-3); box-shadow:0 0 0 4px rgba(165,59,255,.15);}
  .creator-card:hover .creator-avatar img{transform:scale(1.1);}
  .creator-card h4{font-family:'Manrope',sans-serif; font-weight:800; color:var(--accent); font-size:1.05rem;}
  .creator-card .role{color:var(--ink-dim); font-size:.84rem; margin:4px 0 12px;}
  .social-row{display:flex; gap:14px; justify-content:center;}
  .social-row a{width:34px; height:34px; border-radius:50%; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; transition:border-color .25s ease, color .25s ease, transform .25s ease;}
  .social-row a:hover{border-color:var(--accent); color:var(--accent); transform:translateY(-3px);}
  .social-row svg{width:15px; height:15px; fill:currentColor;}
  .connect-social{display:flex; justify-content:center; gap:18px; margin-bottom:40px;}
  .connect-social a{
    width:48px; height:48px; border-radius:50%;
    border:1px solid var(--line);
    display:flex; align-items:center; justify-content:center;
    color:var(--ink-dim);
    transition:border-color .25s ease, color .25s ease, transform .25s ease, box-shadow .25s ease;
  }
  .connect-social a:hover{border-color:var(--accent); color:var(--accent); transform:translateY(-3px); box-shadow:0 8px 18px -8px rgba(255,45,120,.4);}
  .connect-social svg{width:21px; height:21px; fill:currentColor;}

  /* ================= UPCOMING ================= */
  .upcoming{
    display:grid; grid-template-columns:.95fr 1.05fr;
    border-radius:var(--radius); overflow:hidden; border:1px solid var(--line);
    background:var(--bg-alt);
  }
  .upcoming-copy{padding:44px; display:flex; flex-direction:column; justify-content:center; gap:14px;}
  .upcoming-copy h3{font-size:clamp(1.6rem,3.4vw,2.3rem);}
  .upcoming-copy p{color:var(--ink-dim); max-width:40ch;}
  .upcoming-media{position:relative; min-height:320px;}
  .upcoming-media img{width:100%; height:100%; object-fit:cover; position:absolute; inset:0;}
  .soon-tag{font-family:'Lobster',cursive; font-weight:400; color:var(--accent-light); font-size:1.5rem; display:inline-block;}
  .upcoming-cta{margin-top:6px;}

  /* ================= FEEDS ================= */
  .feed-grid{display:grid; grid-template-columns:1fr 1fr; gap:24px;}
  .feed-panel{background:var(--bg-alt); border:1px solid var(--line); border-radius:var(--radius); padding:22px; display:flex; flex-direction:column; gap:16px; max-height:640px;}
  .feed-head{display:flex; align-items:center; justify-content:space-between;}
  .feed-head h3{font-family:'Manrope',sans-serif; font-weight:800; font-size:1rem; color:var(--accent); display:flex; align-items:center; gap:8px;}
  .feed-head .view-all{font-size:.68rem;}
  .feed-body{overflow-y:auto; overflow-x:hidden; flex:1; padding-right:4px; max-width:100%;}
  .feed-body::-webkit-scrollbar{width:6px;}
  .feed-body::-webkit-scrollbar-thumb{background:var(--line); border-radius:6px;}
  .feed-panel{overflow-x:hidden;}
  /* Force X/Instagram embeds to shrink to their container instead of
     overflowing off-screen on narrow viewports */
  .feed-body iframe,
  .feed-body .twitter-timeline,
  .feed-body .instagram-media{
    max-width:100% !important;
    width:100% !important;
    min-width:0 !important;
  }
  .embed-add{display:flex; gap:8px;}
  .embed-add input{
    flex:1; background:var(--bg-alt2); border:1px solid var(--line); color:var(--ink);
    padding:10px 12px; border-radius:6px; font-size:.78rem; font-family:'Poppins',sans-serif; font-weight:600;
  }
  .embed-add input::placeholder{color:var(--ink-faint);}
  .embed-add button{background:var(--accent); color:#fff; padding:0 16px; border:none; border-radius:6px; font-size:.72rem; font-family:'Poppins',sans-serif; font-weight:600; text-transform:uppercase; text-align:center; cursor:pointer;}
  .embed-note{font-size:.7rem; color:var(--ink-faint); line-height:1.5;}
  .embed-slot{margin-bottom:14px;}

  /* ================= FOOTER ================= */
  footer{border-top:1px solid var(--line); padding:60px 0 30px; background:var(--bg-alt);}
  .footer-grid{display:grid; grid-template-columns:1.4fr .8fr .8fr 1.2fr; gap:30px; padding-bottom:40px;}
  .footer-grid h5{font-family:'Poppins',sans-serif; font-weight:600; font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-dim); margin-bottom:14px;}
  .footer-grid a, .footer-grid p{color:var(--ink-faint); font-size:.86rem; display:block; margin-bottom:9px;}
  .footer-grid a:hover{color:var(--accent);}
  .footer-brand .logo{margin-bottom:10px;}
  .footer-eyebrow{display:block; margin-bottom:16px;}
  .footer-blurb{max-width:32ch;}
  .foot-copyright{color:var(--ink-faint); font-size:.8rem;}
  .newsletter-row{display:flex; gap:8px; margin-top:6px;}
  .newsletter-row input{flex:1; background:var(--bg-alt2); border:1px solid var(--line); color:var(--ink); padding:10px 12px; border-radius:6px; font-size:.8rem;}
  .newsletter-row button{background:var(--accent); color:#fff; padding:0 16px; border:none; border-radius:6px; font-size:.7rem; font-family:'Poppins',sans-serif; font-weight:600; text-transform:uppercase; text-align:center; cursor:pointer;}

  /* ---------- Brevo newsletter form override (reskins Brevo's default look) ---------- */
  .brevo-newsletter #sib-container{background:transparent; border:none; max-width:none; padding:0;}
  .brevo-newsletter .sib-form-message-panel{
    display:none;
    font-family:'Poppins',sans-serif; font-size:.75rem; padding:10px 12px;
    border-radius:6px; margin-bottom:10px;
  }
  .brevo-newsletter #error-message{color:#ff4d4d; background:rgba(255,77,77,.1); border:1px solid rgba(255,77,77,.4);}
  .brevo-newsletter #success-message{color:#2ee6a8; background:rgba(46,230,168,.1); border:1px solid rgba(46,230,168,.4);}
  .brevo-newsletter .newsletter-row input::placeholder{color:var(--ink-faint);}
  .brevo-newsletter .brevo-declaration{font-size:.65rem; color:var(--ink-faint); line-height:1.5; margin-top:10px;}
  .brevo-newsletter .brevo-declaration a{color:var(--ink-dim); text-decoration:underline;}
  .foot-bottom{border-top:1px solid var(--line); padding-top:22px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px;}
  .foot-social{display:flex; gap:14px;}
  .foot-social a{width:32px; height:32px; border-radius:50%; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; transition:border-color .25s, color .25s;}
  .foot-social a:hover{border-color:var(--accent); color:var(--accent);}
  .foot-social svg{width:14px; height:14px; fill:currentColor;}
  .toast-msg{font-size:.72rem; color:var(--accent-light); font-family:'Poppins',sans-serif; font-weight:600; min-height:16px;}

  /* ================= LIGHTBOX ================= */
  .lightbox{
    position:fixed; inset:0; z-index:500;
    background:rgba(6,6,8,.92); backdrop-filter:blur(6px);
    display:flex; align-items:center; justify-content:center;
    opacity:0; pointer-events:none; transition:opacity .3s ease;
    padding:24px;
  }
  .lightbox.open{opacity:1; pointer-events:all;}
  .lightbox-inner{width:100%; max-width:960px; position:relative; transform:scale(.94); transition:transform .3s ease;}
  .lightbox.open .lightbox-inner{transform:scale(1);}
  .lightbox-video{position:relative; width:100%; aspect-ratio:16/9; background:#000; border-radius:12px; overflow:hidden;}
  .lightbox-player{width:100%; height:100%; object-fit:contain; display:block; background:#000;}
  .lightbox-title{
    font-family:'Poppins',sans-serif; font-weight:700; font-size:1.05rem;
    text-align:center; margin-top:16px;
  }
  .lightbox-title:empty{display:none;}
  .lightbox-platforms{margin-top:18px; text-align:center;}
  .lightbox-platforms-label{
    font-family:'Poppins',sans-serif; font-weight:600; font-size:.75rem;
    letter-spacing:.1em; text-transform:uppercase; color:var(--ink-dim);
    margin-bottom:12px;
  }
  .lightbox-platforms-row{display:flex; justify-content:center; gap:16px;}
  .platform-link{
    width:44px; height:44px; border-radius:50%;
    border:1px solid var(--line);
    display:flex; align-items:center; justify-content:center;
    color:var(--ink-dim);
    transition:border-color .25s ease, color .25s ease, transform .25s ease, box-shadow .25s ease, opacity .25s ease;
  }
  .platform-link svg{width:20px; height:20px;}
  .platform-link:hover{border-color:var(--accent); color:var(--accent); transform:translateY(-3px); box-shadow:0 6px 16px -6px rgba(255,45,120,.4);}
  .platform-link.is-disabled{display:none;}
  .lightbox-close{
    position:absolute; top:-46px; right:0; width:36px; height:36px; border-radius:50%;
    border:1px solid rgba(255,255,255,.3); display:flex; align-items:center; justify-content:center;
    transition:border-color .25s ease, background .25s ease;
  }
  .lightbox-close:hover{border-color:var(--accent); background:var(--accent);}
  .lightbox-close svg{width:16px; height:16px; fill:#fff;}
  /* Any modal card built on .join-modal-inner scrolls internally
     (overflow-y:auto), which clips a close button floating above it the
     way the plain video lightbox's does — so pin it inside the card
     instead for every modal that uses this card style (series, info,
     contact, join, privacy policy, etc). */
  .join-modal-inner .lightbox-close{
    top:14px; right:14px;
    background:rgba(10,6,18,.65); backdrop-filter:blur(4px);
    z-index:2;
  }

  /* ================= SCROLL TO TOP ================= */
  .scroll-top{
    position:fixed; bottom:24px; right:24px; z-index:150;
    width:46px; height:46px; border-radius:50%;
    background:linear-gradient(90deg, var(--accent) 0%, var(--accent-3) 100%);
    border:none; color:#fff; cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 8px 20px -6px rgba(255,45,120,.5);
    opacity:0; visibility:hidden; transform:translateY(12px);
    transition:opacity .3s ease, transform .3s ease, visibility .3s, filter .25s ease;
  }
  .scroll-top.visible{opacity:1; visibility:visible; transform:translateY(0);}
  .scroll-top:hover{filter:brightness(1.1); transform:translateY(-3px);}
  .scroll-top svg{width:20px; height:20px;}

  /* ================= JOIN MODAL ================= */
  .join-modal-inner{
    width:100%; max-width:480px;
    background:var(--bg-alt);
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:36px;
    position:relative;
    max-height:88vh;
    overflow-y:auto;
    transform:scale(.94);
    transition:transform .3s ease;
  }
  .lightbox.open .join-modal-inner{transform:scale(1);}
  .join-modal-title{font-family:'Poppins',sans-serif; font-weight:800; font-size:1.4rem; text-align:center; margin-bottom:24px;}

  .info-modal-inner{max-width:620px;}
  .info-modal-body{
    max-height:60vh; overflow-y:auto;
    color:var(--ink-dim); font-size:.88rem; line-height:1.75;
    padding-right:6px;
  }
  .info-modal-body::-webkit-scrollbar{width:6px;}
  .info-modal-body::-webkit-scrollbar-thumb{background:var(--line); border-radius:6px;}
  .info-modal-body h4{
    font-family:'Poppins',sans-serif; font-weight:700; font-size:.95rem;
    color:var(--ink); margin:18px 0 8px;
  }
  .info-modal-body h4:first-child{margin-top:0;}

  /* ---------- Series videos modal ---------- */
  .series-modal-inner{max-width:800px;}
  .series-modal-grid{
    display:grid; grid-template-columns:repeat(3,1fr); gap:16px;
    max-height:62vh; overflow-y:auto; padding-right:6px;
  }
  .series-modal-grid::-webkit-scrollbar{width:6px;}
  .series-modal-grid::-webkit-scrollbar-thumb{background:var(--line); border-radius:6px;}
  .series-modal-grid .video-caption{padding:10px 12px; font-size:.82rem;}
  .series-modal-empty{color:var(--ink-dim); font-size:.9rem; text-align:center; padding:24px 0;}
  .info-modal-body p{margin-bottom:12px;}
  .info-modal-body ul{margin:0 0 12px 18px;}
  .info-modal-body li{margin-bottom:6px;}
  .info-modal-body strong{color:var(--ink);}
  .join-platform-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin-bottom:20px;}
  .join-platform-card{
    display:flex; flex-direction:column; align-items:center; gap:8px;
    padding:20px 12px;
    border:1px solid var(--line); border-radius:10px;
    color:var(--ink-dim);
    transition:border-color .25s ease, color .25s ease, transform .25s ease, box-shadow .25s ease;
  }
  .join-platform-card:hover{border-color:var(--accent); color:var(--ink); transform:translateY(-3px); box-shadow:0 10px 22px -10px rgba(255,45,120,.35);}
  .join-platform-card .platform-icon{width:28px; height:28px; color:var(--accent-2);}
  .join-platform-card span{font-family:'Poppins',sans-serif; font-weight:600; font-size:.82rem;}

  .join-request-toggle{
    display:block; width:100%; text-align:center;
    background:none; border:none; color:var(--ink-dim);
    font-family:'Poppins',sans-serif; font-size:.82rem; font-weight:500;
    padding:8px 0; cursor:pointer;
  }
  .join-request-toggle span{color:var(--accent); font-weight:700; text-decoration:underline;}
  .join-request-toggle:hover{color:var(--ink);}

  .join-request-form{max-height:0; overflow:hidden; transition:max-height .4s ease;}
  .join-request-form.open{max-height:600px;}
  .join-request-form form{padding-top:18px; display:flex; flex-direction:column; gap:14px;}
  #contactForm{display:flex; flex-direction:column; gap:16px;}
  .join-request-fields{display:flex; flex-direction:column; gap:14px; transition:opacity .3s ease, max-height .3s ease; overflow:hidden;}
  .join-request-fields.is-hidden{opacity:0; max-height:0; gap:0; pointer-events:none;}
  .btn.is-sent{background:linear-gradient(90deg, #2ee6a8 0%, #20c9e8 100%); cursor:default;}
  .btn.is-sent:hover{transform:none; box-shadow:none; filter:none;}
  #site-request-error-message, #site-request-success-message{
    display:none;
    font-family:'Poppins',sans-serif; font-size:.75rem; padding:10px 12px;
    border-radius:6px; margin-bottom:10px;
  }
  #site-request-error-message{color:#ff4d4d; background:rgba(255,77,77,.1); border:1px solid rgba(255,77,77,.4);}
  #site-request-success-message{color:#2ee6a8; background:rgba(46,230,168,.1); border:1px solid rgba(46,230,168,.4);}
  .join-field{display:flex; flex-direction:column; gap:6px;}
  .join-field span{font-family:'Poppins',sans-serif; font-weight:600; font-size:.7rem; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-dim);}
  .required-mark{color:#ff4d4d; font-style:normal; margin-left:1px;}
  .join-field input, .join-field textarea{
    background:var(--bg-alt2); border:1px solid var(--line); color:var(--ink);
    padding:10px 12px; border-radius:6px; font-size:.88rem; font-family:'Manrope',sans-serif;
    transition:border-color .2s ease, box-shadow .2s ease;
    resize:vertical;
  }
  /* Neutralize the browser's own native red/green validation glow
     (:invalid/:valid render regardless of the novalidate attribute) so
     the only highlight visitors ever see is our own .field-error state. */
  .join-field input:invalid, .join-field textarea:invalid,
  .join-field input:valid, .join-field textarea:valid{
    box-shadow:none;
    outline:none;
  }
  .join-field input.field-error, .join-field textarea.field-error{
    border-color:#ff4d4d;
    box-shadow:0 0 0 1px #ff4d4d;
  }
  .join-radio{display:flex; align-items:center; gap:8px; font-size:.82rem; color:var(--ink-dim);}
  .join-radio input{accent-color:var(--accent); width:16px; height:16px;}

  /* ================= RESPONSIVE ================= */
  @media (max-width:1120px){
    .platform-grid{grid-template-columns:repeat(2,1fr);}
    .series-grid{grid-template-columns:repeat(3,1fr);}
    .creator-grid{grid-template-columns:repeat(3,1fr); gap:18px;}
    .footer-grid{grid-template-columns:1fr 1fr; gap:34px;}
    .series-modal-grid{grid-template-columns:repeat(2,1fr);}
  }
  @media (max-width:900px){
    .navlinks{display:none;}
    .hamburger{display:flex;}
    .series-grid{grid-template-columns:repeat(2,1fr);}
    /* keep 2-column layout on tablets, just tighten the copy padding */
    .feature-copy, .upcoming-copy{padding:30px;}
  }
  @media (max-width:760px){
    .intro h1{font-size:clamp(2.3rem, 10.8vw, 5.1rem);}
    .script{font-size:clamp(1.3rem, 5vw, 2.3rem);}

    /* below tablet width: stack text above video, and let the video
       scale by real aspect ratio instead of a fixed min-height
       (fixed heights were stretching it into a thin smashed strip) */
    .feature-video, .upcoming{grid-template-columns:1fr;}
    .feature-media, .upcoming-media{min-height:0;}
    .feature-media, .feature-media img, .upcoming-media, .upcoming-media img{aspect-ratio:16/9;}
    .feature-media img, .upcoming-media img{position:static; width:100%; height:100%;}
  }
  @media (max-width:680px){
    .join-modal-inner{padding:26px 20px;}
    .scroll-top{width:42px; height:42px; bottom:18px; right:18px;}
    .wrap{padding:0 18px;}
    .section{padding:42px 0;}
    .video-grid{grid-template-columns:1fr;}
    .series-grid{grid-template-columns:1fr;}
    .series-modal-grid{grid-template-columns:1fr;}
    .creator-grid{grid-template-columns:1fr; max-width:280px; margin:0 auto;}
    .feed-grid{grid-template-columns:1fr;}
    .platform-grid{grid-template-columns:1fr;}
    .footer-grid{grid-template-columns:1fr;}
    .announce .wrap{flex-direction:column; align-items:center; text-align:center; padding:14px 18px;}
    .announce-text{min-width:0;}
    .hero-copy p{font-size:1.02rem;}
    .intro{padding:36px 0;}

    /* keep "View All" links from overlapping centered titles */
    .section-head.centered{flex-direction:column; align-items:center; gap:8px;}
    .section-head.centered .view-all{position:static;}

    /* tighter padding on split panels so copy isn't cramped */
    .feature-copy, .upcoming-copy{padding:26px 22px;}
    .platform-card{padding:20px 18px;}

    /* nav actions: shrink the always-visible Join Now button so it
       doesn't crowd the logo/hamburger on narrow phones */
    .nav-actions{gap:8px;}
    .nav-actions .btn{padding:10px 14px; font-size:.66rem;}
    .logo{font-size:1.6rem;}

    /* lightbox close: pin to the corner of the frame instead of
       floating above it, so it can't get clipped on short viewports */
    .lightbox{padding:14px;}
    .lightbox-close{position:absolute; top:10px; right:10px; background:rgba(10,6,18,.65); backdrop-filter:blur(4px);}

    /* stack input+button rows instead of squeezing them side by side */
    .embed-add{flex-direction:column;}
    .embed-add button{padding:10px 0;}
    .newsletter-row{flex-direction:column;}
    .newsletter-row button{padding:10px 0;}
  }
