:root{
    --bg:#0a0a0d; --bg-elev:#111116; --card:#17171e; --card-hover:#1e1e27; --line:#232330;
    --text:#eceef1; --muted:#8b8c98;
    --accent:#e8b64c; --accent2:#5b8def; --accent3:#e05d5d; --accent4:#5fd6a4;
    --accent-music:#a855f7; --accent-kids:#f9a8d4;
    --p-color:#e50914; --p-bg:#2b0405; --p-bg2:#0d0202; --p-accent:#ff4d4d;
    --cta:#ffffff; --cta-text:#0a0a0d; --rank:#ffffff;
    --ease:cubic-bezier(.22,1,.36,1);
    --ease-spring:cubic-bezier(.34,1.56,.64,1);
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{background:var(--bg); color:var(--text); font-family:'Inter',sans-serif; line-height:1.5; padding-bottom:100px; -webkit-font-smoothing:antialiased; transition:background .4s var(--ease);}
  a{color:inherit; text-decoration:none;}
  img{display:block; max-width:100%;}
  @keyframes fadeUp{from{opacity:0; transform:translateY(14px);} to{opacity:1; transform:translateY(0);}}
  @keyframes popIn{from{opacity:0; transform:scale(.85);} to{opacity:1; transform:scale(1);}}
  @keyframes fade{from{opacity:0;} to{opacity:1;}}
  @keyframes shimmer{from{transform:translateX(-100%);} to{transform:translateX(100%);}}
  .anim-up{animation:fadeUp .45s var(--ease) both;}
  .anim-pop{animation:popIn .4s var(--ease-spring) both;}

  header{position:relative; z-index:2; display:flex; align-items:center; gap:16px; min-height:52px; padding:calc(14px + env(safe-area-inset-top,0px)) 5vw 14px; background:var(--bg); flex-wrap:wrap;}
  .logo{font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:24px; display:flex; align-items:center; gap:8px; flex-shrink:0; letter-spacing:-0.02em;}
  .logo .marks{display:flex; gap:6px; font-size:14px; letter-spacing:2px;}
  .logo .marks span:nth-child(1){color:var(--accent);} .logo .marks span:nth-child(2){color:var(--accent2);}
  .logo .marks span:nth-child(3){color:var(--accent3);} .logo .marks span:nth-child(4){color:var(--accent4);}
  nav{display:flex; gap:16px; font-size:14px; color:var(--muted); overflow-x:auto;}
  nav::-webkit-scrollbar{display:none;}
  nav a{cursor:pointer; padding-bottom:14px; border-bottom:2px solid transparent; white-space:nowrap;}
  nav a.active{color:var(--text); border-color:var(--accent2);}
  .header-tools{margin-left:auto; display:flex; align-items:center; gap:8px; margin-bottom:12px; flex-wrap:wrap;}
  .region-select{background:var(--bg-elev); color:var(--text); border:1px solid var(--line); border-radius:14px; padding:6px 10px; font-size:11.5px; outline:none; cursor:pointer;}
  .search-wrap{position:relative; width:min(300px,30vw);}
  .search-wrap input{width:100%; padding:9px 14px 9px 34px; border-radius:20px; border:1px solid var(--line); background:var(--bg-elev); color:var(--text); font-size:13px; outline:none;}
  .search-wrap svg{position:absolute; left:11px; top:50%; transform:translateY(-50%); opacity:.5;}
  .search-results{position:absolute; top:calc(100% + 8px); left:0; right:0; background:var(--card); border:1px solid var(--line); border-radius:12px; max-height:70vh; overflow-y:auto; display:none; z-index:60;}
  .search-results.open{display:block;}
  .sr-item{display:flex; gap:10px; padding:8px 10px; cursor:pointer; align-items:center;}
  .sr-item:hover{background:var(--card-hover);}
  .sr-item img{width:36px; height:52px; object-fit:cover; border-radius:6px; background:#222;}
  .sr-item .sr-t{font-size:13px; font-weight:600;}
  .sr-item .sr-m{font-size:11px; color:var(--muted);}

  .cat-bar{display:flex; gap:8px; overflow-x:auto; padding:12px 5vw 4px; background:var(--bg); position:relative;}
  .cat-bar::-webkit-scrollbar{display:none;}
  .cat-chip{flex:0 0 auto; padding:7px 15px; border-radius:18px; border:1px solid var(--line); font-size:12.5px; color:var(--muted); cursor:pointer; background:var(--bg-elev); white-space:nowrap;}
  .cat-chip:hover{color:var(--text); border-color:var(--accent2);}

  .hero{position:relative; min-height:76vh; display:flex; align-items:flex-end; background-size:cover; background-position:center top; padding:0 5vw 56px;}
  .hero::before{content:''; position:absolute; inset:0; background:linear-gradient(to top, var(--bg) 4%, rgba(10,10,13,.55) 45%, rgba(10,10,13,.15) 75%), linear-gradient(to right, rgba(10,10,13,.85) 0%, rgba(10,10,13,.2) 55%);}
  .hero-content{position:relative; max-width:640px;}
  .hero-eyebrow{font-size:12px; color:var(--accent); font-weight:600; margin-bottom:10px; letter-spacing:.06em; text-transform:uppercase;}
  .hero-title{font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:clamp(36px,5vw,72px); line-height:1.05; margin-bottom:14px;}
  .hero-meta{display:flex; gap:10px; align-items:center; font-size:13px; color:var(--muted); margin-bottom:16px; flex-wrap:wrap;}
  .hero-meta .rating{color:var(--accent); font-weight:600;}
  .hero-overview{font-size:14.5px; color:#c7c8d0; max-width:540px; margin-bottom:24px; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;}
  .hero-actions{display:flex; gap:12px; flex-wrap:wrap; align-items:center;}

  .btn{padding:13px 24px; border-radius:12px; font-size:16px; font-weight:600; border:none; cursor:pointer; display:inline-flex; align-items:center; gap:8px; transition:all .18s;}
  .btn:active{transform:scale(.95);}
  .btn-primary{background:var(--text); color:#0a0a0d;}
  .btn-ghost{background:rgba(255,255,255,.08); color:var(--text); border:1px solid var(--line);}
  .btn-play{background:var(--cta); color:var(--cta-text);}
  .btn-prov{background:var(--cta); color:var(--cta-text);}
  .btn-icon{width:40px; height:40px; padding:0; border-radius:50%; background:rgba(255,255,255,.08); border:1px solid var(--line); color:var(--text); display:inline-flex; align-items:center; justify-content:center; cursor:pointer;}
  .btn-icon.saved{background:var(--accent); color:#0a0a0d; border-color:var(--accent);}

  .section{padding:34px 0 6px; content-visibility:auto; contain-intrinsic-size:auto 340px;}
  .section-head{padding:0 5vw; margin-bottom:14px; display:flex; align-items:baseline; justify-content:space-between; gap:12px;}
  .section-head h2{font-family:'Space Grotesk',sans-serif; font-size:24px; font-weight:600;}
  .section-head p{font-size:12.5px; color:var(--muted); margin-top:2px;}
  .section-head .see-all{font-size:12.5px; color:var(--cta); cursor:pointer; flex-shrink:0; font-weight:600;}
  .rail{display:flex; gap:14px; overflow-x:auto; padding:2px 5vw 14px; scroll-snap-type:x proximity; overscroll-behavior-x:contain;}
  .rail::-webkit-scrollbar{height:6px;} .rail::-webkit-scrollbar-thumb{background:var(--line); border-radius:3px;}
  .card{flex:0 0 auto; width:190px; cursor:pointer; scroll-snap-align:start; transition:transform .22s; position:relative;}
  .card:hover{transform:translateY(-5px);}
  .poster-wrap{position:relative; border-radius:12px; overflow:hidden; background:var(--card); aspect-ratio:2/3;}
  .poster-wrap img{width:100%; height:100%; object-fit:cover;}
  .badge-rating{position:absolute; top:7px; left:7px; background:rgba(10,10,13,.75); color:var(--accent); font-size:11px; font-weight:700; padding:2px 6px; border-radius:5px;}
  .badge-type{position:absolute; top:7px; right:7px; font-size:10px; font-weight:700; padding:2px 6px; border-radius:5px; color:#0a0a0d;}
  .badge-type.movie{background:var(--accent2);} .badge-type.tv{background:var(--accent3);}
  .badge-type.anime{background:var(--accent4);} .badge-type.music{background:var(--accent-music); color:#fff;}
  .badge-type.kids{background:var(--accent-kids); color:#4a0e2a;}
  .card-save{position:absolute; top:7px; right:7px; z-index:3; width:30px; height:30px; border-radius:50%; background:rgba(10,10,13,.75); border:none; color:#fff; cursor:pointer; display:flex; align-items:center; justify-content:center; opacity:0; transform:scale(.8); transition:all .2s;}
  .card:hover .card-save{opacity:1; transform:scale(1);}
  .card-save.saved{background:var(--accent); color:#0a0a0d; opacity:1; transform:scale(1);}
  .card-save svg{width:14px; height:14px;}
  .card-title{font-size:12.5px; font-weight:600; margin-top:8px; line-height:1.3; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;}
  .card-sub{font-size:11px; color:var(--muted); margin-top:2px;}

  .rail-top10{align-items:flex-end; gap:10px; padding-left:5vw; scroll-padding-left:5vw;}
  .top10-item{flex:0 0 auto; width:210px; display:flex; flex-direction:column; cursor:pointer; scroll-snap-align:start; position:relative;}
  .top10-item:hover{transform:translateY(-5px); transition:transform .22s;}
  .top10-row{display:flex; align-items:flex-end; width:100%;}
  .top10-rank{position:relative; z-index:2; margin-right:-22px; font-family:'Space Grotesk',sans-serif; font-weight:800; font-size:96px; line-height:.78; color:#fff; -webkit-text-fill-color:#fff; text-shadow:2px 3px 0 rgba(0,0,0,.7); letter-spacing:-0.08em; pointer-events:none; user-select:none; font-variant-numeric:tabular-nums; flex-shrink:0;}
  .top10-rank.t10-wide{font-size:68px; margin-right:-16px;}
  .top10-item .poster-wrap{width:138px; position:relative; z-index:1; flex-shrink:0; box-shadow:0 8px 22px rgba(0,0,0,.5);}
  .top10-item .card-title,.top10-item .card-sub{width:138px; margin-left:auto; padding-left:0;}
  .top10-item .badge-type,.top10-item .card-save{display:none;}

  .chips{display:flex; flex-wrap:wrap; gap:9px; padding:0 5vw;}
  .chip{padding:8px 16px; border-radius:20px; border:1px solid var(--line); font-size:12.5px; color:var(--muted); cursor:pointer; background:var(--bg-elev);}
  .chip:hover{color:var(--text);}

  .grid-view{padding:20px 5vw 0; display:none;}
  .grid-view.open{display:block;}
  .grid-view .grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:16px;}
  .grid-view .grid > .card{width:auto;}
  .back-link{font-size:13px; color:var(--cta); cursor:pointer; display:inline-block; margin-bottom:16px;}

  .provider-launcher-section{padding:28px 0 8px;}
  .provider-launcher{display:grid; grid-template-columns:repeat(auto-fill, minmax(84px, 1fr)); gap:18px 10px; padding:2px 5vw 10px; max-width:1000px;}
  .provider-app{display:flex; flex-direction:column; align-items:center; gap:9px; cursor:pointer; border:none; background:transparent; padding:0; font-family:inherit; color:inherit; transition:transform .28s;}
  .provider-app:hover{transform:translateY(-6px);}
  .provider-app-icon{position:relative; width:72px; height:72px; border-radius:20px; background:linear-gradient(150deg, #1d1d26 0%, #101017 100%); display:flex; align-items:center; justify-content:center; overflow:hidden; box-shadow:0 8px 20px -8px rgba(0,0,0,.8), inset 0 1px 0 rgba(255,255,255,.08);}
  .provider-app-icon img{width:46px; height:46px; object-fit:contain; border-radius:10px;}
  .provider-app-icon .pa-fallback{font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:26px; color:var(--pa-color, #5b8def);}
  .provider-app-name{font-size:10.5px; text-align:center; color:var(--muted); font-weight:600; max-width:82px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}

  .hub-section{margin:0 5vw 22px; border-radius:16px; overflow:hidden; border:1px solid var(--line);}
  .hub-banner{display:flex; align-items:center; gap:14px; padding:18px 20px; cursor:pointer;}
  .hub-logo{height:28px; max-width:130px; object-fit:contain;}
  .hub-name{font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:17px;}
  .hub-body{background:var(--bg-elev); padding:16px 0 4px;}
  .hub-body .rail{padding:2px 20px 14px;}
  .hub-arrow{color:var(--muted); margin-left:8px; font-size:14px;}

  .modal-backdrop{position:fixed; inset:0; background:rgba(6,6,8,.85); backdrop-filter:blur(6px); display:none; align-items:flex-start; justify-content:center; z-index:100; overflow-y:auto; padding:40px 16px;}
  .modal-backdrop.open{display:flex;}
  .modal{background:var(--bg-elev); border:1px solid var(--line); border-radius:18px; width:min(860px,94vw); overflow:hidden;}
  .modal-hero{position:relative; aspect-ratio:16/7; background-size:cover; background-position:center;}
  .modal-hero::after{content:''; position:absolute; inset:0; background:linear-gradient(to top, var(--bg-elev), transparent 60%);}
  .modal-close{position:absolute; top:14px; right:14px; width:34px; height:34px; border-radius:50%; background:rgba(0,0,0,.6); color:#fff; border:none; font-size:15px; cursor:pointer; z-index:2;}
  .modal-body{padding:0 30px 30px; margin-top:-40px; position:relative;}
  .modal-body h2{font-family:'Space Grotesk',sans-serif; font-size:26px; margin-bottom:6px;}
  .modal-tagline{color:var(--muted); font-size:13px; font-style:italic; margin-bottom:12px;}
  .modal-meta{display:flex; gap:12px; flex-wrap:wrap; font-size:13px; color:var(--muted); margin-bottom:16px;}
  .modal-genres{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:16px;}
  .modal-genres span{font-size:11.5px; padding:4px 10px; border-radius:14px; background:var(--card); border:1px solid var(--line); cursor:pointer;}
  .modal-overview{font-size:14px; color:#d3d4da; margin-bottom:22px;}
  .modal-watch{display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:26px;}
  .modal-watch-note{font-size:12px; color:var(--muted); max-width:320px;}
  .modal-links{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:8px;}
  .modal-section{margin-top:22px;}
  .modal-section-title{font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); margin-bottom:12px; display:flex; align-items:center; gap:8px;}
  .modal-section-title::after{content:''; flex:1; height:1px; background:var(--line);}
  .cast-rail,.mini-rail{display:flex; gap:14px; overflow-x:auto; padding-bottom:8px;}
  .cast-rail::-webkit-scrollbar,.mini-rail::-webkit-scrollbar{height:5px;}
  .cast-rail::-webkit-scrollbar-thumb,.mini-rail::-webkit-scrollbar-thumb{background:var(--line); border-radius:3px;}
  .cast-card{flex:0 0 auto; width:90px; cursor:pointer;}
  .cast-img{width:90px; height:90px; border-radius:50%; object-fit:cover; background:var(--card); border:2px solid var(--line);}
  .cast-name{font-size:11.5px; font-weight:600; margin-top:8px; text-align:center; line-height:1.25;}
  .cast-role{font-size:10.5px; color:var(--muted); text-align:center; margin-top:2px;}
  .mini-card{flex:0 0 auto; width:120px; cursor:pointer;}
  .mini-card .mc-img{aspect-ratio:2/3; border-radius:10px; overflow:hidden; background:var(--card); position:relative;}
  .mini-card .mc-img img{width:100%; height:100%; object-fit:cover;}
  .mini-card .mc-rating{position:absolute; top:6px; left:6px; background:rgba(10,10,13,.75); color:var(--accent); font-size:10px; font-weight:700; padding:2px 5px; border-radius:4px;}
  .mini-card .mc-title{font-size:11.5px; font-weight:600; margin-top:7px; line-height:1.3;}

  .player-overlay{position:fixed; inset:0; z-index:200; background:#050507; display:none; flex-direction:column;}
  .player-overlay.open{display:flex;}
  .player-bar{display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding:calc(10px + env(safe-area-inset-top,0px)) 16px 10px; background:var(--bg-elev); border-bottom:1px solid var(--line);}
  .p-close{width:34px; height:34px; flex-shrink:0; border-radius:50%; border:1px solid var(--line); background:var(--card); color:var(--text); font-size:14px; cursor:pointer;}
  .p-titlewrap{display:flex; align-items:center; gap:8px; flex:1 1 160px; min-width:0;}
  .p-title{font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:14.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
  .p-tag{flex-shrink:0; font-size:10px; font-weight:700; padding:3px 8px; border-radius:10px; background:var(--accent2); color:#06122b;}
  .player-picker{display:flex; gap:8px; align-items:center;}
  .player-picker select{background:var(--card); color:var(--text); border:1px solid var(--line); border-radius:8px; padding:6px 10px; font-size:12.5px; outline:none; cursor:pointer;}
  .p-link{font-size:12px; color:var(--muted); border:1px solid var(--line); border-radius:8px; padding:6px 12px; white-space:nowrap;}
  .player-stage{flex:1; position:relative; background:#000; min-height:0;}
  .player-stage iframe,.player-stage video{position:absolute; inset:0; width:100%; height:100%; border:0; background:#000;}
  .player-stage video{object-fit:contain;}
  #playerStatus{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:10px; color:var(--muted); font-size:14px; text-align:center; padding:24px; pointer-events:none; z-index:2;}
  #playerStatus.hide{display:none;}
  #playerStatus b{color:var(--text);}
  .player-note{padding:9px 16px calc(9px + env(safe-area-inset-bottom,0px)); font-size:11.5px; color:var(--muted); background:var(--bg-elev); border-top:1px solid var(--line); text-align:center;}

  .loader{display:flex; align-items:center; justify-content:center; padding:60px; color:var(--muted); font-size:13px; text-align:center; flex-direction:column; gap:8px;}
  .loader.err{color:var(--accent3);} .loader.small{padding:30px;}
  .loader code{font-size:11px; color:var(--muted); background:var(--card); padding:6px 10px; border-radius:6px; max-width:90%; overflow-wrap:anywhere;}
  .skel{position:relative; overflow:hidden; background:var(--card); border-radius:12px; flex:0 0 auto; width:150px; aspect-ratio:2/3;}
  .skel::after{content:''; position:absolute; inset:0; background:linear-gradient(90deg, transparent, rgba(255,255,255,.05), transparent); animation:shimmer 1.4s infinite;}

  .toast{position:fixed; bottom:calc(96px + env(safe-area-inset-bottom,0px)); left:50%; transform:translateX(-50%) translateY(20px); background:var(--card); border:1px solid var(--line); color:var(--text); font-size:13px; font-weight:600; padding:12px 20px; border-radius:12px; z-index:300; opacity:0; pointer-events:none; transition:all .3s;}
  .toast.show{opacity:1; transform:translateX(-50%) translateY(0);}

  footer{padding:50px 5vw 20px; color:var(--muted); font-size:12px; line-height:1.7; border-top:1px solid var(--line); margin-top:40px;}
  .legal-links{display:flex; flex-wrap:wrap; gap:14px; margin-top:8px;}
  .legal-links a{color:var(--muted); text-decoration:none;}
  .legal-links a:hover{color:var(--text);}
  footer b{color:var(--text);}

  .tunnel-chip{display:none !important;}
  .tunnel-chip .dot{width:7px; height:7px; border-radius:50%; background:#8b8c98; flex-shrink:0;}
  .tunnel-chip.ok .dot{background:var(--accent4);} .tunnel-chip.bad .dot{background:var(--accent3);} .tunnel-chip.busy .dot{background:var(--accent); animation:fade 1s infinite alternate;}
  .tunnel-chip select,.tunnel-chip input{background:transparent; color:var(--text); border:0; outline:none; font-size:11px; max-width:160px; font-family:inherit;}
  .tunnel-chip button{background:var(--card); color:var(--text); border:1px solid var(--line); border-radius:10px; padding:3px 8px; font-size:10.5px; cursor:pointer;}
  #keyBanner{display:none; background:#2a1414; color:#ffb4b4; font-size:12.5px; padding:10px 5vw; text-align:center;}
  #keyBanner.show{display:block;}


  .prov-home-bar{display:flex; align-items:center; gap:12px; padding:18px 5vw 4px; flex-wrap:wrap;}
  .prov-badge{display:flex; align-items:center; gap:10px; padding:6px 14px 6px 8px; border-radius:24px; background:var(--p-bg); border:1px solid var(--p-color);}
  .prov-badge img{height:22px; width:auto; max-width:100px; object-fit:contain;}
  .prov-badge span{font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:13.5px; color:var(--p-color);}
  .prov-hero{position:relative; min-height:72vh; display:flex; align-items:flex-end; padding:0 5vw 60px; overflow:hidden;}
  .prov-hero::after{content:''; position:absolute; inset:0; background:linear-gradient(to top, var(--p-bg) 6%, rgba(0,0,0,.45) 55%, rgba(0,0,0,.1) 85%);}
  .prov-hero .hero-content{position:relative; z-index:2;}
  .prov-hero .hero-logo{max-width:260px; max-height:90px;}
  .prov-hero .hero-title{color:#fff;}
  .prov-hero .prov-hero-tagline{font-size:15px; color:#d5d6dd; max-width:520px; margin-bottom:22px;}

  .brand-hubs{display:flex; gap:12px; overflow-x:auto; padding:2px 5vw 14px;}
  .brand-tile{flex:0 0 auto; min-width:150px; height:86px; border-radius:14px; display:flex; align-items:center; justify-content:center; font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:18px; color:#fff; cursor:pointer; border:1px solid rgba(255,255,255,.08);}

  .music-card{flex:0 0 auto; width:170px; cursor:pointer;}
  .music-art{position:relative; border-radius:14px; overflow:hidden; background:var(--card); aspect-ratio:1/1;}
  .music-art img{width:100%; height:100%; object-fit:cover;}
  .music-art .badge-music{position:absolute; bottom:7px; right:7px; background:rgba(10,10,13,.8); color:var(--accent-music); font-size:10px; font-weight:700; padding:3px 7px; border-radius:5px;}

  @media (max-width:640px){
    header{gap:10px; padding:calc(12px + env(safe-area-inset-top,0px)) 4vw 0;}
    nav{display:none;}
    .header-tools{width:100%; margin-left:0;}
    .search-wrap{width:100%; flex:1;}
    .cat-bar{top:64px;}
    .hero{min-height:64vh;}
    .hero-title{font-size:clamp(28px,8vw,40px);}
    .btn{padding:11px 20px; font-size:14px;}
    .card{width:132px;}
    .section-head h2{font-size:20px;}
    .rail-top10{gap:8px; padding-left:4vw;}
    .top10-item{width:142px;}
    .top10-rank{font-size:56px; margin-right:-14px;}
    .top10-rank.t10-wide{font-size:40px; margin-right:-10px;}
    .top10-item .poster-wrap,
    .top10-item .card-title,
    .top10-item .card-sub{width:96px;}
    .section-head .see-all{font-size:12px; padding-right:8px;}
  }

  .card:focus-visible, .top10-item:focus-visible, .provider-app:focus-visible,
  .btn:focus-visible, .see-all:focus-visible, .cat-chip:focus-visible,
  nav a:focus-visible, .p-close:focus-visible,
  .region-select:focus-visible, .search-wrap input:focus-visible,
  .player-picker select:focus-visible {
    outline: 3px solid #fff;
    outline-offset: 4px;
  }

  @media (min-width:900px){
    header nav{display:flex;}
    .logo{font-size:26px;}
    nav{font-size:16px; gap:20px;}
    .search-wrap{width:min(380px,32vw);}
    .search-wrap input{font-size:15px; padding:11px 16px 11px 38px;}
    .hero{min-height:80vh; padding:0 5vw 70px;}
    .hero-title{font-size:clamp(44px,5.2vw,78px);}
    .hero-overview{font-size:17px; max-width:620px;}
    .btn{padding:15px 28px; font-size:17px;}
    .card{width:200px;}
    .card-title{font-size:14px;}
    .section-head h2{font-size:26px;}
    .section-head p{font-size:14px;}
    .see-all{font-size:15px;}
    .rail{gap:18px; padding:4px 5vw 22px;}
    .top10-item{width:230px;}
    .top10-rank{font-size:108px; margin-right:-30px;}
    .top10-item .poster-wrap, .top10-item .card-title, .top10-item .card-sub{width:150px;}
    .provider-app-icon{width:84px; height:84px;}
    .cat-chip{padding:9px 18px; font-size:14px;}
  }
  @media (min-width:1280px){
    body{padding-bottom:48px;}
    .logo{font-size:30px;}
    nav{font-size:18px; gap:24px;}
    .hero{min-height:84vh; padding:0 6vw 80px;}
    .hero-title{font-size:clamp(52px,5.6vw,88px);}
    .hero-overview{font-size:19px; max-width:700px; -webkit-line-clamp:4;}
    .hero-meta{font-size:16px;}
    .btn{padding:18px 32px; font-size:19px; border-radius:14px;}
    .card{width:230px;}
    .card-title{font-size:15px;}
    .section-head{padding:0 6vw; margin-bottom:18px;}
    .section-head h2{font-size:30px;}
    .rail{gap:22px; padding:4px 6vw 26px;}
    .rail-top10{padding-left:6vw;}
    .top10-item{width:260px;}
    .top10-rank{font-size:124px; margin-right:-34px;}
    .top10-item .poster-wrap, .top10-item .card-title, .top10-item .card-sub{width:170px;}
    .provider-app-icon{width:92px; height:92px; border-radius:22px;}
  }
  @media (min-width:1600px){
    .card{width:250px;}
    .hero-title{font-size:clamp(58px,5.8vw,96px);}
    .top10-item{width:280px;}
    .top10-rank{font-size:136px;}
    .top10-item .poster-wrap, .top10-item .card-title, .top10-item .card-sub{width:186px;}
  }

  body.tv{
    font-size:18px;
    padding: 3.5vh 0 4vh;
    cursor: none;
  }
  body.tv header{padding:3.5vh 6vw 0; background:linear-gradient(to bottom, rgba(10,10,13,.98), transparent);}
  body.tv .logo{font-size:32px;}
  body.tv nav{font-size:22px; gap:28px;}
  body.tv nav a{padding-bottom:18px;}
  body.tv .header-tools{display:none;}
  body.tv .cat-bar{padding:16px 6vw; top:72px;}
  body.tv .cat-chip{padding:12px 22px; font-size:18px; border-radius:24px;}
  body.tv .hero{min-height:78vh; padding:0 6vw 8vh;}
  body.tv .hero-eyebrow{font-size:18px;}
  body.tv .hero-title{font-size:clamp(48px,6vw,84px);}
  body.tv .hero-meta{font-size:18px;}
  body.tv .hero-overview{font-size:20px; max-width:720px; -webkit-line-clamp:3;}
  body.tv .btn{padding:18px 32px; font-size:22px;}
  body.tv .section-head{padding:0 6vw; margin-bottom:20px;}
  body.tv .section-head h2{font-size:32px;}
  body.tv .section-head p{font-size:16px;}
  body.tv .see-all{font-size:18px;}
  body.tv .card{width:210px;}
  body.tv .card-title{font-size:16px;}
  body.tv .rail{gap:22px; padding:4px 6vw 28px;}
  body.tv .rail-top10{padding-left:6vw; gap:16px;}
  body.tv .top10-item{width:240px;}
  body.tv .top10-rank{font-size:128px; margin-right:-32px;}
  body.tv .top10-item .poster-wrap,
  body.tv .top10-item .card-title,
  body.tv .top10-item .card-sub{width:160px;}
  body.tv .provider-app-icon{width:96px; height:96px; border-radius:24px;}
  body.tv .player-bar{height:72px; padding:0 24px;}
  body.tv .p-close{width:52px; height:52px; font-size:22px;}
  body.tv .p-title{font-size:22px;}
  body.tv footer{display:none;}
  body.tv .card:focus, body.tv .top10-item:focus, body.tv .provider-app:focus,
  body.tv .btn:focus, body.tv nav a:focus, body.tv .cat-chip:focus, body.tv .see-all:focus{
    outline: 4px solid #fff;
    outline-offset: 6px;
    transform: translateY(-6px) scale(1.04);
  }
