:root{
  --bg:#030611; --bg2:#070c1f; --cyan:#22e6ff; --cyan2:#7df3ff; --violet:#7a3cff; --mag:#c040ff; --pink:#ff3cc8; --txt:#d8f6ff; --dim:#6f8fa8;
  --f:'Exo 2','Segoe UI',system-ui,sans-serif; --m:'JetBrains Mono',ui-monospace,Consolas,monospace;
  --glow:0 0 12px rgba(34,230,255,.6),0 0 38px rgba(34,230,255,.25);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--txt);font-family:var(--f);font-size:17px;line-height:1.6;overflow-x:hidden;cursor:none}
body.booting{overflow:hidden}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:none}
::selection{background:var(--mag);color:#fff}
#space{position:fixed;inset:0;width:100%;height:100%;z-index:0}
main,.hud-top,footer{position:relative;z-index:2}
@media(hover:none){body,button{cursor:auto}.cursor{display:none}}

/* overlays */
.fx-grain,.fx-scan,.fx-vignette,.fx-glitch{position:fixed;inset:0;pointer-events:none;z-index:50}
.fx-grain{opacity:.07;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");animation:grain 1s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-1%)}80%{transform:translate(3%,3%)}100%{transform:translate(0,0)}}
.fx-scan{background:repeating-linear-gradient(0deg,rgba(0,0,0,.18) 0 1px,transparent 1px 3px);opacity:.35;mix-blend-mode:multiply}
.fx-vignette{background:radial-gradient(ellipse at center,transparent 55%,rgba(0,0,10,.75))}
.fx-glitch{opacity:0;background:linear-gradient(transparent 40%,rgba(34,230,255,.18) 40% 43%,transparent 43% 70%,rgba(255,60,200,.16) 70% 72%,transparent 72%);mix-blend-mode:screen}
.fx-glitch.on{opacity:1;animation:sg .28s steps(3)}
@keyframes sg{0%{transform:translateX(-12px) skewX(2deg)}33%{transform:translateX(14px)}66%{transform:translateX(-6px) translateY(5px)}100%{transform:none}}
body.shake main{animation:shake .28s steps(3)}
@keyframes shake{0%{transform:translateX(-4px);filter:hue-rotate(40deg)}50%{transform:translateX(5px) skewX(-1deg)}100%{transform:none}}

/* cursor */
.cursor{position:fixed;left:0;top:0;z-index:400;pointer-events:none;mix-blend-mode:screen}
.cursor i{position:absolute;width:34px;height:34px;margin:-17px 0 0 -17px;border:1px solid var(--cyan);border-radius:50%;transition:width .2s,height .2s,margin .2s,border-color .2s;box-shadow:0 0 10px var(--cyan)}
.cursor b{position:absolute;width:5px;height:5px;margin:-2.5px 0 0 -2.5px;background:#fff;border-radius:50%}
.cursor.hover i{width:64px;height:64px;margin:-32px 0 0 -32px;border-color:var(--pink)}

/* boot */
#boot{position:fixed;inset:0;z-index:300;background:var(--bg);display:flex;flex-direction:column;justify-content:center;padding:6vw;gap:18px;transition:opacity .6s,filter .6s}
#boot.out{opacity:0;filter:blur(8px) hue-rotate(60deg);pointer-events:none}
#bootLog{font:14px/1.7 var(--m);color:var(--cyan);text-shadow:0 0 8px rgba(34,230,255,.6);white-space:pre-wrap;min-height:46vh}
.boot-bar{height:3px;background:rgba(34,230,255,.15);max-width:560px}
.boot-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--cyan),var(--mag));box-shadow:var(--glow)}
#bootSkip{align-self:flex-start}

