body{-webkit-font-smoothing:antialiased;background:#0a0a0a;font-family:Segoe UI,system-ui,-apple-system,sans-serif}#root{width:100%;max-width:100%;margin:0 auto}.mobile-block{display:none}*{box-sizing:border-box;margin:0;padding:0}:root{--bg-dark:#0a0a0a;--bg-card:#141414;--bg-card-hover:#1a1a1a;--bg-subtle:#1e1e1e;--gold:#d4a843;--gold-light:#d4a84326;--gold-border:#d4a8434d;--aqua:#00e5cc;--aqua-light:#00e5cc1a;--aqua-border:#00e5cc40;--white:#fff;--white-soft:#e0e0e0;--gray:#999;--gray-light:#b8b8b8;--border:#2a2a2a}.mobile-only{display:none!important}.desktop-only{display:block}html{scrollbar-width:none}html::-webkit-scrollbar{display:none}@media (width>=769px){html{scroll-snap-type:y mandatory}.hero,.stack-card{scroll-snap-align:start;scroll-snap-stop:always}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}body{background:var(--bg-dark);color:var(--white-soft);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;letter-spacing:.015em;font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;font-size:20px;font-weight:400;line-height:1.9}@media (hover:hover){*,:before,:after{cursor:none!important}}::selection{color:#fff;background:#d4a8434d}::selection{color:#fff;background:#d4a8434d}:focus-visible{outline-offset:3px;border-radius:4px;outline:1px solid #00e5cc80}.ctx-menu{z-index:10003;-webkit-backdrop-filter:blur(24px);background:#0a0a0ad9;border:1px solid #ffffff1f;border-radius:12px;min-width:200px;padding:.4rem;animation:.15s ease-out ctxIn;position:fixed;box-shadow:0 12px 40px #0009,inset 0 1px #ffffff0f}@keyframes ctxIn{0%{opacity:0;transform:scale(.95)translateY(-4px)}to{opacity:1;transform:scale(1)translateY(0)}}.ctx-menu__item{color:#fff;letter-spacing:.5px;text-align:left;background:0 0;border:none;border-radius:8px;width:100%;padding:.65rem 1rem;font-family:Inter,sans-serif;font-size:.9rem;font-weight:500;transition:background .2s,color .2s;display:block;cursor:none!important}.ctx-menu__item:hover{color:var(--gold);background:#d4a84326}.ctx-menu__item:nth-child(2n):hover{color:var(--aqua);background:#00e5cc1f}img{content-visibility:auto;max-width:100%;height:auto}.page-reveal{opacity:0;pointer-events:none}.page-reveal--visible{pointer-events:auto;animation:1.6s ease-out forwards pageIn}@keyframes pageIn{to{opacity:1}}.cv-container{max-width:100%;min-height:100dvh;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);z-index:1;margin:0 auto;position:relative}.section{max-width:900px;margin:0 auto;padding:6rem 2rem}.stacking-container{position:relative}.stack-card{will-change:transform, opacity, filter;min-height:100dvh;transform-style:preserve-3d;background:0 0;justify-content:center;align-items:center;display:flex;position:relative}.stack-card__inner{width:100%;max-width:1100px;padding:6rem 4rem}.stack-card:before{content:"";z-index:2;background:linear-gradient(90deg,#0000 0%,#ffffff14 30%,#ffffff1f 50%,#ffffff14 70%,#0000 100%);height:1px;position:absolute;top:0;left:5%;right:5%}.stack-card:first-child:before{display:none}.lang-btn{z-index:100;letter-spacing:2px;cursor:pointer;-webkit-backdrop-filter:blur(12px);color:#ffffff4d;background:#0a0a0a66;border:none;border-radius:4px;padding:.35rem .6rem;font-family:JetBrains Mono,monospace;font-size:.65rem;font-weight:500;transition:color .35s,border-color .35s,background .35s;position:fixed;top:1.5rem;right:1.5rem}.lang-btn:hover{color:#fff9;background:#ffffff0a}.card{-webkit-backdrop-filter:blur(40px)saturate(1.2);transform-style:preserve-3d;will-change:transform;--glow-x:50%;--glow-y:50%;--glow-opacity:0;background:#0c0c0ca6;border:1px solid #ffffff0f;border-radius:20px;margin-bottom:1.5rem;padding:0;transition:transform .15s ease-out,box-shadow .4s,background .4s,border-color .4s;position:relative;overflow:hidden;box-shadow:0 8px 32px #0006,inset 0 1px #ffffff0a}.card-glow{background:radial-gradient(350px circle at var(--glow-x) var(--glow-y), #d4a84326, #00e5cc0d 40%, transparent 65%);opacity:var(--glow-opacity);pointer-events:none;z-index:1;border-radius:20px;transition:opacity .4s;position:absolute;inset:0}.card-border-glow{background:radial-gradient(400px circle at var(--glow-x) var(--glow-y), #00e5cc80, #d4a84333 35%, transparent 65%);opacity:var(--glow-opacity);pointer-events:none;z-index:0;-webkit-mask-composite:xor;border-radius:21px;padding:1.5px;transition:opacity .4s;position:absolute;inset:-1px;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.card-content{z-index:2;padding:1.85rem;position:relative}.tilt-card:before{content:"";opacity:0;pointer-events:none;z-index:1;background:linear-gradient(135deg,#d4a84308 0%,#0000 50%,#00e5cc08 100%);border-radius:20px;transition:opacity .4s;position:absolute;inset:0}.tilt-card:hover:before{opacity:1}.tilt-card:hover{background:#0f0f0fb3;border-color:#ffffff1a;box-shadow:0 20px 60px #00000080}:root{--ease-out-soft:cubic-bezier(.16, 1, .3, 1);--ease-out-spring:cubic-bezier(.34, 1.4, .64, 1);--ease-out-gentle:cubic-bezier(.25, .46, .45, .94)}.section-title,.footer span{perspective:600px}.typewriter{display:inline;position:relative}.tw-cursor{background:var(--aqua);vertical-align:text-bottom;width:2px;height:1em;box-shadow:0 0 8px var(--aqua), 0 0 16px #00e5cc4d;border-radius:1px;margin-left:1px;animation:.6s steps(2,end) infinite twBlink;display:inline-block}.tw-cursor-done{animation:twFadeOut .8s var(--ease-out-soft) .5s forwards}@keyframes twBlink{0%,to{opacity:1}50%{opacity:0}}@keyframes twFadeOut{0%{opacity:1}50%{opacity:0}to{opacity:0}}.lang-btn{opacity:0;animation:1s ease-out .5s forwards langIn}@keyframes langIn{to{opacity:1}}.tilt-card{will-change:clip-path, filter, transform;perspective:1200px;transform-style:preserve-3d;backface-visibility:hidden;transition:box-shadow .3s}.card-content{transform-style:preserve-3d}.timeline-achievements{flex-direction:column;gap:.6rem;margin:1rem 0 0;padding:0;list-style:none;display:flex}.timeline-achievement{color:#fff;text-shadow:0 1px 4px #0009;transition:color .4s ease, transform .6s var(--ease-out-spring), padding-left .4s ease;padding-left:1.1rem;font-size:1.1rem;line-height:1.8;position:relative}.timeline-achievement:before{content:"";background:var(--gold);opacity:.5;width:4px;height:4px;transition:all .5s var(--ease-out-spring);border-radius:50%;position:absolute;top:.6em;left:0}.timeline-achievement:after{content:"";opacity:0;background:0 0;border-radius:50%;width:4px;height:4px;transition:all .6s;position:absolute;top:.6em;left:0}.timeline-achievement:hover{color:var(--white);text-shadow:0 0 20px #00e5cc26,0 1px 4px #0009;padding-left:1.4rem;transform:translate(10px)}.timeline-achievement:hover:before{background:var(--aqua);opacity:1;width:6px;height:6px;top:calc(.6em - 1px);box-shadow:0 0 10px #00e5cc99,0 0 20px #00e5cc33}.timeline-achievement:hover:after{opacity:.3;border:1px solid var(--aqua);background:0 0;width:20px;height:20px;top:calc(.6em - 9px);left:-8px}.section-title{color:var(--gold);letter-spacing:4px;text-transform:uppercase;align-items:center;gap:1rem;margin-bottom:2.5rem;font-family:Inter,sans-serif;font-size:1.4rem;font-weight:700;transition:color .4s;display:flex}.section-title:hover{color:#fff}.section-title svg{color:var(--aqua);-webkit-text-fill-color:initial;filter:drop-shadow(0 0 6px #00e5cc66);transition:transform .4s var(--ease-out-spring);flex-shrink:0;animation:3s ease-in-out infinite iconFloat}.section-title:hover svg{animation:iconSpin .6s var(--ease-out-spring);filter:drop-shadow(0 0 12px #00e5ccb3)}@keyframes iconSpin{0%{transform:rotate(0)scale(1)}50%{transform:rotate(-15deg)scale(1.3)}to{transform:rotate(0)scale(1)}}@keyframes iconFloat{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-2px)rotate(-3deg)}}.section-title:after{content:"";background:linear-gradient(90deg,#0000,#d4a8434d,#00e5cc33,#0000) 0 0/200% 100%;flex:1;height:1px;margin-left:.5rem;animation:4s ease-in-out infinite lineSlide;position:relative;overflow:hidden}@keyframes lineSlide{0%{background-position:-200% 0}to{background-position:200% 0}}.name-particles{width:100%;margin-bottom:.25rem}.name-particles canvas{width:100%!important}.sub-title{color:var(--aqua);text-transform:uppercase;letter-spacing:2.5px;text-shadow:0 0 20px #00e5cc4d;margin:2rem 0 1.2rem;font-size:1.1rem;font-weight:600;transition:text-shadow .5s,letter-spacing .5s,color .5s;position:relative}.sub-title:after{content:"";background:linear-gradient(90deg, var(--aqua), transparent);width:0%;height:1px;transition:width .8s var(--ease-out-soft);position:absolute;bottom:-4px;left:0}.sub-title:hover{text-shadow:0 0 30px #00e5cc99,0 0 60px #00e5cc33;letter-spacing:4px}.sub-title:hover:after{width:100%}.contact-item{color:#ffffffd9;transition:border-color .4s ease, background .4s ease, transform .5s var(--ease-out-spring), box-shadow .4s ease, color .4s ease;background:#ffffff0a;border:1px solid #ffffff0f;border-radius:12px;align-items:center;gap:.85rem;padding:.85rem 1.1rem;font-size:1rem;line-height:1.6;display:flex;position:relative;overflow:hidden}.contact-item:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#ffffff0a,#0000);width:50%;height:100%;transition:left .7s;position:absolute;top:0;left:-100%}.contact-item:hover:after{left:150%}.contact-item:hover{color:#fff;background:#ffffff0f;border-color:#00e5cc26;transform:translateY(-3px);box-shadow:0 8px 25px #00000040}.contact-item:hover .contact-icon{color:var(--aqua);transform:scale(1.15)rotate(-5deg)}a.contact-link{color:var(--white-soft);transition:color .4s ease, background .4s ease, box-shadow .5s ease, transform .6s var(--ease-out-spring), border-color .4s ease;text-decoration:none}a.contact-link:hover{color:var(--gold);background:#d4a8430f;border-color:#d4a84326;transform:translateY(-4px)scale(1.02);box-shadow:0 12px 35px #0000004d,0 0 25px #d4a8430f}a.contact-link:hover .contact-icon{color:var(--gold);transform:scale(1.2)rotate(-8deg)}.contact-icon{color:var(--aqua);transition:transform .5s var(--ease-out-spring), color .4s ease, filter .4s ease;filter:drop-shadow(0 0 4px #00e5cc33);flex-shrink:0;align-items:center;font-size:1rem;display:flex}.contact-item:hover .contact-icon{filter:drop-shadow(0 0 8px #00e5cc80)}.tags{flex-wrap:wrap;gap:.6rem;display:flex}.tag{-webkit-backdrop-filter:blur(12px);color:#ffffffe6;cursor:default;letter-spacing:.04em;transition:border-color .4s ease, background .4s ease, color .4s ease, transform .5s var(--ease-out-spring), box-shadow .5s ease, letter-spacing .4s ease;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:20px;align-items:center;gap:.4rem;padding:.45rem 1rem;font-family:JetBrains Mono,monospace;font-size:.88rem;font-weight:500;display:inline-flex;position:relative;overflow:hidden;box-shadow:0 2px 8px #0003,inset 0 1px #ffffff0d}.tag:before{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#ffffff0f,#0000);width:50%;height:100%;transition:left .6s;position:absolute;top:0;left:-100%}.tag:hover:before{left:150%}.tag:hover{color:var(--gold);background:#d4a8431f;border-color:#d4a84359;box-shadow:0 6px 20px #d4a84326,0 0 12px #d4a84314,inset 0 1px #d4a8431a;transform:translateY(-3px)!important}.tag:nth-child(2n):hover{color:var(--aqua);background:#00e5cc1a;border-color:#00e5cc59;box-shadow:0 6px 20px #00e5cc1f,0 0 12px #00e5cc0f,inset 0 1px #00e5cc1a;transform:translateY(-3px)!important}.about-text{color:#fff;text-align:left;letter-spacing:.015em;text-shadow:0 1px 4px #0009;border-left:2px solid #0000;max-width:58ch;margin-bottom:1.5rem;padding-left:.8rem;font-size:1.2rem;line-height:1.9;transition:border-color .6s,padding-left .4s,text-shadow .5s;position:relative}.about-text:hover{border-left-color:#d4a8434d;padding-left:1.2rem}.about-text:last-child{margin-bottom:0}.timeline-item{gap:1.25rem;margin-bottom:1.75rem;display:flex}.timeline-item:last-child{margin-bottom:0}.timeline-marker{flex-direction:column;flex-shrink:0;align-items:center;display:flex}.timeline-dot{background:var(--gold);width:10px;height:10px;transition:transform .4s var(--ease-out-spring), box-shadow .4s ease;border-radius:50%;flex-shrink:0;margin-top:6px;box-shadow:0 0 8px #d4a8434d}.timeline-dot:after{content:"";border:1px solid #d4a84333;border-radius:50%;animation:3s ease-in-out infinite dotRing;position:absolute;inset:-6px}@keyframes dotRing{0%,to{opacity:.5;transform:scale(1)}50%{opacity:0;transform:scale(1.8)}}.timeline-line{background:linear-gradient(#d4a84366,#ffffff0f,#0000);flex:1;width:1px;margin-top:6px;position:relative;overflow:hidden}.timeline-line:after{content:"";will-change:transform;background:linear-gradient(#0000,#d4a843cc,#0000);width:100%;height:100%;animation:3s ease-in-out infinite lineGlow;position:absolute;top:0;left:0}@keyframes lineGlow{0%{transform:translateY(-100%)}to{transform:translateY(200%)}}.timeline-date{color:var(--aqua);letter-spacing:2.5px;text-transform:uppercase;font-family:JetBrains Mono,monospace;font-size:1.05rem;font-weight:600;transition:letter-spacing .5s,text-shadow .5s}.timeline-date:hover{letter-spacing:4px;text-shadow:0 0 15px #00e5cc80}.timeline-title{color:#fff;text-shadow:0 1px 6px #00000080;transition:text-shadow .4s ease, transform .5s var(--ease-out-spring);margin:.5rem 0;font-size:1.6rem;font-weight:700;line-height:1.5}.timeline-title:hover{text-shadow:0 2px 12px #000000b3,0 0 20px #d4a8431a;transform:translate(4px)}.timeline-subtitle{color:var(--gold);text-shadow:0 1px 4px #00000080;font-size:1.25rem;font-weight:500;line-height:1.6;transition:color .4s,text-shadow .4s}.timeline-subtitle:hover{text-shadow:0 0 20px #d4a84366}a.timeline-link{transition:color .4s ease, transform .5s var(--ease-out-spring);text-decoration:none;display:block;position:relative}a.timeline-link:after{content:"";background:linear-gradient(90deg, var(--aqua), var(--gold));width:0%;height:1px;transition:width .6s var(--ease-out-soft);position:absolute;bottom:-2px;left:0}a.timeline-link:hover{color:var(--aqua);transform:translate(6px)}a.timeline-link:hover:after{width:100%}.timeline-location{color:var(--gray-light);text-shadow:0 1px 4px #00000080;margin-top:.3rem;font-size:1.15rem;font-style:italic}.marquee{white-space:nowrap;opacity:.15;-webkit-user-select:none;user-select:none;pointer-events:none;z-index:1;letter-spacing:3px;text-transform:uppercase;color:var(--gold);padding:1.5rem 0;font-family:JetBrains Mono,monospace;font-size:.85rem;position:relative;overflow:hidden}.marquee--aqua{color:var(--aqua)}.marquee__track{will-change:transform;animation:30s linear infinite marqueeScroll;display:inline-flex}.marquee__track span{flex-shrink:0}@keyframes marqueeScroll{0%{transform:translate(0)}to{transform:translate(-50%)}}@media (width>=769px) and (width<=1200px){body{font-size:clamp(16px,1.4vw,20px)}.section{max-width:100%;padding:4rem clamp(1rem,3vw,2rem)}.card-content{padding:clamp(1.2rem,2vw,1.85rem)}.hero__content{padding:2rem 4vw 2rem 0}.hero__text{max-width:clamp(300px,48vw,580px)}.hero__name--first{font-size:clamp(1.5rem,3.5vw,4rem)}.hero__name--last{font-size:clamp(1.3rem,3vw,3.2rem)}.hero__role{font-size:clamp(.7rem,1.3vw,1.2rem)}.stack-card__inner{padding:clamp(3rem,5vw,6rem) clamp(1.5rem,3vw,4rem)}.skills-group,.skills-group:nth-child(4),.skills-group:nth-child(5){flex:0 calc(50% - 1rem)!important}.skills-group .sub-title{font-size:clamp(.65rem,.9vw,.75rem)}.skills-group .tag{padding:.35rem .75rem;font-size:clamp(.7rem,.85vw,.78rem)}.contact-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.contact-item{padding:.7rem .9rem;font-size:clamp(.85rem,1vw,1rem)}.about-text{max-width:100%;font-size:clamp(1rem,1.2vw,1.2rem)}.timeline-title{font-size:clamp(1.2rem,1.6vw,1.6rem)}.timeline-subtitle{font-size:clamp(1rem,1.3vw,1.25rem)}.timeline-location{font-size:clamp(.95rem,1.15vw,1.15rem)}.timeline-achievement{font-size:clamp(.95rem,1.1vw,1.1rem)}.timeline-date{font-size:clamp(.85rem,1vw,1.05rem)}.section-title{letter-spacing:clamp(2px,.3vw,4px);margin-bottom:clamp(1.5rem,2.5vw,2.5rem);font-size:clamp(1rem,1.4vw,1.4rem)}.sub-title{font-size:clamp(.9rem,1.1vw,1.1rem)}.tag{padding:.4rem .85rem;font-size:clamp(.75rem,.9vw,.88rem)}.lang-btn{top:1rem;right:1rem}}@media (width<=768px){.mobile-only{display:block!important}.desktop-only{display:none!important}.card-content{padding:1.15rem}.card{will-change:auto;transform-style:flat;contain:layout style paint;border-radius:12px;margin-bottom:.75rem}.tilt-card{opacity:0;transition:opacity .6s var(--ease-out-soft), transform .7s var(--ease-out-spring);transform:translateY(20px)}.tilt-card.revealed{opacity:1;transform:none!important}.card-glow,.card-border-glow,.tilt-card:before{display:none!important}.timeline-dot{box-shadow:none;animation:none}.section-title{letter-spacing:2px;margin-bottom:1rem;font-size:.72rem}.contact-item{min-height:44px;padding:.7rem .75rem;font-size:.85rem}.lang-btn{min-width:44px;min-height:44px;padding:.5rem .85rem;font-size:.7rem;top:.5rem;right:.5rem}.tags{gap:.5rem}.tag{min-height:32px;padding:.35rem .75rem;font-size:.75rem}.about-text{font-size:.9rem;line-height:1.7}.timeline-item{gap:.85rem;margin-bottom:1.25rem}.timeline-title{font-size:.95rem}.timeline-subtitle{font-size:.82rem}.timeline-location{font-size:.78rem}.timeline-achievement{padding-left:.95rem;font-size:.78rem}.tag:hover,.contact-item:hover{box-shadow:none;transform:none}.contact-item,.lang-btn{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.tag{-webkit-user-select:none;user-select:none}.cv-container{-webkit-overflow-scrolling:touch;padding-bottom:env(safe-area-inset-bottom)}.marquee{letter-spacing:2px;padding:1rem 0;font-size:.65rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.tilt-card{opacity:1;transform:none}}@media (width<=380px){.card-content{padding:1rem}}.pre{z-index:9999;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden}.pre-bg{z-index:0;background:radial-gradient(at 30% 20%,#d4a8430f 0%,#0000 50%),radial-gradient(at 70% 80%,#00e5cc0d 0%,#0000 50%),radial-gradient(#0d0d0d 0%,#0a0a0a 100%);position:absolute;inset:0}.pre-bg:before{content:"";background-image:linear-gradient(#ffffff05 1px,#0000 1px),linear-gradient(90deg,#ffffff05 1px,#0000 1px);background-size:60px 60px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(#000 20%,#0000 70%);mask-image:radial-gradient(#000 20%,#0000 70%)}.pre-bg:after{content:"";background:radial-gradient(at 50% 45%,#00e5cc08 0%,#0000 60%);animation:4s ease-in-out infinite bgPulse;position:absolute;inset:0}@keyframes bgPulse{0%,to{opacity:.5}50%{opacity:1}}.pre-particles{z-index:1;pointer-events:none;position:absolute;inset:0}.pre--boot .pre-monitor__screen{animation:1.2s ease-out forwards screenPowerOn}@keyframes screenPowerOn{0%{filter:brightness(0);opacity:0}15%{filter:brightness(3);opacity:1}25%{filter:brightness(.3);opacity:.6}35%{filter:brightness(2);opacity:1}50%{filter:brightness(.8);opacity:.9}70%{filter:brightness(1.2);opacity:1}to{filter:brightness();opacity:1}}.pre--boot .pre-terminal{opacity:0}.pre--typing .pre-terminal{animation:.3s ease-out forwards terminalFadeIn}@keyframes terminalFadeIn{0%{opacity:0}to{opacity:1}}.pre--exit{pointer-events:none;animation:1.6s ease-out forwards preOut}@keyframes preOut{to{opacity:0}}.pre-setup{opacity:0;animation:preIn .7s var(--ease-out-spring) .15s forwards;z-index:2;flex-direction:column;align-items:center;display:flex;position:relative;transform:translateY(24px)scale(.96)}@keyframes preIn{to{opacity:1;transform:translateY(0)scale(1)}}.pre-monitor{background:linear-gradient(#2e2e30 0%,#232325 50%,#1e1e20 100%);border:1px solid #3a3a3c;border-radius:12px 12px 2px 2px;width:clamp(300px,50vw,480px);padding:8px 8px 0;position:relative;box-shadow:inset 0 1px #ffffff0f,0 25px 60px #0000008c,0 8px 20px #00000059,0 0 80px #00e5cc08}.pre-monitor__cam{background:radial-gradient(circle,#1a1a1c 40%,#2a2a2e 100%);border:.5px solid #444;border-radius:50%;width:5px;height:5px;margin:0 auto 6px}.pre-monitor__screen{background:#0a0a0c;border:1px solid #111;border-radius:4px;position:relative;overflow:hidden}.pre-monitor__glare{pointer-events:none;z-index:3;background:linear-gradient(125deg,#0000 0% 38%,#ffffff05 40%,#ffffff09 43%,#ffffff05 46%,#0000 48% 100%);position:absolute;inset:0}.pre-scanlines{z-index:2;pointer-events:none;background:repeating-linear-gradient(0deg,#0000,#0000 2px,#00000014 2px 4px);animation:4s linear infinite scanlineFlicker;position:absolute;inset:0}@keyframes scanlineFlicker{0%,to{opacity:.4}50%{opacity:.25}}.pre-monitor__chin{justify-content:center;align-items:center;height:18px;display:flex;position:relative}.pre-monitor__chin:after{content:"";background:linear-gradient(90deg,#3a3a3c,#444,#3a3a3c);border-radius:2px;width:28px;height:3px}.pre-led{background:var(--aqua);width:4px;height:4px;box-shadow:0 0 4px var(--aqua), 0 0 10px var(--aqua);border-radius:50%;animation:2s ease-in-out infinite ledPulse;position:absolute;top:50%;right:12px;transform:translateY(-50%)}@keyframes ledPulse{0%,to{opacity:1;box-shadow:0 0 4px var(--aqua), 0 0 10px var(--aqua)}50%{opacity:.5;box-shadow:0 0 2px var(--aqua), 0 0 5px var(--aqua)}}.pre-titlebar{background:linear-gradient(#2c2c2e,#252527);border-bottom:1px solid #1a1a1c;align-items:center;padding:7px 12px;display:flex}.pre-titlebar__dots{gap:6px;display:flex}.pre-dot{border-radius:50%;width:10px;height:10px;box-shadow:0 1px 1px #0000004d}.pre-dot--r{background:radial-gradient(circle at 35% 35%,#ff8a80,#ff5f57 60%,#d94038);border:.5px solid #c0392b}.pre-dot--y{background:radial-gradient(circle at 35% 35%,#ffe082,#febc2e 60%,#d4a01e);border:.5px solid #b8860b}.pre-dot--g{background:radial-gradient(circle at 35% 35%,#69f0ae,#28c840 60%,#1ea832);border:.5px solid #1b8a2c}.pre-titlebar__text{text-align:center;color:#666;letter-spacing:.3px;-webkit-user-select:none;user-select:none;flex:1;font-family:SF Mono,JetBrains Mono,monospace;font-size:.68rem}.pre-terminal{scrollbar-width:none;color:#8a8a8a;height:240px;padding:.8rem 1rem;font-family:SF Mono,JetBrains Mono,Fira Code,monospace;font-size:.72rem;line-height:1.65;position:relative;overflow-y:auto}.pre-terminal::-webkit-scrollbar{display:none}.pre-line{white-space:pre;align-items:center;min-height:1.65em;display:flex}.pre-line--cmd{color:var(--aqua);text-shadow:0 0 6px #00e5cc1f}.pre-line--out{color:#7a7a7a}.pre-line--out span{color:inherit}.pre-cursor{background:var(--aqua);width:7px;min-width:7px;height:1.1em;box-shadow:0 0 6px var(--aqua);border-radius:1px;flex-shrink:0;margin-left:1px;animation:.5s steps(2,end) infinite preBlink;display:inline-block}.pre-cursor--final{opacity:1;animation:none}@keyframes preBlink{0%,to{opacity:1}50%{opacity:0}}.pre-line--progress span{text-shadow:0 0 8px #00e5cc80,0 0 20px #00e5cc33;animation:.6s ease-out progressGlow;color:var(--aqua)!important}@keyframes progressGlow{0%{text-shadow:0 0 2px #00e5cc33}50%{text-shadow:0 0 16px #00e5cccc,0 0 40px #00e5cc4d}to{text-shadow:0 0 8px #00e5cc80,0 0 20px #00e5cc33}}.pre-line--ok span{text-shadow:0 0 6px #28c84080,0 0 14px #28c84033;color:#28c840!important}.pre-line--vite span{text-shadow:0 0 8px #00e5cc66;font-weight:600;color:var(--aqua)!important}.pre-line--url span{text-shadow:0 0 4px #d4a8434d;color:var(--gold)!important}.pre-screen-glow{pointer-events:none;z-index:0;background:radial-gradient(at 50% 0,#00e5cc14 0%,#0000 70%);width:300px;height:120px;animation:3s ease-in-out infinite glowPulse;position:absolute;bottom:-10px;left:50%;transform:translate(-50%)}@keyframes glowPulse{0%,to{opacity:.6}50%{opacity:1}}.pre-stand{flex-direction:column;align-items:center;display:flex}.pre-stand__neck{clip-path:polygon(18% 0%,82% 0%,100% 100%,0% 100%);background:linear-gradient(90deg,#1c1c1e 0%,#2c2c2e 25%,#3a3a3c 50%,#2c2c2e 75%,#1c1c1e 100%);width:44px;height:42px;position:relative}.pre-stand__neck:after{content:"";background:linear-gradient(90deg,#0000 30%,#ffffff0a 50%,#0000 70%);position:absolute;inset:0}.pre-stand__foot{background:linear-gradient(#3a3a3c,#2a2a2c);border:1px solid #ffffff0a;border-top:none;border-radius:0 0 6px 6px;width:120px;height:6px;position:relative}.pre-stand__foot:before{content:"";background:#ffffff0f;height:1px;position:absolute;top:0;left:10%;right:10%}.pre-desk{background:linear-gradient(90deg,#0000,#2a2a2c 15%,#3a3a3c 50%,#2a2a2c 85%,#0000);border-radius:2px;width:clamp(360px,60vw,580px);height:3px;margin-top:1px;position:relative}.pre-desk:after{content:"";background:linear-gradient(90deg,#0000,#ffffff0f,#0000);height:1px;position:absolute;top:0;left:5%;right:5%}.pre-keyboard{z-index:1;background:linear-gradient(#2a2a2c,#222224);border:1px solid #3a3a3c;border-radius:5px;flex-direction:column;gap:3px;width:180px;margin-top:14px;padding:6px 8px 8px;display:flex;position:relative;box-shadow:inset 0 1px #ffffff0a,0 3px 8px #0000004d}.pre-kb-row{justify-content:center;gap:2px;display:flex}.pre-kb-row span{will-change:transform;background:linear-gradient(#3a3a3c,#333335);border:.5px solid #444;border-radius:2px;width:14px;height:8px;transition:background 50ms ease-out,box-shadow 50ms ease-out,transform 40ms ease-out;box-shadow:0 1px #0000004d}.pre-key--active{background:linear-gradient(#505052,#484849)!important;transform:translateY(1px)scale(.95)!important;box-shadow:0 0 5px #00e5cc33,0 0 2px #00e5cc59,0 0 #0000!important}.pre-key--ghost{background:linear-gradient(#424244,#3a3a3c)!important;transform:translateY(.5px)!important}.pre-kb-row--space{justify-content:center}.pre-kb-space{height:8px;background:linear-gradient(#3a3a3c,#333335)!important;border:.5px solid #444!important;border-radius:2px!important;width:70px!important;box-shadow:0 1px #0000004d!important}.pre-mouse{background:linear-gradient(#2e2e30,#262628);border:1px solid #3a3a3c;border-radius:10px 10px 12px 12px;justify-content:center;align-items:flex-start;width:22px;height:36px;padding-top:6px;display:flex;position:absolute;bottom:0;right:calc(50% - 140px);box-shadow:inset 0 1px #ffffff0a,0 2px 6px #0000004d}.pre-mouse__scroll{background:#333;border:1px solid #444;border-radius:3px;width:4px;height:7px}.pre-desk-shadow{background:radial-gradient(#0000004d 0%,#0000 70%);width:280px;height:14px;margin-top:2px;position:absolute;bottom:-18px;left:50%;transform:translate(-50%)}.pre-skip{z-index:3;color:#555;letter-spacing:1px;opacity:0;font-family:SF Mono,JetBrains Mono,monospace;font-size:.65rem;transition:opacity .3s;animation:.6s ease-out 3s forwards skipFadeIn;position:absolute;bottom:32px;left:50%;transform:translate(-50%)}.pre--exit .pre-skip{animation:none;opacity:0!important}@keyframes skipFadeIn{to{opacity:1}}@media (width<=768px){.pre-monitor{width:clamp(320px,70vw,420px);padding:6px 6px 0}.pre-terminal{height:210px;padding:.7rem .9rem;font-size:.65rem}.pre-keyboard{width:160px}.pre-kb-row span{width:12px;height:7px}.pre-kb-space{height:7px;width:60px!important}.pre-desk{width:75vw}.pre-mouse{right:calc(50% - 125px)}.pre-skip{font-size:.6rem;bottom:24px}}@media (width<=480px){.pre-setup{transform:translateY(16px)scale(.96)}.pre-monitor{border-radius:8px 8px 2px 2px;width:92vw;padding:4px 4px 0}.pre-monitor__cam{width:4px;height:4px;margin-bottom:4px}.pre-terminal{height:170px;padding:.5rem .6rem;font-size:.58rem;line-height:1.55}.pre-titlebar{padding:5px 8px}.pre-titlebar__text{font-size:.55rem}.pre-dot{width:7px;height:7px}.pre-titlebar__dots{gap:5px}.pre-monitor__chin{height:12px}.pre-monitor__chin:after{width:22px;height:2px}.pre-led{width:3px;height:3px;right:8px}.pre-scanlines{background-size:100% 3px}.pre-stand__neck{width:30px;height:28px}.pre-stand__foot{width:80px;height:5px}.pre-desk{width:96vw}.pre-keyboard{border-radius:4px;gap:2px;width:120px;margin-top:10px;padding:3px 5px 5px}.pre-kb-row{gap:1.5px}.pre-kb-row span{border-radius:1.5px;width:9px;height:5px}.pre-kb-space{height:5px;width:42px!important}.pre-mouse{border-radius:8px 8px 10px 10px;width:16px;height:24px;right:calc(50% - 95px)}.pre-mouse__scroll{width:3px;height:5px;padding-top:4px}.pre-screen-glow{width:200px;height:80px}.pre-desk-shadow{width:180px;height:10px}.pre-skip{font-size:.55rem;bottom:18px}.pre-line{min-height:1.5em}.pre-cursor{width:5px;min-width:5px;height:.95em}}@media (width<=360px){.pre-monitor{width:95vw}.pre-terminal{height:150px;padding:.4rem .5rem;font-size:.52rem}.pre-titlebar__text{font-size:.5rem}.pre-keyboard{width:100px}.pre-kb-row span{width:7px;height:4px}.pre-kb-space{height:4px;width:35px!important}.pre-mouse{width:14px;height:20px;right:calc(50% - 80px)}}.particle-silhouette{--p:var(--sil-progress,0);opacity:calc(1 - var(--p) * .92);-webkit-mask-image:radial-gradient(circle at calc(40% + var(--p) * 10%) calc(45% + var(--p) * 5%), black calc(18% + var(--p) * 82%), transparent calc(35% + var(--p) * 82%));mask-image:radial-gradient(circle at calc(40% + var(--p) * 10%) calc(45% + var(--p) * 5%), black calc(18% + var(--p) * 82%), transparent calc(35% + var(--p) * 82%));-webkit-mask-image:radial-gradient(circle at calc(40% + var(--p) * 10%) calc(45% + var(--p) * 5%), black calc(18% + var(--p) * 82%), transparent calc(35% + var(--p) * 82%))}@media (width<=768px){.particle-silhouette{transform-origin:50% 40%}}.hero{perspective:1200px;background:0 0;flex-direction:column;align-items:flex-end;min-height:150vh;display:flex;position:relative}.hero__content{z-index:1;justify-content:flex-end;align-items:center;width:100%;min-height:100vh;padding:2rem 6vw 2rem 0;display:flex;position:sticky;top:0}.hero__text{-webkit-backdrop-filter:blur(8px);background:radial-gradient(#0a0a0ab3 0%,#0a0a0a66 60%,#0000 100%);border-radius:24px;flex-direction:column;align-items:flex-start;gap:0;width:fit-content;max-width:clamp(320px,42vw,580px);padding:2.5rem 3rem;display:flex}.hero__heading{text-align:left;text-transform:uppercase;letter-spacing:.04em;margin:0;font-weight:800;line-height:1.1}.hero__name-line{white-space:nowrap;display:block;overflow:hidden}.hero__name--first{color:var(--white);text-shadow:0 2px 20px #000c,0 0 40px #ffffff14;opacity:0;font-size:clamp(1.6rem,3.8vw,5rem);transform:translateY(100%)}.hero__name--last{background:linear-gradient(90deg, var(--gold) 0%, #f0d078 25%, var(--gold) 50%, #c49a38 75%, var(--gold) 100%);-webkit-text-fill-color:transparent;text-shadow:none;opacity:0;background-size:200% 100%;-webkit-background-clip:text;background-clip:text;font-size:clamp(1.4rem,3.2vw,4.2rem);transform:translateY(100%)}.hero__role{letter-spacing:.15em;text-transform:uppercase;background:linear-gradient(90deg, var(--aqua), #7fffd4, var(--aqua));-webkit-text-fill-color:transparent;text-shadow:none;filter:drop-shadow(0 2px 12px #000c);opacity:0;background-size:200% 100%;-webkit-background-clip:text;background-clip:text;margin-top:1.2rem;font-size:clamp(.75rem,1.5vw,1.4rem);font-weight:500;position:relative;transform:translateY(20px)}.hero__role:after{content:"";background:linear-gradient(90deg, var(--aqua), transparent);opacity:0;width:60px;height:2px;transition:opacity .8s cubic-bezier(.16,1,.3,1),width .5s cubic-bezier(.16,1,.3,1),background .8s,box-shadow .7s;position:absolute;bottom:-8px;left:0}.hero__role--visible:after{opacity:1}.hero__role:hover:after{background:linear-gradient(90deg, var(--aqua), #7fffd4, var(--aqua));width:100%;box-shadow:0 0 12px #00e5cc59}.hero__scramble-text{letter-spacing:4px;color:#ffffff40;text-transform:uppercase;font-family:JetBrains Mono,monospace;font-size:.75rem}.hero__contact-row{flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:.5rem;display:flex}.hero__contact-chip{color:#ffffffb3;letter-spacing:.02em;transition:background .35s ease, border-color .35s ease, color .35s ease, transform .4s var(--ease-out-spring), box-shadow .4s ease;-webkit-backdrop-filter:blur(16px);background:#0a0a0a80;border:none;border-radius:20px;align-items:center;gap:.4rem;padding:.4rem .9rem;font-size:.78rem;font-weight:400;text-decoration:none;display:inline-flex}.hero__contact-chip:hover{color:var(--gold);background:#d4a84314;transform:translateY(-2px);box-shadow:0 4px 16px #d4a8431f}.hero__tagline{color:#ffffffbf;letter-spacing:.03em;text-align:center;text-shadow:0 1px 6px #00000080;max-width:520px;margin-top:.5rem;font-size:1.15rem;font-weight:400;line-height:1.7}.hero__socials{gap:1.5rem;margin-top:1.5rem;display:flex}.hero__social-link{color:#ffffffb3;width:42px;height:42px;transition:color .3s ease, background .3s ease, transform .4s var(--ease-out-spring);background:#ffffff0f;border-radius:50%;justify-content:center;align-items:center;text-decoration:none;display:flex}.hero__social-link:hover{color:var(--gold);background:#d4a8431a;transform:translateY(-3px)}.hero__social-link:nth-child(2):hover{color:var(--aqua);background:#00e5cc14}.hero__scroll-cue{z-index:1;color:#ffffff40;cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:center;gap:.8rem;transition:color .4s;display:flex;position:absolute;bottom:2.5rem;left:50%;transform:translate(-50%)}.hero__scroll-cue:hover{color:#ffffff80}.hero__scroll-cue:hover .hero__scroll-line{background:linear-gradient(180deg, var(--gold), transparent);height:50px}.hero__scroll-line{background:linear-gradient(#ffffff4d,#0000);width:1px;height:40px;transition:height .4s,background .4s;animation:2.5s ease-in-out infinite scrollPulse}.hero__scroll-label{letter-spacing:4px;text-transform:uppercase;font-family:JetBrains Mono,monospace;font-size:.55rem}@keyframes scrollPulse{0%,to{opacity:.4;transform:scaleY(1)}50%{opacity:.8;transform:scaleY(1.2)}}.contact-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.8rem;display:grid}.skills-grid{flex-wrap:wrap;justify-content:center;gap:1.2rem 1.5rem;display:flex}.skills-group{transition:background .4s ease, transform .5s var(--ease-out-spring), box-shadow .4s ease, border-color .4s ease;background:#ffffff05;border:1px solid #ffffff0f;border-radius:14px;flex-direction:column;flex:0 calc(33.333% - 1rem);padding:1.2rem;display:flex}.skills-group:hover{background:#ffffff0a;border-color:#ffffff1a;transform:translateY(-4px);box-shadow:0 12px 30px #0003}.skills-group:hover .sub-title{text-shadow:0 0 20px #00e5cc66}.skills-group:nth-child(4),.skills-group:nth-child(5){flex:0 calc(50% - 1rem)}.skills-group .sub-title{letter-spacing:2.5px;margin-top:0;margin-bottom:.75rem;font-size:.75rem}.skills-group .tags{gap:.6rem}.skills-group .tag{margin:0;padding:.4rem .9rem;font-size:.78rem}#skills .stack-card__inner{padding-top:3rem;padding-bottom:3rem}#skills .section-title{margin-bottom:1.5rem}.cursor-trail-canvas{z-index:10000;pointer-events:none;position:fixed;inset:0}.cursor-cube{pointer-events:none;z-index:10005;will-change:transform;perspective:400px;width:16px;height:16px;position:fixed;top:0;left:0}.cursor-cube__inner{width:100%;height:100%;transform-style:preserve-3d;will-change:transform;position:relative}.cursor-cube__face{background:#d4a8430a;border:1px solid #d4a84399;width:16px;height:16px;position:absolute;box-shadow:inset 0 0 6px #d4a8431a}.cursor-cube__face--front{transform:translateZ(8px)}.cursor-cube__face--back{transform:rotateY(180deg)translateZ(8px)}.cursor-cube__face--left{transform:rotateY(-90deg)translateZ(8px)}.cursor-cube__face--right{transform:rotateY(90deg)translateZ(8px)}.cursor-cube__face--top{transform:rotateX(90deg)translateZ(8px)}.cursor-cube__face--bottom{transform:rotateX(-90deg)translateZ(8px)}.cursor-cube--hover .cursor-cube__face{background:#00e5cc0f;border-color:#00e5ccb3;box-shadow:inset 0 0 8px #00e5cc26,0 0 6px #00e5cc33}.cursor-cube__face{transition:border-color .2s,background .2s,box-shadow .2s,width .25s cubic-bezier(.34,1.56,.64,1),height .25s cubic-bezier(.34,1.56,.64,1),transform .25s cubic-bezier(.34,1.56,.64,1)}@media (hover:none){.cursor-cube{display:none!important}}@media (width>=769px) and (width<=1000px){.hero__content{flex-direction:column;justify-content:flex-end;padding:0 3vw 6vh}.hero__text{text-align:center;-webkit-backdrop-filter:none;background:0 0;align-items:center;max-width:90vw;padding:1.5rem 2rem}.hero__heading{text-align:center}.hero__name--first{font-size:clamp(1.6rem,5vw,3.5rem)}.hero__name--last{font-size:clamp(1.4rem,4.2vw,3rem)}.hero__role:after{background:linear-gradient(90deg, transparent, var(--aqua), transparent);left:50%;transform:translate(-50%)}}
