@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.8e0177b5.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.b97b3418.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:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.853070df.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:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist","Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.c1fdd6c2.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.799d8ef8.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:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.dbea232f.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:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}
@font-face{font-family:SansSerifFLF;src:url(/fonts/SansSerifFLF.otf)format("opentype");font-weight:400;font-style:normal;font-display:swap}:root{--bg-deep:#050505;--bg-dark:#0a0a0a;--neon-blue:#00f3ff;--neon-cyan:#0ff;--neon-purple:#bc13fe;--glass-bg:#0a0f1499;--glass-border:#00f3ff33;--text-main:#e0f7fa;--text-dim:#8090a0}html,body{background-color:var(--bg-deep);width:100%;height:100%;color:var(--text-main);scrollbar-width:none;-ms-overflow-style:none;margin:0;padding:0;font-family:SansSerifFLF,Courier New,Courier,monospace;position:fixed;overflow:hidden}body::-webkit-scrollbar{display:none}.sceneRoot{cursor:none;touch-action:none;background:linear-gradient(#000,#000810,#012);width:100%;height:100%;position:fixed;top:0;left:0}.sceneRoot:after{content:"";pointer-events:none;z-index:20;opacity:.5;background-image:linear-gradient(#00f3ff08 1px,#0000 1px),linear-gradient(90deg,#00f3ff08 1px,#0000 1px);background-size:40px 40px;width:100%;height:100%;position:absolute;top:0;left:0}.sceneRoot--light{background:#fff}.sceneRoot>canvas{z-index:1;width:100%;height:100%;position:absolute;top:0;left:0}.background-image-blur{filter:blur(60px)brightness(.3)saturate(0)sepia()hue-rotate(180deg);pointer-events:none;mix-blend-mode:screen;opacity:.3;background-position:50%;background-size:cover;width:100%;height:100%;position:absolute;top:0;left:0;transform:scale(1.1)}.background-image-previous{z-index:-2;opacity:1;animation:2s forwards fadeOutBackground}.background-image-current{z-index:-1;opacity:0;animation:2s forwards fadeInBackground}@keyframes fadeInBackground{0%{opacity:0}to{opacity:1}}@keyframes fadeOutBackground{0%{opacity:1}to{opacity:0}}.project-label{letter-spacing:2px;color:var(--neon-blue);border:1px solid var(--glass-border);pointer-events:none;z-index:1000;text-transform:uppercase;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);white-space:nowrap;background:#050a0fd9;border-radius:4px;align-items:center;gap:12px;padding:12px 16px;font-family:SansSerifFLF,Courier New,Courier,monospace;font-size:12px;animation:.2s ease-out fadeIn;display:flex;position:fixed;box-shadow:0 0 15px #00f3ff26,inset 0 0 20px #00f3ff0d}.project-label:before{content:"";border-top:2px solid var(--neon-blue);border-left:2px solid var(--neon-blue);width:8px;height:8px;position:absolute;top:-1px;left:-1px}.project-label:after{content:"";border-bottom:2px solid var(--neon-blue);border-right:2px solid var(--neon-blue);width:8px;height:8px;position:absolute;bottom:-1px;right:-1px}.project-thumbnail{filter:grayscale(.2)contrast(1.2);background-position:50%;background-size:cover;border:1px solid #fff3;flex-shrink:0;width:50px;height:50px}.project-name{text-shadow:0 0 8px #00f3ff80;font-weight:600}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.project-single-view{z-index:100;opacity:0;pointer-events:none;background-position:50%;background-size:cover;justify-content:center;align-items:center;width:100vw;height:100vh;transition:opacity .8s cubic-bezier(.2,0,.2,1);display:flex;position:fixed;top:0;left:0}.project-single-view:before{content:"";-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:-1;background:#050505eb;width:100%;height:100%;position:absolute;top:0;left:0}.project-single-view:after{content:"";z-index:-1;pointer-events:none;background-image:linear-gradient(#00f3ff08 1px,#0000 1px),linear-gradient(90deg,#00f3ff08 1px,#0000 1px);background-size:50px 50px;width:100%;height:100%;position:absolute;top:0;left:0}.project-single-view.visible{opacity:1;pointer-events:all}.project-single-view.hidden{opacity:0;pointer-events:none}.close-button{border:1px solid var(--neon-blue);width:60px;height:60px;color:var(--neon-blue);cursor:none;z-index:101;background:#0006;border-radius:50%;justify-content:center;align-items:center;font-family:SansSerifFLF,monospace;font-size:20px;transition:all .3s;display:flex;position:absolute;top:40px;right:40px;box-shadow:0 0 15px #00f3ff1a}.close-button:hover{background:#00f3ff1a;transform:scale(1.1)rotate(90deg);box-shadow:0 0 25px #00f3ff66}.tech-overlay-bg{pointer-events:none;z-index:-1;background:radial-gradient(circle,#00f3ff0d 0%,#0000 70%),linear-gradient(#000c,#000a14f2);width:100%;height:100%;position:absolute;top:0;left:0}.project-content-wrapper{box-sizing:border-box;justify-content:center;align-items:center;width:100%;height:100%;padding:40px;display:flex}.glass-panel{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#0a0f1499;border:1px solid #00f3ff4d;border-radius:4px;flex-direction:column;width:100%;max-width:1000px;padding:0;display:flex;position:relative;overflow:hidden;box-shadow:0 0 40px #00f3ff1a,inset 0 0 20px #00f3ff0d}.glass-panel:before{content:"";background:linear-gradient(90deg,transparent,var(--neon-blue),transparent);opacity:.8;width:100%;height:2px;position:absolute;top:0;left:0}.content-header{letter-spacing:2px;color:var(--neon-blue);border-bottom:1px solid #00f3ff1a;justify-content:space-between;padding:15px 20px;font-size:10px;display:flex}.image-container{border-bottom:1px solid #00f3ff1a;width:100%;position:relative;overflow:hidden}.tech-image{object-fit:contain;filter:saturate(.8)contrast(1.1);width:auto;max-width:100%;max-height:60vh;margin:0 auto;transition:filter .3s;display:block}.image-overlay-glitch{pointer-events:none;opacity:.5;background:linear-gradient(#0000 50%,#00f3ff0d 50%) 0 0/100% 4px;width:100%;height:100%;position:absolute;top:0;left:0}.text-content{text-align:left;padding:40px}.glitch-text{color:#fff;text-transform:uppercase;letter-spacing:4px;text-shadow:0 0 10px #00f3ff80;margin:0 0 20px;font-size:48px;font-weight:700;position:relative}.separator-line{background:var(--neon-blue);width:60px;height:3px;box-shadow:0 0 10px var(--neon-blue);margin-bottom:20px}.tech-stats{color:var(--neon-cyan);opacity:.8;letter-spacing:1px;gap:20px;margin-top:30px;font-size:10px;display:flex}.close-icon{width:20px;height:20px;position:relative}.close-icon:before,.close-icon:after{content:"";background:var(--neon-blue);width:100%;height:2px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(45deg)}.close-icon:after{transform:translate(-50%,-50%)rotate(-45deg)}@keyframes slideUpFade{0%{opacity:0;transform:translateY(40px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.whiteEdgeGradient{pointer-events:none;z-index:5;background:radial-gradient(#0000 40%,#0006 80%,#000000e6 100%);width:100%;height:100%;position:fixed;top:0;left:0}.customCursor{border:1px solid var(--neon-blue);pointer-events:none;z-index:9999;opacity:0;will-change:transform;width:20px;height:20px;box-shadow:0 0 10px var(--neon-blue);background:#00f3ff1a;border-radius:50%;transition:opacity .15s linear,transform .1s ease-out;position:absolute;top:0;left:0}.customCursor:after{content:"";background:var(--neon-blue);border-radius:50%;width:4px;height:4px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.header-overlay{z-index:100;pointer-events:none;mix-blend-mode:screen;font-family:SansSerifFLF,monospace;position:fixed;top:40px;left:40px}.header-name{letter-spacing:4px;color:#fff;text-shadow:0 0 10px #00f3ffcc;margin-bottom:4px;font-size:24px;font-weight:700}.header-subtitle{letter-spacing:2px;color:var(--neon-cyan);opacity:.8;align-items:center;gap:8px;font-size:10px;display:flex}.header-subtitle:before{content:"";background:var(--neon-cyan);width:20px;height:2px;box-shadow:0 0 5px var(--neon-cyan);display:block}.loading-screen{color:#00eaff;z-index:100;background:#04060a;justify-content:center;align-items:center;font-family:monospace;display:flex;position:fixed;inset:0}.loading-box{text-align:center;width:300px}.progress-bar{background:#0a0f14;width:100%;height:6px;margin-top:10px;overflow:hidden}.progress-fill{background:#00eaff;height:100%;transition:width .3s}.flash-overlay{z-index:999;background:#fff;animation:.6s forwards flashOut;position:fixed;inset:0}@keyframes flashOut{0%{opacity:1}to{opacity:0;visibility:hidden}}.main-content{opacity:0}.fade-in{animation:1s forwards contentFade}@keyframes contentFade{0%{opacity:0}to{opacity:1}}
