@font-face{font-family:Space Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/space-mono-400-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Space Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/space-mono-400.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Mono;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/space-mono-400-italic-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Space Mono;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/space-mono-400-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/space-mono-700-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Space Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/space-mono-700.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*{margin:0;padding:0;box-sizing:border-box}html{font-size:110%}body{background:#000308;min-height:1500vh;font-family:Space Mono,Courier New,monospace}html.js body{opacity:0;transition:opacity .4s ease}html.js body.fonts-loaded{opacity:1}#canvas{position:absolute;inset:0;pointer-events:none}.content-panel{position:absolute;opacity:0;pointer-events:none;will-change:opacity}.about-panel{left:4%;top:14%;max-width:34%}.work-panel{right:4%;top:14%;max-width:34%;text-align:right}.side-panel{left:4%;top:14%;max-width:34%}.skills-panel{right:4%;top:14%;max-width:34%;text-align:right}.skills-grid{display:flex;flex-wrap:wrap;gap:9px;max-width:280px;margin-left:auto}.skills-grid span{font-size:.66rem;color:#d7e6f5eb;border:1px solid rgba(160,200,235,.3);padding:5px 12px;letter-spacing:.08em}.contact-panel{left:50%;transform:translate(-50%);top:48%;text-align:center;white-space:nowrap}.panel-tag{display:block;font-size:.6rem;font-weight:400;font-family:Space Mono,Courier New,monospace;letter-spacing:.28em;color:#c3daf0d9;text-transform:uppercase;margin-bottom:16px}.panel-tag:after{content:"";display:block;width:20px;height:1px;background:#b4d2eb73;margin-top:10px}.work-panel .panel-tag:after,.skills-panel .panel-tag:after{margin-left:auto}.contact-panel .panel-tag:after{margin-left:auto;margin-right:auto}.content-panel h3.panel-name{font-size:clamp(2rem,4vw,3.5rem);font-weight:700;color:#ebf5fff2;letter-spacing:-.03em;line-height:1;margin-bottom:20px}.content-panel p{font-size:.76rem;line-height:2;color:#dce8f5f2;max-width:30ch}.panel-detail{margin-top:8px;color:#b4cde6cc!important}.work-list{list-style:none;display:flex;flex-direction:column;gap:24px}.work-list li{display:flex;flex-direction:column;gap:5px}.work-list a{font-size:.9rem;color:#c8e1ffe0;text-decoration:none;letter-spacing:.04em;transition:color .2s}.work-list a:hover{color:#f5f0d8}.all-posts-link{display:inline-block;margin-top:20px;font-size:.68rem;letter-spacing:.18em;color:#c3daf0d9;text-decoration:none;text-transform:uppercase;transition:color .2s}.all-posts-link:hover{color:#f5f0d8}.work-list span{font-size:.74rem;color:#c8dcf0d9;letter-spacing:.04em}.work-list .post-date{font-size:.64rem;letter-spacing:.18em;color:#bed7f0cc;text-transform:uppercase}.contact-link{display:block;font-size:.95rem;color:#c8e1ffe0;text-decoration:none;letter-spacing:.1em;margin-bottom:28px;transition:color .2s}.contact-link:hover{color:#f5f0d8}.socials{display:flex;gap:36px;justify-content:center}.socials a{font-size:.68rem;color:#82aad299;text-decoration:none;letter-spacing:.14em;transition:color .2s}.socials a:hover{color:#f5f0d8}@keyframes sparkFade{0%{opacity:.85;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(var(--rise)) scale(.1)}}.sparkle{position:fixed;border-radius:50%;pointer-events:none;background:radial-gradient(circle,#fffffff2,#b4d2ff66);animation:sparkFade var(--dur) ease-out forwards}.shoot-click{width:130px;height:2px;filter:drop-shadow(0 0 5px rgba(200,220,255,.95))}@keyframes ripple{0%{opacity:.7;transform:translate(-50%,-50%) scale(0)}to{opacity:0;transform:translate(-50%,-50%) scale(2.8)}}.click-ripple{position:fixed;width:28px;height:28px;border-radius:50%;border:1px solid rgba(200,220,255,.65);pointer-events:none;animation:ripple .65s ease-out forwards}.const-tooltip{position:fixed;pointer-events:none;padding:7px 13px;background:#040814d1;border:1px solid rgba(140,180,220,.18);color:#a0c8ebe6;font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;opacity:0;transition:opacity .2s;white-space:nowrap;z-index:100}.const-tooltip.visible{opacity:1}.hero-wrap{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;will-change:opacity;pointer-events:none}.hero-inner{text-align:center;transform:translateY(-12%)}.hero-inner h1{font-size:clamp(3.5rem,9vw,8rem);font-weight:700;color:#ebf5fff2;letter-spacing:-.04em;line-height:1;margin-bottom:18px}.hero-inner p{font-size:.72rem;letter-spacing:.32em;color:#c3daf0d9;text-transform:uppercase}.scroll-hint{position:absolute;bottom:6%;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;will-change:opacity;pointer-events:none}.scroll-hint span{font-size:.58rem;letter-spacing:.32em;color:#8cb4dc73;text-transform:uppercase}@keyframes scrollBounce{0%,to{transform:translateY(0);opacity:.35}50%{transform:translateY(7px);opacity:.85}}.scroll-hint svg{animation:scrollBounce 2.2s ease-in-out infinite;color:#8cb4dc8c}.section-dots{position:fixed;right:24px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:14px;z-index:50;opacity:0;transition:opacity .5s;pointer-events:none}.section-dots.visible{opacity:1;pointer-events:auto}.dot{width:5px;height:5px;border-radius:50%;background:#8cb4dc33;transition:background .4s,transform .4s,box-shadow .4s;cursor:pointer}.dot.active{background:#f5f0d8;transform:scale(1.6);box-shadow:0 0 8px #f5f0d8b3}#content-layer{position:fixed;inset:0;z-index:1;overflow:hidden;pointer-events:none}.mobile-const-canvas{display:none}@media(max-width:768px){html{font-size:100%}body{min-height:unset}#content-layer{position:relative;overflow:visible;display:flex;flex-direction:column}.hero-wrap{position:relative;inset:auto;min-height:100vh;min-height:100dvh;will-change:auto;order:1}.hero-wrap:after{content:"";position:absolute;bottom:0;left:0;right:0;height:30vh;background:linear-gradient(to bottom,#00030800,#000308e0);pointer-events:none}#canvas{display:none}.mobile-const-canvas{display:block;width:100%;height:180px;margin-top:40px}.scroll-hint,.section-dots,.const-tooltip{display:none}.content-panel{position:static!important;opacity:1!important;pointer-events:auto!important;max-width:100%!important;transform:none!important;text-align:left!important;order:3;min-height:100vh;padding:48px 24px;margin-bottom:0;background:#000308e0;border-top:1px solid rgba(140,180,220,.08)}.work-panel .panel-tag:after,.skills-panel .panel-tag:after,.contact-panel .panel-tag:after{margin-left:0;margin-right:0}.skills-grid{margin-left:0;max-width:100%}.contact-panel{white-space:normal;left:0;transform:none}.socials{justify-content:flex-start;gap:24px}.content-panel p{max-width:100%;font-size:.9rem}.panel-tag{font-size:.72rem}.work-list a{font-size:.94rem}.work-list span{font-size:.78rem}.work-list .post-date{font-size:.68rem}.all-posts-link{font-size:.74rem}.skills-grid span{font-size:.78rem}.contact-link{font-size:1.1rem}.socials a{font-size:.8rem}.hero-inner h1{font-size:clamp(2.4rem,12vw,5rem)}.hero-inner{transform:none}}
