*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
  --void:#08080f;
  --bg2:#0d0d1a;
  --gold:#ffd700;
  --gold2:#ff9d00;
  --gold3:#ffe066;
  --plasma:#00ffff;
  --red:#ff2d55;
  --white:#ffffff;
}
html{scroll-behavior:smooth}
body{background:var(--void);color:var(--white);font-family:'Rajdhani',sans-serif;overflow-x:hidden;cursor:none}
a{text-decoration:none;color:inherit}

/* ── Cursores — will-change para que el navegador los promueva a su propia capa ── */
#c1{position:fixed;width:6px;height:6px;background:var(--gold);border-radius:50%;pointer-events:none;z-index:30000;top:0;left:0;will-change:transform;transition:background .2s}
#c2{position:fixed;width:30px;height:30px;border:1px solid rgba(255,215,0,.4);border-radius:50%;pointer-events:none;z-index:29999;top:0;left:0;will-change:transform}
#c3{position:fixed;width:56px;height:56px;border:1px solid rgba(255,215,0,.12);border-radius:50%;pointer-events:none;z-index:29998;top:0;left:0;will-change:transform}

/* ── Loader ── */
#loader{position:fixed;inset:0;z-index:50000;background:#000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0}
.l-scan{position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--gold),var(--plasma),transparent);animation:scanDown 2.5s ease forwards;box-shadow:0 0 20px var(--gold),0 0 60px rgba(255,215,0,.3)}
@keyframes scanDown{from{top:0}to{top:100%}}
.l-logo{font-family:'Orbitron',sans-serif;font-size:clamp(24px,5vw,56px);font-weight:900;letter-spacing:10px;text-transform:uppercase;color:transparent;background:linear-gradient(135deg,var(--gold),var(--gold2),var(--plasma));-webkit-background-clip:text;background-clip:text;text-align:center;opacity:0;animation:fin 1s 1s ease forwards}
.l-sub{font-family:'Share Tech Mono',monospace;font-size:12px;letter-spacing:5px;color:rgba(255,215,0,.4);margin-top:18px;opacity:0;animation:fin .8s 1.6s ease forwards}
.l-bar{width:280px;height:1px;background:rgba(255,255,255,.05);margin-top:44px;opacity:0;animation:fin .5s 1.9s ease forwards}
.l-fill{height:100%;width:0;background:linear-gradient(90deg,var(--gold),var(--plasma));animation:lfill 1.2s 2s ease forwards;box-shadow:0 0 8px var(--gold)}
@keyframes lfill{to{width:100%}}
.l-pct{font-family:'Share Tech Mono',monospace;font-size:11px;color:rgba(255,215,0,.35);margin-top:8px;opacity:0;animation:fin .5s 2s ease forwards}
@keyframes fin{to{opacity:1}}

/* ── Canvas ── */
#space-canvas{position:fixed;inset:0;z-index:0;pointer-events:none;will-change:transform}

/* ── Nav — quitamos backdrop-filter del estado base, solo cuando solid ── */
nav{position:fixed;top:0;left:0;right:0;z-index:500;display:flex;align-items:center;justify-content:space-between;padding:20px 72px;transition:background .4s,padding .3s}
nav.solid{background:rgba(8,8,15,.97);backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,215,0,.08);padding:14px 72px}
.nav-logo{font-family:'Orbitron',sans-serif;font-size:18px;font-weight:700;letter-spacing:3px;color:var(--gold);text-shadow:0 0 20px rgba(255,215,0,.4)}
.nav-links{display:flex;gap:32px;list-style:none}
.nav-links a{font-family:'Rajdhani',sans-serif;font-size:12px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:rgba(255,255,255,.55);transition:color .2s;position:relative}
.nav-links a::after{content:'';position:absolute;bottom:-3px;left:0;width:0;height:1px;background:var(--gold);transition:width .3s;box-shadow:0 0 6px var(--gold)}
.nav-links a:hover{color:var(--gold)}
.nav-links a:hover::after{width:100%}

/* ── Barra progreso ── */
#prog{position:fixed;top:0;left:0;height:2px;z-index:9000;background:linear-gradient(90deg,var(--gold),var(--plasma));box-shadow:0 0 10px var(--gold);width:0;will-change:width}

