/*
Theme Name: Fasturious
Theme URI: https://fasturious.com
Author: Fasturious
Description: Fast, Elementor-ready magazine theme with series guides, scholarships, tech blog, free tools, dark mode and built-in AdSense placements.
Version: 1.17.4
Requires at least: 6.0
Requires PHP: 7.4
License: GPL v2 or later
Text Domain: fasturious
*/
:root{--blue:#1e6fd9;--orange:#ff5a1f;--a1:var(--blue);--a2:var(--orange);--bg:#f5f7fb;--card:#fff;--tx:#0f172a;--mut:#64748b;--bd:#e2e8f0;--lk:#1e6fd9;--hd:rgba(255,255,255,.86);--r:16px;--sh:0 8px 28px rgba(15,23,42,.08);--w:1200px;--font:system-ui,-apple-system,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;--head:'Poppins',system-ui,-apple-system,'Segoe UI',Arial,sans-serif}
[data-theme=dark]{--bg:#0b1020;--card:#131a2e;--tx:#e8edf7;--mut:#9aa8c0;--bd:#212c48;--lk:#8ab8ff;--hd:rgba(11,16,32,.86);--sh:0 8px 28px rgba(0,0,0,.45)}
body.sec-ncis{--a1:#0b2a6b;--a2:#c9a227}
body.sec-hudson{--a1:#0b6b57;--a2:#f59e0b}
body.sec-scholarships{--a1:#6d28d9;--a2:#ec4899}
body.sec-tech{--a1:#0891b2;--a2:#2563eb}
body.sec-tools{--a1:#f43f5e;--a2:#f97316}
body.sec-video-tools{--a1:#cc0000;--a2:#ff5a1f}
body.sec-games{--a1:#6a11cb;--a2:#2575fc}
@font-face{font-family:'Poppins';font-style:normal;font-weight:600 800;font-display:swap;src:url(assets/fonts/poppins-700.woff2) format('woff2')}
*{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:hidden;max-width:100vw}
body{margin:0;background:var(--bg);color:var(--tx);font:16px/1.7 var(--font);-webkit-font-smoothing:antialiased;transition:background .3s,color .3s;overflow-x:hidden;max-width:100vw;width:100%}
img{max-width:100%;height:auto;display:block}a{color:var(--lk);text-decoration:none}
h1,h2,h3,h4{font-family:var(--head);line-height:1.2;margin:0 0 .5em}
.wrap{max-width:var(--w);margin:0 auto;padding:0 20px}.narrow{max-width:820px}.center{text-align:center}
.skip{position:absolute;left:-999px}.skip:focus{left:10px;top:10px;background:#fff;padding:8px;z-index:999}
/* header */
.site-header{position:sticky;top:0;z-index:50;background:var(--hd);backdrop-filter:blur(14px);border-bottom:1px solid var(--bd);transition:box-shadow .3s}
.site-header.stuck{box-shadow:0 6px 24px rgba(0,0,0,.08)}
.hdr{display:flex;align-items:center;justify-content:space-between;gap:16px;height:68px;width:100%}
.brand{display:flex;align-items:center;gap:10px;color:var(--tx);flex-shrink:1;min-width:0;text-decoration:none}
.brand img{border-radius:50%;transition:transform .6s;flex-shrink:0;display:block}
.brand:hover img{transform:rotate(360deg)}
.bt{font:800 22px var(--head);background:linear-gradient(90deg,var(--blue),var(--orange));-webkit-background-clip:text;background-clip:text;color:transparent;letter-spacing:-.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav{flex:1;margin:0 12px}.menu,.fmenu{list-style:none;margin:0;padding:0;display:flex;gap:4px}
.menu a{display:block;padding:8px 14px;border-radius:10px;color:var(--tx);font-weight:600;font-size:15px;transition:background .2s,color .2s}
.menu a:hover,.menu .current-menu-item>a{background:linear-gradient(90deg,var(--blue),var(--orange));color:#fff}
.menu li{position:relative}.sub-menu{list-style:none;margin:0;padding:8px;position:absolute;top:100%;left:0;min-width:240px;background:var(--card);border:1px solid var(--bd);border-radius:14px;box-shadow:var(--sh);opacity:0;visibility:hidden;transform:translateY(8px);transition:.2s}
.menu li:hover>.sub-menu,.menu li:focus-within>.sub-menu{opacity:1;visibility:visible;transform:none}
.hdr-a{display:flex;align-items:center;gap:6px;flex-shrink:0;margin-left:auto}
.ib{width:40px;height:40px;border-radius:12px;border:1px solid var(--bd);background:var(--card);color:var(--tx);cursor:pointer;display:grid;place-items:center;transition:transform .2s,background .2s;flex-shrink:0}
.ib:hover{transform:translateY(-2px);background:var(--bd)}
.menu-btn{display:none}
.langs{display:flex;gap:4px;align-items:center;margin-right:2px}
.langs a{font:700 12px var(--head);padding:5px 9px;border-radius:9px;border:1px solid var(--bd);color:var(--tx);text-decoration:none;transition:background .2s,color .2s;display:inline-block}
.langs a.on{background:linear-gradient(90deg,var(--blue),var(--orange));color:#fff;border-color:transparent}
.nav-lang-bar{display:none}
.i-sun{display:none}[data-theme=dark] .i-sun{display:block}[data-theme=dark] .i-moon{display:none}
.search-ov{max-height:0;overflow:hidden;transition:max-height .3s;background:var(--card)}.search-ov.open{max-height:100px;border-bottom:1px solid var(--bd)}.search-ov .wrap{padding:14px 20px}
.sform{display:flex;background:var(--card);border:2px solid var(--bd);border-radius:14px;overflow:hidden;max-width:640px;margin:0 auto}
.sform input{flex:1;border:0;background:transparent;color:var(--tx);padding:13px 18px;font:inherit;outline:0}.sform button{border:0;background:linear-gradient(90deg,var(--blue),var(--orange));color:#fff;padding:0 18px;cursor:pointer}
/* hero */
.hero{position:relative;overflow:hidden;color:#fff;padding:72px 0;background:linear-gradient(135deg,var(--a1),var(--a2));background-size:200% 200%;animation:bg 14s ease infinite}
.hero-in{position:relative;z-index:2;text-align:center;max-width:860px}.hero h1{font-size:clamp(30px,5vw,54px);font-weight:800;color:#fff}.hero p{font-size:18px;opacity:.95;margin:0 auto 20px}
.hero-ic{font-size:52px;display:inline-block;animation:flt 4s ease-in-out infinite}
.hero-master{padding:96px 0 84px;background:linear-gradient(135deg,#0b3a8f,#1e6fd9 45%,#ff5a1f)}.grad{background:linear-gradient(90deg,#ffd27a,#fff);-webkit-background-clip:text;background-clip:text;color:transparent}
.pill{display:inline-block;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.35);padding:5px 16px;border-radius:99px;font-weight:600;font-size:14px;margin-bottom:16px}
.blob{position:absolute;border-radius:50%;filter:blur(40px);opacity:.35;background:#fff;animation:flt 9s ease-in-out infinite}.b1{width:320px;height:320px;top:-100px;left:-60px}.b2{width:260px;height:260px;bottom:-90px;right:5%;animation-delay:-3s}.b3{width:180px;height:180px;top:30%;right:-40px;animation-delay:-6s}
@keyframes bg{50%{background-position:100% 50%}}@keyframes flt{50%{transform:translateY(-22px) scale(1.06)}}
/* sections */
.sec{margin:56px 0}.sec-h{display:flex;justify-content:space-between;align-items:end;margin-bottom:22px}.sec-h h2{margin:0;font-size:clamp(22px,3vw,30px)}.more{font-weight:700}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px;margin-top:-44px;position:relative;z-index:5}
.tile{color:#fff;border-radius:var(--r);padding:24px;box-shadow:var(--sh);transition:transform .3s,box-shadow .3s;display:block}.tile:hover{transform:translateY(-8px) scale(1.02)}.tile h3{margin:6px 0;color:#fff;font-size:20px}.tile p{margin:0;font-size:14px;opacity:.92}.tile .ti{font-size:34px}
.t-ncis{background:linear-gradient(135deg,#0b2a6b,#c9a227)}.t-hudson{background:linear-gradient(135deg,#0b6b57,#f59e0b)}.t-scholarships{background:linear-gradient(135deg,#6d28d9,#ec4899)}.t-tech{background:linear-gradient(135deg,#0891b2,#2563eb)}.t-tools{background:linear-gradient(135deg,#f43f5e,#f97316)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:24px}
.card{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh);transition:transform .3s,box-shadow .3s}.card:hover{transform:translateY(-6px);box-shadow:0 16px 40px rgba(0,0,0,.14)}
.card-img{display:block;overflow:hidden;aspect-ratio:16/10}.card-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.card:hover .card-img img{transform:scale(1.08)}
.card-b{padding:18px}.card h3{font-size:18px;margin:8px 0}.card h3 a{color:var(--tx)}.card p{margin:0 0 10px;color:var(--mut);font-size:14.5px}.meta{color:var(--mut);font-size:13px}
.chip{display:inline-block;background:linear-gradient(90deg,var(--a1),var(--a2));color:#fff!important;font-size:12px;font-weight:700;padding:3px 12px;border-radius:99px;margin:0 6px 6px 0}.chips{margin:28px 0 -30px}
.sgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:20px}
.scard a{display:block;position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:2/3;box-shadow:var(--sh);transition:transform .3s}.scard a:hover{transform:translateY(-8px) scale(1.03)}.scard img{width:100%;height:100%;object-fit:cover}
.sc-b{position:absolute;inset:auto 0 0;padding:40px 14px 14px;background:linear-gradient(transparent,rgba(0,0,0,.88));color:#fff}.sc-b h3{font-size:16px;margin:0;color:#fff}.sc-b span{font-size:12.5px;opacity:.85}
.tools-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:20px}
.tcard{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:24px;color:var(--tx);box-shadow:var(--sh);transition:.3s;display:block}.tcard:hover{transform:translateY(-6px);border-color:var(--a2)}.tcard .ti{font-size:32px}.tcard h3{font-size:18px;margin:8px 0}.tcard p{margin:0;color:var(--mut);font-size:14px}
.empty{background:var(--card);border:2px dashed var(--bd);border-radius:var(--r);padding:30px;text-align:center;color:var(--mut)}
/* single */
.single-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:36px;padding-top:30px;padding-bottom:30px}.side>*{margin-bottom:24px}.side{align-self:start;position:sticky;top:90px}
.crumbs{font-size:14px;color:var(--mut);margin-bottom:12px}.crumbs a{color:inherit}.etitle{font-size:clamp(28px,4vw,42px);font-weight:800}
.feat{width:100%;border-radius:var(--r);margin:18px 0}.entry{font-size:17.5px}.entry h2{margin-top:1.6em}.entry img{border-radius:12px}.entry a{text-decoration:underline}
.entry table{width:100%;border-collapse:collapse}.entry td,.entry th{border:1px solid var(--bd);padding:8px}
.share{display:flex;gap:10px;align-items:center;margin:28px 0;flex-wrap:wrap}.share a{border:1px solid var(--bd);padding:6px 16px;border-radius:99px;font-weight:600;font-size:14px}.tags a{margin-right:8px;color:var(--mut)}
.widget,.nl{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:22px}.widget-title{font-size:18px}
.hero-se{padding:56px 0 48px}.shero{display:grid;grid-template-columns:240px 1fr;gap:36px;align-items:center;position:relative;z-index:2}.poster{border-radius:var(--r);box-shadow:0 20px 50px rgba(0,0,0,.45);width:240px}
.shero h1{font-size:clamp(28px,4vw,46px);color:#fff}.shero .crumbs,.shero .crumbs a{color:#fff;opacity:.85}.lead{font-size:18px;opacity:.95}
.badges{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.badges span,.badges a{background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.4);color:#fff;border-radius:99px;padding:3px 14px;font-size:14px;font-weight:600}
.btns{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
.yt-lite{position:relative;width:100%;aspect-ratio:16/9;border:0;border-radius:var(--r);background:#000 center/cover;cursor:pointer;overflow:hidden;box-shadow:var(--sh)}.yt-lite iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.play{position:absolute;inset:0;margin:auto;width:76px;height:76px;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--orange));color:#fff;font-size:28px;display:grid;place-items:center;transition:transform .3s;animation:pulse 2s infinite}.yt-lite:hover .play{transform:scale(1.15)}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(255,90,31,.6)}100%{box-shadow:0 0 0 24px rgba(255,90,31,0)}}
.cast{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.cast li{background:var(--card);border:1px solid var(--bd);border-radius:12px;padding:10px 14px;font-size:15px}
.ep{background:var(--card);border:1px solid var(--bd);border-radius:12px;margin-bottom:10px;padding:0 16px;transition:border-color .2s}.ep[open]{border-color:var(--a2)}.ep summary{cursor:pointer;padding:14px 0;font-weight:600}.ep summary b{color:var(--a2);margin-right:6px}.ep small{color:var(--mut);margin-left:10px;font-weight:400}.ep p{margin:0 0 14px;color:var(--mut)}
.note{font-size:13px;color:var(--mut);margin-top:30px}
/* ui */
.btn{display:inline-block;border:1px solid var(--bd);background:var(--card);color:var(--tx);padding:11px 22px;border-radius:12px;font:600 15px var(--font);cursor:pointer;transition:transform .2s,box-shadow .2s}.btn:hover{transform:translateY(-2px)}
.btn-p{background:linear-gradient(90deg,var(--blue),var(--orange));color:#fff;border:0;box-shadow:0 8px 20px rgba(30,111,217,.3)}.btn-g{background:rgba(255,255,255,.18);color:#fff;border-color:rgba(255,255,255,.5)}
.nl{background:linear-gradient(135deg,var(--a1),var(--a2));color:#fff;border:0;margin:56px 0}.nl h3{color:#fff;font-size:22px}.nl p{margin:0 0 14px}.nl form{display:flex;gap:10px;flex-wrap:wrap}.nl input[type=email]{flex:1;min-width:200px;padding:12px 16px;border-radius:12px;border:0;font:inherit}.hp{position:absolute;left:-9999px}.nl-ok{background:rgba(255,255,255,.25);padding:6px 12px;border-radius:8px}.nl-bad{background:rgba(0,0,0,.3);padding:6px 12px;border-radius:8px}
.single-grid .nl{margin:0}.pager{margin:36px 0;text-align:center}.pager .page-numbers{display:inline-block;padding:8px 14px;border:1px solid var(--bd);border-radius:10px;margin:2px;background:var(--card);color:var(--tx)}.pager .current{background:var(--a1);color:#fff}
.ad{margin:28px auto;text-align:center;min-height:90px;overflow:hidden}.ad-l{display:block;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--mut);margin-bottom:4px}
.page-wrap{padding-top:36px;padding-bottom:40px}.intro{margin:36px 0 0}
/* tools */
.tool{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:24px;box-shadow:var(--sh);margin:20px 0}
.tool textarea,.tool input[type=text],.tool input[type=file],.tool select,.pw-out input{width:100%;background:var(--bg);color:var(--tx);border:1px solid var(--bd);border-radius:12px;padding:12px 14px;font:15px/1.5 var(--font)}
.tool textarea{font-family:ui-monospace,Menlo,Consolas,monospace;resize:vertical}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin-top:16px}.stats div{background:var(--bg);border-radius:12px;padding:14px;text-align:center}.stats b{display:block;font:800 26px var(--head);color:var(--lk)}.stats span{font-size:13px;color:var(--mut)}
.pw-out{display:flex;gap:10px;margin-bottom:16px}.pw-out input{font:600 18px ui-monospace,monospace}.rng{display:block;margin:12px 0}.rng input{width:100%}.opts{display:flex;gap:16px;flex-wrap:wrap;margin:12px 0}
.qr-box{display:flex;justify-content:center;margin:20px 0}.qr-box img,.qr-box canvas{border:10px solid #fff;border-radius:8px;max-width:100%}
.t-prev{max-height:320px;margin:14px auto;border-radius:12px}.t-stat{font-weight:600}.t-stat.ok{color:#16a34a}.t-stat.bad{color:#dc2626}.tool .t-out{margin-top:10px}
/* footer */
.site-footer{background:#0a1226;color:#b8c3da;margin-top:64px;padding-top:56px}.site-footer a{color:#cfd9ee}.site-footer h4{color:#fff}.fgrid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.4fr;gap:34px}.fmenu{flex-direction:column;gap:6px}.site-footer .nl{margin:0}.site-footer .brand .bt{font-size:22px}
.fbot{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;border-top:1px solid #1d2a4a;margin-top:40px;padding:20px;font-size:13px}.fbot span:last-child{max-width:640px;opacity:.75}
.to-top{position:fixed;right:20px;bottom:20px;width:46px;height:46px;border-radius:50%;border:0;background:linear-gradient(135deg,var(--blue),var(--orange));color:#fff;font-size:20px;cursor:pointer;opacity:0;transform:translateY(20px);pointer-events:none;transition:.3s;z-index:40;box-shadow:0 8px 20px rgba(0,0,0,.3)}.to-top.show{opacity:1;transform:none;pointer-events:auto}
.comments{margin-top:40px}.clist{list-style:none;padding:0}.clist li{background:var(--card);border:1px solid var(--bd);border-radius:12px;padding:14px;margin-bottom:12px}.comment-form input[type=text],.comment-form input[type=email],.comment-form textarea{width:100%;padding:10px;border:1px solid var(--bd);border-radius:10px;background:var(--card);color:var(--tx)}
/* animation */
.js .reveal{opacity:0;transform:translateY(26px);transition:opacity .7s,transform .7s}.js .reveal.in{opacity:1;transform:none}
@media(max-width:980px){.single-grid{grid-template-columns:1fr}.side{position:static}.fgrid{grid-template-columns:1fr 1fr}}
@media(max-width:860px){
  .hdr{height:62px;gap:10px;justify-content:space-between;width:100%}
  .site-header .wrap.hdr{padding:0 16px}
  .brand{gap:8px;flex-shrink:1;min-width:0;max-width:240px}
  .brand img{width:36px;height:36px}
  .bt{font-size:19px;max-width:180px}
  .hdr-a{gap:5px;flex-shrink:0;margin-left:auto}
  .ib{width:36px;height:36px;border-radius:10px}
  .ib svg{width:18px;height:18px}
  .menu-btn{display:grid!important;order:99;flex-shrink:0;background:var(--card);border:1px solid var(--bd)}
  .langs{gap:3px;margin-right:2px}
  .langs a{font:700 11px var(--head);padding:4px 7px;border-radius:7px}
  .nav{position:fixed;inset:62px 0 auto 0;background:var(--card);border-bottom:2px solid var(--bd);box-shadow:0 16px 40px rgba(0,0,0,.18);padding:14px 20px;max-height:0;overflow:hidden;padding-block:0;transition:max-height .35s ease,padding .35s ease;z-index:9999;margin:0}
  body.admin-bar .nav{top:108px}
  .nav-open .nav{max-height:85vh;overflow-y:auto;padding-block:16px}
  .menu{flex-direction:column;gap:4px}
  .sub-menu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;padding-left:14px}
  .nav-lang-bar{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;margin-top:14px;border-top:1px solid var(--bd);background:var(--bg);border-radius:12px}
  .nav-lang-bar span{font-size:13px;font-weight:700;color:var(--mut)}
  .nav-lang-bar .langs{display:flex!important;gap:6px;margin:0}
  .nav-lang-bar .langs a{display:inline-block!important;font-size:12px;padding:6px 14px;border-radius:8px}
  .shero{grid-template-columns:1fr;text-align:center}.poster{margin:auto}.badges,.btns{justify-content:center}
}
@media(max-width:600px){
  .hdr{height:58px;gap:6px}
  .site-header .wrap.hdr{padding:0 10px}
  .brand{gap:6px;max-width:180px}
  .brand img{width:32px;height:32px}
  .bt{font-size:17px;max-width:140px}
  .hdr-a{gap:4px}
  .ib{width:34px;height:34px;border-radius:9px}
  .ib svg{width:17px;height:17px}
  .hdr-a .langs a:not(.on){display:none!important}
  .hdr-a .langs a.on{display:inline-flex!important;align-items:center;gap:3px;font-size:11px;padding:4px 8px;border-radius:7px}
}
@media(max-width:350px){
  .site-header .wrap.hdr{padding:0 6px}
  .brand{max-width:140px}
  .brand img{width:28px;height:28px}
  .bt{font-size:15px;max-width:105px}
  .hdr-a{gap:3px}
  .ib{width:32px;height:32px;border-radius:8px}
  .ib svg{width:16px;height:16px}
  .hdr-a .langs a.on{padding:3px 6px;font-size:10px}
}
@media(max-width:560px){.fgrid{grid-template-columns:1fr}.hero{padding:52px 0}.tiles{margin-top:-30px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.js .reveal{opacity:1;transform:none}}
/* ---- v1.1 additions: artwork, hero layout, extra animation ---- */
.hero-grid.has-art{display:grid;grid-template-columns:1.15fr .85fr;align-items:center;gap:30px;position:relative;z-index:2}
.has-art .hero-in{text-align:left;margin:0;max-width:none}.has-art .hero p{margin-left:0}.has-art .sform{margin:0}
.hero-art{width:100%;max-width:380px;justify-self:center;filter:drop-shadow(0 24px 40px rgba(0,0,0,.35));animation:flt 6s ease-in-out infinite}.logo-art{max-width:300px;border-radius:50%;animation:flt 7s ease-in-out infinite,spin 40s linear infinite}
@keyframes spin{to{rotate:360deg}}
.hero-bg{position:absolute;inset:0;background:center/cover no-repeat;opacity:.3;animation:kb 24s ease-in-out infinite alternate}.hero-bg+.blob{z-index:1}
@keyframes kb{to{transform:scale(1.12)}}
.hero:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 20%,rgba(255,255,255,.18),transparent 45%);z-index:1}
.tile{position:relative;overflow:hidden;min-height:176px}.tile p{max-width:65%}.tile-art{position:absolute;right:-16px;bottom:-12px;width:150px;opacity:.92;transition:transform .5s}.tile:hover .tile-art{transform:scale(1.15) rotate(-5deg)}
.tcard .ti{width:56px;height:56px;margin-bottom:8px;transition:transform .4s}.tcard:hover .ti{transform:rotate(-8deg) scale(1.12)}
.btn-p{position:relative;overflow:hidden}.btn-p:after{content:"";position:absolute;top:0;left:-80%;width:50%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-20deg);transition:left .7s}.btn-p:hover:after{left:140%}
.progress{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--blue),var(--orange));z-index:99}
.card,.scard a,.tcard,.tile{will-change:transform}
.g-row{display:grid;grid-template-columns:1fr 90px 90px 40px;gap:8px;margin-bottom:8px}.g-row input,.g-row select,.tool input[type=date]{background:var(--bg);color:var(--tx);border:1px solid var(--bd);border-radius:10px;padding:10px;font:inherit}
@media(max-width:860px){.hero-grid.has-art{grid-template-columns:1fr;text-align:center}.has-art .hero-in{text-align:center}.has-art .sform{margin:auto}.hero-art{max-width:220px}.tile p{max-width:60%}}

/* ---- v1.1.2 fixes: admin-bar offset, readable tiles, contrast ---- */
body.admin-bar .site-header{top:32px}
@media(max-width:782px){body.admin-bar .site-header{top:46px}}
@media(max-width:860px){body.admin-bar .nav{top:108px}}
.logo-art{animation:flt 7s ease-in-out infinite}
.hero h1,.hero p{text-shadow:0 2px 14px rgba(0,0,0,.28)}
.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.22));z-index:1;pointer-events:none}
.t-ncis{background:linear-gradient(135deg,#0b2a6b,#8a6a0f)}
.t-hudson{background:linear-gradient(135deg,#0b5f4d,#b45f04)}
.t-scholarships{background:linear-gradient(135deg,#5b21b6,#be2f86)}
.t-tech{background:linear-gradient(135deg,#0e7490,#1d4ed8)}
.t-tools{background:linear-gradient(135deg,#e11d48,#ea580c)}
.tiles{grid-template-columns:repeat(auto-fit,minmax(215px,1fr))}
.tile{padding:22px;min-height:200px;display:flex;flex-direction:column;justify-content:flex-end}
.tile h3{font-size:21px;margin:0 0 6px;text-shadow:0 1px 8px rgba(0,0,0,.35)}
.tile p{max-width:none!important;font-size:14.5px;line-height:1.5;opacity:1;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.35)}
.tile-art{top:14px;right:14px;bottom:auto;left:auto;width:92px;opacity:.95}
.tile:hover .tile-art{transform:scale(1.12) rotate(-6deg)}
.hero-s .sform{box-shadow:0 12px 30px rgba(0,0,0,.25)}
/* ---- v1.2 series & season pages ---- */
.poster-art{max-width:270px;aspect-ratio:2/3;object-fit:cover;border-radius:16px;border:3px solid rgba(255,255,255,.6);transform:rotate(3deg);box-shadow:0 26px 60px rgba(0,0,0,.5)}
.tile-poster{width:66px;aspect-ratio:2/3;object-fit:cover;border-radius:10px;border:2px solid rgba(255,255,255,.75);transform:rotate(6deg);box-shadow:0 8px 20px rgba(0,0,0,.45)}
.statbar{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px;margin:-36px 0 40px;position:relative;z-index:5}
.statbar div{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:18px;text-align:center;box-shadow:var(--sh)}.statbar b{display:block;font:800 32px var(--head);background:linear-gradient(90deg,var(--a1),var(--a2));-webkit-background-clip:text;background-clip:text;color:transparent}.statbar span{color:var(--mut);font-size:14px}
[data-theme=dark] .statbar b{background:linear-gradient(90deg,#8ab8ff,#ffb085);-webkit-background-clip:text;background-clip:text}
.feature{position:relative;border-radius:22px;overflow:hidden;background:linear-gradient(135deg,var(--a1),var(--a2)) center/cover;color:#fff;margin:20px 0 10px;box-shadow:var(--sh)}
.feature:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,10,24,.92),rgba(6,10,24,.55))}
.feature-in{position:relative;display:grid;grid-template-columns:200px 1fr;gap:30px;align-items:center;padding:30px}.feature-in img{border-radius:14px;box-shadow:0 18px 40px rgba(0,0,0,.5);transition:transform .5s}.feature:hover img{transform:scale(1.04) rotate(-2deg)}
.feature h2{color:#fff;font-size:clamp(24px,3.4vw,38px);margin:10px 0}.feature p{opacity:.92;max-width:640px}
.sbadge{position:absolute;top:10px;left:10px;background:linear-gradient(135deg,var(--blue),var(--orange));color:#fff;font:700 13px var(--head);padding:4px 12px;border-radius:99px;box-shadow:0 4px 12px rgba(0,0,0,.35)}
.sc-b em{display:block;font-style:normal;font-size:13px;font-weight:600;max-height:0;opacity:0;overflow:hidden;transition:.35s;margin-top:0}.scard a:hover .sc-b em{max-height:24px;opacity:1;margin-top:6px}
.castg{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:16px}
.cp{background:var(--card);border:1px solid var(--bd);border-radius:14px;overflow:hidden;text-align:center;padding-bottom:12px;transition:transform .3s,box-shadow .3s}.cp:hover{transform:translateY(-6px);box-shadow:var(--sh)}
.cp img,.cp-ph{width:100%;aspect-ratio:2/3;object-fit:cover;display:grid;place-items:center;background:linear-gradient(135deg,var(--a1),var(--a2));color:#fff;font:800 40px var(--head)}.cp b{display:block;font-size:14.5px;margin:10px 8px 0;line-height:1.3}.cp small{display:block;color:var(--mut);font-size:12.5px;margin:2px 8px 0}
.gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.gi{display:block;border-radius:14px;overflow:hidden;aspect-ratio:16/9;box-shadow:var(--sh)}.gi img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.gi:hover img{transform:scale(1.1)}
.lb{position:fixed;inset:0;background:rgba(0,0,0,.88);z-index:200;display:grid;place-items:center;cursor:zoom-out;animation:fade .25s}.lb img{max-width:92vw;max-height:90vh;border-radius:12px}@keyframes fade{from{opacity:0}}
.ep summary{display:flex;align-items:center;gap:12px}.ep summary b{background:linear-gradient(135deg,var(--blue),var(--orange));color:#fff;border-radius:10px;padding:2px 10px;font-size:13px;margin:0}.ep .et{flex:1}.faq .ep summary{font-weight:600}
.cnt{font:500 14px var(--font);color:var(--mut);margin-left:8px}
.bignum{position:absolute;right:4%;bottom:-30px;font:800 clamp(120px,20vw,260px)/1 var(--head);color:rgba(255,255,255,.1);z-index:1;pointer-events:none}
.pn{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:36px 0}.pn-a{display:block;background:var(--card);border:1px solid var(--bd);border-radius:14px;padding:16px 20px;color:var(--tx);font-weight:700;transition:.3s}.pn-a:hover{transform:translateY(-4px);border-color:var(--a2)}.pn-a small{display:block;color:var(--mut);font-weight:500}.pn-a.r{text-align:right}
.hero-se .poster{aspect-ratio:2/3;object-fit:cover}
@media(max-width:700px){.feature-in{grid-template-columns:1fr;text-align:center}.feature-in img{max-width:180px;margin:auto}.feature .btns{justify-content:center}.pn{grid-template-columns:1fr}.poster-art{max-width:200px}}
/* ---- v1.3 video player ---- */
.vplayer{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}
.vp-main,.vlite{position:relative;width:100%;aspect-ratio:16/9;border-radius:var(--r);background:linear-gradient(135deg,var(--a1),var(--a2)) center/cover;overflow:hidden;cursor:pointer;box-shadow:var(--sh)}
.vp-main iframe,.vlite iframe,.vp-main video{position:absolute;inset:0;width:100%;height:100%;border:0;background:#000}.vp-main video{object-fit:contain}
.vp-list{display:flex;flex-direction:column;gap:8px;max-height:430px;overflow:auto;padding-right:4px}
.vp-item{display:flex;gap:10px;align-items:center;text-align:left;background:var(--card);color:var(--tx);border:1px solid var(--bd);border-radius:12px;padding:8px;cursor:pointer;font:600 14px/1.3 var(--font);transition:.25s}.vp-item:hover,.vp-item.active{border-color:var(--a2);transform:translateX(3px)}
.vp-th{flex:0 0 96px;aspect-ratio:16/9;border-radius:8px;background:linear-gradient(135deg,var(--a1),var(--a2)) center/cover;display:grid;place-items:center;color:#fff}.vp-th i{font-style:normal;background:rgba(0,0,0,.55);border-radius:50%;width:26px;height:26px;display:grid;place-items:center;font-size:11px}
.ep-v{margin:0 0 16px}.ep-vid{width:100%;border-radius:12px;background:#000}.clipb{background:rgba(255,90,31,.14);color:var(--orange);font-size:12px;font-weight:700;border-radius:99px;padding:2px 10px}
@media(max-width:860px){.vplayer{grid-template-columns:1fr}.vp-list{flex-direction:row;max-height:none;overflow-x:auto;padding-bottom:6px}.vp-item{flex:0 0 220px}}
/* ---- v1.7 blog design ---- */
.callout{background:linear-gradient(135deg,rgba(30,111,217,.10),rgba(255,90,31,.10));border-left:5px solid var(--a2);border-radius:14px;padding:16px 20px;margin:0 0 22px;font-size:16.5px}
.fas-inline-cover{margin:0 0 20px}.fas-inline-cover img,.feat{width:100%;height:auto;border-radius:18px;box-shadow:var(--sh)}
.toc{background:var(--card);border:1px solid var(--bd);border-radius:16px;padding:18px 24px;margin:26px 0;box-shadow:var(--sh)}.toc strong{display:block;font:700 18px var(--head);margin-bottom:8px}.toc ol{margin:0;padding-left:20px;columns:2;column-gap:36px}.toc li{margin:4px 0;break-inside:avoid;font-size:15px}.toc a{text-decoration:none;font-weight:600}.toc a:hover{text-decoration:underline}
.entry h2{position:relative;padding-left:16px;scroll-margin-top:90px}.entry h2:before{content:"";position:absolute;left:0;top:.15em;bottom:.15em;width:5px;border-radius:5px;background:linear-gradient(var(--blue),var(--orange))}
.entry h3{margin-top:1.4em;font-size:1.15em}.entry ul,.entry ol{padding-left:1.3em}.entry li{margin:.35em 0}
.entry table{border-radius:12px;overflow:hidden;box-shadow:var(--sh);margin:18px 0}.entry th{background:linear-gradient(90deg,var(--a1),var(--a2));color:#fff;text-align:left;padding:10px 14px}.entry td{padding:10px 14px}.entry tbody tr:nth-child(even){background:rgba(100,116,139,.08)}.entry table th[scope],.entry tr>th:first-child{white-space:nowrap}
.entry blockquote{border-left:4px solid var(--a2);background:var(--card);margin:20px 0;padding:14px 20px;border-radius:0 12px 12px 0}
.authorbox{display:flex;gap:16px;align-items:center;background:var(--card);border:1px solid var(--bd);border-radius:16px;padding:18px;margin:28px 0}.authorbox img{border-radius:50%;flex:0 0 56px}.authorbox p{margin:4px 0 0;color:var(--mut);font-size:14.5px}
.grid-feat .card:first-child{grid-column:1/-1;display:grid;grid-template-columns:1.15fr 1fr;align-items:stretch}.grid-feat .card:first-child .card-img{aspect-ratio:auto;height:100%}.grid-feat .card:first-child h3{font-size:26px}.grid-feat .card:first-child .card-b{padding:28px;align-self:center}
.side .ad{position:sticky;top:90px}
@media(max-width:760px){.toc ol{columns:1}.grid-feat .card:first-child{grid-template-columns:1fr}}
.soc{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.soc a{border:1px solid #2a3a60;border-radius:99px;padding:4px 14px;font-size:13px;font-weight:600;transition:.25s}.soc a:hover{background:linear-gradient(90deg,var(--blue),var(--orange));border-color:transparent;color:#fff}

/* ---- v1.10 performance ---- */
.blob{filter:none;background:radial-gradient(circle,rgba(255,255,255,.4),rgba(255,255,255,0) 70%)}
.card,.scard a,.tcard,.tile{will-change:auto}
.sec,.site-footer{content-visibility:auto;contain-intrinsic-size:auto 640px}
.ad{min-height:250px}.site-header+.wrap .ad{min-height:100px}
@media(max-width:860px){.blob{display:none}.hero,.hero-bg{animation:none}.hero-art,.logo-art{animation:none}.hero{padding:44px 0}.hero-master{padding:56px 0 52px}}
/* ---- v1.11 tools ---- */
.tool input[type=number],.tool input[type=text],.tool select{width:100%;background:var(--bg);color:var(--tx);border:1px solid var(--bd);border-radius:12px;padding:11px 14px;font:15px var(--font)}
.tool label{display:block;font-weight:600;font-size:14px;margin:10px 0 4px}.tool label input,.tool label select,.tool label textarea{margin-top:4px;font-weight:400}
.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}.two.four{grid-template-columns:repeat(4,1fr)}
.t-res{margin-top:18px;background:linear-gradient(135deg,rgba(30,111,217,.12),rgba(255,90,31,.12));border-radius:14px;padding:18px;font:800 clamp(22px,4vw,32px) var(--head);text-align:center;color:var(--lk)}
.f-list{margin:14px 0}.f-row{display:flex;gap:8px;align-items:center;background:var(--bg);border:1px solid var(--bd);border-radius:12px;padding:6px 10px;margin-bottom:8px}.f-row span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.f-row .ib{width:32px;height:32px}
.cnt{font-size:13.5px;font-weight:600;margin:4px 0 8px}.cnt.ok{color:#16a34a}.cnt.bad{color:#dc2626}
.serp{background:#fff;border:1px solid var(--bd);border-radius:12px;padding:16px;margin-top:14px;font-family:Arial,sans-serif}.serp-u{color:#202124;font-size:13px}.serp-t{color:#1a0dab;font-size:20px;line-height:1.3;margin:2px 0}.serp-d{color:#4d5156;font-size:14px;line-height:1.5}
.tcat{margin:40px 0 16px;font-size:clamp(20px,3vw,26px)}.note{font-size:13px;color:var(--mut)}
@media(max-width:640px){.two,.two.four{grid-template-columns:1fr 1fr}}
/* ---- v1.14 language switcher moved to base header & consolidated media queries ---- */
.glance{background:var(--card);border-left:4px solid var(--a2);border-radius:10px;padding:12px 16px;color:var(--tx);margin:0 0 16px}.cat-intro{margin:32px 0}.cat-intro h3{margin-top:1.3em}
/* ---- v1.16 video-tools & games ---- */
body.sec-video-tools{--a1:#8b0000;--a2:#e53935}
body.sec-games{--a1:#1a237e;--a2:#7c4dff}
.t-video{background:linear-gradient(135deg,#8b0000,#e53935)}
.t-games{background:linear-gradient(135deg,#1a237e,#7c4dff)}
/* Video downloader hub tiles on the hub page */
.vdl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}
.vdl-card{border-radius:var(--r);overflow:hidden;box-shadow:var(--sh);transition:.3s;display:block;color:#fff;text-decoration:none}
.vdl-card:hover{transform:translateY(-6px);box-shadow:0 16px 40px rgba(0,0,0,.2)}
.vdl-card-inner{padding:24px}
.vdl-icon{font-size:40px;margin-bottom:10px;display:block;filter:drop-shadow(0 4px 8px rgba(0,0,0,.3))}
.vdl-card h3{font-size:18px;color:#fff;margin:0 0 6px}
.vdl-card p{font-size:14px;opacity:.9;margin:0}
.vdl-yt{background:linear-gradient(135deg,#cc0000,#ff5722)}
.vdl-ig{background:linear-gradient(135deg,#833ab4,#fd1d1d)}
.vdl-fb{background:linear-gradient(135deg,#1877f2,#0d6efd)}
.vdl-tt{background:linear-gradient(135deg,#010101,#69c9d0)}
.vdl-tw{background:linear-gradient(135deg,#1da1f2,#0d8ecf)}
.vdl-pin{background:linear-gradient(135deg,#bd081c,#e60023)}
/* Games hub & Game Page */
.game-page-wrap{max-width:1100px;width:100%;margin:0 auto}
.game-container{border-radius:var(--r);overflow:hidden;border:1px solid var(--bd);box-shadow:var(--sh);background:var(--card);margin:24px 0}
.game-frame-wrap{position:relative;width:100%;aspect-ratio:16/9;min-height:480px;background:#060913;overflow:hidden}
@media(max-width:768px){.game-frame-wrap{min-height:360px}}
@media(max-width:480px){.game-frame-wrap{min-height:280px}}
#tesla-game-iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0;display:block}
.game-fullscreen{position:absolute;top:14px;right:14px;z-index:10;opacity:.85;transition:opacity .2s,transform .2s;box-shadow:0 4px 16px rgba(0,0,0,.4)}
.game-fullscreen:hover{opacity:1;transform:translateY(-2px)}
.game-meta{padding:24px}
.game-controls-grid{background:var(--bg);border:1px solid var(--bd);border-radius:14px;padding:20px;margin-top:16px}
.game-controls-grid h3{margin:0 0 14px;font-size:17px;font-weight:800}
.ctrl-row{display:flex;align-items:center;gap:14px;margin-bottom:10px;font-size:14.5px}
.ctrl-key{background:var(--card);border:1px solid var(--bd);border-radius:8px;padding:5px 12px;font:700 12px ui-monospace,monospace;box-shadow:0 2px 0 var(--bd);min-width:70px;text-align:center;flex-shrink:0;color:var(--tx)}
.games-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px}
.game-card{border-radius:var(--r);overflow:hidden;background:var(--card);border:1px solid var(--bd);box-shadow:var(--sh);transition:.3s;display:block;color:var(--tx)}
.game-card:hover{transform:translateY(-6px);box-shadow:0 16px 40px rgba(0,0,0,.18)}
.game-card-thumb{aspect-ratio:16/9;background:#0a0e1c;position:relative;overflow:hidden;border-bottom:1px solid var(--bd)}
.game-card-img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s cubic-bezier(.16,1,.3,1)}
.game-card:hover .game-card-img{transform:scale(1.06)}
.game-play-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(6,10,24,.55);backdrop-filter:blur(2px);color:#fff;font:800 15px var(--head);letter-spacing:1.5px;opacity:0;transition:opacity .25s ease;pointer-events:none}
.game-card:hover .game-play-overlay{opacity:1}
.game-card-body{padding:18px}
.game-card h3{font-size:18px;margin:0 0 6px}
.game-card p{color:var(--mut);font-size:14px;margin:0}
.game-badge{display:inline-flex;gap:6px;margin-top:10px;flex-wrap:wrap}
.game-badge span{background:var(--bg);border:1px solid var(--bd);border-radius:99px;padding:3px 10px;font-size:12px;font-weight:600;color:var(--mut)}
/* Extra tools grid categories */
.extra-tools-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:20px}
.etool-card{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:24px;color:var(--tx);box-shadow:var(--sh);transition:.3s;display:block}
.etool-card:hover{transform:translateY(-6px);border-color:var(--a2)}
.etool-card .ti{font-size:32px;display:block;margin-bottom:10px}
.etool-card h3{font-size:17px;margin:0 0 6px}
.etool-card p{margin:0;color:var(--mut);font-size:13.5px}
@media(max-width:600px){.vdl-grid{grid-template-columns:1fr 1fr}.games-grid{grid-template-columns:1fr}}
