/* ============================================================
   NoriPlay V47 — FluidGate + Cinema UI
   ============================================================ */
:root{
  --np47-radius-xl:28px;
  --np47-radius-lg:20px;
  --np47-radius-md:14px;
  --np47-shadow:0 26px 84px rgba(0,0,0,.15);
  --np47-edge:color-mix(in srgb,var(--line) 86%,transparent);
  --np47-glass:color-mix(in srgb,var(--surface) 86%,transparent);
  --np47-accent-soft:color-mix(in srgb,var(--red) 11%,transparent);
  --np47-ease:cubic-bezier(.22,.61,.36,1);
}

/* ----- adult gate: viewport-safe and BFCache-safe ----- */
html.adult-pending,html.adult-pending body{overflow:hidden!important;height:100%!important;overscroll-behavior:none}
html.adult-confirmed .age-gate{display:none!important}
.age-gate{
  position:fixed!important;
  inset:0!important;
  z-index:2147483000!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100vw!important;
  min-height:100vh!important;
  min-height:100dvh!important;
  height:100dvh!important;
  padding:max(14px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))!important;
  overflow:auto!important;
  overscroll-behavior:contain;
  background:rgba(5,6,8,.82)!important;
  backdrop-filter:blur(24px) saturate(105%)!important;
  animation:np47-gate-in .24s ease both;
}
.age-gate.hidden{display:none!important}
.age-gate.age-gate-leaving{animation:np47-gate-out .18s ease both}
@keyframes np47-gate-in{from{opacity:0}to{opacity:1}}
@keyframes np47-gate-out{to{opacity:0;visibility:hidden}}
.age-card{
  position:relative;
  width:min(520px,calc(100vw - 28px))!important;
  max-height:calc(100dvh - 28px)!important;
  overflow:auto!important;
  padding:clamp(20px,4vh,34px)!important;
  border:1px solid rgba(255,255,255,.11)!important;
  border-radius:24px!important;
  background:linear-gradient(160deg,rgba(22,23,28,.985),rgba(10,11,14,.985))!important;
  color:#f5f5f7!important;
  box-shadow:0 40px 130px rgba(0,0,0,.58)!important;
  text-align:center;
  animation:np47-card-in .38s var(--np47-ease) both;
}
.age-card::before{content:"18+";position:absolute;top:14px;right:14px;padding:5px 8px;border:1px solid rgba(255,255,255,.10);border-radius:999px;background:rgba(255,255,255,.045);font-size:8px;font-weight:950;letter-spacing:.12em;color:#bfc1c8}
@keyframes np47-card-in{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:none}}
.age-card img{width:clamp(62px,12vh,88px)!important;height:clamp(62px,12vh,88px)!important;border-radius:20px!important;box-shadow:0 18px 42px rgba(0,0,0,.32)}
.age-card h2{margin:16px 0 7px!important;font-size:clamp(21px,4vw,28px)!important;line-height:1.08!important;letter-spacing:-.035em}
.age-card p{max-width:390px;margin:0 auto!important;font-size:12px!important;line-height:1.6!important;color:#9ea1aa!important}
.age-actions{display:grid!important;grid-template-columns:1fr 1fr;gap:9px!important;margin-top:20px!important}
.age-actions .btn{min-height:44px!important;border-radius:12px!important;font-size:10px!important}
@media(max-width:520px),(max-height:570px){
  .age-gate{align-items:flex-start!important}
  .age-card{margin:auto!important;padding:18px!important;border-radius:18px!important}
  .age-card img{width:58px!important;height:58px!important;border-radius:16px!important}
  .age-card h2{margin-top:12px!important;font-size:20px!important}
  .age-actions{grid-template-columns:1fr!important;margin-top:14px!important}
  .age-actions .btn{min-height:40px!important}
}

/* ----- global cleaning ----- */
body{background-attachment:fixed}
.site-header{border-bottom-color:color-mix(in srgb,var(--line) 72%,transparent)!important}
.container{width:min(1500px,calc(100% - 28px))}
.np47-shell-glow{position:fixed;inset:0;z-index:-3;pointer-events:none;background:radial-gradient(circle at 8% 12%,color-mix(in srgb,var(--red) 6%,transparent),transparent 24%),radial-gradient(circle at 88% 45%,color-mix(in srgb,var(--red) 3.5%,transparent),transparent 26%)}

/* ----- home: cleaner cinema dashboard ----- */
.home-main{gap:20px!important;padding-top:18px!important}
.home-hero{min-height:350px!important;border-radius:var(--np47-radius-xl)!important;border-color:var(--np47-edge)!important;background:linear-gradient(140deg,color-mix(in srgb,var(--surface) 97%,transparent),color-mix(in srgb,var(--surface-2) 82%,var(--surface)))!important;box-shadow:var(--np47-shadow)!important}
.home-hero-copy{padding:52px 42px!important}
.home-hero h1{font-size:clamp(43px,5.7vw,78px)!important;line-height:.94!important;letter-spacing:-.072em!important;max-width:850px!important}
.home-hero p{font-size:12px!important;max-width:620px!important;line-height:1.72!important}
.home-overview-card{border-radius:18px!important;background:color-mix(in srgb,var(--surface) 88%,transparent)!important}
.np44-quickbar,.np46-discovery-strip,.np46-discovery-dock,.np47-home-nav{display:none!important}
.home-featured-section,.home-catalog-panel{padding:22px!important;border-radius:var(--np47-radius-lg)!important;background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 98%,transparent),color-mix(in srgb,var(--surface-2) 56%,var(--surface)))!important;box-shadow:0 16px 50px rgba(0,0,0,.065)!important}
.home-section-head h2{font-size:clamp(23px,2.3vw,32px)!important}
.video-grid{gap:19px 15px!important}
.video-card{transform:translateZ(0)}
.video-card:hover{transform:translateY(-3px)!important}
.video-thumb{border-radius:14px!important;box-shadow:0 12px 32px rgba(0,0,0,.13)!important}
.video-thumb.preview-active{box-shadow:0 20px 54px rgba(0,0,0,.28),0 0 0 1px color-mix(in srgb,var(--red) 24%,transparent)!important}
.preview-status{backdrop-filter:blur(10px)!important}
.np46-preview-badge{background:rgba(5,6,8,.7)!important;backdrop-filter:blur(9px)!important;border:1px solid rgba(255,255,255,.08)!important}