/* ── Puntos sección ── */
.sdots{position:fixed;right:22px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:10px;z-index:200}
.sd{width:4px;height:4px;border-radius:50%;background:rgba(255,215,0,.25);transition:all .3s;cursor:pointer}
.sd.a{background:var(--gold);transform:scale(2);box-shadow:0 0 8px var(--gold)}

/* ── Hero ── */
#hero{position:relative;min-height:100vh;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;padding:0 40px}

.grid-floor{position:absolute;bottom:0;left:0;right:0;height:55vh;background:repeating-linear-gradient(90deg,rgba(255,215,0,.07) 0px,rgba(255,215,0,.07) 1px,transparent 1px,transparent 80px),repeating-linear-gradient(0deg,rgba(255,215,0,.07) 0px,rgba(255,215,0,.07) 1px,transparent 1px,transparent 80px);transform:perspective(700px) rotateX(62deg);transform-origin:bottom center;pointer-events:none;animation:gp 4s ease-in-out infinite}
@keyframes gp{0%,100%{opacity:.6}50%{opacity:1}}

/* Anillos — will-change para GPU ── */
.hring{position:absolute;border-radius:50%;border:1px solid;animation:rr linear infinite;pointer-events:none;top:50%;left:50%;will-change:transform}
.hr1{width:580px;height:580px;border-color:rgba(255,215,0,.1);animation-duration:35s;transform:translate(-50%,-50%)}
.hr2{width:800px;height:800px;border-color:rgba(0,255,255,.06);animation-duration:50s;animation-direction:reverse;transform:translate(-50%,-50%)}
.hr3{width:400px;height:400px;border-color:rgba(255,45,85,.07);animation-duration:22s;transform:translate(-50%,-50%)}
@keyframes rr{to{transform:translate(-50%,-50%) rotate(360deg)}}

.photo-holo{position:absolute;right:7%;top:50%;transform:translateY(-50%);z-index:4;opacity:0;animation:fin 1s 4.5s ease forwards}
.photo-hex{width:240px;height:240px;clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);background:linear-gradient(135deg,rgba(255,215,0,.2),rgba(0,255,255,.1));display:flex;align-items:center;justify-content:center;animation:hp 3s ease-in-out infinite;position:relative}
@keyframes hp{0%,100%{box-shadow:0 0 40px rgba(255,215,0,.2),0 0 80px rgba(0,255,255,.05)}50%{box-shadow:0 0 80px rgba(255,215,0,.4),0 0 120px rgba(0,255,255,.1)}}
.photo-inner{width:226px;height:226px;clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);background:rgba(0,0,20,.9);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;position:relative;overflow:hidden}
.photo-inner::after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 3px,rgba(0,255,255,.025) 3px,rgba(0,255,255,.025) 4px);pointer-events:none;animation:sl 6s linear infinite}
@keyframes sl{to{background-position:0 100px}}
.photo-img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}
.photo-icon{font-size:60px;opacity:.2}
.photo-lbl{font-family:'Share Tech Mono',monospace;font-size:9px;letter-spacing:2px;color:rgba(0,255,255,.5);text-align:center;padding:0 20px;line-height:1.8}

.ph-bracket{position:absolute;width:18px;height:18px}
.ph-bracket.tl{top:-12px;left:-12px;border-top:2px solid var(--gold);border-left:2px solid var(--gold)}
.ph-bracket.tr{top:-12px;right:-12px;border-top:2px solid var(--gold);border-right:2px solid var(--gold)}
.ph-bracket.bl{bottom:-12px;left:-12px;border-bottom:2px solid var(--gold);border-left:2px solid var(--gold)}
.ph-bracket.br{bottom:-12px;right:-12px;border-bottom:2px solid var(--gold);border-right:2px solid var(--gold)}

.ph-scan{position:absolute;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,rgba(0,255,255,.5),transparent);animation:phscan 3s ease-in-out infinite;top:0}
@keyframes phscan{0%{top:0;opacity:0}10%{opacity:1}90%{opacity:1}100%{top:100%;opacity:0}}