/* hud */
.hud-top{position:fixed;top:0;left:0;right:0;z-index:60;display:flex;align-items:center;justify-content:space-between;padding:14px 3vw;background:linear-gradient(rgba(3,6,17,.85),transparent)}
.logo{font-weight:900;font-style:italic;font-size:26px;letter-spacing:.08em;color:var(--cyan);text-shadow:var(--glow)}
#nav{display:flex;gap:26px;font:12px var(--m);letter-spacing:.14em;text-transform:uppercase}
#nav a{color:var(--dim);position:relative;padding:4px 0;transition:color .2s}
#nav a:hover,#nav a.act{color:var(--cyan2);text-shadow:var(--glow)}
.tools{display:flex;gap:8px}
.chip{font:12px var(--m);letter-spacing:.12em;padding:6px 12px;border:1px solid rgba(34,230,255,.45);color:var(--cyan2);clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);transition:.2s}
.chip:hover{background:rgba(34,230,255,.15);box-shadow:var(--glow)}
.chip .on{color:var(--pink)}
.burger{display:none}
.telemetry{position:fixed;right:14px;bottom:18px;z-index:55;font:10px/1.7 var(--m);color:var(--dim);letter-spacing:.14em;text-align:right}
.telemetry b{color:var(--cyan2);font-weight:400}
.tbar{height:2px;background:rgba(34,230,255,.2);margin-top:6px;width:90px;margin-left:auto}.tbar i{display:block;height:100%;width:0;background:var(--cyan);box-shadow:var(--glow)}

