/* Shared visual layer for Jacking */
html{background:#070b12}body{position:relative;isolation:isolate;overflow-x:hidden}body:before{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;background-image:linear-gradient(#67a8ff08 1px,transparent 1px),linear-gradient(90deg,#67a8ff08 1px,transparent 1px);background-size:46px 46px;mask-image:linear-gradient(to bottom,#000 0,transparent 82%)}body:after{content:"";position:fixed;z-index:-1;pointer-events:none;width:46vw;height:46vw;min-width:360px;min-height:360px;top:8vh;right:-18vw;border-radius:50%;background:#3ee8d10d;filter:blur(75px);animation:ambient-drift 12s ease-in-out infinite alternate}.scroll-progress{position:fixed;z-index:100;inset:0 auto auto 0;width:var(--scroll-progress,0%);height:2px;background:linear-gradient(90deg,var(--cyan),var(--blue));box-shadow:0 0 12px var(--cyan);pointer-events:none}header{transition:box-shadow .3s,border-color .3s,background .3s}header.is-scrolled{background:#070b12f2;box-shadow:0 12px 38px #0007;border-bottom-color:#3ee8d126}.brand img{transition:transform .35s,box-shadow .35s}.brand:hover img{transform:rotate(-5deg) scale(1.06);box-shadow:0 0 22px #3ee8d155}.links a,.navlinks a{position:relative}.links a:after,.navlinks a:after{content:"";position:absolute;left:10%;right:90%;bottom:-6px;height:1px;background:var(--cyan);transition:right .25s}.links a:hover:after,.navlinks a:hover:after{right:10%}.hero h1,.article-hero h1{background-size:180% 180%;animation:gradient-flow 7s ease infinite}.terminal{transition:transform .35s,border-color .35s,box-shadow .35s}.terminal:hover{transform:rotate(0) translateY(-5px);border-color:#3ee8d15c;box-shadow:0 35px 100px #000a,0 0 35px #3ee8d112}.terminal pre b{filter:drop-shadow(0 0 7px #3ee8d166)}.card,.achievement,.box,.job,.event,.article,.toc{transition:transform .28s ease,border-color .28s ease,box-shadow .28s ease,background .2s;background-image:radial-gradient(420px circle at var(--mx,50%) var(--my,0%),#3ee8d10d,transparent 42%)}.card:hover,.achievement:hover,.box:hover,.job:hover,.event:hover,.article:hover{transform:translateY(-5px);border-color:#3ee8d14f;box-shadow:0 20px 48px #0007,0 0 0 1px #3ee8d109}.card-icon,.mini-icon,.icon{transition:transform .3s ease,background .3s ease,box-shadow .3s ease}.card:hover .card-icon,.achievement:hover .card-icon,.box:hover .mini-icon,.article:hover .icon{transform:translateY(-3px) rotate(-3deg);background:#3ee8d118;box-shadow:0 10px 28px #3ee8d112}.button,.lang-button,.more,.status,.back,.next a{transition:color .2s,background .2s,border-color .2s,transform .2s,filter .2s}.button:hover,.lang-button:hover{transform:translateY(-2px);border-color:var(--cyan);box-shadow:0 8px 25px #3ee8d114}.more:hover,.status:hover,.back:hover,.next a:hover{filter:brightness(1.25);text-shadow:0 0 14px #67a8ff66}.event:before{animation:pulse-node 2.8s ease-in-out infinite}.progress i{position:relative;overflow:hidden}.progress i:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,#fff7,transparent);transform:translateX(-120%);animation:progress-shine 3.5s ease-in-out infinite}.profile-logo,.hero-logo{animation:logo-float 5s ease-in-out infinite}.effects-ready .reveal{opacity:0;transform:translateY(22px);transition:opacity .65s ease,transform .65s cubic-bezier(.2,.7,.2,1);transition-delay:var(--delay,0ms)}.effects-ready .reveal.in-view{opacity:1;transform:none}:focus-visible{outline:2px solid var(--cyan);outline-offset:4px;border-radius:5px}.menu-button path{transition:transform .25s,opacity .2s}.menu-open .menu-button path:first-child{transform:translateY(4px) rotate(45deg);transform-origin:center}.menu-open .menu-button path:last-child{transform:translateY(-4px) rotate(-45deg);transform-origin:center}
@keyframes ambient-drift{to{transform:translate(-10vw,12vh) scale(1.15);background:#67a8ff12}}@keyframes gradient-flow{0%,100%{background-position:0 50%}50%{background-position:100% 50%}}@keyframes pulse-node{0%,100%{box-shadow:0 0 0 5px #3ee8d122}50%{box-shadow:0 0 0 9px #3ee8d10b,0 0 18px #3ee8d155}}@keyframes progress-shine{0%,55%{transform:translateX(-120%)}85%,100%{transform:translateX(120%)}}@keyframes logo-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@media(max-width:800px){body:before{background-size:34px 34px}.links a:after,.navlinks a:after{display:none}.terminal:hover{transform:translateY(-3px)}.card:hover,.achievement:hover,.box:hover,.job:hover,.event:hover,.article:hover{transform:translateY(-2px)}}
.skip-link{position:fixed;z-index:1000;left:18px;top:12px;padding:10px 15px;border:1px solid var(--cyan);border-radius:9px;background:#071019;color:var(--cyan);font:750 13px system-ui,sans-serif;box-shadow:0 12px 35px #000b;transform:translateY(-150%);transition:transform .18s}.skip-link:focus{transform:translateY(0);outline-offset:3px}#main-content:focus{outline:none}.links a.active,.navlinks a.active,.links a[aria-current],.navlinks a[aria-current]{color:var(--cyan)}.links a.active:after,.navlinks a.active:after,.links a[aria-current]:after,.navlinks a[aria-current]:after{right:10%;box-shadow:0 0 10px #3ee8d177}.menu-open .links,.menu-open .navlinks{animation:nav-menu-in .2s ease both}@keyframes nav-menu-in{from{opacity:0;transform:translateY(-7px) scale(.98)}to{opacity:1;transform:none}}
@media(max-width:800px){.links a.active,.navlinks a.active,.links a[aria-current],.navlinks a[aria-current]{background:#3ee8d10f;box-shadow:inset 2px 0 var(--cyan)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*:before,*:after{animation:none!important;transition-duration:.01ms!important;transition-delay:0ms!important}.effects-ready .reveal{opacity:1;transform:none}}
