/*
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.1.3
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:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;--head:'Poppins','Inter',system-ui,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}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--tx);font:16px/1.7 var(--font);-webkit-font-smoothing:antialiased;transition:background .3s,color .3s}
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;gap:20px;height:68px}
.brand{display:flex;align-items:center;gap:10px;color:var(--tx)}.brand img{border-radius:50%;transition:transform .6s}.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}
.nav{flex:1}.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;gap:6px}.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}
.ib:hover{transform:translateY(-2px);background:var(--bd)}.menu-btn{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){.menu-btn{display:grid}.nav{position:fixed;inset:68px 0 auto 0;background:var(--card);border-bottom:1px solid var(--bd);padding:12px 20px;max-height:0;overflow:hidden;padding-block:0;transition:max-height .35s}.nav-open .nav{max-height:80vh;overflow:auto;padding-block:12px}.menu{flex-direction:column}.sub-menu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;padding-left:14px}.shero{grid-template-columns:1fr;text-align:center}.poster{margin:auto}.badges,.btns{justify-content:center}.hdr{height:62px}}
@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)}