/* shared */
.corner{position:absolute;width:22px;height:22px;border:0 solid var(--cyan);opacity:.85;pointer-events:none;filter:drop-shadow(0 0 4px var(--cyan))}
.corner.tl{top:0;left:0;border-width:2px 0 0 2px}.corner.tr{top:0;right:0;border-width:2px 2px 0 0}
.corner.bl{bottom:0;left:0;border-width:0 0 2px 2px}.corner.br{bottom:0;right:0;border-width:0 2px 2px 0}
.btn{display:inline-block;font:700 14px var(--m);letter-spacing:.16em;text-transform:uppercase;padding:15px 30px;color:#001018;background:linear-gradient(100deg,var(--cyan),var(--cyan2));clip-path:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px);transition:.25s;box-shadow:var(--glow)}
.btn:hover{filter:hue-rotate(80deg) brightness(1.2);transform:translateY(-2px)}
.btn.ghost{background:transparent;color:var(--cyan2);outline:1px solid var(--cyan);outline-offset:-1px;box-shadow:none}
.sec{position:relative;padding:clamp(70px,11vw,140px) 5vw 0;max-width:1500px;margin:0 auto}
.sec-head{display:flex;align-items:center;gap:18px;margin-bottom:34px}
.sec-head .idx{font:13px var(--m);color:var(--mag);letter-spacing:.2em}
.sec-head h2{font-size:clamp(30px,5vw,58px);font-weight:900;font-style:italic;letter-spacing:.04em;color:#fff;text-shadow:var(--glow);white-space:nowrap}
.sec-head .line{flex:1;height:1px;background:linear-gradient(90deg,var(--cyan),transparent);box-shadow:var(--glow)}
.frame{position:relative;border:1px solid rgba(34,230,255,.28);background:linear-gradient(160deg,rgba(10,22,52,.72),rgba(6,10,30,.72));backdrop-filter:blur(6px);padding:0}
.cap{font:12px var(--m);color:var(--dim);letter-spacing:.1em;margin-top:14px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:26px}

/* glitch text */
.glitch{position:relative;display:inline-block}
.glitch::before,.glitch::after{content:attr(data-text);position:absolute;left:0;top:0;width:100%;height:100%;opacity:0;pointer-events:none;overflow:hidden;white-space:nowrap}
.glitch::before{color:var(--pink);text-shadow:none}
.glitch::after{color:var(--cyan);text-shadow:none}
.glitch:hover::before,.glitch.g::before{opacity:.85;animation:gl1 .35s steps(2) 2}
.glitch:hover::after,.glitch.g::after{opacity:.85;animation:gl2 .35s steps(2) 2}
@keyframes gl1{0%{transform:translate(-4px,1px);clip-path:inset(10% 0 60% 0)}50%{transform:translate(3px,-2px);clip-path:inset(55% 0 12% 0)}100%{transform:translate(-2px,0);clip-path:inset(30% 0 40% 0)}}
@keyframes gl2{0%{transform:translate(4px,-1px);clip-path:inset(60% 0 10% 0)}50%{transform:translate(-3px,2px);clip-path:inset(5% 0 70% 0)}100%{transform:translate(2px,0);clip-path:inset(40% 0 30% 0)}}

/* hero */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:center;justify-content:center;text-align:center;padding:90px 6vw 60px;margin:0 2vw}
.hero .corner{width:36px;height:36px}.hero .corner.tl{top:76px;left:0}.hero .corner.tr{top:76px;right:0}.hero .corner.bl{bottom:20px;left:0}.hero .corner.br{bottom:20px;right:0}
.hero-meta{position:absolute;left:0;right:0;display:flex;justify-content:space-between;font:11px var(--m);letter-spacing:.2em;color:var(--dim);padding:0 14px}
.hero-meta.top{top:90px}.hero-meta.bottom{bottom:28px}
.scrollhint{animation:blink 1.6s infinite}@keyframes blink{50%{opacity:.25}}
.kicker{font:12px var(--m);letter-spacing:.35em;color:var(--mag);margin-bottom:10px}
.big{font-size:clamp(70px,17vw,250px);line-height:.95;font-weight:900;font-style:italic;color:var(--cyan);letter-spacing:.02em;text-shadow:0 0 18px rgba(34,230,255,.7),0 0 70px rgba(34,230,255,.35),0 0 140px rgba(122,60,255,.4);animation:flick 7s infinite}
@keyframes flick{0%,92%,100%{opacity:1}93%{opacity:.6}94%{opacity:1}96%{opacity:.75}}
.roles{display:flex;gap:min(3vw,28px);justify-content:center;flex-wrap:wrap;margin-top:12px;font:700 clamp(12px,1.6vw,19px) var(--m);letter-spacing:.3em;color:#fff}
.roles span{padding:4px 12px;border:1px solid rgba(192,64,255,.55);background:rgba(122,60,255,.14);animation:rpulse 4s infinite}
.roles span:nth-child(2){animation-delay:1s}.roles span:nth-child(3){animation-delay:2s}.roles span:nth-child(4){animation-delay:3s}
@keyframes rpulse{0%,100%{box-shadow:none}50%{box-shadow:0 0 18px rgba(192,64,255,.6)}}
.lead{max-width:640px;margin:26px auto;font-size:clamp(17px,2vw,24px);font-weight:600;color:var(--cyan2);text-shadow:0 0 14px rgba(34,230,255,.4)}
.cta{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-top:8px}

/* reel */
#reelFrame{aspect-ratio:16/9;overflow:hidden;cursor:none}
#reelFrame video,.modal video{width:100%;height:100%;object-fit:cover;display:block;background:#000}
.frame-ui{position:absolute;inset:14px 18px auto;display:flex;justify-content:space-between;font:11px var(--m);letter-spacing:.15em;color:var(--cyan2);text-shadow:0 0 6px #000;pointer-events:none}
.rec{color:#ff4466;animation:blink 1.2s infinite}
.playbig{position:absolute;left:50%;top:50%;width:104px;height:104px;margin:-52px;border-radius:50%;border:2px solid var(--cyan);background:rgba(3,6,17,.55);box-shadow:var(--glow),inset 0 0 24px rgba(34,230,255,.3);transition:.3s}
.playbig i{position:absolute;left:42px;top:32px;border-style:solid;border-width:20px 0 20px 32px;border-color:transparent transparent transparent var(--cyan)}
.playbig:hover{transform:scale(1.12);border-color:var(--pink)}
.playing .playbig{opacity:0;pointer-events:none}

/* filters */
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:26px}
.filters .chip.act{background:var(--cyan);color:#001018;box-shadow:var(--glow)}

/* project grid */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:28px;perspective:1200px}
.holo{position:relative;display:block;overflow:hidden;border:1px solid rgba(34,230,255,.3);background:rgba(8,16,40,.75);transform-style:preserve-3d;transition:transform .15s ease-out,box-shadow .3s,border-color .3s;--rx:0deg;--ry:0deg;--mx:50%;--my:50%;transform:rotateX(var(--rx)) rotateY(var(--ry));will-change:transform}
.holo:hover{border-color:var(--cyan);box-shadow:0 0 36px rgba(34,230,255,.28),0 0 90px rgba(122,60,255,.25)}
.holo .media{position:relative;aspect-ratio:16/9;overflow:hidden;background:#000}
.holo.vert .media{aspect-ratio:16/9}
.holo img,.holo video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s,opacity .3s}
.holo video{opacity:0}.holo:hover video{opacity:1}.holo:hover img{transform:scale(1.07)}
.holo::before{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;background:radial-gradient(circle at var(--mx) var(--my),rgba(255,255,255,.22),transparent 40%),linear-gradient(115deg,transparent 30%,rgba(34,230,255,.16) 42%,rgba(192,64,255,.2) 52%,rgba(255,60,200,.14) 60%,transparent 72%);mix-blend-mode:screen;opacity:.5;transition:opacity .3s}
.holo:hover::before{opacity:1}
.holo::after{content:"";position:absolute;inset:0;z-index:4;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(34,230,255,.07) 0 1px,transparent 1px 4px);animation:scanmove 6s linear infinite}
@keyframes scanmove{to{background-position:0 80px}}
.holo-body{position:relative;z-index:5;padding:16px 20px 22px;background:linear-gradient(transparent,rgba(5,8,24,.9))}
.holo-body small{font:11px var(--m);letter-spacing:.2em;color:var(--mag)}
.holo-body h3{font-size:24px;font-weight:900;font-style:italic;color:#fff;margin:2px 0 4px;text-shadow:0 0 12px rgba(34,230,255,.5)}
.holo-body p{font-size:15px;line-height:1.5;color:#a9c4d6}
.holo .tag{position:absolute;z-index:6;top:10px;left:10px;font:10px var(--m);letter-spacing:.15em;padding:3px 8px;background:rgba(3,6,17,.8);border:1px solid var(--cyan);color:var(--cyan2)}
.holo .watch{position:absolute;z-index:6;right:10px;bottom:10px;font:700 11px var(--m);letter-spacing:.2em;color:var(--pink);opacity:0;transform:translateY(6px);transition:.3s}
.holo:hover .watch{opacity:1;transform:none}
.holo.glow-in{animation:flickin .5s steps(4)}
@keyframes flickin{0%{opacity:0}30%{opacity:.7}50%{opacity:.2}100%{opacity:1}}
.chan{display:block}
.chan .holo-body{padding-top:20px}.chan .go{display:inline-block;margin-top:10px;font:12px var(--m);color:var(--cyan2);letter-spacing:.1em}

/* skills */
.skills{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}
.skill{position:relative;padding:18px 20px;border:1px solid rgba(34,230,255,.25);background:rgba(8,16,40,.6);overflow:hidden}
.skill h4{font-size:20px;font-weight:900;font-style:italic;color:#fff}
.skill small{font:11px var(--m);color:var(--dim);letter-spacing:.14em}
.skill .meter{height:4px;margin:12px 0 6px;background:rgba(34,230,255,.12);position:relative;overflow:hidden}
.skill .meter i{position:absolute;inset:0 auto 0 0;width:0;background:linear-gradient(90deg,var(--violet),var(--cyan));box-shadow:var(--glow);transition:width 1.4s cubic-bezier(.2,.8,.2,1)}
.skill.in .meter i{width:var(--w)}
.skill .st{font:10px var(--m);letter-spacing:.2em;color:var(--cyan)}
.skill .st::before{content:"● ";animation:blink 2s infinite}

/* terminal */
.terminal{border:1px solid rgba(192,64,255,.5);background:rgba(6,6,22,.82);box-shadow:0 0 40px rgba(122,60,255,.2);padding-bottom:26px}
.term-bar{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid rgba(192,64,255,.35);font:12px var(--m);color:var(--mag)}
.term-bar i{width:9px;height:9px;border-radius:50%;background:var(--mag);opacity:.6}
.term-bar span{margin-left:10px}
.term-body{font:14px/1.9 var(--m);color:var(--cyan2);padding:20px 22px;white-space:pre-wrap;min-height:420px}
.term-body .c{color:var(--mag)}.term-body .d{color:var(--dim)}
.terminal .btn{margin:0 22px}

/* about */
.about{display:grid;grid-template-columns:1.3fr 1fr;gap:40px;align-items:center}
.about-txt p{font-size:clamp(17px,1.7vw,21px);margin-bottom:16px;color:#bfe3f2}
.stats{display:grid;gap:14px}
.stats div{border-left:2px solid var(--cyan);padding:6px 18px;background:linear-gradient(90deg,rgba(34,230,255,.1),transparent)}
.stats b{display:block;font-size:48px;font-weight:900;font-style:italic;color:var(--cyan);text-shadow:var(--glow);line-height:1.1}
.stats span{font:11px var(--m);letter-spacing:.2em;color:var(--dim);text-transform:uppercase}

/* contact */
.form{padding:28px;display:grid;gap:16px}
.form label span{display:block;font:11px var(--m);letter-spacing:.2em;color:var(--mag);margin-bottom:4px}
.form input,.form textarea{width:100%;background:rgba(3,6,17,.7);border:1px solid rgba(34,230,255,.3);color:#fff;padding:12px;font:16px var(--f);outline:0;cursor:text}
.form input:focus,.form textarea:focus{border-color:var(--cyan);box-shadow:var(--glow)}
.form small{font:11px var(--m);color:var(--dim)}
.links{padding:28px;display:flex;flex-direction:column;gap:8px}
.links small{font:11px var(--m);letter-spacing:.2em;color:var(--mag);margin-top:12px}
.links a{font-size:20px;font-weight:600;color:var(--cyan2);transition:.2s}.links a:hover{color:var(--pink);padding-left:8px}
.links .mail{font-size:clamp(20px,3vw,34px);font-weight:900;font-style:italic;color:#fff;text-shadow:var(--glow)}
.foot{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:80px 5vw 28px;font:11px var(--m);letter-spacing:.2em;color:var(--dim)}

/* modal */
.modal{position:fixed;inset:0;z-index:150;background:rgba(2,4,12,.88);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:4vw}
.modal[hidden]{display:none}
.modal-box{width:min(1100px,100%);max-height:94vh;overflow:auto;animation:flickin .4s steps(4)}
.modal-box>.chip{position:absolute;top:10px;right:10px;z-index:5;background:rgba(3,6,17,.8)}
.modal video{aspect-ratio:16/9;max-height:68vh;object-fit:contain}
.modal-info{padding:14px 22px 22px}.modal-info small{font:11px var(--m);letter-spacing:.2em;color:var(--mag)}
.modal-info h3{font-size:28px;font-weight:900;font-style:italic;color:#fff}.modal-info p{color:#a9c4d6}

/* reveal */
.reveal{opacity:0;transform:translateY(34px);filter:blur(6px);transition:opacity .8s,transform .8s cubic-bezier(.2,.8,.2,1),filter .8s}
.reveal.in{opacity:1;transform:none;filter:none}
.holo.reveal.in{transform:rotateX(var(--rx)) rotateY(var(--ry))}

@media(max-width:900px){
  body{font-size:16px}
  #nav{position:fixed;top:58px;left:0;right:0;flex-direction:column;gap:0;background:rgba(3,6,17,.96);border-bottom:1px solid var(--cyan);transform:translateY(-130%);transition:.35s;padding:8px 0}
  #nav.open{transform:none}#nav a{padding:14px 6vw}
  .burger{display:block}
  .two,.about{grid-template-columns:1fr}
  .telemetry{display:none}
  .hero-meta.top{top:76px}.hero .corner.tl,.hero .corner.tr{top:64px}
  .hero-meta{font-size:9px}
  .sec-head h2{white-space:normal}
  .grid{grid-template-columns:1fr}
  .playbig{width:76px;height:76px;margin:-38px}.playbig i{left:30px;top:22px;border-width:16px 0 16px 25px}
  .holo .watch{opacity:1}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}.reveal{opacity:1;transform:none;filter:none}
}

/* --- telegram --- */
.chip.tg{border-color:var(--pink);color:#fff;background:rgba(255,60,200,.18);box-shadow:0 0 14px rgba(255,60,200,.4)}
.chip.tg:hover{background:rgba(255,60,200,.45)}
.tgbtn{display:inline-flex;align-items:center;gap:10px;background:linear-gradient(100deg,var(--pink),var(--mag),var(--violet));color:#fff;box-shadow:0 0 22px rgba(255,60,200,.55),0 0 60px rgba(122,60,255,.35);position:relative;overflow:hidden}
.tgbtn::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 35%,rgba(255,255,255,.55) 50%,transparent 65%);transform:translateX(-120%);animation:sheen 3.2s infinite}
@keyframes sheen{60%,100%{transform:translateX(120%)}}
.links .tgbtn{align-self:flex-start;font-size:14px;font-weight:700;color:#fff;padding:15px 26px}.links .tgbtn:hover{padding-left:26px;color:#fff}
.tgf{color:var(--pink);text-shadow:0 0 10px rgba(255,60,200,.6)}.tgf:hover{color:#fff}
.toolstrip{margin-top:14px;font:11px var(--m);letter-spacing:.3em;color:var(--dim)}
/* --- vertical / formats --- */
.holo.vert .media{aspect-ratio:3/4}
.fmtb{position:absolute;z-index:6;top:10px;right:10px;font:10px var(--m);letter-spacing:.12em;padding:3px 8px;background:rgba(192,64,255,.35);border:1px solid var(--mag);color:#fff}
.fmts{display:flex;gap:8px;padding:12px 22px 0}.fmts:empty{display:none}.fmts .chip.act{background:var(--cyan);color:#001018}
.modal video.vert{max-height:72vh;width:auto;max-width:100%;margin:0 auto}
/* --- gallery --- */
.gal{columns:4 260px;column-gap:18px}
.gi{position:relative;break-inside:avoid;margin:0 0 18px;border:1px solid rgba(34,230,255,.28);overflow:hidden;background:rgba(8,16,40,.7);cursor:none;transform:rotateX(var(--rx,0)) rotateY(var(--ry,0));transition:transform .15s,border-color .3s,box-shadow .3s;--mx:50%;--my:50%}
.gi:hover{border-color:var(--cyan);box-shadow:0 0 30px rgba(34,230,255,.3)}
.gi img{display:block;width:100%;height:auto;transition:transform .5s}.gi:hover img{transform:scale(1.05)}
.gi::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(circle at var(--mx) var(--my),rgba(255,255,255,.2),transparent 45%),linear-gradient(115deg,transparent 35%,rgba(34,230,255,.14) 48%,rgba(192,64,255,.16) 56%,transparent 70%);mix-blend-mode:screen;opacity:.4}
.gi:hover::before{opacity:1}
.gi figcaption{position:absolute;left:0;right:0;bottom:0;z-index:3;padding:26px 12px 10px;font-size:14px;font-weight:600;background:linear-gradient(transparent,rgba(3,6,17,.92));transform:translateY(55%);opacity:0;transition:.3s}
.gi:hover figcaption{transform:none;opacity:1}.gi figcaption small{display:block;font:10px var(--m);letter-spacing:.15em;color:var(--mag)}
.gi.banner{column-span:none}.gi.logo{background:radial-gradient(circle,rgba(34,230,255,.12),rgba(5,8,24,.9))}
.lb{flex-direction:column;gap:10px;z-index:160}.lb:not([hidden]){display:flex}
.lb img{max-width:92vw;max-height:80vh;object-fit:contain;border:1px solid var(--cyan);box-shadow:var(--glow)}
.lb p{font:13px var(--m);letter-spacing:.14em;color:var(--cyan2)}
.lb>.chip{position:absolute;top:16px;right:16px}.lbn{position:absolute!important;top:50%!important;right:auto!important;font-size:26px}
#lbPrev{left:14px}#lbNext{right:14px!important;left:auto}
/* --- channel cards --- */
.chan{position:relative}.chan .bg{position:relative;width:100%;height:240px;object-fit:cover;opacity:.9;filter:none}
.chan .avatar{position:absolute;z-index:6;left:20px;top:176px;width:92px;height:92px;border-radius:50%;border:2px solid var(--cyan);box-shadow:var(--glow);background:#000;object-fit:cover;height:92px}
.chan .holo-body{padding-top:58px}
@media(max-width:900px){.gal{columns:2 150px;column-gap:12px}.gi{margin-bottom:12px}.gi figcaption{opacity:1;transform:none;font-size:12px}}
.chan .collage{height:240px;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:2px;position:relative;overflow:hidden}
.chan .collage img{position:static;width:100%;height:100%;object-fit:cover;opacity:.9}
.chan .avatar{object-fit:contain;background:#12081f}
/* equalizer + enter */
.eq{display:inline-flex;align-items:flex-end;gap:2px;height:12px;vertical-align:-1px}
.eq i{display:block;width:2px;height:3px;background:var(--cyan2);box-shadow:0 0 5px var(--cyan)}
#sndBtn.on .eq i{animation:eq 0.9s ease-in-out infinite}
#sndBtn.on .eq i:nth-child(2){animation-delay:.2s}#sndBtn.on .eq i:nth-child(3){animation-delay:.4s}#sndBtn.on .eq i:nth-child(4){animation-delay:.1s}
@keyframes eq{0%,100%{height:3px}50%{height:12px}}
#bootEnter{align-self:flex-start;font-size:16px;padding:18px 36px;animation:enterPulse 1.6s infinite}
#bootEnter[hidden],#bootSkip[hidden]{display:none}
@keyframes enterPulse{50%{box-shadow:0 0 30px var(--cyan),0 0 80px rgba(192,64,255,.6)}}

/* experience */
.exp{display:grid;grid-template-columns:1fr 1.4fr 1.2fr;gap:22px;margin-top:46px}
.exp-head,.exp-appr{padding:26px}
.exp-head .years{display:block;font-size:clamp(64px,8vw,110px);font-weight:900;font-style:italic;line-height:1;color:var(--cyan);text-shadow:var(--glow)}
.exp-head>span{font:12px var(--m);letter-spacing:.25em;color:var(--mag);text-transform:uppercase}
.exp-head p{margin:14px 0;color:#bfe3f2}
.toolchips{display:flex;flex-wrap:wrap;gap:8px}.toolchips span{font:11px var(--m);letter-spacing:.1em;padding:5px 10px;border:1px solid rgba(34,230,255,.4);color:var(--cyan2);background:rgba(34,230,255,.07)}
.exp-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-content:start}
.holo-mini{position:relative;padding:16px 14px;border:1px solid rgba(192,64,255,.4);background:linear-gradient(135deg,rgba(122,60,255,.16),rgba(8,16,40,.6));font-weight:600;overflow:hidden;transition:.3s}
.holo-mini::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,rgba(34,230,255,.18) 50%,transparent 65%);transform:translateX(-120%);transition:transform .8s}
.holo-mini:hover{border-color:var(--cyan);box-shadow:0 0 22px rgba(34,230,255,.3)}.holo-mini:hover::after{transform:translateX(120%)}
.exp-appr small{font:11px var(--m);letter-spacing:.25em;color:var(--mag)}
.exp-appr ul{list-style:none;margin:12px 0 18px;display:grid;gap:10px}
.exp-appr li{padding-left:18px;position:relative;color:#bfe3f2;font-size:16px}.exp-appr li::before{content:"▸";position:absolute;left:0;color:var(--cyan)}
.pdfbtn{text-align:center}.links .pdfbtn{align-self:flex-start;font-size:14px;padding:14px 24px;color:var(--cyan2)}.links .pdfbtn:hover{padding-left:24px;color:var(--pink)}
@media(max-width:1100px){.exp{grid-template-columns:1fr}}
@media(max-width:600px){.exp-fields{grid-template-columns:1fr}}
.toolsline{font-size:15px;color:var(--cyan2);margin:0 0 12px}

/* hero business card video — "Портфолио Sylar TG" */
.visitka{position:relative;width:min(70vw,340px);aspect-ratio:9/16;margin:26px auto 4px;border:1px solid rgba(34,230,255,.45);background:#000;box-shadow:0 0 0 1px rgba(122,60,255,.25),0 0 40px rgba(34,230,255,.28),0 0 120px rgba(122,60,255,.25);animation:vkfloat 6s ease-in-out infinite}
@keyframes vkfloat{50%{transform:translateY(-8px)}}
.visitka video{width:100%;height:100%;object-fit:cover;display:block}
.hero .visitka .corner{width:22px;height:22px;z-index:2}
.hero .visitka .corner.tl{top:-7px;left:-7px}.hero .visitka .corner.tr{top:-7px;right:-7px}.hero .visitka .corner.bl{bottom:-7px;left:-7px}.hero .visitka .corner.br{bottom:-7px;right:-7px}
.vk-ui{position:absolute;inset:10px 12px auto;display:flex;justify-content:space-between;font:10px var(--m);letter-spacing:.15em;color:var(--cyan2);text-shadow:0 0 6px #000;pointer-events:none}
.vk-snd{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);white-space:nowrap;font:700 13px var(--f);letter-spacing:.06em;color:#fff;padding:9px 16px;border:1px solid var(--cyan);border-radius:30px;background:rgba(3,6,17,.62);backdrop-filter:blur(6px);box-shadow:var(--glow);transition:.25s;z-index:3}
.vk-snd:hover{border-color:var(--pink);box-shadow:0 0 18px rgba(255,60,200,.6)}
.vk-snd.on{opacity:.75}
.visitka figcaption{position:absolute;left:0;right:0;top:100%;margin-top:12px;display:flex;flex-direction:column;gap:3px;text-align:center}
.visitka figcaption b{font:800 italic 16px var(--f);letter-spacing:.06em;color:var(--cyan)}
.visitka figcaption span{font:11px var(--m);color:var(--dim);letter-spacing:.04em}
@media(max-width:999px){.visitka{margin-bottom:74px}}
@media(min-width:1000px){
  .hero.has-card{padding-left:5vw;padding-right:5vw}
  .has-card .hero-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:5vw;align-items:center;width:100%;max-width:1500px}
  .has-card .hero-inner>*:not(.visitka){grid-column:1}
  .has-card .visitka{grid-column:2;grid-row:1/span 7;width:auto;height:min(70svh,760px);margin:0 0 60px}
  .has-card .big{font-size:clamp(70px,11.5vw,210px)}
}

/* prices + reviews */
.prices{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:22px}
.price{padding:26px 22px 22px;display:flex;flex-direction:column;gap:10px}
.price.hot{border-color:var(--pink);box-shadow:0 0 30px rgba(255,60,200,.25)}
.price h3{font:800 italic 20px/1.15 var(--f);color:#fff;letter-spacing:.02em}
.price .pp{font:900 italic clamp(26px,2.4vw,34px)/1 var(--f);color:var(--cyan);text-shadow:0 0 14px rgba(34,230,255,.5)}
.price small{font:11px var(--m);color:var(--dim);letter-spacing:.06em}
.price p{color:var(--txt);font-size:15px;flex:1}
.price .btn{justify-content:center;text-align:center;margin-top:6px}
.ptag{position:absolute;top:-1px;right:-1px;font:700 11px var(--m);letter-spacing:.2em;background:var(--pink);color:#fff;padding:5px 10px}
.terms-line{margin-top:18px;font:12px var(--m);letter-spacing:.08em;color:var(--cyan2);text-align:center}
.revs{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:22px}
.rev{padding:22px;display:flex;flex-direction:column;gap:12px}
.rev blockquote{color:var(--txt);font-size:15px;line-height:1.55;flex:1}
.rev figcaption{font:11px var(--m);color:var(--dim);letter-spacing:.08em;text-transform:uppercase}
.stars{color:#ffc24a;letter-spacing:.15em;text-shadow:0 0 10px rgba(255,194,74,.5)}
.telemetry{display:none!important}
@media(max-width:1100px){.prices,.revs{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.prices,.revs{grid-template-columns:1fr}}
@media(max-width:900px){.hero-meta.top{display:none}}

/* reviews: show more */
.revs:not(.open) .rev-more{display:none}
.revmore{margin-top:18px}
