@font-face{font-family:Montserrat;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8298327da6d5bcce-s.fb2d5852.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/44fac91e6f2d2b1b-s.p.0a39a854.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2b402d8aebffd579-s.ec7e94a5.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/a88409fdd7dc121c-s.62b55a98.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/e8f2fbee2754df70-s.p.9b7a96b4.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat Fallback;src:local(Arial);ascent-override:85.79%;descent-override:22.25%;line-gap-override:0.0%;size-adjust:112.83%}.montserrat_bbbae2f6-module__TmwYOa__className{font-family:Montserrat,Montserrat Fallback;font-style:normal}.montserrat_bbbae2f6-module__TmwYOa__variable{--font-montserrat:"Montserrat","Montserrat Fallback"}
:root{--background-color:#08090b;--surface-color:#121419eb;--blur-background-color:#0c0e12b8;--panel-color:#ffffff1a;--chip-color:#ffffff0f;--button-color:#20242c;--main-text:#f7f8fb;--simple-text:#a8afbd;--muted-text:#c7ccd6;--accent-color-1:#0095ff;--accent-color-2:#0070e0;--accent-color-3:#00c2ff;--accent-soft:#0095ff1f;--shadow-soft:0 20px 70px #00000047;--shadow-accent:0 18px 60px #0095ff29;--hero-object-glow-bg:radial-gradient(circle,#0095ff5c,#0070e029 42%,transparent 72%);--hero-object-shell-highlight:#ffffff1f;--hero-object-shell-fade:#ffffff06;--hero-object-shell-bg:#0d1016e6;--hero-object-border:#ffffff24;--hero-object-shadow:0 34px 90px #00000057;--hero-object-inset-shadow:inset 0 1px 0 #ffffff1a;--hero-object-border-hover:#0095ff61;--hero-object-hover-accent-shadow:0 38px 110px #0095ff29;--hero-object-hover-depth-shadow:0 24px 80px #00000057;--hero-object-hover-inset-shadow:inset 0 1px 0 #ffffff1f;--hero-object-accent-soft:#0095ff20;--hero-object-accent-blur:#0095ff0d;--hero-object-text:#fff;--hero-object-muted-text:#f7f8fbdb;--hero-object-inverse-text:#fff;--hero-object-panel-bg:#ffffff0e;--hero-object-panel-border:#ffffff1a;--hero-object-panel-hover-bg:#0095ff1f;--hero-object-panel-hover-border:#0095ff52;--hero-object-footer-bg:#ffffff0f;--hero-object-footer-hover-border:#0095ff57;--hero-object-screen-bg:#00000047;--hero-object-screen-border:#ffffff14;--hero-object-terminal-border:#ffffff14;--hero-object-terminal-hover-border:#0095ff4d;--hero-object-pulse-border:#0095ff5c;--hero-object-pulse-highlight:#ffffff38;--hero-object-pulse-center-border:#ffffff42;--hero-object-pulse-shadow:0 18px 42px #0095ff47;--hero-object-pulse-hover-shadow:0 22px 58px #0095ff5c;--hero-object-orbit-bg:#121419d1;--hero-object-orbit-border:#ffffff1f;--hero-object-orbit-shadow:0 18px 42px #0000003d;--hero-object-orbit-hover-text:#fff;--hero-object-orbit-hover-border:#0095ff6b;--hero-object-orbit-hover-shadow:0 22px 56px #0095ff2e}html[data-theme=light]{--background-color:#f7f8fb;--surface-color:#ffffffe0;--blur-background-color:#ffffffc7;--panel-color:#0f172a1f;--chip-color:#0f172a0e;--button-color:#eef2f7;--main-text:#10131a;--simple-text:#545d6d;--muted-text:#2f3745;--accent-color-1:#0095ff;--accent-color-2:#0070e0;--accent-color-3:#00c2ff;--accent-soft:#0095ff1a;--shadow-soft:0 18px 55px #0f172a1a;--shadow-accent:0 18px 45px #0079d61f;--hero-object-glow-bg:radial-gradient(circle,#0095ff33,#0070e014 42%,transparent 72%);--hero-object-shell-highlight:#ffffffd1;--hero-object-shell-fade:#0095ff0b;--hero-object-shell-bg:#ffffffdb;--hero-object-border:#0070e029;--hero-object-shadow:0 28px 70px #0f172a21;--hero-object-inset-shadow:inset 0 1px 0 #ffffffc7;--hero-object-border-hover:#0079d657;--hero-object-hover-accent-shadow:0 30px 80px #0079d624;--hero-object-hover-depth-shadow:0 18px 50px #0f172a1a;--hero-object-hover-inset-shadow:inset 0 1px 0 #ffffffe6;--hero-object-accent-soft:#0095ff1c;--hero-object-accent-blur:#0095ff14;--hero-object-text:#10131a;--hero-object-muted-text:#3d4b63;--hero-object-inverse-text:#fff;--hero-object-panel-bg:#ffffffa8;--hero-object-panel-border:#0f172a1a;--hero-object-panel-hover-bg:#0095ff17;--hero-object-panel-hover-border:#0079d642;--hero-object-footer-bg:#ffffffa8;--hero-object-footer-hover-border:#0079d647;--hero-object-screen-bg:#eff6ffb8;--hero-object-screen-border:#0070e01f;--hero-object-terminal-border:#0f172a17;--hero-object-terminal-hover-border:#0079d640;--hero-object-pulse-border:#0079d647;--hero-object-pulse-highlight:#ffffff70;--hero-object-pulse-center-border:#0070e038;--hero-object-pulse-shadow:0 18px 42px #0079d633;--hero-object-pulse-hover-shadow:0 22px 58px #0079d647;--hero-object-orbit-bg:#ffffffc7;--hero-object-orbit-border:#0070e021;--hero-object-orbit-shadow:0 18px 42px #0f172a1f;--hero-object-orbit-hover-text:#10131a;--hero-object-orbit-hover-border:#0079d652;--hero-object-orbit-hover-shadow:0 22px 56px #0079d626}*{box-sizing:border-box;scroll-behavior:smooth}html,body{min-height:100%;margin:0;padding:0;overflow-x:hidden}body{min-width:320px;color:var(--main-text);font-family:var(--font-montserrat),Arial,sans-serif;background:linear-gradient(180deg,#ffffff06,transparent 28rem),var(--background-color);transition:background-color .2s,color .2s;animation:.45s bodystart}body:before{z-index:-1000;pointer-events:none;content:"";background-image:linear-gradient(#ffffff09 1px,#0000 1px),linear-gradient(90deg,#ffffff09 1px,#0000 1px);background-size:68px 68px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 72%);mask-image:linear-gradient(#000,#0000 72%)}main{width:min(100%,1200px);margin:0 auto;padding:0 20px 24px}a,button{font:inherit}button{-webkit-tap-highlight-color:transparent}p{color:var(--simple-text)}hr{background:linear-gradient(90deg,transparent,var(--panel-color),transparent);border:0;width:min(100%,920px);height:1px;margin:86px auto 0}.particles-container{z-index:-999;pointer-events:none;width:100vw;height:100vh;position:fixed;inset:0}.ambient-particles{opacity:.42}.section-kicker{color:var(--accent-color-2);letter-spacing:.14em;text-align:center;text-transform:uppercase;margin:24px 0 0;font-size:.75rem;font-weight:800}.block-name{color:var(--main-text);text-align:center;margin:8px 0 34px;scroll-margin-top:110px;font-size:clamp(2rem,4vw,3rem);line-height:1.1;position:relative}.block-name:before{content:"";background:linear-gradient(90deg,transparent,var(--accent-color-1),var(--accent-color-2),transparent);border-radius:999px;width:160px;height:3px;position:absolute;top:calc(100% + 12px);left:50%;transform:translate(-50%)}.scroll-reveal{--reveal-delay:0s;opacity:0;transition:opacity .82s cubic-bezier(.22,1,.36,1)var(--reveal-delay),transform .82s cubic-bezier(.22,1,.36,1)var(--reveal-delay);transform:translateY(28px)}.scroll-reveal--left{transform:translate(-26px,16px)}.scroll-reveal--right{transform:translate(26px,16px)}.scroll-reveal--scale{transform:translateY(20px)scale(.985)}.scroll-reveal.is-visible{opacity:1;transform:translate(0,0)scale(1)}.hero-wrapper{align-items:center;width:100%;min-height:min(760px,100vh - 28px);margin-top:0;padding:112px 0 40px;display:flex}.hero-content{grid-template-columns:minmax(300px,42%) 1fr;align-items:center;gap:clamp(28px,6vw,70px);width:100%;min-width:0;max-width:1080px;margin:0 auto;display:grid}.hero-content>*{min-width:0}.hero-visual{justify-content:center;align-items:center;min-height:420px;display:flex;position:relative}.hero-visual:before{content:"";background:var(--hero-object-glow-bg);filter:blur(34px);opacity:0;width:78%;height:78%;transition:opacity .65s ease-out,transform .65s ease-out;position:absolute;inset:8% auto auto 10%;transform:scale(.92)}.hero-visual.hero-visual-glow:before{opacity:.9;transform:scale(1)}.hero-visual:has(.hero-object:hover):before{opacity:.9;transform:scale(1)}.hero-object{--cursor-rotate-x:0deg;--cursor-rotate-y:0deg;--cursor-shift-x:0px;--cursor-shift-y:0px;cursor:pointer;isolation:isolate;perspective:900px;width:min(100%,430px);min-height:430px;transform:translate3d(var(--cursor-shift-x),calc(var(--cursor-shift-y) - 10px),0);justify-content:center;align-items:center;margin-top:-44px;display:flex;position:relative}.core-shell{z-index:2;background:linear-gradient(145deg,var(--hero-object-shell-highlight),var(--hero-object-shell-fade)42%),var(--hero-object-shell-bg);border:1px solid var(--hero-object-border);width:min(100%,360px);min-height:360px;box-shadow:var(--hero-object-shadow),var(--hero-object-inset-shadow);transform:rotateX(var(--cursor-rotate-x))rotateY(var(--cursor-rotate-y));transform-style:preserve-3d;will-change:transform;border-radius:8px;padding:16px;transition:border-color .35s,box-shadow .35s;position:relative;overflow:hidden}.hero-object:hover .core-shell{border-color:var(--hero-object-border-hover);box-shadow:var(--hero-object-hover-accent-shadow),var(--hero-object-hover-depth-shadow),var(--hero-object-hover-inset-shadow)}.core-shell:before,.core-shell:after{content:"";pointer-events:none;position:absolute}.core-shell:before{background:linear-gradient(90deg,transparent,var(--hero-object-accent-soft),transparent);opacity:.55;background-size:100% 100%,34px 34px,34px 34px;inset:-1px}.core-shell:after{background:radial-gradient(circle,var(--hero-object-accent-blur),transparent 68%);filter:blur(4px);width:150px;height:150px;bottom:-28px;right:-28px}.core-header,.core-footer,.core-screen{z-index:1;position:relative}.core-header{min-height:42px;color:var(--hero-object-text);background-color:var(--hero-object-panel-bg);border:1px solid var(--hero-object-panel-border);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:0 12px;font-size:.78rem;font-weight:800;transition:border-color .2s,background-color .2s,transform .2s;display:flex}.core-header:hover{background-color:var(--hero-object-panel-hover-bg);border-color:var(--hero-object-panel-hover-border);transform:translateY(-2px)}.core-header strong{color:var(--accent-color-2);letter-spacing:.14em;text-transform:uppercase;font-size:.68rem}.core-dot{background-color:var(--accent-color-2);width:8px;height:8px;box-shadow:0 0 18px var(--accent-color-2);border-radius:999px}.core-screen{background-color:var(--hero-object-screen-bg);border:1px solid var(--hero-object-screen-border);border-radius:8px;grid-template-columns:1.1fr .9fr;gap:16px;min-height:228px;margin-top:14px;padding:16px;display:grid}.terminal-lines{align-content:center;gap:12px;min-width:0;display:grid}.terminal-lines span{width:fit-content;max-width:100%;color:var(--hero-object-muted-text);overflow-wrap:anywhere;background-color:var(--hero-object-panel-bg);border:1px solid var(--hero-object-terminal-border);border-radius:6px;padding:7px 9px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.68rem;line-height:1.35;transition:color .2s,border-color .2s,background-color .2s,transform .2s;display:block}.terminal-lines span:hover{color:var(--hero-object-text);background-color:var(--hero-object-panel-hover-bg);border-color:var(--hero-object-terminal-hover-border);transform:translate(6px)}.terminal-lines span:before{color:var(--accent-color-2);content:"> "}.core-pulse{justify-content:center;align-items:center;min-width:118px;display:flex;position:relative}.pulse-ring{border:1px solid var(--hero-object-pulse-border);border-radius:999px;width:116px;height:116px;animation:3s ease-out infinite pulseRing;position:absolute}.pulse-ring.delay-one{animation-delay:.7s}.pulse-ring.delay-two{animation-delay:1.4s}.pulse-center{z-index:1;width:72px;height:72px;color:var(--hero-object-inverse-text);background:radial-gradient(circle at 32% 28%,var(--hero-object-pulse-highlight),transparent 32%),linear-gradient(135deg,var(--accent-color-1),var(--accent-color-2));border:1px solid var(--hero-object-pulse-center-border);box-shadow:var(--hero-object-pulse-shadow);border-radius:8px;justify-content:center;align-items:center;font-size:2rem;font-weight:900;transition:box-shadow .2s,transform .2s,filter .2s;display:flex;position:relative;transform:rotate(45deg)}.pulse-center:hover{filter:saturate(1.2);box-shadow:var(--hero-object-pulse-hover-shadow);transform:rotate(45deg)scale(1.08)}.pulse-center span{display:block;transform:rotate(-45deg)}.core-footer{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.core-footer span{min-height:38px;color:var(--hero-object-text);background-color:var(--hero-object-footer-bg);border:1px solid var(--hero-object-panel-border);border-radius:8px;flex:86px;justify-content:center;align-items:center;font-size:.76rem;font-weight:800;transition:border-color .2s,background-color .2s,transform .2s;display:inline-flex}.core-footer span:hover{background-color:var(--hero-object-panel-hover-bg);border-color:var(--hero-object-footer-hover-border);transform:translateY(-3px)}.core-orbit{z-index:3;width:76px;height:76px;color:var(--main-text);background-color:var(--hero-object-orbit-bg);border:1px solid var(--hero-object-orbit-border);box-shadow:var(--hero-object-orbit-shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:999px;justify-content:center;align-items:center;transition:color .2s,border-color .2s,box-shadow .2s,transform .2s;display:flex;position:absolute}.core-orbit:hover{color:var(--hero-object-orbit-hover-text);border-color:var(--hero-object-orbit-hover-border);box-shadow:var(--hero-object-orbit-hover-shadow);transform:translateY(-4px)scale(1.04)}.core-orbit span{letter-spacing:.08em;font-size:.82rem;font-weight:900}.orbit-top{color:var(--accent-color-3);top:16px;right:36px}.orbit-right{color:var(--accent-color-1);bottom:112px;right:0}.orbit-bottom{color:var(--accent-color-3);bottom:30px;left:26px}.hero-text{width:100%;min-width:0;max-width:100%}.eyebrow{width:fit-content;color:var(--accent-color-1);letter-spacing:.12em;text-transform:uppercase;background-color:var(--accent-soft);border:1px solid #0095ff47;border-radius:999px;margin:0 0 16px;padding:7px 11px;font-size:.78rem;font-weight:500}.hero-text h1{--hero-title-size:clamp(3rem,5.55vw,4.85rem);color:var(--main-text);font-size:var(--hero-title-size);overflow-wrap:anywhere;margin:0;line-height:1.08}.hero-title-stage{display:block;position:relative}.hero-title-ghost{visibility:hidden;pointer-events:none;display:block}.text-type{width:100%;max-width:100%;display:block;position:absolute;inset:0 auto auto 0}.text-type__content,.text-type__cursor{overflow-wrap:anywhere}.hero-lead{width:100%;max-width:650px;color:var(--muted-text);overflow-wrap:break-word;margin:22px 0 0;font-size:clamp(1rem,2vw,1.14rem);line-height:1.8}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:30px;display:flex}.primary-action,.secondary-action,.resume-container a{border-radius:999px;justify-content:center;align-items:center;gap:10px;min-height:48px;padding:0 22px;font-size:.92rem;font-weight:500;text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s;display:inline-flex}.primary-action,.resume-container a{color:#fff;background:linear-gradient(135deg,var(--accent-color-1),var(--accent-color-2));box-shadow:var(--shadow-accent);border:1px solid #0000}.secondary-action{color:var(--main-text);background-color:var(--chip-color);border:1px solid var(--panel-color)}.primary-action:hover,.secondary-action:hover,.resume-container a:hover{transform:translateY(-2px)}.secondary-action:hover{border-color:var(--accent-color-1)}.hero-facts{grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,210px));justify-content:center;gap:10px;width:min(100%,900px);margin:-34px auto 0;display:grid}.hero-facts span{min-width:0;min-height:40px;color:var(--muted-text);text-align:center;overflow-wrap:break-word;background-color:var(--chip-color);border:1px solid var(--panel-color);border-radius:8px;justify-content:center;align-items:center;padding:8px 10px;font-size:.74rem;font-weight:500;line-height:1.28;display:flex}.projects-wrapper{text-align:center;position:relative}.projects-wrapper:before{z-index:-1;pointer-events:none;content:"";filter:blur(38px);background:radial-gradient(circle,#0095ff24,#0070e014 38%,#0000 70%);width:min(74vw,720px);height:360px;position:absolute;top:-120px;left:50%;transform:translate(-50%)}.projects-grid{gap:18px;display:grid}.stack-container{gap:14px;width:min(100%,920px);margin:0 auto;display:grid}.stack-block{background-color:var(--surface-color);border:1px solid var(--panel-color);width:100%;box-shadow:var(--shadow-soft);border-radius:8px;grid-template-columns:1fr auto;align-items:center;gap:20px;padding:20px;display:grid}.stack-block .text-content,.stack-block .stack-image,.stack-block .technology{opacity:0;transition:opacity .68s cubic-bezier(.22,1,.36,1),transform .68s cubic-bezier(.22,1,.36,1),color .2s,border-color .2s,box-shadow .2s}.stack-block .text-content{transform:translate(-14px)}.stack-block .stack-image{transform:rotate(45deg)translate(12px,12px)scale(.94)}.stack-block .technology{--technology-reveal-delay:0s;transition:opacity .68s cubic-bezier(.22,1,.36,1)var(--technology-reveal-delay),transform .68s cubic-bezier(.22,1,.36,1)var(--technology-reveal-delay),color .2s ease,border-color .2s ease,box-shadow .2s ease,translate .2s ease;transform:translateY(10px)scale(.98)}.stack-block.scroll-reveal.is-visible .text-content,.stack-block.scroll-reveal.is-visible .technology{opacity:1;transform:translate(0,0)scale(1)}.stack-block.scroll-reveal.is-visible .stack-image{opacity:1;transform:rotate(45deg)translate(0,0)scale(1)}.stack-block.scroll-reveal.is-visible .text-content{transition-delay:calc(var(--reveal-delay) + .13s)}.stack-block.scroll-reveal.is-visible .stack-image{transition-delay:calc(var(--reveal-delay) + .22s)}.stack-block.scroll-reveal.is-visible .technology:first-child{--technology-reveal-delay:calc(var(--reveal-delay) + .26s)}.stack-block.scroll-reveal.is-visible .technology:nth-child(2){--technology-reveal-delay:calc(var(--reveal-delay) + .31s)}.stack-block.scroll-reveal.is-visible .technology:nth-child(3){--technology-reveal-delay:calc(var(--reveal-delay) + .36s)}.stack-block.scroll-reveal.is-visible .technology:nth-child(4){--technology-reveal-delay:calc(var(--reveal-delay) + .41s)}.stack-block.scroll-reveal.is-visible .technology:nth-child(5){--technology-reveal-delay:calc(var(--reveal-delay) + .46s)}.stack-block.scroll-reveal.is-visible .technology:nth-child(6){--technology-reveal-delay:calc(var(--reveal-delay) + .51s)}.stack-block.scroll-reveal.is-visible .technology:nth-child(7){--technology-reveal-delay:calc(var(--reveal-delay) + .56s)}.stack-block.scroll-reveal.is-visible .technology:nth-child(8){--technology-reveal-delay:calc(var(--reveal-delay) + .61s)}.stack-block.scroll-reveal.is-visible .technology:nth-child(9){--technology-reveal-delay:calc(var(--reveal-delay) + .66s)}.stack-block.scroll-reveal.is-visible .technology:hover{translate:0 -2px}.stack-block h3{color:var(--main-text);margin:0 0 14px;font-size:1.25rem}.technology-container{flex-wrap:wrap;gap:8px;display:flex}.technology{min-height:36px;color:var(--muted-text);background-color:var(--chip-color);border:1px solid var(--panel-color);cursor:default;border-radius:999px;align-items:center;padding:0 12px;font-size:.86rem;font-weight:700;transition:color .2s,border-color .2s,transform .2s,box-shadow .2s,translate .2s;display:inline-flex}.technology:hover{translate:0 -2px}.technology.html:hover{color:#ff8a54;border-color:#ff6b2b;box-shadow:0 0 22px #ff6b2b2e}.technology.css:hover{color:#5a93ff;border-color:#3478ff;box-shadow:0 0 22px #3478ff2e}.technology.js:hover{color:#f2bd27;border-color:#f2bd27;box-shadow:0 0 22px #f2bd272e}.technology.p5js:hover{color:#f06;border-color:#f06;box-shadow:0 0 22px #ff00732e}.technology.react:hover{color:#31d7ff;border-color:#31d7ff;box-shadow:0 0 22px #31d7ff2e}.technology.next:hover{border-color:var(--main-text);color:var(--main-text);box-shadow:0 0 22px #ffffff1f}.technology.tailwind:hover{color:#38bdf8;border-color:#38bdf8;box-shadow:0 0 22px #38bdf82e}.technology.python:hover{color:#77d970;border-color:#77d970;box-shadow:0 0 22px #77d9702e}.technology.java:hover{color:#ff7626;border-color:#ff7626;box-shadow:0 0 22px #ff6b2b2e}.technology.typescript:hover{color:#0070e0;border-color:#0070e0;box-shadow:0 0 22px #0070e02e}.technology.mysql:hover{color:#7dd3fc;border-color:#7dd3fc;box-shadow:0 0 22px #7dd3fc2e}.technology.mongodb:hover{color:#65d46e;border-color:#65d46e;box-shadow:0 0 22px #65d46e2e}.technology.node:hover{color:#9dd85d;border-color:#9dd85d;box-shadow:0 0 22px #9dd85d2e}.technology.nestjs:hover{color:#f06;border-color:#f06;box-shadow:0 0 22px #ff00732e}.technology.kotlin:hover{color:#b88cff;border-color:#a970ff;box-shadow:0 0 22px #a970ff2e}.technology.swift:hover{color:#ff925c;border-color:#ff7a36;box-shadow:0 0 22px #ff7a362e}.technology.compose:hover{color:#4fd69b;border-color:#35c98b;box-shadow:0 0 22px #35c98b2e}.technology.swiftui:hover{color:#38bdf8;border-color:#0ea5e9;box-shadow:0 0 22px #0ea5e92e}.technology.uikit:hover{color:#5b9bff;border-color:#2f80ed;box-shadow:0 0 22px #2f80ed2e}.technology.mvvm:hover{color:#d8b4fe;border-color:#c084fc;box-shadow:0 0 22px #c084fc2e}.technology.firebase:hover{color:#ffd95a;border-color:#ffca28;box-shadow:0 0 22px #ffca282e}.technology.supabase:hover{color:#55e6a5;border-color:#3ecf8e;box-shadow:0 0 22px #3ecf8e2e}.technology.swiftdata:hover{color:#ff77a6;border-color:#ff4f8b;box-shadow:0 0 22px #ff4f8b2e}.technology.docker:hover{color:#2496ed;border-color:#2496ed;box-shadow:0 0 22px #2496ed2e}.technology.github:hover{color:#b98cff;border-color:#b98cff;box-shadow:0 0 22px #b98cff2e}.technology.figma:hover{color:#ff7262;border-color:#ff7262;box-shadow:0 0 22px #ff72622e}.technology.ai:hover{color:#0095ff;border-color:#0095ff;box-shadow:0 0 22px #00c2ff2e}.stack-image{background-color:var(--chip-color);border:1px solid var(--panel-color);border-radius:8px;width:74px;min-width:74px;height:74px;position:relative;overflow:hidden;transform:rotate(45deg)}.stack-image:before{content:"";background-position:50%;background-size:cover;position:absolute;inset:-21%;transform:rotate(-45deg)}#frontend-image:before{background-image:url(/frontend-image.webp)}#backend-image:before{background-image:url(/backend-image.webp)}#mobile-image:before{background-image:url(/mobile_image.webp)}#another-image:before{background-image:url(/devops-image.webp)}.about-me-wrapper,.contacts-wrapper{width:min(100%,880px);margin:0 auto}.about-me-container,.contacts-container{background-color:var(--surface-color);border:1px solid var(--panel-color);width:100%;box-shadow:var(--shadow-soft);border-radius:8px;padding:clamp(22px,5vw,42px)}.about-copy{gap:18px;display:grid}.about-copy p{color:var(--muted-text);margin:0;font-size:1rem;line-height:1.85}.about-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:28px 0;display:grid}.about-stats div{background-color:var(--chip-color);border:1px solid var(--panel-color);border-radius:8px;min-height:116px;padding:16px}.about-stats strong,.about-stats span{display:block}.about-stats strong{color:var(--main-text);font-size:1.2rem;line-height:1.25}.about-stats span{color:var(--simple-text);margin-top:8px;font-size:.86rem;line-height:1.45}.resume-container,.contacts-content{justify-content:center;display:flex}.contacts-container{text-align:center;max-width:620px}.contacts-container h3{color:var(--main-text);margin:0;font-size:clamp(1.2rem,3vw,1.7rem)}.contacts-container p{max-width:430px;margin:12px auto 24px;line-height:1.7}.contacts-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.contact-block{min-height:50px;color:var(--main-text);background-color:var(--chip-color);border:1px solid var(--panel-color);border-radius:8px;justify-content:center;align-items:center;gap:10px;padding:0 14px;font-weight:500;text-decoration:none;transition:color .2s,border-color .2s,transform .2s;display:flex}.contact-block:hover{transform:translateY(-2px)}.contact-block.telegram:hover{color:#24a1de;border-color:#24a1de}.contact-block.github:hover{color:#2dba4e;border-color:#2dba4e}.contact-block.vk:hover{color:#07f;border-color:#07f}.contact-block.email:hover{color:#ec1346;border-color:#ec1346}.not-found,.loading{text-align:center;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.not-found-content{width:min(90%,720px)}.not-found h1{color:var(--accent-color-1);margin:0;font-size:clamp(5rem,18vw,10rem);line-height:1}.loading-circle{border:5px solid var(--accent-color-1);border-top-color:#0000;border-radius:999px;width:52px;height:52px;animation:1s linear infinite loading}@keyframes loading{to{transform:rotate(360deg)}}@keyframes pulseRing{0%,12%{opacity:.9;transform:scale(.72)}to{opacity:0;transform:scale(1.35)}}@keyframes bodystart{0%{opacity:0}to{opacity:1}}@media (max-width:900px){main{padding-inline:14px}.hero-wrapper{min-height:auto;padding-top:104px}.hero-content{text-align:center;grid-template-columns:1fr;gap:18px}.hero-visual{order:-1;min-height:440px}.hero-object{width:min(100%,390px);min-height:410px;margin-top:-16px}.core-shell{transform:rotateX(var(--cursor-rotate-x))rotateY(var(--cursor-rotate-y))}.eyebrow,.hero-lead,.hero-actions{margin-inline:auto}.hero-actions{justify-content:center}.hero-facts{margin-inline:auto;width:100%;max-width:620px;margin-top:8px}}@media (max-width:680px){hr{margin-top:64px}.block-name{margin-bottom:28px}.hero-text h1{--hero-title-size:clamp(2.35rem,10.8vw,3.05rem)}.hero-content,.hero-text,.hero-facts{width:min(100%,100vw - 28px);max-width:calc(100vw - 28px)}.hero-visual{min-height:380px}.hero-visual:before{width:84%;height:58%;inset:12% 8% auto}.hero-object{width:min(100%,320px);min-height:360px;margin-top:0}.core-shell{width:min(100%,300px);min-height:330px;padding:12px}.core-screen{grid-template-columns:1fr;gap:10px;min-height:190px;padding:12px}.core-pulse{min-height:92px}.pulse-ring{width:86px;height:86px}.pulse-center{width:58px;height:58px;font-size:1.55rem}.terminal-lines{gap:8px}.terminal-lines span{font-size:.62rem}.hero-actions{flex-direction:column;align-items:stretch;width:100%}.hero-actions a{width:100%}.hero-facts,.about-stats,.contacts-list{grid-template-columns:1fr}.stack-block{grid-template-columns:1fr;justify-items:stretch}.stack-block .text-content{width:100%}.stack-block h3{text-align:center}.stack-image{order:-1;justify-self:center;width:96px;height:96px;margin:18px auto 8px}}@media (max-width:520px){.hero-content,.hero-text,.hero-facts{width:min(100%,360px);max-width:360px}.hero-text h1{--hero-title-size:clamp(2.25rem,10.2vw,2.85rem)}}@media (max-width:430px){main{padding-inline:10px}.hero-wrapper{padding-top:92px}.hero-text h1{line-height:1.1}.hero-visual{min-height:340px}.hero-object{width:min(100%,300px);min-height:330px}.core-shell{width:min(100%,284px)}.core-orbit{width:58px;height:58px}.orbit-top{right:8px}.orbit-right{bottom:96px;right:-6px}.orbit-bottom{bottom:8px;left:4px}.hero-content,.hero-text,.hero-facts{width:min(100%,100vw - 20px);max-width:calc(100vw - 20px)}.resume-container a{width:100%}.about-me-container,.contacts-container{padding:20px 14px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.scroll-reveal{opacity:1!important;filter:none!important;transition:none!important;transform:none!important}}
.Header-module__uO3NCW__header{z-index:900;background-color:var(--blur-background-color);box-sizing:border-box;width:min(100% - 28px,1040px);min-height:58px;box-shadow:none;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid #0000;border-radius:999px;justify-content:space-between;align-items:center;padding:6px 8px 6px 20px;transition:border-color .2s,box-shadow .2s,top .2s;display:flex;position:fixed;top:16px;left:50%;transform:translate(-50%)}.Header-module__uO3NCW__scrolled{border-color:var(--panel-color);box-shadow:var(--shadow-soft);top:10px}.Header-module__uO3NCW__logo{color:var(--main-text);letter-spacing:.02em;font-size:1rem;font-weight:800;text-decoration:none;transition:color .2s,opacity .2s}.Header-module__uO3NCW__logo:hover{color:var(--accent-color-1)}.Header-module__uO3NCW__desktopNav{align-items:center;gap:4px;display:flex}.Header-module__uO3NCW__desktopNav a{color:var(--muted-text);border-radius:999px;padding:10px 12px;font-size:.9rem;font-weight:500;text-decoration:none;transition:color .2s,background-color .2s}.Header-module__uO3NCW__desktopNav a:hover{color:var(--main-text);background-color:var(--chip-color)}.Header-module__uO3NCW__burger,.Header-module__uO3NCW__themeButton,.Header-module__uO3NCW__navHead button{width:42px;height:42px;color:var(--main-text);cursor:pointer;background-color:#0000;border:none;border-radius:999px;justify-content:center;align-items:center;transition:background-color .2s,color .2s,transform .2s;display:inline-flex}.Header-module__uO3NCW__burger:hover,.Header-module__uO3NCW__themeButton:hover,.Header-module__uO3NCW__navHead button:hover{color:var(--accent-color-1);background-color:var(--chip-color)}.Header-module__uO3NCW__burger{display:none}.Header-module__uO3NCW__backdrop{z-index:980;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;visibility:hidden;pointer-events:none;background-color:#00000094;border:none;width:100vw;height:100vh;padding:0;transition:opacity .42s,visibility 0s linear .42s;position:fixed;inset:0}.Header-module__uO3NCW__backdropVisible{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}.Header-module__uO3NCW__navigation{z-index:990;box-sizing:border-box;background-color:var(--surface-color);border-right:1px solid var(--panel-color);opacity:.7;visibility:hidden;transform-origin:0;will-change:transform;width:min(82vw,300px);height:100vh;padding:18px;transition:transform .56s cubic-bezier(.22,1,.36,1),opacity .34s,visibility 0s linear .56s;position:fixed;top:0;left:0;transform:translate(-105%)scaleX(.94);box-shadow:18px 0 60px #00000047}.Header-module__uO3NCW__navigationOpen{opacity:1;visibility:visible;transition-delay:0s;transform:translate(0,0)scaleX(1)}.Header-module__uO3NCW__navHead{justify-content:space-between;align-items:center;gap:16px;display:flex}.Header-module__uO3NCW__navHead h3{margin:0;font-size:1.05rem}.Header-module__uO3NCW__navHead h3,.Header-module__uO3NCW__navHead button{opacity:0;transition:opacity .3s,transform .42s cubic-bezier(.22,1,.36,1);transform:translate(-18px)}.Header-module__uO3NCW__navHead button{transform:translate(-12px)rotate(-45deg)scale(.88)}.Header-module__uO3NCW__navigationOpen .Header-module__uO3NCW__navHead h3,.Header-module__uO3NCW__navigationOpen .Header-module__uO3NCW__navHead button{opacity:1;transition-delay:.16s;transform:translate(0,0)rotate(0)scale(1)}.Header-module__uO3NCW__navigationOpen .Header-module__uO3NCW__navHead button{transition-delay:.22s}.Header-module__uO3NCW__navContent{gap:8px;margin-top:28px;display:grid}.Header-module__uO3NCW__navContent a{color:var(--main-text);opacity:0;border-radius:8px;align-items:center;gap:10px;padding:13px 12px;font-weight:700;text-decoration:none;transition:color .2s,background-color .2s,opacity .3s,transform .46s cubic-bezier(.22,1,.36,1);display:flex;transform:translate(-28px,10px)scale(.97)}.Header-module__uO3NCW__navigationOpen .Header-module__uO3NCW__navContent a{opacity:1;transition-delay:0s,0s,calc(.24s + var(--nav-item-index)*70ms),calc(.24s + var(--nav-item-index)*70ms);transform:translate(0,0)scale(1)}.Header-module__uO3NCW__navContent a:hover{color:var(--accent-color-1);background-color:var(--chip-color)}.Header-module__uO3NCW__navContent span{color:var(--accent-color-1);opacity:0;transition:opacity .25s,transform .35s cubic-bezier(.22,1,.36,1);transform:translate(-8px)}.Header-module__uO3NCW__navigationOpen .Header-module__uO3NCW__navContent span{opacity:1;transition-delay:calc(.31s + var(--nav-item-index)*70ms);transform:translate(0)}@media (max-width:760px){.Header-module__uO3NCW__header{min-height:54px;padding:6px 8px}.Header-module__uO3NCW__desktopNav{display:none}.Header-module__uO3NCW__burger{display:inline-flex}}@media (min-width:761px){.Header-module__uO3NCW__backdrop,.Header-module__uO3NCW__navigation{display:none}}@media (prefers-reduced-motion:reduce){.Header-module__uO3NCW__backdrop,.Header-module__uO3NCW__navigation,.Header-module__uO3NCW__navHead h3,.Header-module__uO3NCW__navHead button,.Header-module__uO3NCW__navContent a,.Header-module__uO3NCW__navContent span{transition-duration:.01ms;transition-delay:0s}}