/* Orbes — quitamos backdrop-filter, no aporta suficiente para el coste ── */
.stat-orbs{position:absolute;left:5%;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:16px;z-index:4;opacity:0;animation:fadeU .8s 4.8s ease forwards}
.orb{display:flex;align-items:center;gap:12px;padding:12px 18px;border:1px solid rgba(255,215,0,.18);background:rgba(255,215,0,.05);clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,10px 100%,0 calc(100% - 10px));transition:border-color .3s,background .3s,transform .3s}
.orb:hover{border-color:rgba(255,215,0,.5);background:rgba(255,215,0,.1);transform:translateX(4px)}
.orb-num{font-family:'Orbitron',sans-serif;font-size:20px;font-weight:700;color:var(--gold);line-height:1}
.orb-txt{font-family:'Rajdhani',sans-serif;font-size:10px;letter-spacing:2px;color:rgba(255,255,255,.6);text-transform:uppercase}

.hero-c{position:relative;z-index:5;text-align:center}
.hero-eye{font-family:'Share Tech Mono',monospace;font-size:11px;letter-spacing:6px;color:rgba(255,215,0,.65);text-transform:uppercase;margin-bottom:28px;opacity:0;animation:fadeU .8s 3.4s ease forwards}
.hero-name{font-family:'Orbitron',sans-serif;font-size:clamp(36px,7.5vw,104px);font-weight:900;line-height:1.25;text-transform:uppercase;margin-bottom:8px}
.hn1{display:block;overflow:hidden}
.hn1 span{display:block;background:linear-gradient(90deg,var(--gold3),var(--gold),var(--gold2));-webkit-background-clip:text;background-clip:text;color:transparent;animation:slin .9s 3.6s cubic-bezier(.22,1,.36,1) both;position:relative}
.hn1 span::after{content:attr(data-t);position:absolute;inset:0;background:linear-gradient(90deg,var(--gold3),var(--gold),var(--gold2));-webkit-background-clip:text;background-clip:text;color:transparent;filter:blur(18px);opacity:.45}
.hn2{display:block;overflow:hidden}
.hn2 span{display:block;background:linear-gradient(90deg,rgba(255,215,0,.7),rgba(255,215,0,1),rgba(255,215,0,.7));-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-stroke:1px rgba(255,215,0,.55);animation:slin .9s 3.8s cubic-bezier(.22,1,.36,1) both}
.hn3{display:block;overflow:hidden}
.hn3 span{display:block;font-size:clamp(18px,2.8vw,40px);font-weight:400;letter-spacing:16px;color:var(--plasma);text-shadow:0 0 30px var(--plasma),0 0 60px rgba(0,255,255,.3);animation:slin .9s 4s cubic-bezier(.22,1,.36,1) both}
@keyframes slin{from{transform:translateY(100%)}to{transform:translateY(0)}}
@keyframes fadeU{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}

.hero-roles{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin:36px 0 48px;opacity:0;animation:fadeU .8s 4.3s ease forwards}
.role{font-family:'Rajdhani',sans-serif;font-size:12px;font-weight:600;letter-spacing:3px;text-transform:uppercase;padding:8px 18px;border:1px solid rgba(255,215,0,.28);color:rgba(255,215,0,.85);clip-path:polygon(8px 0%,100% 0%,calc(100% - 8px) 100%,0% 100%);transition:border-color .3s,color .3s,box-shadow .3s;position:relative;overflow:hidden}
.role::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,215,0,.15),transparent);opacity:0;transition:opacity .3s}
.role:hover{border-color:var(--gold);color:var(--gold);box-shadow:0 0 20px rgba(255,215,0,.2)}
.role:hover::before{opacity:1}

.hero-scroll{position:absolute;bottom:36px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;opacity:0;animation:fadeU 1s 5s ease forwards}
.scroll-line{width:1px;height:56px;background:linear-gradient(to bottom,transparent,var(--gold),transparent);animation:sp 2s ease-in-out infinite;will-change:transform,opacity}
@keyframes sp{0%,100%{transform:scaleY(.4);opacity:.3}50%{transform:scaleY(1);opacity:1}}
.scroll-txt{font-family:'Share Tech Mono',monospace;font-size:9px;letter-spacing:4px;color:rgba(255,215,0,.4)}