/* ----- categories: new library visualization ----- */
.category-hero{position:relative;overflow:hidden;min-height:245px;padding:34px!important;border-radius:var(--np47-radius-xl)!important;background:linear-gradient(135deg,color-mix(in srgb,var(--surface) 97%,transparent),color-mix(in srgb,var(--surface-2) 75%,var(--surface)))!important;box-shadow:var(--np47-shadow)!important}
.category-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,color-mix(in srgb,var(--line) 13%,transparent) 1px,transparent 1px),linear-gradient(color-mix(in srgb,var(--line) 13%,transparent) 1px,transparent 1px);background-size:46px 46px;mask-image:linear-gradient(to right,#000,transparent 80%);pointer-events:none}
.category-hero>div,.category-tools{position:relative;z-index:2}
.category-hero h1{font-size:clamp(40px,5vw,64px)!important;letter-spacing:-.06em!important}
.category-tools{min-width:min(440px,100%)!important;padding:8px;border:1px solid var(--line-soft);border-radius:14px;background:color-mix(in srgb,var(--surface-2) 72%,transparent);backdrop-filter:blur(10px)}
.category-tools input{min-height:42px!important;border-radius:10px!important}
.category-visual-grid{gap:14px!important}
.category-visual-card{border-radius:17px!important;box-shadow:0 14px 36px rgba(0,0,0,.09)!important;transition:transform .18s var(--np47-ease),box-shadow .2s ease,border-color .2s ease!important}
.category-visual-card:hover{transform:translateY(-3px)!important;box-shadow:0 24px 60px rgba(0,0,0,.16)!important}
.np47-category-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0 2px;padding:9px 11px;border:1px solid var(--line-soft);border-radius:14px;background:color-mix(in srgb,var(--surface) 86%,transparent);backdrop-filter:blur(14px)}
.np47-category-toolbar span{font-size:8px;color:var(--muted)}
.np47-category-toolbar b{color:var(--text)}
.np47-category-toolbar a{color:var(--text);text-decoration:none;font-size:8px;font-weight:800}
.np46-category-selected-hero{min-height:270px!important;border-radius:var(--np47-radius-xl)!important;box-shadow:var(--np47-shadow)!important}

