/*
Theme Name: Shakir Web
Theme URI: https://codewithshakir.com
Author: Code with Shakir Private Limited
Author URI: https://codewithshakir.com
Description: Cyber-luxe dark theme for Code with Shakir: 3D hero, course catalog, portfolio, internship applications and an owner dashboard.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: shakir-web
*/

:root{--bg:#05080F;--ink:#E8F1F8;--mut:#8CA0B3;--c1:#00F2FE;--c2:#4FACFE;--c3:#00E676;--glass:rgba(255,255,255,.05);--line:rgba(255,255,255,.12);color-scheme:dark;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,system-ui,sans-serif;line-height:1.6;overflow-x:hidden}
h1,h2,h3{font-family:Sora,system-ui,sans-serif;margin:0;line-height:1.1;letter-spacing:-.02em}
a{color:inherit}
:focus-visible{outline:2px solid var(--c1);outline-offset:3px}
.blur{position:fixed;width:46vmax;height:46vmax;border-radius:50%;filter:blur(110px);opacity:.16;z-index:0;pointer-events:none;animation:amb 18s ease-in-out infinite alternate}
.b1{background:var(--c2);top:-20vmax;left:-15vmax}.b2{background:var(--c3);bottom:-25vmax;right:-15vmax;animation-delay:-9s}
@keyframes amb{to{transform:translate(8vmax,6vmax) scale(1.15)}}
nav{position:fixed;top:0;left:0;right:0;z-index:30;padding-top:env(safe-area-inset-top,0px);background:rgba(5,8,15,.7);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
nav .in{max-width:1100px;margin:0 auto;padding:0 20px;height:60px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.logo{font-family:Sora;font-weight:800;text-decoration:none;white-space:nowrap}
.logo b{background:linear-gradient(90deg,var(--c1),var(--c3));-webkit-background-clip:text;background-clip:text;color:transparent}
.links{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}
.links a{padding:8px 13px;border-radius:999px;text-decoration:none;color:var(--mut);font-size:.9rem;white-space:nowrap;transition:.2s}
.links a:hover,.links a.on{color:#031018;background:linear-gradient(90deg,var(--c1),var(--c2))}
main{position:relative;z-index:1}
.view{display:block;padding:100px 20px 80px;max-width:1100px;margin:0 auto}
.view.on{display:block;animation:vin .6s cubic-bezier(.2,.8,.2,1)}
@keyframes vin{from{opacity:0;transform:translateY(20px) scale(.99);filter:blur(6px)}}
.btn{display:inline-block;padding:13px 24px;border-radius:999px;font:600 .95rem Inter;text-decoration:none;border:0;cursor:pointer;color:#031018;background:linear-gradient(90deg,var(--c1),var(--c2));box-shadow:0 0 28px rgba(0,242,254,.3);transition:.25s}
.btn:hover{transform:translateY(-2px);box-shadow:0 0 44px rgba(0,242,254,.55)}
.btn.g{background:var(--glass);color:var(--ink);border:1px solid var(--line);box-shadow:none}
.glass{background:var(--glass);border:1px solid var(--line);border-radius:20px;backdrop-filter:blur(12px);padding:24px;transition:.3s}
.glass:hover{border-color:rgba(0,242,254,.5);box-shadow:0 0 36px rgba(0,242,254,.12)}
/* hero */
#home{max-width:none;padding:0}
.hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden}
#gl{position:absolute;inset:0;width:100%;height:100%}
.hero .txt{position:relative;z-index:2;max-width:1100px;margin:0 auto;padding:110px 20px 60px;width:100%}
.hero h1{font-size:clamp(2.1rem,6.2vw,4.6rem);font-weight:800;max-width:15ch;min-height:2.2em;background:linear-gradient(100deg,#fff 10%,var(--c1) 55%,var(--c3));-webkit-background-clip:text;background-clip:text;color:transparent}
.hero h1 .sc{color:var(--c2);-webkit-text-fill-color:var(--c2);opacity:.7}
.hero p{max-width:48ch;color:var(--mut);font-size:1.1rem;margin:22px 0 30px}
.row{display:flex;gap:12px;flex-wrap:wrap}
.wrap{max-width:1100px;margin:0 auto;padding:0 20px}
.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;padding:20px 0 70px}
.metrics b{display:block;font:800 2.6rem Sora;background:linear-gradient(90deg,var(--c1),var(--c3));-webkit-background-clip:text;background-clip:text;color:transparent}
.metrics span{color:var(--mut);font-size:.92rem}
h2.t{font-size:clamp(1.8rem,4vw,2.8rem);margin-bottom:12px}
.sub{color:var(--mut);max-width:60ch;margin:0 0 32px}
.grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.hl{padding:0 20px 80px}
/* tracks */
.track{cursor:pointer;text-align:left;font:inherit;color:inherit;width:100%}
.track h3{font-size:1.3rem;margin:10px 0 8px}.track p{margin:0;color:var(--mut);font-size:.95rem}
.pill{display:inline-block;padding:4px 12px;border-radius:999px;border:1px solid var(--line);font-size:.8rem;color:var(--c1);margin:0 6px 6px 0}
/* catalog */
.cat{display:grid;grid-template-columns:260px 1fr;gap:20px;align-items:start}
.tabs{display:flex;flex-direction:column;gap:8px}
.tab{text-align:left;padding:14px 16px;border-radius:14px;background:var(--glass);border:1px solid var(--line);color:var(--ink);font:600 .95rem Inter;cursor:pointer;transition:.2s}
.tab small{display:block;color:var(--mut);font-weight:400}
.tab[aria-selected=true]{border-color:var(--c1);box-shadow:0 0 24px rgba(0,242,254,.2);background:rgba(0,242,254,.08)}
.panel h3{font-size:1.8rem;margin-bottom:10px}
.panel h4{margin:22px 0 8px;font:700 .95rem Sora;color:var(--c1)}
.panel ul{margin:0;padding-left:20px;color:var(--mut)}.panel li{margin:4px 0}
.panel .why{color:var(--ink);margin:0}
.meta{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}
/* webdev */
.mod{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.road{display:grid;gap:0;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));margin-top:16px}
.road div{padding:18px 16px 18px 0;border-top:3px solid var(--c2)}
.road b{font-family:Sora}.road p{margin:6px 0 0;color:var(--mut);font-size:.92rem}
.sec{margin-top:48px}
/* portfolio */
.f{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}
.f button{padding:9px 18px;border-radius:999px;background:var(--glass);border:1px solid var(--line);color:var(--ink);font:inherit;cursor:pointer}
.f button[aria-pressed=true]{background:linear-gradient(90deg,var(--c1),var(--c3));color:#031018;font-weight:600;border-color:transparent}
.proj.h{display:none}
.shot{height:140px;border-radius:14px;margin-bottom:14px;position:relative;overflow:hidden;background:linear-gradient(135deg,var(--a),var(--b))}
.shot::before{content:"";position:absolute;left:12%;right:12%;top:18%;height:12px;border-radius:6px;background:rgba(255,255,255,.55)}
.shot::after{content:"";position:absolute;left:12%;width:46%;top:42%;height:60px;border-radius:10px;background:rgba(255,255,255,.28)}
.star{color:#FFD76A}
/* playground */
.pg{display:grid;gap:16px;grid-template-columns:1fr 1fr}
textarea{width:100%;min-height:300px;background:#030509;color:#BDF7D6;border:1px solid var(--line);border-radius:14px;padding:16px;font:14px/1.5 ui-monospace,Menlo,Consolas,monospace;resize:vertical}
.out{background:#030509;border:1px solid var(--line);border-radius:14px;padding:16px;min-height:140px;font:14px/1.5 ui-monospace,Menlo,Consolas,monospace;color:#CFE6F5;white-space:pre-wrap}
iframe{width:100%;height:160px;border:1px solid var(--line);border-radius:14px;background:#fff;margin-top:12px}
:root{--v:#7F00FF}.b2{background:var(--v)}
.tr{position:fixed;width:8px;height:8px;border-radius:50%;background:var(--c1);box-shadow:0 0 12px var(--c1);pointer-events:none;z-index:50;animation:tr .6s forwards}@keyframes tr{to{opacity:0;transform:scale(.2)}}
.vid{display:grid;grid-template-columns:1.6fr 1fr;gap:16px;padding-bottom:70px}
.scr{aspect-ratio:16/9;border-radius:16px;position:relative;overflow:hidden;background:radial-gradient(circle at 30% 20%,#13224a,#030509);border:1px solid var(--line)}
.scr i{position:absolute;left:8%;height:9px;border-radius:5px;background:linear-gradient(90deg,var(--c1),var(--v));animation:bar 2.4s ease-in-out infinite alternate;animation-play-state:var(--ps,paused)}
@keyframes bar{from{width:8%}to{width:72%}}
.scr .pl{position:absolute;right:16px;bottom:16px;width:48px;height:48px;border-radius:50%;border:0;cursor:pointer;background:var(--c1);color:#031018;font-size:1.1rem}
.prog{height:4px;background:var(--line);border-radius:2px;margin-top:10px}.prog b{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--c1),var(--v));border-radius:2px}
.vi{text-align:left;font:inherit;color:inherit;cursor:pointer;padding:14px 16px}.vi.on{border-color:var(--c1)}.vi small{color:var(--mut);display:block}
#tree{width:100%;height:auto}.nd{cursor:pointer}.nd circle{fill:#0a1220;stroke:var(--c1);stroke-width:2.5;transition:.25s}.nd:hover circle,.nd.on circle{fill:var(--c1);filter:drop-shadow(0 0 8px var(--c1))}.nd text{fill:var(--ink);font:600 15px Inter}.ln{stroke:var(--v);stroke-width:2;fill:none;stroke-dasharray:6 6;animation:dash 1.4s linear infinite}@keyframes dash{to{stroke-dashoffset:-24}}
.adm{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.adm label{display:block;font-size:.85rem;color:var(--mut);margin:12px 0 4px}.adm input,.adm textarea,.adm select{width:100%;background:#030509;color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:10px;font:inherit}.adm textarea{min-height:90px}.adm input[type=color]{height:44px;padding:2px}
details{margin-bottom:10px}summary{cursor:pointer;font-weight:600;list-style:none}summary::-webkit-details-marker{display:none}summary::after{content:"+";float:right;color:var(--c1);font-size:1.3rem;line-height:1;transition:transform .3s}details[open] summary::after{transform:rotate(45deg)}details p{color:var(--mut);margin:10px 0 0}details[open] p{animation:fq .4s ease}@keyframes fq{from{opacity:0;transform:translateY(-8px)}}
#home .glass{position:relative;overflow:hidden}
#home .glass::before{content:"";position:absolute;inset:0;background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),rgba(0,242,254,.17),transparent 65%);opacity:0;transition:opacity .3s;pointer-events:none}
#home .glass:hover::before{opacity:1}
.rv2{opacity:0;transform:translateY(34px) rotateX(-14deg) scale(.95);transition:opacity .7s var(--d,0s),transform .8s cubic-bezier(.2,.8,.2,1) var(--d,0s),border-color .3s,box-shadow .3s}
.rv2.in{opacity:1;transform:none}.rv2.done{transition:border-color .3s,box-shadow .3s,transform .25s}
#home h2.t{display:inline-block}#home h2.t::after{content:"";display:block;height:3px;width:0;margin-top:8px;border-radius:2px;background:linear-gradient(90deg,var(--c1),var(--v));transition:width 1s .2s}#home h2.t.in::after{width:100%}
.tick{overflow:hidden;border-block:1px solid var(--line);background:rgba(255,255,255,.03);padding:14px 0;margin-bottom:40px}.trk{display:flex;gap:44px;width:max-content;animation:tk 30s linear infinite;font:700 1.1rem Sora}.trk span{white-space:nowrap;color:var(--mut)}.trk span:nth-child(odd){color:var(--c1)}.tick:hover .trk{animation-play-state:paused}@keyframes tk{to{transform:translateX(-50%)}}
.metrics b{background-size:200% 100%;animation:shine 4s linear infinite}@keyframes shine{to{background-position:200% 0}}
.track .pill{animation:pl2 2.2s ease-in-out infinite}@keyframes pl2{50%{box-shadow:0 0 16px var(--c1)}}
#home .road div{position:relative;border-top-color:var(--line)}#home .road div::before{content:"";position:absolute;top:-3px;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--c1),var(--v));box-shadow:0 0 10px var(--c1);transition:width .9s calc(var(--k,0)*.3s)}#home .road.in div::before{width:100%}
.cloud{display:flex;flex-wrap:wrap;gap:6px}.cloud .pill{margin:0;padding:8px 16px;font-size:1rem;cursor:default;animation:bob 3.6s ease-in-out infinite alternate;animation-delay:calc(var(--i,0)*-.35s);transition:background .25s,color .25s,transform .25s}.cloud .pill:hover{background:var(--c1);color:#031018;transform:scale(1.12)}@keyframes bob{to{transform:translateY(-7px)}}
.scr{animation:vglow 2s ease-in-out infinite alternate;animation-play-state:var(--ps,paused)}@keyframes vglow{to{box-shadow:0 0 60px rgba(127,0,255,.55)}}
.q{background:linear-gradient(120deg,rgba(0,242,254,.12),rgba(127,0,255,.22),rgba(0,242,254,.12));background-size:300% 300%;animation:gshift 8s ease infinite}@keyframes gshift{50%{background-position:100% 50%}}.q .btn{animation:bp 2s ease-in-out infinite}@keyframes bp{50%{box-shadow:0 0 50px rgba(0,242,254,.75)}}
.hero .btn{transition:transform .15s,box-shadow .25s}
@media (max-width:820px){.vid{grid-template-columns:1fr}}
.doc{max-width:760px}.doc h3{font-size:1.2rem;margin:28px 0 8px}.doc p,.doc li{color:var(--mut)}.doc ul{padding-left:20px}.doc .upd{font-size:.85rem}
footer{padding:50px 20px 30px;color:var(--mut);font-size:.9rem;position:relative;z-index:1;border-top:1px solid var(--line);background:rgba(5,8,15,.6)}.fg{max-width:1100px;margin:0 auto;display:grid;gap:28px;grid-template-columns:1.4fr 1fr 1fr 1.2fr}.fg h4{margin:0 0 10px;color:var(--ink);font:700 .95rem Sora}.fg a{display:block;color:var(--mut);text-decoration:none;padding:3px 0;transition:color .2s}.fg a.logo{color:var(--ink);font-size:1.15rem}.fg a:hover{color:var(--c1)}.fg p{margin:8px 0 0}.fcopy{max-width:1100px;margin:34px auto 0;padding-top:20px;border-top:1px solid var(--line);text-align:center;font-size:.85rem}@media (max-width:820px){.fg{grid-template-columns:1fr 1fr}}
/* responsive: phone, tablet, desktop, TV */
html,body{max-width:100%;overflow-x:hidden}
nav .in,.links{min-width:0}
img,svg,canvas,iframe,textarea{max-width:100%}
.grid{grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr))}
.mod,.adm{grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr))}
.metrics{grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr))}
.road{grid-template-columns:repeat(auto-fit,minmax(min(190px,100%),1fr))}
.burger{display:none;width:44px;height:44px;flex:none;border-radius:12px;border:1px solid var(--line);background:var(--glass);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:0}.burger span{width:20px;height:2px;background:var(--ink);border-radius:2px;transition:transform .3s,opacity .3s}.burger[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}.burger[aria-expanded=true] span:nth-child(2){opacity:0}.burger[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media (max-width:820px){.burger{display:flex}.links{display:none;position:fixed;top:calc(60px + env(safe-area-inset-top,0px));left:0;right:0;flex-direction:column;gap:4px;padding:12px 16px 20px;background:rgba(5,8,15,.97);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);max-height:calc(100svh - 60px);overflow-y:auto}.links.open{display:flex;animation:vin .3s}.links a{padding:14px 16px;font-size:1rem;border-radius:12px}}
@media (max-width:600px){#tree{min-width:600px}.view{padding:90px 16px 60px}.hero .txt{padding:100px 16px 50px}.hl,.wrap{padding-left:16px;padding-right:16px}}
@media (pointer:coarse){.btn,.chip,.f button,.tab,.links a{min-height:44px}.chip,.f button{display:inline-flex;align-items:center}}
@media (max-height:520px){.hero{min-height:auto}.hero .txt{padding-top:90px}}
@media (min-width:1500px){html{font-size:18px}nav .in,.view,.wrap,.hero .txt,.fg,.fcopy{max-width:1400px}:focus-visible{outline-width:4px;outline-offset:4px}}
@media (min-width:2200px){html{font-size:24px}nav .in,.view,.wrap,.hero .txt,.fg,.fcopy{max-width:1900px}nav .in{height:84px}.view{padding-top:140px}.hero .txt{padding-top:150px}}
@media (max-width:820px){.cat,.pg{grid-template-columns:1fr}.tabs{flex-direction:row;overflow-x:auto}.tab{min-width:170px}.tab small{display:none}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* WordPress specifics */
.skip{position:absolute;left:-999px;top:0;z-index:100;background:var(--c1);color:#031018;padding:10px 16px;border-radius:0 0 10px 0}.skip:focus{left:0}
.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.admin-bar nav{top:32px}@media (max-width:782px){.admin-bar nav{top:46px}}
a.track{display:block;text-decoration:none}
.shot img{width:100%;height:100%;object-fit:cover;display:block}.shot.has-img::before,.shot.has-img::after{display:none}
.doc img{max-width:100%;height:auto;border-radius:14px}
.notice{padding:14px 18px;border-radius:12px;border:1px solid var(--line);background:var(--glass);margin-bottom:16px}.notice.ok{border-color:var(--c3)}.notice.bad{border-color:#ff8a8a}
.pagination{display:flex;gap:8px;flex-wrap:wrap;margin-top:24px}.pagination a,.pagination span{padding:8px 14px;border:1px solid var(--line);border-radius:10px;text-decoration:none}

/* Layout: laptop, tablet and phone */
.doc-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:32px;align-items:start}
.doc-layout .doc{max-width:none}
.side{position:sticky;top:90px;display:grid;gap:16px}
.side h4{margin:0 0 10px;font:700 1rem Sora}.side a{color:var(--c1);text-decoration:none}.side ul{margin:0;padding-left:18px;color:var(--mut)}.side p{margin:6px 0;color:var(--mut)}
.band{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));margin-bottom:30px}
.avatar{width:84px;height:84px;border-radius:50%;background:linear-gradient(135deg,var(--c1),var(--v));display:grid;place-items:center;font:800 1.8rem Sora;color:#031018;flex:none}
.founder{display:flex;gap:22px;align-items:center;flex-wrap:wrap}
.tl{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:20px;align-items:start;margin-bottom:40px}
.tl #tdet{position:sticky;top:90px;margin:0!important;font-size:1.05rem}
#courses .grid{grid-template-columns:repeat(auto-fit,minmax(min(420px,100%),1fr))}
.view.on{min-height:60vh}
@media (min-width:1200px){.wrap,.view,nav .in,.hero .txt,.fg,.fcopy{max-width:1240px}}
@media (min-width:601px) and (max-width:1024px){.hero .txt,.wrap{padding-left:28px;padding-right:28px}.view{padding-left:28px;padding-right:28px}.vid{grid-template-columns:1fr}.hero h1{max-width:18ch}}
@media (max-width:1000px){.doc-layout,.tl{grid-template-columns:1fr}.side{position:static}.tl #tdet{position:static}}
@media (max-width:600px){[style*="margin-bottom:60px"]{margin-bottom:40px!important}[style*="padding-bottom:70px"]{padding-bottom:40px!important}.metrics{padding-bottom:40px}section{padding:56px 0}.founder .btn{width:100%;text-align:center}}

/* About page */
.ab-hero{padding:10px 0 40px}
.ab-h{font-size:clamp(2.2rem,6vw,4.4rem);font-weight:800;max-width:16ch;margin:14px 0 18px;color:#fff;text-shadow:0 0 40px rgba(0,242,254,.25)}
.ab-lead{font:600 clamp(1.1rem,2.6vw,1.6rem)/1.35 Sora,sans-serif;max-width:34ch;margin:0}
.ab-rot{color:var(--c1);font-weight:800}.ab-rot::after{content:"";display:inline-block;width:3px;height:1em;background:var(--c1);margin-left:3px;vertical-align:-3px;animation:blink 1s steps(2) infinite}
.ab-sub{color:var(--mut);max-width:56ch;margin:14px 0 26px}
.split .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.14em}
.split .w>span{display:inline-block;transform:translateY(115%);transition:transform .85s cubic-bezier(.2,.8,.2,1) calc(var(--i)*.07s)}
.split.in .w>span{transform:none}
.ab-stats{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr));margin:10px 0 50px}
.ab-stats b{display:block;font:800 2.4rem Sora,sans-serif;background:linear-gradient(90deg,var(--c1),var(--v));-webkit-background-clip:text;background-clip:text;color:transparent}.ab-stats span{color:var(--mut);font-size:.92rem}
.ab-mq{overflow:hidden;margin:0 0 60px;border-block:1px solid var(--line);padding:10px 0}.ab-mq div{display:flex;gap:44px;width:max-content;animation:tk 26s linear infinite}.ab-mq span{font:800 clamp(2.2rem,7vw,4.5rem) Sora,sans-serif;color:transparent;-webkit-text-stroke:1px var(--c1);white-space:nowrap}.ab-mq span:nth-child(even){-webkit-text-stroke-color:var(--v)}
.ab-loop{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:30px;align-items:center;margin:10px 0 60px}.ab-loop svg{width:100%;height:auto}
.ab-loop .ring{fill:none;stroke:var(--c2);stroke-width:2;stroke-dasharray:6 8;opacity:.6}.ab-loop .nd2 circle{fill:#0a1220;stroke:var(--c1);stroke-width:2.5;animation:pl3 3s ease-in-out infinite}.ab-loop .nd2:nth-of-type(2) circle{animation-delay:.75s}.ab-loop .nd2:nth-of-type(3) circle{animation-delay:1.5s}.ab-loop .nd2:nth-of-type(4) circle{animation-delay:2.25s}@keyframes pl3{50%{stroke-width:6}}
.ab-loop text{fill:var(--ink);font:600 15px Inter,sans-serif}.ab-loop .dot{fill:var(--c1);filter:drop-shadow(0 0 8px var(--c1))}
.ab-ol{list-style:none;margin:0;padding:0;counter-reset:n}.ab-ol li{counter-increment:n;position:relative;padding:0 0 22px 56px;color:var(--mut)}.ab-ol li::before{content:counter(n);position:absolute;left:0;top:0;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--glass);border:1px solid var(--c1);color:var(--c1);font:700 1rem Sora,sans-serif}.ab-ol b{display:block;color:var(--ink);font:700 1.1rem Sora,sans-serif;margin-bottom:2px}
.ab-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));margin:10px 0 60px}.ab-card{border-top:3px solid var(--c1)}.ab-card:nth-child(2){border-top-color:var(--c2)}.ab-card:nth-child(3){border-top-color:var(--v)}.ab-card:nth-child(4){border-top-color:#00E676}.ab-card h3{font-size:1.2rem;margin-bottom:8px}.ab-card p{margin:0;color:var(--mut)}
.ab-two{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(min(420px,100%),1fr));margin:10px 0 60px}
.ab-track{list-style:none;margin:20px 0 0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.ab-track li{position:relative;padding-top:24px;font:600 .9rem Sora,sans-serif}.ab-track li::before{content:"";position:absolute;top:6px;left:0;right:0;height:3px;background:var(--line)}.ab-track li::after{content:"";position:absolute;top:0;left:0;width:15px;height:15px;border-radius:50%;background:var(--c1);box-shadow:0 0 12px var(--c1);transform:scale(0);transition:transform .4s calc(var(--k,0)*.35s)}.ab-track.in li::after{transform:scale(1)}.ab-track li:nth-child(2){--k:1}.ab-track li:nth-child(3){--k:2}.ab-track li:nth-child(4){--k:3}.ab-track li:nth-child(5){--k:4}
@media (max-width:820px){.ab-loop{grid-template-columns:1fr}}@media (max-width:600px){.ab-track{font-size:.8rem}.ab-track li{font-size:.78rem}}
@media (prefers-reduced-motion:reduce){.split .w>span{transform:none}.ab-track li::after{transform:scale(1)}}

/* Graphic design course page */
.gd-wrap{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);gap:20px;align-items:start;margin-bottom:60px}
.gd-box{padding:12px;overflow-x:auto}.gd-tree{width:100%;height:auto;min-width:560px;display:block}
.gd-det{position:sticky;top:90px;min-height:230px}.gd-det h3{margin:12px 0 6px;font-size:1.4rem}.gd-det p{margin:6px 0;color:var(--mut)}.gd-det p b{color:var(--ink)}
.gd-bd{width:48px;height:48px;border-radius:12px;display:grid;place-items:center;font:800 1rem Sora,sans-serif;color:#031018;background:var(--tc,var(--c1));flex:none;transition:transform .3s}
.gd-tree path.ln{fill:none;stroke:var(--c2);stroke-width:3;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.1s calc(var(--d,0)*.35s)}
.gd-tree.in path.ln{stroke-dashoffset:0}
.gd-tree path.xl{fill:none;stroke:var(--v);stroke-width:1.5;stroke-dasharray:4 8;opacity:0;transition:opacity 1s 2.4s}.gd-tree.in path.xl{opacity:.6}
.gd-tree g.nd{cursor:pointer;transform-box:fill-box;transform-origin:center;transform:scale(0);transition:transform .55s cubic-bezier(.3,1.6,.5,1) calc(var(--d,0)*.35s + .5s)}
.gd-tree.in g.nd{transform:scale(1)}
.gd-tree g.nd circle{fill:#0a1220;stroke:var(--tc,var(--c1));stroke-width:3;transition:fill .25s,filter .25s}
.gd-tree g.nd:hover circle,.gd-tree g.nd.on circle{fill:var(--tc,var(--c1));filter:drop-shadow(0 0 12px var(--tc,var(--c1)))}
.gd-tree .bd{fill:var(--ink);font:800 14px Sora,sans-serif;text-anchor:middle;pointer-events:none}
.gd-tree g.nd:hover .bd,.gd-tree g.nd.on .bd{fill:#031018}
.gd-tree .lb{fill:var(--ink);font:600 14px Inter,sans-serif;text-anchor:middle;pointer-events:none}
.gd-tree.in g.lf circle{animation:leaf 3s ease-in-out 3s infinite}@keyframes leaf{50%{filter:drop-shadow(0 0 10px var(--tc))}}
.gd-tree .sap{fill:#fff;filter:drop-shadow(0 0 6px var(--c1))}
.gd-tools{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));margin:10px 0 60px}
.gd-tool{display:flex;gap:14px;align-items:flex-start;opacity:0;transform:translateY(24px) scale(.96);transition:opacity .6s calc(var(--i)*.08s),transform .6s calc(var(--i)*.08s),border-color .3s,box-shadow .3s}
.gd-tools.in .gd-tool{opacity:1;transform:none}.gd-tool:hover .gd-bd{transform:rotate(-8deg) scale(1.12)}
.gd-tool h3{font-size:1.1rem;margin:0 0 4px}.gd-tool p{margin:0;color:var(--mut);font-size:.92rem}
.gd-proj{list-style:none;margin:10px 0 60px;padding:0;display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));counter-reset:p}
.gd-proj li{counter-increment:p;position:relative;padding:20px 20px 20px 78px;opacity:0;transform:translateX(-24px);transition:opacity .6s calc(var(--i)*.1s),transform .6s calc(var(--i)*.1s),border-color .3s,box-shadow .3s}
.gd-proj.in li{opacity:1;transform:none}
.gd-proj li::before{content:counter(p,decimal-leading-zero);position:absolute;left:20px;top:16px;font:800 1.9rem Sora,sans-serif;background:linear-gradient(135deg,var(--c1),var(--v));-webkit-background-clip:text;background-clip:text;color:transparent}
.gd-proj h3{font-size:1.1rem;margin:0 0 4px}.gd-proj p{margin:0 0 8px;color:var(--mut);font-size:.92rem}
@media (max-width:1000px){.gd-wrap{grid-template-columns:1fr}.gd-det{position:static}}
@media (prefers-reduced-motion:reduce){.gd-tree path.ln{stroke-dashoffset:0}.gd-tree g.nd{transform:scale(1)}.gd-tool,.gd-proj li{opacity:1;transform:none}}

/* Graphic design: hero visual, work gallery, instructor */
@keyframes gdspin{to{transform:rotate(360deg)}}@keyframes gdbob{to{transform:translateY(-12px)}}
.gd-hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:30px;align-items:center;padding:10px 0 40px}.gd-hero .ab-hero{padding:0}
.gd-vis{position:relative;aspect-ratio:1;max-width:440px;width:100%;margin:0 auto}
.gd-blob{position:absolute;inset:18%;background:conic-gradient(from 0deg,var(--c1),var(--v),#FF6EC7,var(--c1));border-radius:42% 58% 63% 37%/45% 41% 59% 55%;animation:gdmorph 9s ease-in-out infinite,gdspin 24s linear infinite;box-shadow:0 0 80px rgba(127,0,255,.45)}
@keyframes gdmorph{50%{border-radius:62% 38% 38% 62%/55% 60% 40% 45%}}
.gd-orb{position:absolute;inset:0;animation:gdspin 28s linear infinite}.gd-orb span{position:absolute;width:50px;height:50px;margin:-25px 0 0 -25px;border-radius:13px;display:grid;place-items:center;font:800 .95rem Sora,sans-serif;color:#031018;background:var(--tc);box-shadow:0 0 20px var(--tc);animation:gdspin 28s linear infinite reverse}
.gd-f{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.gd-f button{padding:9px 18px;border-radius:999px;background:var(--glass);border:1px solid var(--line);color:var(--ink);font:inherit;cursor:pointer}.gd-f button[aria-pressed=true]{background:linear-gradient(90deg,var(--c1),var(--v));color:#031018;font-weight:600;border-color:transparent}
.gd-works{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));margin-bottom:60px}
.gd-work{margin:0;padding:10px;cursor:zoom-in;opacity:0;transform:translateY(30px) scale(.96);transition:opacity .6s calc(var(--i)*.06s),transform .6s calc(var(--i)*.06s),border-color .3s,box-shadow .3s}.gd-works.in .gd-work{opacity:1;transform:none}.gd-work.h{display:none}
.gd-img{position:relative;border-radius:12px;overflow:hidden;aspect-ratio:4/3}.gd-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s}.gd-work:hover .gd-img img{transform:scale(1.08)}
.gd-tag{position:absolute;top:10px;left:10px;padding:4px 12px;border-radius:999px;font:700 .75rem Inter,sans-serif;background:rgba(5,8,15,.82);color:#fff;display:flex;gap:6px;align-items:center}.gd-tag::before{content:"";width:8px;height:8px;border-radius:50%;background:#8CA0B3}.gd-tag.live::before{background:#00E676;animation:gdping 1.4s infinite}
@keyframes gdping{0%{box-shadow:0 0 0 0 rgba(0,230,118,.7)}70%{box-shadow:0 0 0 8px rgba(0,230,118,0)}}
.gd-work figcaption{display:flex;justify-content:space-between;gap:10px;padding:10px 4px 2px}.gd-work figcaption span{color:var(--mut);font-size:.88rem}
.gd-lb{position:fixed;inset:0;z-index:80;background:rgba(3,6,12,.93);display:grid;place-items:center;align-content:center;padding:20px;animation:vin .3s}.gd-lb[hidden]{display:none}.gd-lb img{max-width:min(1000px,100%);max-height:76vh;border-radius:14px}.gd-lb p{text-align:center;color:var(--ink);margin:12px 0 0}.gd-lb button{position:absolute;top:calc(16px + env(safe-area-inset-top,0px));right:16px;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--glass);color:var(--ink);font-size:1.2rem;cursor:pointer}
.gd-ins{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:34px;align-items:center;margin:10px 0 60px}
.gd-photo{position:relative;max-width:340px;margin:0 auto;width:100%}.gd-ring{position:absolute;inset:-10px;border-radius:50%;background:conic-gradient(var(--c1),var(--v),#FF6EC7,var(--c1));animation:gdspin 8s linear infinite}
.gd-frame{position:relative;border-radius:50%;overflow:hidden;aspect-ratio:1;background:#0a1220;border:6px solid #05080F}.gd-frame img,.gd-frame svg{width:100%;height:100%;object-fit:cover;display:block}
.gd-fl{position:absolute;width:46px;height:46px;border-radius:12px;display:grid;place-items:center;font:800 .9rem Sora,sans-serif;color:#031018;background:var(--tc);box-shadow:0 0 18px var(--tc);animation:gdbob 2.6s ease-in-out infinite alternate}
.gd-name{font-size:clamp(1.6rem,4vw,2.4rem);margin:12px 0 0}.gd-role{color:var(--c1);font:600 1.1rem Sora,sans-serif;margin:4px 0 14px}.gd-ed{outline:1px dashed transparent;border-radius:6px}.gd-ed:hover,.gd-ed:focus{outline-color:var(--c1)}
.gd-up{display:inline-block;margin-top:18px;cursor:pointer}
.gd-strip{display:flex;gap:12px;overflow-x:auto;padding:6px 0 14px;scroll-snap-type:x mandatory}.gd-strip figure{flex:0 0 200px;margin:0;scroll-snap-align:start;cursor:zoom-in}.gd-strip img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;display:block;transition:transform .4s}.gd-strip figure:hover img{transform:translateY(-4px) scale(1.03)}.gd-strip figcaption{font-size:.82rem;color:var(--mut);margin-top:6px}
@media (max-width:900px){.gd-hero,.gd-ins{grid-template-columns:1fr}.gd-vis{max-width:300px}}
@media (prefers-reduced-motion:reduce){.gd-work{opacity:1;transform:none}}

/* Social media agency page */
@keyframes smfloat{50%{transform:translateY(-12px)}}@keyframes smscroll{0%,25%{transform:none}33%,58%{transform:translateY(-330px)}66%,91%{transform:translateY(-660px)}100%{transform:none}}@keyframes smheart{0%,60%,100%{transform:scale(1)}20%{transform:scale(1.5)}40%{transform:scale(1.15)}}
.sm-stage{position:relative;display:grid;place-items:center;min-height:560px}
.sm-orbit{position:absolute;width:min(440px,100%);aspect-ratio:1;animation:gdspin 30s linear infinite}.sm-orbit span{position:absolute;width:50px;height:50px;margin:-25px 0 0 -25px;border-radius:50%;display:grid;place-items:center;font:800 .9rem Sora,sans-serif;color:#fff;background:var(--tc);box-shadow:0 0 22px var(--tc);animation:gdspin 30s linear infinite reverse}
.sm-phone{position:relative;width:250px;height:510px;border-radius:38px;border:3px solid #3a4a66;background:#070d18;padding:16px 14px;box-shadow:0 30px 80px rgba(0,0,0,.55),0 0 60px rgba(127,0,255,.3);animation:smfloat 6s ease-in-out infinite}
.sm-notch{width:80px;height:20px;border-radius:12px;background:#000;margin:0 auto 12px}
.sm-stories{display:flex;gap:10px;margin-bottom:10px}.sm-stories i{width:44px;height:44px;border-radius:50%;background:conic-gradient(#FF9A00,#E1306C,#7F00FF,#FF9A00);padding:3px;animation:gdspin 6s linear infinite;position:relative}.sm-stories i::after{content:"";position:absolute;inset:3px;border-radius:50%;background:#0f1a2e}
.sm-feed{height:330px;overflow:hidden;border-radius:14px}.sm-feed>div{animation:smscroll 14s ease-in-out infinite}.sm-post{height:330px}
.sm-art{height:240px;border-radius:14px;display:grid;place-items:center;margin-bottom:10px}.sm-art b{font:800 2rem Sora,sans-serif;color:#fff}.a1{background:linear-gradient(135deg,#00b4d8,#7F00FF)}.a2{background:linear-gradient(135deg,#ff3c7a,#ff9a3c)}.a3{background:linear-gradient(135deg,#00e676,#00b4d8)}
.sm-post em{display:block;height:10px;border-radius:6px;background:#2a3b5c;margin:8px 0}.sm-post em.s{width:60%}
.sm-act{display:flex;gap:10px;align-items:center;margin-top:12px;font-size:.85rem;color:var(--ink)}.sm-heart{color:#ff3c7a;font-size:1.4rem;animation:smheart 2.4s infinite}
.sm-svc{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(min(250px,100%),1fr));counter-reset:s;margin:10px 0 60px}
.sm-svc .glass{counter-increment:s;position:relative;padding-top:56px;opacity:0;transform:translateY(26px) rotateX(-12deg);transition:opacity .6s calc(var(--i)*.07s),transform .6s calc(var(--i)*.07s),border-color .3s,box-shadow .3s}.sm-svc.in .glass{opacity:1;transform:none}
.sm-svc .glass::before{content:counter(s,decimal-leading-zero);position:absolute;left:24px;top:16px;font:800 1.5rem Sora,sans-serif;background:linear-gradient(135deg,var(--c1),var(--v));-webkit-background-clip:text;background-clip:text;color:transparent}
.sm-svc h3{font-size:1.1rem;margin:0 0 6px}.sm-svc p{margin:0;color:var(--mut);font-size:.92rem}
.sm-track{grid-template-columns:repeat(6,1fr);margin:10px 0 60px}.sm-track li:nth-child(6){--k:5}.sm-track small{display:block;font:400 .8rem Inter,sans-serif;color:var(--mut);margin-top:4px}
.sm-cal{margin:10px 0 60px;padding:20px}.sm-legend{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.sm-legend button{padding:6px 14px;border-radius:999px;border:1px solid var(--tc);background:transparent;color:var(--ink);font:inherit;font-size:.85rem;cursor:pointer}.sm-legend button[aria-pressed=true]{background:var(--tc);color:#031018;font-weight:600}
.sm-days,.sm-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.sm-days span{text-align:center;color:var(--mut);font-size:.8rem;padding-bottom:6px}
.sm-cell{min-height:64px;border-radius:10px;background:rgba(255,255,255,.04);border:1px solid var(--line);padding:6px;font-size:.72rem;color:var(--mut);display:flex;flex-direction:column;justify-content:space-between;transition:opacity .3s}
.sm-cell b{display:block;padding:2px 6px;border-radius:6px;background:var(--tc);color:#031018;font:700 .7rem Inter,sans-serif;transform:scale(0);transition:transform .4s cubic-bezier(.3,1.6,.5,1) calc(var(--i)*.04s)}.sm-grid.in .sm-cell b{transform:scale(1)}.sm-cell.dim{opacity:.25}
.sm-an{margin:10px 0 60px}.sm-kpis{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr));margin:16px 0}.sm-kpis div{padding:14px;border-radius:14px;background:rgba(255,255,255,.04);border:1px solid var(--line)}.sm-kpis b{display:block;font:800 1.8rem Sora,sans-serif;background:linear-gradient(90deg,var(--c1),var(--v));-webkit-background-clip:text;background-clip:text;color:transparent}.sm-kpis span{font-size:.85rem;color:var(--mut)}
.sm-chart{width:100%;height:auto}.sm-line{fill:none;stroke:var(--c1);stroke-width:4;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 2s}.sm-area{fill:rgba(0,242,254,.12);opacity:0;transition:opacity 1.5s .8s}.sm-chart.in .sm-line{stroke-dashoffset:0}.sm-chart.in .sm-area{opacity:1}
.sm-pk{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));margin:10px 0 60px;align-items:stretch}.sm-pk .glass{display:flex;flex-direction:column;gap:12px}.sm-pk h3{font-size:1.4rem;margin:0}.sm-pk ul{margin:0;padding-left:18px;color:var(--mut);flex:1}.sm-pk li{margin:5px 0}.sm-pk .hot{border-color:var(--c1);box-shadow:0 0 40px rgba(0,242,254,.2);animation:smhot 3s ease-in-out infinite}@keyframes smhot{50%{box-shadow:0 0 70px rgba(127,0,255,.35)}}
@media (max-width:700px){.sm-track{grid-template-columns:repeat(3,1fr);row-gap:18px}.sm-stage{min-height:520px}.sm-cell{min-height:50px}}
@media (prefers-reduced-motion:reduce){.sm-svc .glass,.sm-cell b{opacity:1;transform:none}}