/* ── Secciones ── */
section{position:relative;z-index:2;padding:120px 80px}
.sec-tag{font-family:'Share Tech Mono',monospace;font-size:11px;color:rgba(255,215,0,.55);letter-spacing:5px;text-transform:uppercase;margin-bottom:14px}
.sec-title{font-family:'Orbitron',sans-serif;font-size:clamp(26px,4vw,50px);font-weight:700;color:var(--white);letter-spacing:2px;margin-bottom:64px;position:relative;display:inline-block}
.sec-title::after{content:'';position:absolute;bottom:-12px;left:0;width:50px;height:2px;background:linear-gradient(90deg,var(--gold),transparent);box-shadow:0 0 8px var(--gold)}

/* ── About ── */
#about{background:linear-gradient(180deg,var(--void),var(--bg2))}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:start}
.about-text p{font-size:16px;line-height:2;color:rgba(255,255,255,.72);font-weight:300;margin-bottom:22px}
.about-text strong{color:var(--white);font-weight:600}
.about-text .glow{color:var(--gold);font-family:'Share Tech Mono',monospace;font-size:13px;text-shadow:0 0 10px rgba(255,215,0,.4)}
.dp-panels{display:flex;flex-direction:column;gap:3px}
.dp{padding:18px 22px;border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.03);position:relative;overflow:hidden;transition:border-color .3s,background .3s,transform .3s;clip-path:polygon(0 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%)}
.dp::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,var(--gold),var(--plasma));transform:scaleY(0);transform-origin:top;transition:transform .4s cubic-bezier(.22,1,.36,1)}
.dp:hover{border-color:rgba(255,215,0,.28);background:rgba(255,215,0,.06);transform:translateX(6px)}
.dp:hover::before{transform:scaleY(1)}
.dp-lbl{font-family:'Share Tech Mono',monospace;font-size:9px;letter-spacing:3px;color:rgba(255,215,0,.55);text-transform:uppercase;margin-bottom:6px}
.dp-val{font-size:13px;color:rgba(255,255,255,.78);line-height:1.6}
.dp-val strong{color:var(--white)}

