.navmenu-vertical a{color:var(--nav-color);background:#121212eb}@media (max-width:992px){.navmenu-vertical{background:#0a0a0af7;box-shadow:0 -8px 24px #0006}}.section-title h2{font-family:var(--display-font);letter-spacing:-.035em;color:#fff;margin-bottom:18px;font-size:clamp(40px,6.4vw,92px);font-weight:800;line-height:.98}.rv .rv-mask{vertical-align:top;margin-bottom:-.12em;padding-bottom:.12em;display:inline-block;overflow:hidden}.rv .rv-word{will-change:transform;transition:transform .9s cubic-bezier(.2,.8,.2,1);display:inline-block}.js-motion .rv:not(.rv-in) .rv-word{transform:translateY(110%)}@media (prefers-reduced-motion:reduce){.rv .rv-word{transition:none;transform:none}}.section-watermark,.projects-watermark{translate:0 var(--drift,0px)}.stack-marquee{z-index:1;background:var(--red);color:#0a0a0a;padding:26px 0 26px 96px;position:relative;overflow:hidden}.stack-marquee-track{align-items:center;gap:34px;width:max-content;animation:38s linear infinite stack-marquee;display:flex}.stack-marquee:hover .stack-marquee-track{animation-play-state:paused}.stack-marquee span{font-family:var(--display-font);letter-spacing:-.02em;text-transform:uppercase;white-space:nowrap;font-size:clamp(26px,3.4vw,46px);font-weight:800}.stack-marquee i{background:#0a0a0a;border-radius:50%;flex:none;width:10px;height:10px}@keyframes stack-marquee{to{transform:translate(-50%)}}@media (max-width:992px){.stack-marquee{padding-left:0}}@media (prefers-reduced-motion:reduce){.stack-marquee-track{animation:none}}
.hero-name-first{display:inline-block}.hero-cover-name.is-ghost{opacity:0}.hero-cover-name.is-traveling{width:max-content}.typed-cursor{color:var(--red);animation:.9s steps(2,start) infinite typed-blink}@keyframes typed-blink{to{visibility:hidden}}.js-motion [data-reveal]{opacity:0;transition:opacity .9s cubic-bezier(.2,.8,.2,1),transform .9s cubic-bezier(.2,.8,.2,1);transform:translateY(36px)}.js-motion [data-reveal].in-view{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.js-motion [data-reveal]{opacity:1;transition:none;transform:none}}html.is-loading{overflow:hidden}.preloader{z-index:10000;background:#0a0a0a;place-items:center;transition:transform .9s cubic-bezier(.76,0,.24,1);display:grid;position:fixed;inset:0}.preloader.is-done{pointer-events:none;transform:translateY(-100%)}.preloader-hello{fill:none;stroke:#f5f4f1;stroke-width:60px;stroke-linecap:round;stroke-linejoin:round;width:min(64vw,460px);height:auto;overflow:visible}.preloader-hello path{stroke-dasharray:1;stroke-dashoffset:1px;animation:1.1s cubic-bezier(.6,.05,.3,1) forwards hello-write}@keyframes hello-write{to{stroke-dashoffset:0}}@media (prefers-reduced-motion:reduce){.preloader-hello path{animation-duration:10ms}}.cursor-dot,.cursor-ring{z-index:10001;pointer-events:none;opacity:0;transition:opacity .25s;position:fixed;top:0;left:0}.cursor-dot.is-on,.cursor-ring.is-on{opacity:1}.cursor-dot:before,.cursor-ring:before{content:"";border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.cursor-dot:before{background:var(--red);width:6px;height:6px}.cursor-ring:before{border:1px solid #f5f4f180;width:36px;height:36px;transition:width .3s cubic-bezier(.2,.8,.2,1),height .3s cubic-bezier(.2,.8,.2,1),background-color .3s,border-color .3s}.cursor-ring.is-hover:before{border-color:var(--red);background:#e2554d1f;width:64px;height:64px}.cursor-ring.is-down:before{width:26px;height:26px}.cursor-ring.has-label:after{content:attr(data-label);font-family:var(--mono-font);letter-spacing:.1em;text-transform:uppercase;color:#f5f4f1;font-size:10px;position:absolute;transform:translate(-50%,-50%)}html.has-cursor,html.has-cursor a,html.has-cursor button{cursor:none}@media (max-width:992px),(hover:none){.cursor-dot,.cursor-ring{display:none}}html.has-cursor input,html.has-cursor textarea{cursor:text}[data-magnetic]{transition:transform .35s cubic-bezier(.2,.8,.2,1)}.hero-float-icon{z-index:3;color:#f5f4f18c;place-items:center;width:56px;height:56px;font-size:34px;transition:color .3s;animation:6s ease-in-out infinite hero-float;display:grid;position:absolute}.hero-float-icon:hover{color:var(--red)}.hero-float-icon--github{top:12%;right:8%}.hero-float-icon--linkedin{animation-duration:7.5s;animation-delay:-2s;top:46%;left:12%}.hero-float-icon--instagram{animation-duration:8.5s;animation-delay:-4s;bottom:28%;left:5%}@keyframes hero-float{0%,to{translate:0;rotate:-4deg}50%{translate:0 -14px;rotate:5deg}}.hero-float-note{z-index:3;max-width:190px;font-family:var(--mono-font);letter-spacing:.12em;text-transform:uppercase;color:#f5f4f199;margin:0;font-size:10.5px;font-weight:500;line-height:1.7;position:absolute}.hero-float-note--left{text-align:left;top:15%;left:9%}.hero-float-note--right{text-align:right;top:31%;right:6%}@media (max-width:992px){.hero-float-note{display:none}.hero-float-icon{width:44px;height:44px;font-size:26px;animation:none;top:auto;bottom:22px;right:auto}.hero-float-icon--github{left:16px}.hero-float-icon--linkedin{left:68px}.hero-float-icon--instagram{left:120px}.hero-cover-typed-line{white-space:normal;text-overflow:clip;min-height:4.8em;line-height:1.6}.typed-cursor{display:none}}@media (prefers-reduced-motion:reduce){.hero-float-icon{animation:none}}.skills .stack-wide{width:100%;max-width:1700px;padding-left:32px;padding-right:32px}.stack-stage{background:#0a0a0a;border:1px solid #f5f4f11f;border-radius:28px;margin:28px 0 20px;position:relative;overflow:hidden}.stack-stage-loading{color:#f5f4f180;place-items:center;height:clamp(560px,82vh,820px);font-size:13px;display:grid}@media (max-width:768px){.stack-stage{border-radius:20px}}.hs-wrap{position:relative;overflow-x:clip}.hs-front{z-index:0;position:sticky;top:0}.hs-slide{z-index:2;position:relative}.hs-slide-inner{will-change:transform;background:#0a0a0a;position:relative}.hs-slide-inner:before{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#0000008c);width:90px;position:absolute;top:0;bottom:0;left:-90px}.hs-hold{pointer-events:none}.hs-wrap.is-still .hs-front{position:relative}.hs-wrap.is-still .hs-hold{display:none}.hs-wrap.is-still .hs-slide-inner{will-change:auto}.hs-wrap.is-still .hs-slide-inner:before{display:none}.stack-lanes{margin-top:56px}.stack-lanes-title{letter-spacing:.24em;text-transform:uppercase;color:#f5f4f1d9;margin-bottom:30px;font-size:15px;font-weight:700;display:block}.stack-lane{padding:22px 0 6px}.stack-lane-head{color:inherit;text-align:left;background:0 0;border:0;flex-wrap:wrap;align-items:baseline;gap:8px 18px;padding:0;display:flex}.stack-lane-num{font-family:var(--mono-font);letter-spacing:.08em;color:var(--red);font-size:12px;font-weight:600}.stack-lane-head strong{font-family:var(--display-font);letter-spacing:-.02em;color:#f5f4f1e6;font-size:24px;transition:color .3s}.stack-lane-text{color:#f5f4f173;font-size:13.5px}.stack-lane:hover .stack-lane-head strong{color:var(--red)}.stack-marquee-row{padding:26px 0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 9% 91%,#0000);mask-image:linear-gradient(90deg,#0000,#000 9% 91%,#0000)}.stack-marquee-track{width:max-content;animation:stack-scroll-left var(--dur,40s) linear infinite;align-items:center;gap:68px;margin:0;padding:0;list-style:none;display:flex}.stack-marquee-row.to-right .stack-marquee-track{animation-name:stack-scroll-right}.stack-marquee-row:hover .stack-marquee-track{animation-play-state:paused}.stack-tech{font-family:var(--default-font);letter-spacing:-.01em;color:#f5f4f1b3;white-space:nowrap;flex:none;align-items:center;gap:14px;font-size:22px;font-weight:700;transition:color .3s,transform .3s;display:flex}.stack-tech i{font-size:32px;line-height:1}.stack-tech:hover{color:#fff;transform:translateY(-3px)}@keyframes stack-scroll-left{to{transform:translate(-50%)}}@keyframes stack-scroll-right{0%{transform:translate(-50%)}to{transform:translate(0)}}@media (max-width:768px){.stack-tech{font-size:18px}.stack-marquee-track{gap:44px}}@media (prefers-reduced-motion:reduce){.stack-marquee-track{animation:none}.stack-marquee-row{overflow-x:auto}}.stack-expand{margin:28px 0 0;position:relative}.stack-expand-pin{height:100dvh;position:sticky;top:0}.stack-expand-card{background:#0a0a0a;border:1px solid #f5f4f11f;border-radius:28px;width:100%;height:clamp(560px,82vh,820px);position:absolute;top:calc(50% - clamp(560px,82vh,820px)/2);left:0;overflow:hidden}.stack-expand-machine{transform-origin:50%;width:100vw;height:100vh;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.stack-expand-panel{will-change:transform;background:linear-gradient(#0a0a0a00 0,#0a0a0a0f 40px,#0a0a0a33 90px,#0a0a0a73 140px,#0a0a0ab8 185px,#0a0a0aeb 225px,#0a0a0a 260px 100%);padding:250px max(32px,6vw) 80px;position:absolute;top:0;left:0;right:0;transform:translateY(110vh)}.stack-expand .stack-lanes{margin-top:0;max-width:1500px;margin-inline:auto}.stack-expand.is-still .stack-expand-pin{height:auto;display:block;position:static}.stack-expand.is-still .stack-expand-card{background:0 0;border:0;border-radius:28px;height:auto;position:static;overflow:visible}.stack-expand.is-still .stack-expand-machine{border:1px solid #f5f4f11f;border-radius:28px;width:100%;height:clamp(560px,82vh,820px);position:relative;top:auto;left:auto;overflow:hidden;transform:none}.stack-expand.is-still .stack-expand-panel{background:0 0;padding:40px 0 0;position:static;transform:none}.is-offscreen,.is-offscreen *,.is-offscreen :before,.is-offscreen :after{animation-play-state:paused!important}.tech-link{display:inherit;align-items:inherit;justify-content:inherit;gap:inherit;color:inherit;text-decoration:none}
.lang-switch{z-index:1000;background:#121212eb;border:1px solid #f5f4f11f;border-radius:999px;align-items:center;height:36px;padding:3px;display:inline-flex;position:fixed;top:16px;right:20px}.lang-switch button{cursor:pointer;background:0 0;border:2px solid #0000;border-radius:50%;flex:none;justify-content:center;align-items:center;width:28px;height:28px;margin:0;padding:0;transition:width .3s,margin .3s,opacity .2s,border-color .25s,transform .25s;display:inline-flex;overflow:hidden}.lang-flag{border-radius:50%;width:100%;height:100%;display:block}.lang-switch button:hover{transform:scale(1.08)}.lang-switch button.is-active{border-color:var(--red)}.lang-switch button:not(.is-active){opacity:0;border-width:0;width:0}.lang-switch.is-open button:not(.is-active){opacity:1;border-width:2px;width:28px;margin-left:4px}.hero-cover-topbar{padding-right:72px;transition:padding-right .3s}html.lang-open .hero-cover-topbar{padding-right:136px}@media (max-width:992px){.lang-switch{right:14px}.hero-cover-topbar{padding-right:62px}html.lang-open .hero-cover-topbar{padding-right:126px}}