/* ----- watch / video page ----- */
.watch-page{padding-top:4px!important}
.watch-page-head{margin-bottom:10px!important;padding:15px 2px 8px!important}
.watch-layout{grid-template-columns:minmax(0,1fr) minmax(260px,330px)!important;gap:20px!important}
.player-shell{border-radius:26px!important;border:1px solid rgba(255,255,255,.11)!important;box-shadow:0 42px 126px rgba(0,0,0,.43)!important;background:#050507!important}
.player-topline{min-height:48px!important;padding-inline:14px!important}
.player-stage{min-height:0!important;background:#000!important}
.player{aspect-ratio:16/9;min-height:0!important}
.player iframe,.player video{width:100%!important;height:100%!important;object-fit:contain!important}
.noir-custom-player .np-controls{padding-inline:14px!important;padding-bottom:12px!important}
.noir-custom-player .np-center-play{width:76px!important;height:76px!important;border-radius:22px!important}
.source-dock{padding:10px 12px!important;border-top:1px solid rgba(255,255,255,.075)!important}
.source-buttons{gap:7px!important}.source-button{min-height:41px!important;border-radius:11px!important}
.video-info-card{padding:20px!important;border-radius:20px!important;box-shadow:0 18px 58px rgba(0,0,0,.11)!important}
.watch-title{font-size:clamp(25px,2.6vw,38px)!important;letter-spacing:-.05em!important}
.quick-actions{gap:8px!important}.action-button{min-height:40px!important;border-radius:11px!important}
.watch-related-panel{border-radius:20px!important;box-shadow:0 18px 54px rgba(0,0,0,.11)!important}
.comments-card{border-radius:20px!important;box-shadow:0 16px 50px rgba(0,0,0,.08)!important}
.np47-viewer-tools{display:flex;align-items:center;gap:7px;margin-left:auto}
.np47-viewer-tools button{display:inline-flex;align-items:center;gap:6px;min-height:31px;padding:6px 9px;border:1px solid rgba(255,255,255,.08);border-radius:9px;background:rgba(255,255,255,.035);color:#a6a9b0;font:inherit;font-size:7px;font-weight:800;cursor:pointer}
.np47-viewer-tools button:hover,.np47-viewer-tools button.active{color:#fff;background:rgba(255,255,255,.08)}
body.np47-cinema .watch-page>.container{width:min(1800px,calc(100% - 22px))!important;max-width:none!important}
body.np47-cinema .watch-layout{grid-template-columns:minmax(0,1fr)!important}
body.np47-cinema .watch-side{display:none!important}
body.np47-cinema .player{max-height:84vh!important}

/* page restore safety: curtain must never linger after BFCache restore */
body:not(.np43-leaving) .np43-page-curtain{opacity:0!important;pointer-events:none!important}

/* ----- mobile ----- */
@media(max-width:900px){
  .np47-home-nav{grid-template-columns:1fr 1fr}
  .watch-layout{grid-template-columns:1fr!important}
  .watch-related-panel{position:relative!important;top:auto!important}
}
@media(max-width:760px){
  .container{width:min(100%,calc(100% - 20px))}
  .home-main{padding-top:10px!important;gap:14px!important}
  .home-hero{border-radius:20px!important;min-height:0!important}
  .home-hero-copy{padding:30px 20px 22px!important}
  .home-hero h1{font-size:clamp(36px,11vw,52px)!important}
  .home-hero-side{padding:0 14px 16px!important}
  .np47-home-nav{gap:7px;padding:7px;border-radius:14px}
  .np47-home-nav a{min-height:50px;padding:8px}.np47-home-nav i{width:28px;height:28px}
  .home-featured-section,.home-catalog-panel{padding:14px!important;border-radius:16px!important}
  .category-hero{display:block!important;min-height:0;padding:23px 18px!important;border-radius:18px!important}
  .category-hero h1{font-size:40px!important}.category-tools{margin-top:18px!important;min-width:0!important;width:100%!important}
  .np47-category-toolbar{margin-top:12px}
  .watch-page>.container{width:100%!important;max-width:none!important}
  .watch-page-head{padding:9px 12px!important}
  .np-ad-video-top{margin-inline:10px!important}
  .player-shell{border-radius:0!important;border-left:0!important;border-right:0!important}
  .player-topline{min-height:40px!important;padding-inline:8px!important}
  .player{width:100vw!important;max-width:100vw!important;aspect-ratio:16/9!important}
  .source-dock{padding:8px!important;border-radius:0!important}
  .video-info-card{margin:10px!important;padding:15px!important;border-radius:15px!important}
  .comments-card{margin-inline:10px!important;border-radius:15px!important}
  .watch-side{display:none!important}
  .np47-viewer-tools button span{display:none}
}
@media(prefers-reduced-motion:reduce){
  .age-gate,.age-card{animation:none!important}
}


/* ----- v47.2 compact hero + equal mini-reel cards ----- */
.home-hero{
  min-height:290px!important;
  grid-template-columns:minmax(0,1.28fr) minmax(300px,.72fr)!important;
  align-items:stretch!important;
}
.home-hero-copy{padding:38px 34px!important}
.home-hero h1{
  font-size:clamp(34px,4.7vw,64px)!important;
  max-width:640px!important;
  margin:14px 0 12px!important;
}
.home-hero p{
  max-width:520px!important;
  font-size:11px!important;
  line-height:1.65!important;
}
.home-badge{margin-bottom:8px!important}
.home-hero-actions{margin-top:20px!important;gap:8px!important}
.home-hero-actions .btn{min-height:46px!important;padding:0 18px!important}
.home-hero-side{padding:18px 20px 18px 6px!important;align-items:stretch!important}
.home-overview-card{
  height:100%!important;
  padding:14px!important;
  border-radius:18px!important;
}
.home-compact-stats{gap:8px!important;margin-bottom:10px!important}
.home-compact-stats article{padding:12px 14px!important;min-height:88px!important}
.home-compact-stats article b{font-size:20px!important}
.home-hero-note{margin-bottom:12px!important;padding:10px 12px!important}
.np36-mini-reel{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:8px!important;
  margin-top:12px!important;
}
.np36-mini-reel a,
.np36-mini-reel a:first-child{
  grid-row:auto!important;
  aspect-ratio:16/10!important;
  min-height:72px!important;
}
.np36-mini-reel-badge{font-size:8px!important;padding:4px 6px!important}

@media(max-width:1100px){
  .home-hero{
    min-height:0!important;
    grid-template-columns:minmax(0,1fr) 320px!important;
  }
  .home-hero-copy{padding:34px 28px!important}
  .home-hero h1{font-size:clamp(34px,4.3vw,56px)!important}
}
@media(max-width:760px){
  .home-hero{grid-template-columns:1fr!important}
  .home-hero-copy{padding:28px 18px 20px!important}
  .home-hero h1{font-size:clamp(34px,10.5vw,48px)!important}
  .home-hero p{max-width:none!important}
  .home-hero-side{padding:0 14px 16px!important}
  .home-overview-card{padding:12px!important}
  .np36-mini-reel a,
  .np36-mini-reel a:first-child{min-height:68px!important}
}