/* ── Projects ── */
#projects{background:var(--bg2)}
.proj-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:rgba(255,215,0,.06);border:1px solid rgba(255,215,0,.07)}
.pcard{background:var(--bg2);padding:36px 32px;position:relative;overflow:hidden;transition:background .4s,transform .4s cubic-bezier(.22,1,.36,1);cursor:default}
.pcard::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,rgba(255,215,0,.08),transparent 60%);opacity:0;transition:opacity .4s}
.pcard::after{content:'';position:absolute;top:0;left:0;width:100%;height:1px;background:linear-gradient(90deg,transparent,var(--gold),var(--plasma),transparent);transform:translateX(-100%);transition:transform .6s ease}
.pcard:hover{background:#000022;transform:translateY(-5px)}
.pcard:hover::before{opacity:1}
.pcard:hover::after{transform:translateX(0)}
.pcard-num{font-family:'Orbitron',sans-serif;font-size:60px;font-weight:900;color:rgba(255,215,0,.06);position:absolute;top:16px;right:18px;line-height:1;transition:color .3s}
.pcard:hover .pcard-num{color:rgba(255,215,0,.12)}
.pcard-tag{font-family:'Share Tech Mono',monospace;font-size:9px;letter-spacing:3px;color:var(--plasma);text-transform:uppercase;margin-bottom:14px}
.pcard-title{font-family:'Orbitron',sans-serif;font-size:16px;font-weight:700;color:var(--white);margin-bottom:12px;line-height:1.2}
.pcard-desc{font-size:13px;color:rgba(255,255,255,.62);line-height:1.8;margin-bottom:22px}
.pcard-pills{display:flex;flex-wrap:wrap;gap:5px}
.ppill{font-family:'Share Tech Mono',monospace;font-size:9px;color:rgba(255,215,0,.5);border:1px solid rgba(255,215,0,.15);padding:3px 9px;letter-spacing:1px;transition:border-color .2s,color .2s}
.pcard:hover .ppill{border-color:rgba(255,215,0,.35);color:rgba(255,215,0,.85)}

/* ── Skills ── */
#skills{background:linear-gradient(180deg,var(--bg2),var(--void))}
.skills-layout{display:grid;grid-template-columns:1fr 1fr;gap:72px}
.sk-gt{font-family:'Orbitron',sans-serif;font-size:11px;font-weight:700;color:rgba(255,215,0,.55);letter-spacing:3px;text-transform:uppercase;margin-bottom:22px;padding-bottom:10px;border-bottom:1px solid rgba(255,215,0,.14);margin-top:32px}
.sk-gt:first-child{margin-top:0}
.sbar{margin-bottom:16px}
.sbar-top{display:flex;justify-content:space-between;margin-bottom:7px}
.sbar-name{font-size:13px;color:rgba(255,255,255,.8);font-weight:500;letter-spacing:.5px}
.sbar-pct{font-family:'Share Tech Mono',monospace;font-size:11px;color:rgba(255,215,0,.55)}
.sbar-track{height:2px;background:rgba(255,255,255,.07);position:relative}
.sbar-fill{position:absolute;top:0;left:0;height:100%;width:0;background:linear-gradient(90deg,var(--gold2),var(--gold),var(--gold3));transition:width 1.6s cubic-bezier(.22,1,.36,1);box-shadow:0 0 8px rgba(255,215,0,.35),0 0 18px rgba(255,215,0,.1);will-change:width}
.sbar-fill::after{content:'';position:absolute;right:0;top:50%;transform:translateY(-50%);width:5px;height:5px;border-radius:50%;background:var(--gold3);box-shadow:0 0 8px var(--gold),0 0 16px rgba(255,215,0,.4)}
.sbar-fill.on{width:var(--w)}
.tech-hex{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:32px}
.th{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:1px solid rgba(255,215,0,.1);background:rgba(255,215,0,.025);transition:border-color .3s,background .3s,transform .3s,box-shadow .3s;clip-path:polygon(10px 0%,calc(100% - 10px) 0%,100% 10px,100% calc(100% - 10px),calc(100% - 10px) 100%,10px 100%,0% calc(100% - 10px),0% 10px);cursor:default}
.th:hover{border-color:rgba(255,215,0,.5);background:rgba(255,215,0,.09);transform:scale(1.06);box-shadow:0 0 20px rgba(255,215,0,.15)}
.th-icon{font-size:20px}
.th-name{font-family:'Share Tech Mono',monospace;font-size:8px;color:rgba(255,215,0,.6);letter-spacing:1px;text-align:center}

/* ── Experience ── */
#experience{background:var(--void)}
.exp-spine{position:absolute;left:80px;top:200px;bottom:60px;width:1px;background:linear-gradient(to bottom,var(--gold),rgba(255,215,0,.1),transparent)}
.exp-items{margin-left:56px;display:flex;flex-direction:column}
.eitem{position:relative;padding:0 0 60px 52px;border-left:1px solid rgba(255,215,0,.1);transition:border-color .3s}
.eitem:hover{border-left-color:rgba(255,215,0,.35)}
.eitem:last-child{border-left-color:transparent;padding-bottom:0}
.e-dot{position:absolute;left:-6px;top:5px;width:11px;height:11px;border:1px solid var(--gold);background:var(--bg2);transform:rotate(45deg);box-shadow:0 0 8px rgba(255,215,0,.3);transition:background .3s,box-shadow .3s}
.eitem:hover .e-dot{background:var(--gold);box-shadow:0 0 20px var(--gold),0 0 40px rgba(255,215,0,.3)}
.e-period{font-family:'Share Tech Mono',monospace;font-size:11px;color:rgba(255,215,0,.55);letter-spacing:3px;margin-bottom:8px}
.e-title{font-family:'Orbitron',sans-serif;font-size:18px;font-weight:700;color:var(--white);margin-bottom:4px;letter-spacing:1px}
.e-company{font-size:13px;color:rgba(0,255,255,.65);letter-spacing:2px;margin-bottom:12px}
.e-desc{font-size:13px;color:rgba(255,255,255,.62);line-height:1.85;max-width:620px}
.e-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
.etag{font-family:'Share Tech Mono',monospace;font-size:9px;padding:3px 11px;letter-spacing:1px;border:1px solid rgba(0,255,255,.2);color:rgba(0,255,255,.55);transition:border-color .2s,color .2s}
.eitem:hover .etag{border-color:rgba(0,255,255,.45);color:rgba(0,255,255,.85)}

/* ── Contact ── */
#contact{background:linear-gradient(180deg,var(--void),#00000d);overflow:hidden}
.contact-glow{position:absolute;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,rgba(255,215,0,.08),transparent 70%);left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none;animation:cg 4s ease-in-out infinite alternate;will-change:transform}
@keyframes cg{from{transform:translate(-50%,-50%) scale(.85)}to{transform:translate(-50%,-50%) scale(1.15)}}
.contact-c{max-width:880px;margin:0 auto;text-align:center;position:relative;z-index:2}
.contact-big{font-family:'Orbitron',sans-serif;font-size:clamp(28px,4.5vw,62px);font-weight:900;line-height:1;margin-bottom:22px;background:linear-gradient(135deg,var(--white) 30%,var(--gold),var(--plasma));-webkit-background-clip:text;background-clip:text;color:transparent}
.contact-sub{font-size:15px;color:rgba(255,255,255,.55);line-height:1.9;max-width:480px;margin:0 auto 52px}
.c-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;max-width:680px;margin:0 auto 44px}
.clink{display:flex;align-items:center;gap:14px;border:1px solid rgba(255,215,0,.13);padding:18px 22px;background:rgba(255,215,0,.025);transition:border-color .3s,background .3s,transform .3s,box-shadow .3s;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,12px 100%,0 calc(100% - 12px))}
.clink:hover{border-color:rgba(255,215,0,.45);background:rgba(255,215,0,.07);transform:translateY(-3px);box-shadow:0 10px 36px rgba(255,215,0,.12)}
.clink-ico{width:38px;height:38px;border:1px solid rgba(255,215,0,.22);display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0;transition:border-color .3s,box-shadow .3s}
.clink:hover .clink-ico{border-color:var(--gold);box-shadow:0 0 14px rgba(255,215,0,.2)}
.clink-lbl{font-family:'Share Tech Mono',monospace;font-size:9px;color:rgba(255,215,0,.5);letter-spacing:2px;text-transform:uppercase;margin-bottom:2px}
.clink-val{font-size:13px;color:rgba(255,255,255,.75)}
.big-cta{font-family:'Orbitron',sans-serif;font-size:12px;font-weight:700;letter-spacing:4px;text-transform:uppercase;padding:18px 44px;background:linear-gradient(135deg,var(--gold2),var(--gold));color:#000;border:none;cursor:pointer;position:relative;overflow:hidden;clip-path:polygon(12px 0%,100% 0%,calc(100% - 12px) 100%,0% 100%);transition:transform .2s,box-shadow .2s}
.big-cta::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.25),transparent);transform:translateX(-100%);transition:transform .4s}
.big-cta:hover::before{transform:translateX(0)}
.big-cta:hover{transform:translateY(-3px);box-shadow:0 18px 56px rgba(255,215,0,.3)}

/* ── Footer ── */
footer{padding:28px 72px;border-top:1px solid rgba(255,215,0,.07);display:flex;justify-content:space-between;align-items:center;position:relative;z-index:2}
.f-logo{font-family:'Orbitron',sans-serif;font-size:15px;font-weight:700;letter-spacing:4px;color:rgba(255,215,0,.5)}
.f-copy{font-family:'Share Tech Mono',monospace;font-size:10px;color:rgba(255,255,255,.3);letter-spacing:2px}

/* ── Reveal ── */
.rv{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .9s cubic-bezier(.22,1,.36,1)}
.rv.vis{opacity:1;transform:none}
.rv.d1{transition-delay:.1s}.rv.d2{transition-delay:.2s}.rv.d3{transition-delay:.3s}.rv.d4{transition-delay:.4s}

/* ── Responsive ── */
@media(max-width:960px){
  nav,nav.solid{padding:14px 22px}
  .nav-links{display:none}
  #hero{padding:0 22px}
  .photo-holo,.stat-orbs,.hr1,.hr2,.hr3{display:none}
  section{padding:80px 22px}
  .about-grid,.skills-layout,.c-grid{grid-template-columns:1fr}
  .proj-grid{grid-template-columns:1fr}
  footer{padding:22px;flex-direction:column;gap:8px}
  .sdots,.exp-spine{display:none}
  .exp-items{margin-left:0}
  .eitem{padding-left:26px}
  body{cursor:auto}
  #c1,#c2,#c3{display:none}
  .cv-body{grid-template-columns:1fr}
  .cv-header{flex-direction:column;text-align:center}
  .cv-contacts{justify-content:center}
  .cv-subtitles{justify-content:center}
  .cv-topbar-title{display:none}
  .hn2 span{-webkit-text-stroke:1.5px rgba(255,215,0,.75)}
}

/* ── CV Buttons ── */
.cv-btns{display:flex;gap:14px;justify-content:center;margin-top:28px;flex-wrap:wrap;opacity:0;animation:fadeU .8s 4.6s ease forwards}
.cv-btn-primary{font-family:'Orbitron',sans-serif;font-size:11px;font-weight:700;letter-spacing:3px;text-transform:uppercase;padding:14px 32px;background:linear-gradient(135deg,var(--gold2),var(--gold));color:#000;border:none;cursor:pointer;clip-path:polygon(10px 0%,100% 0%,calc(100% - 10px) 100%,0% 100%);transition:transform .2s,box-shadow .2s;position:relative;overflow:hidden}
.cv-btn-primary::before{content:'';position:absolute;inset:0;background:rgba(255,255,255,.2);transform:translateX(-100%);transition:transform .3s}
.cv-btn-primary:hover::before{transform:translateX(0)}
.cv-btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(255,215,0,.3)}
.cv-btn-secondary{font-family:'Orbitron',sans-serif;font-size:11px;font-weight:700;letter-spacing:3px;text-transform:uppercase;padding:13px 28px;background:transparent;color:var(--gold);border:1px solid rgba(255,215,0,.4);cursor:pointer;clip-path:polygon(10px 0%,100% 0%,calc(100% - 10px) 100%,0% 100%);transition:all .2s;display:inline-block}
.cv-btn-secondary:hover{background:rgba(255,215,0,.08);border-color:var(--gold);transform:translateY(-2px);box-shadow:0 10px 30px rgba(255,215,0,.15)}

/* ── CV Modal ── */
#cv-modal{position:fixed;inset:0;z-index:20000;background:rgba(0,0,5,.9);backdrop-filter:blur(14px);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .4s ease}
#cv-modal.open{opacity:1;pointer-events:all}
.cv-panel{width:min(1060px,96vw);max-height:90vh;background:#000015;border:1px solid rgba(255,215,0,.15);display:flex;flex-direction:column;transform:translateY(30px) scale(.97);transition:transform .4s cubic-bezier(.22,1,.36,1);overflow:hidden}
#cv-modal.open .cv-panel{transform:none}
.cv-topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;border-bottom:1px solid rgba(255,215,0,.1);background:rgba(255,215,0,.025);flex-shrink:0}
.cv-topbar-title{font-family:'Share Tech Mono',monospace;font-size:10px;letter-spacing:3px;color:rgba(255,215,0,.5)}
.cv-topbar-actions{display:flex;align-items:center;gap:12px}
.cv-dl-btn{font-family:'Orbitron',sans-serif;font-size:9px;font-weight:700;letter-spacing:2px;padding:7px 16px;background:transparent;border:1px solid rgba(255,215,0,.3);color:var(--gold);cursor:pointer;transition:background .2s,border-color .2s;text-decoration:none}
.cv-dl-btn:hover{background:rgba(255,215,0,.08);border-color:var(--gold)}
.cv-close{font-family:'Orbitron',sans-serif;font-size:13px;font-weight:700;width:34px;height:34px;background:transparent;border:1px solid rgba(255,255,255,.15);color:rgba(255,255,255,.6);cursor:pointer;transition:border-color .2s,color .2s;display:flex;align-items:center;justify-content:center}
.cv-close:hover{border-color:var(--red);color:var(--red)}
.cv-inner{overflow-y:auto;padding:32px;flex:1}
.cv-inner::-webkit-scrollbar{width:3px}
.cv-inner::-webkit-scrollbar-track{background:rgba(255,255,255,.02)}
.cv-inner::-webkit-scrollbar-thumb{background:rgba(255,215,0,.2)}
.cv-header{display:flex;gap:28px;align-items:center;padding-bottom:28px;border-bottom:1px solid rgba(255,215,0,.1);margin-bottom:28px}
.cv-photo-wrap{flex-shrink:0}
.cv-photo{width:90px;height:90px;object-fit:cover;border-radius:50%;border:2px solid rgba(255,215,0,.3);box-shadow:0 0 20px rgba(255,215,0,.15)}
.cv-name{font-family:'Orbitron',sans-serif;font-size:clamp(16px,2.5vw,26px);font-weight:900;color:var(--white);line-height:1.1;margin-bottom:8px}
.cv-name span{color:var(--gold)}
.cv-subtitles{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.cv-subtitle{font-family:'Rajdhani',sans-serif;font-size:13px;font-weight:600;letter-spacing:2px;color:rgba(0,255,255,.7);text-transform:uppercase}
.cv-subtitle-sep{color:rgba(255,215,0,.3)}
.cv-contacts{display:flex;flex-wrap:wrap;gap:16px}
.cv-ci{font-family:'Share Tech Mono',monospace;font-size:10px;color:rgba(255,255,255,.55);letter-spacing:1px}
.cv-body{display:grid;grid-template-columns:240px 1fr;gap:28px}
.cv-block{margin-bottom:24px}
.cv-block-title{font-family:'Share Tech Mono',monospace;font-size:9px;letter-spacing:4px;color:rgba(255,215,0,.55);text-transform:uppercase;margin-bottom:12px;padding-bottom:6px;border-bottom:1px solid rgba(255,215,0,.1)}
.cv-bi{font-size:12px;color:rgba(255,255,255,.65);margin-bottom:6px;line-height:1.5}
.cv-text{font-size:13px;color:rgba(255,255,255,.62);line-height:1.85}
.cv-pills{display:flex;flex-wrap:wrap;gap:5px}
.cv-pills span{font-family:'Share Tech Mono',monospace;font-size:9px;color:rgba(255,215,0,.6);border:1px solid rgba(255,215,0,.18);padding:3px 8px;letter-spacing:1px;transition:border-color .2s,color .2s;cursor:default}
.cv-pills span:hover{border-color:rgba(255,215,0,.5);color:var(--gold)}
.cv-sb{margin-bottom:10px}
.cv-sb-lbl{font-size:11px;color:rgba(255,255,255,.65);margin-bottom:4px}
.cv-sb-track{height:2px;background:rgba(255,255,255,.06);position:relative}
.cv-sb-fill{position:absolute;top:0;left:0;height:100%;width:0;background:linear-gradient(90deg,var(--gold2),var(--gold));transition:width 1.4s cubic-bezier(.22,1,.36,1);box-shadow:0 0 6px rgba(255,215,0,.3);will-change:width}
.cv-sb-fill.on{width:var(--w)}
.cv-sb-fill::after{content:'';position:absolute;right:0;top:50%;transform:translateY(-50%);width:4px;height:4px;border-radius:50%;background:var(--gold3);box-shadow:0 0 6px var(--gold)}
.cv-exp{position:relative;padding:0 0 20px 22px;border-left:1px solid rgba(255,215,0,.1);margin-bottom:4px}
.cv-exp:last-child{padding-bottom:0}
.cv-exp-dot{position:absolute;left:-5px;top:4px;width:9px;height:9px;border:1px solid var(--gold);background:#000015;transform:rotate(45deg)}
.cv-exp-period{font-family:'Share Tech Mono',monospace;font-size:9px;color:rgba(255,215,0,.5);letter-spacing:2px;margin-bottom:4px}
.cv-exp-title{font-family:'Orbitron',sans-serif;font-size:12px;font-weight:700;color:var(--white);margin-bottom:2px}
.cv-exp-company{font-size:11px;color:rgba(0,255,255,.55);letter-spacing:1px;margin-bottom:8px}
.cv-exp-list{list-style:none;padding:0}
.cv-exp-list li{font-size:11px;color:rgba(255,255,255,.55);line-height:1.7;padding-left:12px;position:relative}
.cv-exp-list li::before{content:'›';position:absolute;left:0;color:rgba(255,215,0,.4)}
.cv-ani{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .7s cubic-bezier(.22,1,.36,1)}
.cv-ani.cv-vis{opacity:1;transform:none}
.cv-close,.cv-dl-btn,.cv-btn-primary,.cv-btn-secondary,.cv-pills span,.cv-exp,.cv-photo,a{cursor:none}
@media(max-width:960px){.cv-close,.cv-dl-btn,.cv-btn-primary,.cv-btn-secondary,.cv-pills span,.cv-exp,.cv-photo,a{cursor:auto}}