@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap";
*,:before,:after{box-sizing:border-box;margin:0;padding:0}img{-webkit-user-select:none;user-select:none;-webkit-user-drag:none}::selection{color:#000!important;background-color:#d00000!important}::selection{color:#000!important;background-color:#d00000!important}::-webkit-selection{color:#000;background-color:#d00000!important}a,button,input[type=submit],input[type=button],[role=button],project-card,.logo,.connect-btn,.magnetic-link{touch-action:manipulation}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;overflow-x:clip}body{color:#fff;background:#000;min-height:100vh;overflow-x:clip}html.scroll-locked,body.scroll-locked{overflow-y:hidden}.intro-screen{z-index:1000;will-change:transform;background:#fff;justify-content:center;align-items:center;transition:transform 1.1s cubic-bezier(.85,0,.15,1);display:flex;position:fixed;inset:0}.intro-screen.slide-up{transform:translateY(-100%)}.intro-screen.hidden{display:none}.intro-content{will-change:opacity, transform, filter;flex-direction:column;justify-content:center;align-items:center;gap:12px;animation:.7s cubic-bezier(.76,0,.24,1) 3.2s forwards introExit;display:flex}.intro-logo-container{justify-content:center;align-items:center;width:clamp(120px,25vw,220px);height:clamp(120px,25vw,220px);margin-bottom:24px;display:flex}.intro-logo-svg{width:100%;height:100%}.intro-logo-svg g{opacity:0;transform-box:fill-box;transform-origin:50%;animation:.7s cubic-bezier(.34,1.56,.64,1) forwards partReveal}.intro-logo-fallback{object-fit:contain;width:100%;height:100%}@keyframes partReveal{0%{opacity:0;transform:scale(0)rotate(-15deg)}to{opacity:1;transform:scale(1)rotate(0)}}.intro-text{color:#000;letter-spacing:-.02em;font-size:clamp(3rem,10vw,8rem);font-weight:900;display:flex}.intro-text .letter{opacity:0;transform:translateY(35px) scale(.9) rotate(var(--rot,0deg));filter:blur(100px);will-change:opacity, transform, filter;animation:.8s cubic-bezier(.22,1,.36,1) forwards letterFadeIn;display:inline-block}.intro-text .letter:first-child{animation-delay:.95s}.intro-text .letter:nth-child(2){animation-delay:1.05s}.intro-text .letter:nth-child(3){animation-delay:1.15s}.intro-text .letter:nth-child(4){animation-delay:1.25s}.intro-text .letter:nth-child(5){animation-delay:1.35s}.intro-text .letter:nth-child(6){animation-delay:1.45s}.intro-text .letter:nth-child(7){animation-delay:1.55s}@keyframes letterFadeIn{0%{opacity:0;transform:translateY(35px) scale(.9) rotate(var(--rot,0deg));filter:blur(10px)}to{opacity:1;filter:blur();transform:translateY(0)scale(1)rotate(0)}}@keyframes introExit{to{opacity:0;filter:blur(8px);transform:translateY(-20px)}}.main-page{opacity:0;background:#000;min-height:100vh;transition:opacity .5s .4s}.main-page.visible{opacity:1}.constellation-canvas{z-index:1;pointer-events:none;opacity:0;mix-blend-mode:screen;width:100%;height:100%;transition:opacity 1.2s;position:fixed;inset:0}.main-page.visible .constellation-canvas{opacity:.42}.top-bar{z-index:100;background:#000;border-bottom:1px solid #ffffff0f;flex-wrap:nowrap;justify-content:space-between;align-items:center;height:72px;padding:0 clamp(1rem,3vw,3rem);transition:transform .7s cubic-bezier(.22,1,.36,1);display:flex;position:fixed;top:0;left:0;right:0;transform:translateY(-100%)}.top-bar.visible{transform:translateY(0)}.logo{color:#fff;letter-spacing:-.03em;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;flex-shrink:0;align-items:center;gap:10px;font-size:clamp(1.1rem,1.4vw,1.25rem);font-weight:800;display:flex;position:relative;text-decoration:none!important}.logo,.logo:hover,.logo:focus,.logo:active,.logo:visited,.logo span,.footer-logo,.footer-logo-container{text-decoration:none!important}.logo:after,.logo:before,.footer-logo:after,.footer-logo:before{display:none!important}.logo-icon{object-fit:contain;filter:invert();width:24px;height:24px;transition:transform .3s cubic-bezier(.22,1,.36,1)}.logo:hover .logo-icon{transform:rotate(15deg)scale(1.1)}.nav-tabs{flex-shrink:1;align-items:center;gap:clamp(10px,1.6vw,28px);min-width:0;display:flex}.nav-tab{color:#ffffffa6;white-space:nowrap;padding:6px 0;font-family:Inter,sans-serif;font-size:clamp(.76rem,.88vw,.85rem);font-weight:500;text-decoration:none;transition:color .3s,opacity .3s;position:relative}.nav-tab:hover{color:#fff}.nav-tab:hover:after{width:100%}.nav-tabs:has(.nav-tab:hover) .nav-tab:not(:hover){opacity:.35}.contact-btn{letter-spacing:.02em;color:#fff;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #fff3;border-radius:100px;flex-shrink:0;align-items:center;gap:8px;padding:8px clamp(14px,1.4vw,22px);font-family:Inter,sans-serif;font-size:clamp(.78rem,.88vw,.85rem);font-weight:600;text-decoration:none;transition:background-color .35s cubic-bezier(.22,1,.36,1),border-color .35s cubic-bezier(.22,1,.36,1),color .35s cubic-bezier(.22,1,.36,1),transform .35s cubic-bezier(.22,1,.36,1);display:inline-flex;position:relative;overflow:hidden}.contact-btn:before{content:"";border-radius:inherit;transform-origin:100%;z-index:0;background:#fff;transition:transform .4s cubic-bezier(.22,1,.36,1);position:absolute;inset:0;transform:scaleX(0)}.contact-btn:hover{border-color:#fff}.contact-btn:hover:before{transform-origin:0;transform:scaleX(1)}.contact-btn span{z-index:1;transition:color .35s;position:relative}.contact-btn:hover span{color:#000}.contact-btn .arrow-icon{z-index:1;stroke:#fff;width:14px;height:14px;transition:transform .35s,color .35s;position:relative}.contact-btn:hover .arrow-icon{stroke:#000;transform:translate(3px)}.menu-toggle-btn{cursor:pointer;z-index:1010;background:0 0;border:none;flex-direction:column;justify-content:space-between;align-items:flex-end;width:24px;height:16px;padding:0;display:none;position:relative}.menu-toggle-btn .line{background-color:#fff;border-radius:2px;width:100%;height:2px;transition:transform .4s cubic-bezier(.22,1,.36,1),width .4s cubic-bezier(.22,1,.36,1),background-color .4s}.menu-toggle-btn .line-middle{width:75%}.menu-toggle-btn .line-bottom{width:50%}.menu-toggle-btn:hover .line-middle,.menu-toggle-btn:hover .line-bottom{width:100%}.menu-toggle-btn.active .line-top{width:100%;transform:translateY(7px)rotate(45deg)}.menu-toggle-btn.active .line-middle{opacity:0;width:0}.menu-toggle-btn.active .line-bottom{width:100%;transform:translateY(-7px)rotate(-45deg)}.mobile-nav-overlay{z-index:1005;-webkit-backdrop-filter:blur(20px);opacity:0;pointer-events:none;background:#000000f2;justify-content:center;align-items:center;transition:opacity .4s cubic-bezier(.22,1,.36,1);display:flex;position:fixed;inset:0}@media (min-width:1025px){.mobile-nav-overlay{display:none!important}}.mobile-nav-overlay.active{opacity:1;pointer-events:auto}.mobile-nav-content{text-align:center;width:100%;max-width:480px;padding:2rem}.mobile-nav-links{flex-direction:column;align-items:center;gap:28px;display:flex}.mobile-nav-link{color:#ffffff8c;letter-spacing:-.03em;opacity:0;font-family:Inter,sans-serif;font-size:1.85rem;font-weight:700;text-decoration:none;transition:transform .45s cubic-bezier(.22,1,.36,1),opacity .45s cubic-bezier(.22,1,.36,1),color .3s;transform:translateY(20px)}.mobile-nav-overlay.active .mobile-nav-link{opacity:1;transform:translateY(0)}.mobile-nav-overlay.active .mobile-nav-link[data-index="0"]{transition-delay:.1s}.mobile-nav-overlay.active .mobile-nav-link[data-index="1"]{transition-delay:.15s}.mobile-nav-overlay.active .mobile-nav-link[data-index="2"]{transition-delay:.2s}.mobile-nav-overlay.active .mobile-nav-link[data-index="3"]{transition-delay:.25s}.mobile-nav-overlay.active .mobile-nav-link[data-index="4"]{transition-delay:.3s}.mobile-nav-overlay.active .mobile-nav-link[data-index="5"]{transition-delay:.35s}.mobile-nav-overlay.active .mobile-nav-link[data-index="6"]{transition-delay:.4s}.mobile-nav-link:hover{color:#fff}.mobile-contact-link{color:#fff;opacity:0;background:0 0;border:1px solid #fff3;border-radius:100px;align-items:center;gap:8px;margin-top:16px;padding:10px 24px;font-size:1rem;font-weight:600;transition:transform .45s cubic-bezier(.22,1,.36,1),opacity .45s cubic-bezier(.22,1,.36,1),background-color .35s,border-color .35s,color .35s;display:inline-flex;transform:translateY(20px)}.mobile-contact-link .arrow-icon{stroke:#fff;width:14px;height:14px;transition:transform .35s}.mobile-contact-link:hover{color:#000;background:#fff;border-color:#fff}.mobile-contact-link:hover .arrow-icon{stroke:#000;transform:translate(3px)}.hero{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:72px clamp(1.5rem,4vw,3rem) 2rem;display:flex}.hero-title{text-align:center;letter-spacing:-.04em;color:#fff;opacity:0;width:100%;margin-bottom:1.5rem;font-size:clamp(2.5rem,8vw,6rem);font-weight:900;line-height:1.05;animation:.8s cubic-bezier(.22,1,.36,1) forwards paused heroReveal;transform:translateY(30px)}.main-page.visible .hero-title{animation-play-state:running}.hero-subtitle{color:#ffffff80;opacity:0;max-width:480px;margin-bottom:3rem;font-size:clamp(1rem,2vw,1.25rem);font-weight:500;line-height:1.7;animation:.8s cubic-bezier(.22,1,.36,1) .15s forwards paused heroReveal;transform:translateY(20px)}.hero-subtitle::selection{font-weight:1000;color:#ffffff80!important;background-color:#000!important}.hero-subtitle::selection{font-weight:1000;color:#ffffff80!important;background-color:#000!important}.main-page.visible .hero-subtitle{animation-play-state:running}.hero-easter{color:#000;opacity:0;margin-bottom:3rem;font-size:1.5rem;font-weight:1000;animation:.8s cubic-bezier(.22,1,.36,1) .15s forwards paused heroReveal;transform:translateY(20px)}.hero-easter::selection{color:#000!important;background-color:red!important}.hero-easter::selection{color:#000!important;background-color:red!important}.main-page.visible .hero-easter{animation-play-state:running}.hero-title-intro[hidden]{display:none}.hero-title.rewriting{text-align:center}.change-wrapper{vertical-align:bottom;text-align:center;height:1.15em;font-size:var(--rewrite-font-size,1em);max-width:100%;transition:width .6s cubic-bezier(.76,0,.24,1);display:inline-block;position:relative;overflow:visible}.word-strike{white-space:nowrap;color:#0000;-webkit-user-select:none;user-select:none;opacity:.85;display:inline-block;position:relative}.word-strike:after{content:"";z-index:2;background:#fff;width:0;height:.12em;transition:width .6s cubic-bezier(.22,1,.36,1),opacity .4s;position:absolute;top:52%;left:0;transform:translateY(-10%)}.change-wrapper.cut .word-strike:after{width:100%}.change-wrapper.split .word-strike:after,.hero-title.rewriting .word-strike{opacity:0}.strike-half{color:#fff;white-space:nowrap;pointer-events:none;z-index:1;transition:transform .8s cubic-bezier(.25,1,.5,1),opacity .8s;position:absolute;inset:0}.strike-top{clip-path:polygon(0 0,100% 0,100% 52%,0 52%)}.strike-bottom{clip-path:polygon(0 48%,100% 48%,100% 100%,0 100%)}.change-wrapper.split .strike-top,.change-wrapper.split .strike-bottom{opacity:0}.word-pop{text-align:center;white-space:nowrap;color:#fff;opacity:0;z-index:3;width:100%;transition:opacity .3s;position:absolute;top:0;left:0}.typewriter-text{display:inline-block}.change-wrapper.pop .word-pop{opacity:1}.glow-orb{filter:blur(120px);opacity:0;pointer-events:none;z-index:0;border-radius:50%;width:500px;height:500px;transition:opacity 1.5s;position:fixed}.main-page.visible .glow-orb{opacity:1}.glow-orb--primary{background:radial-gradient(circle,#ffffff0a 0%,#0000 70%);top:-10%;left:50%;transform:translate(-50%)}.glow-orb--secondary{background:radial-gradient(circle,#ffffff05 0%,#0000 70%);width:600px;height:600px;bottom:-20%;right:-10%}.scroll-indicator{opacity:0;flex-direction:column;align-items:center;gap:8px;transition:opacity .6s 1.2s;display:flex;position:fixed;bottom:2rem;left:50%;transform:translate(-50%)}.main-page.visible .scroll-indicator{opacity:.4}.scroll-indicator:hover{opacity:.8!important}.scroll-line{background:#ffffff1a;width:1px;height:40px;position:relative;overflow:hidden}.scroll-line:after{content:"";background:#fff;width:100%;height:100%;animation:2s ease-in-out infinite scrollPulse;position:absolute;top:-100%;left:0}@keyframes scrollPulse{0%{top:-100%}50%{top:100%}to{top:100%}}.scroll-text{letter-spacing:.15em;text-transform:uppercase;color:#fff6;font-size:.65rem;font-weight:500}@keyframes heroReveal{to{opacity:1;transform:translateY(0)}}.grain{z-index:99;pointer-events:none;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:128px 128px;position:fixed;inset:0}.modal-overlay{z-index:200;-webkit-backdrop-filter:blur(12px);opacity:0;pointer-events:none;background:#00000003;justify-content:flex-start;align-items:flex-end;padding:5% 6%;transition:opacity .4s;display:flex;position:fixed;inset:0;overflow:hidden}.modal-overlay.active{opacity:1;pointer-events:auto}.desktop-ray-view{display:block}.contact-light-ray{left:var(--origin-x,90%);top:var(--origin-y,40px);transform-origin:0 75vmax;width:150vmax;height:150vmax;transform:rotate(var(--beam-angle,135deg));pointer-events:none;z-index:1;clip-path:polygon(0 50%,0 50%,0 50%);opacity:0;mix-blend-mode:normal;filter:blur(2.5px);background:#fff;margin-top:-75vmax;transition:opacity .3s;position:absolute}.modal-overlay.active .contact-light-ray{opacity:1;animation:.9s cubic-bezier(.16,1,.3,1) .5s both rayEmergence}@keyframes rayEmergence{0%{clip-path:polygon(0 50%,0 50%,0 50%)}40%{clip-path:polygon(0 50%,100% 45%,100% 55%)}to{clip-path:polygon(0 50%,100% 20%,100% 80%)}}.contact-btn.spotlight-active{z-index:10001!important;position:relative!important}.contact-btn.spotlight-active .arrow-icon{transform:rotate(var(--beam-angle,135deg))!important;stroke:#fff!important;filter:none!important}.ray-modal-content{filter:blur(5px);opacity:0;z-index:10;background:0 0;border:none;width:100%;max-width:420px;padding:0;transition:transform .8s cubic-bezier(.16,1,.3,1),opacity .8s cubic-bezier(.16,1,.3,1),filter .8s cubic-bezier(.16,1,.3,1);position:relative;transform:translateY(30px)}.modal-overlay.active .ray-modal-content{opacity:1;filter:blur();transition-delay:.15s;transform:translateY(0)}.ray-modal-header{justify-content:space-between;align-items:center;margin-bottom:2rem;display:flex}.ray-switch-close{left:calc(var(--origin-x,90%) - 60px);top:var(--origin-y,40px);z-index:205;cursor:pointer;perspective:100px;opacity:0;pointer-events:none;background:#141416;border:2px solid #2d2d34;border-radius:6px;outline:none;justify-content:center;align-items:center;width:32px;height:52px;transition:opacity .4s,transform .4s cubic-bezier(.16,1,.3,1),border-color .3s,box-shadow .3s;display:flex;position:absolute;transform:translateY(-50%)scale(.9);box-shadow:0 4px 10px #00000080,inset 0 1px #ffffff0d}.modal-overlay.active .ray-switch-close{opacity:1;pointer-events:auto;transition-delay:.1s;transform:translateY(-50%)scale(1)}.ray-switch-close:hover{border-color:#fff6;box-shadow:0 0 15px #ffffff26,0 4px 12px #00000080}.switch-rocker{transform-origin:50%;background:#d4d4d8;border-radius:3px;width:14px;height:26px;transition:transform .15s cubic-bezier(.45,0,.55,1),background-color .3s;transform:rotateX(-25deg);box-shadow:0 2px 4px #0006,inset 0 1px #fffc}.ray-switch-close:hover .switch-rocker{background:#fff}.ray-switch-close.toggled-off .switch-rocker{background:#52525b;transform:rotateX(25deg);box-shadow:0 1px 2px #0003,inset 0 -1px #0003}.ray-contact-links{flex-direction:column;gap:12px;display:flex}.ray-contact-link{color:#0a0a0cb3;opacity:0;filter:blur(2px);background:0 0;border:none;align-items:center;gap:14px;padding:10px 0;text-decoration:none;transition:transform .6s cubic-bezier(.16,1,.3,1),opacity .6s cubic-bezier(.16,1,.3,1),filter .6s cubic-bezier(.16,1,.3,1),color .3s;display:flex;transform:translateY(15px)}.modal-overlay.active .ray-contact-link{opacity:1;filter:blur();transform:translateY(0)}.modal-overlay.active .ray-contact-link:first-child{transition-delay:.3s}.modal-overlay.active .ray-contact-link:nth-child(2){transition-delay:.38s}.modal-overlay.active .ray-contact-link:nth-child(3){transition-delay:.46s}.modal-overlay.active .ray-contact-link:nth-child(4){transition-delay:.54s}.modal-overlay.active .ray-contact-link:nth-child(5){transition-delay:.62s}.ray-contact-link:hover{color:#000;transform:translate(8px)!important}.ray-link-icon{justify-content:center;align-items:center;width:28px;height:28px;display:flex}.ray-link-icon svg{stroke:currentColor;width:22px;height:22px}.ray-link-info{flex-direction:column;gap:2px;display:flex}.ray-link-label{text-transform:uppercase;letter-spacing:.05em;opacity:.65;font-size:.75rem;font-weight:700}.ray-link-value{font-size:.95rem;font-weight:600}.mobile-contact-view{display:none}.mobile-contact-overlay{z-index:10005;-webkit-backdrop-filter:blur(14px);opacity:0;pointer-events:none;background:#000000d1;justify-content:center;align-items:center;padding:1.5rem;transition:opacity .3s;display:flex;position:fixed;inset:0}.mobile-contact-overlay.active{opacity:1;pointer-events:auto}.mobile-contact-card-box{opacity:0;background:#0a0a0c;border:1px solid #ffffff29;border-radius:22px;flex-direction:column;width:100%;max-width:440px;padding:24px 20px 26px;transition:transform .35s cubic-bezier(.22,1,.36,1),opacity .3s;display:flex;transform:translateY(20px)scale(.97);box-shadow:0 25px 80px #000000f2,0 0 0 1px #ffffff14}.mobile-contact-overlay.active .mobile-contact-card-box{opacity:1;transform:translateY(0)scale(1)}.mobile-sheet-handle{background:#ffffff38;border-radius:2px;width:36px;height:4px;margin:0 auto 16px}.mobile-modal-header{justify-content:space-between;align-items:flex-start;margin-bottom:6px;display:flex}.mobile-modal-title-group{flex-direction:column;gap:3px;display:flex}.mobile-modal-kicker{letter-spacing:.12em;color:#ffffff73;text-transform:uppercase;font-size:.68rem;font-weight:700}.mobile-modal-title{letter-spacing:-.02em;color:#fff;margin:0;font-size:1.4rem;font-weight:700}.mobile-modal-close-btn{color:#fff;cursor:pointer;background:#ffffff14;border:1px solid #ffffff26;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;padding:0;transition:background .15s,border-color .15s,transform .15s;display:flex}.mobile-modal-close-btn:hover{color:#000;background:#fff;border-color:#fff}.mobile-modal-close-btn:active{transform:scale(.92)}.mobile-modal-subtitle{color:#fff9;margin:0 0 18px;font-size:.82rem;line-height:1.45}.mobile-contact-list{flex-direction:column;gap:10px;display:flex}.mobile-contact-row{background:#ffffff0a;border:1px solid #ffffff14;border-radius:14px;align-items:center;gap:14px;padding:12px 14px;text-decoration:none;transition:background .15s,border-color .15s,transform .15s;display:flex}.mobile-contact-row:hover{background:#ffffff14;border-color:#ffffff40;transform:translate(4px)}.mobile-contact-row:active{background:#ffffff1f;transform:scale(.98)}.mobile-row-icon{color:#fff;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.mobile-row-icon svg{width:18px;height:18px}.mobile-row-details{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.mobile-row-label{text-transform:uppercase;letter-spacing:.06em;color:#ffffff6b;font-size:.68rem;font-weight:700}.mobile-row-value{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:.86rem;font-weight:600;overflow:hidden}.mobile-row-arrow{color:#ffffff59;flex-shrink:0;justify-content:center;align-items:center;transition:transform .15s,color .15s;display:flex}.mobile-contact-row:hover .mobile-row-arrow{color:#fff;transform:translate(2px,-2px)}@media (max-width:768px){.desktop-ray-theme-overlay,.desktop-ray-view{display:none!important}.mobile-contact-overlay{align-items:flex-end;padding:1rem}.mobile-contact-card-box{border-radius:20px 20px 16px 16px;padding:20px 16px 24px}}.modal-overlay.is-classic{-webkit-backdrop-filter:blur(8px)!important;background:#00000003!important;justify-content:center!important;align-items:center!important;padding:20px!important}.modal-overlay.is-classic .contact-light-ray,.modal-overlay.is-classic .flashlight-source{display:none!important}.modal-overlay.is-classic .modal{opacity:0!important;filter:none!important;background:#141414f2!important;border:1px solid #ffffff14!important;border-radius:20px!important;width:90%!important;max-width:420px!important;padding:clamp(2rem,4vw,3rem)!important;transition:transform .4s cubic-bezier(.22,1,.36,1),opacity .4s!important;transform:translateY(20px)scale(.97)!important;box-shadow:0 10px 40px #00000080!important}.modal-overlay.is-classic.active .modal{opacity:1!important;transform:translateY(0)scale(1)!important}.modal-overlay.is-classic .modal-title{color:#fff!important;text-shadow:none!important;font-size:1.5rem!important}.modal-overlay.is-classic .modal-close{color:#fff!important;width:36px!important;height:36px!important;box-shadow:none!important;opacity:1!important;pointer-events:auto!important;background:0 0!important;border:1px solid #ffffff1a!important;border-radius:50%!important;justify-content:center!important;align-items:center!important;display:flex!important;position:static!important;transform:none!important}.modal-overlay.is-classic .modal-close:hover{background:#ffffff1a!important;border-color:#fff3!important}.modal-overlay.is-classic .switch-rocker{display:none!important}.modal-overlay.is-classic .modal-close:after{content:"✕"!important;color:#fff!important;font-size:1.1rem!important}.modal-overlay.is-classic .contact-link{color:#fff!important;opacity:0!important;filter:none!important;background:#ffffff05!important;border:1px solid #ffffff0f!important;border-radius:14px!important;padding:16px 18px!important;transition:all .3s!important;transform:translateY(15px)!important}.modal-overlay.is-classic.active .contact-link{opacity:1!important;transform:translateY(0)!important}.modal-overlay.is-classic .contact-link:hover{color:#fff!important;box-shadow:none!important;background:#ffffff0f!important;border-color:#ffffff1f!important;transform:translate(4px)!important}.modal-overlay.is-classic .contact-link-icon{background:#ffffff0f!important;border-radius:10px!important;justify-content:center!important;align-items:center!important;width:40px!important;height:40px!important;display:flex!important}.modal-overlay.is-classic .contact-link:hover .contact-link-icon{transform:none!important}.modal-overlay.is-classic .contact-link-icon svg{stroke:#ffffffb3!important;width:18px!important;height:18px!important}.modal-overlay.is-classic .contact-link:hover .contact-link-icon svg{stroke:#fff!important;filter:none!important}.modal-overlay.is-classic .contact-link-info{flex-direction:column!important;gap:2px!important;display:flex!important}.modal-overlay.is-classic .contact-link-label{color:#ffffff59!important;font-weight:500!important}.modal-overlay.is-classic .contact-link-value{color:#fff!important;font-weight:500!important}.modal-overlay.is-classic .contact-link:hover .contact-link-label{color:#ffffff73!important}.modal-overlay.is-classic .contact-link:hover .contact-link-value{color:#fff!important;text-shadow:none!important}.contact-link-icon{background:0 0;border-radius:0;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;transition:transform .3s;display:flex}.contact-link:hover .contact-link-icon{transform:scale(1.15)}.contact-link-icon svg{stroke:#0a0a0cb3;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px;transition:stroke .3s,filter .3s}.contact-link:hover .contact-link-icon svg{stroke:#000;filter:drop-shadow(0 0 6px #0003)}.contact-link-info{flex-direction:column;gap:2px;display:flex}.contact-link-label{letter-spacing:.08em;text-transform:uppercase;color:#0a0a0c8c;font-size:.7rem;font-weight:700;transition:color .3s}.contact-link-value{color:#0a0a0cd9;font-size:.95rem;font-weight:800;transition:color .3s,text-shadow .3s}.contact-link:hover .contact-link-label{color:#000c}.contact-link:hover .contact-link-value{color:#000;text-shadow:0 0 8px #00000026}.footer{z-index:10;padding:0 clamp(1.5rem,4vw,3rem) 3rem;position:relative}.footer-divider{background:linear-gradient(90deg,#0000 0%,#ffffff1f 30% 70%,#0000 100%);width:100%;height:1px;margin-bottom:3rem}.peeking-cat-container{pointer-events:none;z-index:1;width:70px;height:52px;position:absolute;top:0;right:12%;overflow:hidden;transform:translateY(-100%)}.peeking-cat{filter:grayscale()contrast(1.2);width:100%;height:auto;transition:transform .55s cubic-bezier(.25,1,.5,1);display:block;transform:translateY(100%)}.footer:hover .peeking-cat{transform:translateY(0)}.footer-content{opacity:0;justify-content:space-between;align-items:flex-start;gap:2rem;transition:opacity .6s,transform .6s;display:flex;transform:translateY(15px)}.footer-content.visible{opacity:1;transform:translateY(0)}.footer-left{flex-direction:column;gap:10px;display:flex}.footer-logo-container{align-items:center;gap:8px;margin-bottom:4px;display:flex}.footer-logo-img{object-fit:contain;filter:invert();width:20px;height:20px;transition:transform .3s cubic-bezier(.22,1,.36,1)}.footer-logo-container:hover .footer-logo-img{transform:rotate(-15deg)scale(1.1)}.footer-logo{letter-spacing:-.03em;color:#fff;font-size:1.1rem;font-weight:800}.footer-copyright{color:#ffffff4d;font-size:.8rem;font-weight:400;line-height:1.5}.projects-scroll-track{min-height:100vh;position:relative}.projects-section{z-index:10;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:7rem clamp(1.5rem,4vw,3rem);display:flex;position:relative;overflow:hidden}@media (min-width:769px){.projects-section{width:100%;min-height:100vh;position:relative}.projects-stack-scroller{cursor:grab;width:auto!important;height:auto!important;min-height:auto!important;overflow:visible!important}.projects-stack-scroller.is-swiping{cursor:grabbing}}.projects-heading{z-index:10;opacity:0;max-width:min(480px,100vw - 3rem);transition:opacity .8s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1);position:absolute;top:5.2rem;left:clamp(1.5rem,4vw,3rem);transform:translateY(20px)}.projects-section.visible .projects-heading{opacity:1;transform:translateY(0)}.projects-title{letter-spacing:-.04em;color:#fff;margin-bottom:.75rem;font-size:clamp(2.4rem,7vw,5rem);font-weight:900;line-height:.98}.projects-title:after{content:"";background:#fff;width:40px;height:2px;margin-top:12px;display:block}.projects-subtitle{color:#ffffff7a;max-width:360px;font-size:.95rem;line-height:1.6}@media (max-width:768px){.projects-section{align-items:center;height:auto;min-height:auto;padding:5rem 1.25rem}.projects-heading{opacity:1;max-width:100%;margin-bottom:2rem;position:relative;top:0;left:0;transform:none}}.projects-carousel{touch-action:pan-y;-webkit-user-select:none;user-select:none;cursor:grab;z-index:15;outline:none;justify-content:center;align-items:center;width:100%;max-width:1100px;height:380px;margin:0 auto;display:flex;position:relative;overflow:hidden}.projects-carousel:active{cursor:grabbing}.projects-carousel:focus-visible{outline-offset:4px;border-radius:12px;outline:2px solid #fff6}.projects-carousel__stage{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.projects-carousel__card{transform-origin:50%;will-change:transform, opacity, filter;cursor:pointer;background:#0d0f14;transition:box-shadow .3s;position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 16px 36px -10px #000c,0 0 20px #ffffff05}.projects-carousel__arrow{z-index:3000;-webkit-backdrop-filter:blur(8px);color:#fff;cursor:pointer;background:#0e1016bf;border:1px solid #ffffff2e;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;padding:0;font-family:inherit;font-size:15px;font-weight:600;line-height:1;transition:background .2s,border-color .2s,transform .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.projects-carousel__arrow:hover{background:#1c1f28f2;border-color:#ffffff73;transform:translateY(-50%)scale(1.08)}.projects-carousel__arrow:active{transform:translateY(-50%)scale(.92)}.projects-carousel__arrow--prev{left:12px}.projects-carousel__arrow--next{right:12px}.projects-stack-progress{z-index:20;background:#ffffff1f;border-radius:999px;width:min(92vw,340px);height:3px;margin-top:2.5rem;position:relative;overflow:hidden}@media (max-width:768px){.projects-stack-progress{width:100%;margin:1.25rem 0 0;position:relative;bottom:0;left:0;right:0}}.projects-stack-progress span{border-radius:inherit;transform-origin:0;background:#fff;width:100%;height:100%;transition:transform .25s cubic-bezier(.22,1,.36,1);display:block;transform:scaleX(.04)}.projects-bg{z-index:0;pointer-events:none;background:#000;position:absolute;inset:0;overflow:hidden}.projects-bg-grid{transform-origin:50%;background-image:linear-gradient(#fff3 1px,#0000 1px),linear-gradient(90deg,#fff3 1px,#0000 1px);background-size:60px 60px;width:200%;height:200%;position:absolute;top:-50%;left:-50%;transform:perspective(600px)rotateX(65deg)}.projects-bg-circles{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.bg-circle{transform-origin:50%;border:1px dashed #ffffff0a;border-radius:50%;animation:40s linear infinite spinCircle;position:absolute}.bg-circle--1{width:450px;height:450px;animation-duration:35s}.bg-circle--2{width:700px;height:700px;animation-duration:50s;animation-direction:reverse}.bg-circle--3{width:1000px;height:1000px;animation-duration:70s}.projects-bg-overlay{z-index:1;pointer-events:none;background:radial-gradient(circle,#0000 20%,#000 80%);position:absolute;inset:0}@keyframes spinCircle{0%{transform:rotate(0)}to{transform:rotate(360deg)}}project-card{height:100%;display:block}.project-card{-webkit-user-select:none;user-select:none;background:#0d0f14;border:1px solid #ffffff1a;border-radius:14px;flex-direction:column;justify-content:space-between;width:100%;height:100%;padding:12px;transition:border-color .35s cubic-bezier(.22,1,.36,1),box-shadow .35s cubic-bezier(.22,1,.36,1);display:flex;position:relative;overflow:hidden;box-shadow:0 16px 36px #0009}.project-card:hover{border-color:#ffffff4d;box-shadow:0 24px 50px #000000e6,0 0 30px #ffffff0f}.project-card-bg{z-index:1;background:#07080a;position:absolute;inset:0;overflow:hidden}.project-card-bg-image{object-fit:cover;object-position:center;width:100%;height:100%;transition:transform .6s cubic-bezier(.22,1,.36,1);display:block}.project-card:hover .project-card-bg-image{transform:scale(1.08)}.project-card-bg-overlay{pointer-events:none;background:linear-gradient(#00000040 0%,#0000008c 55%,#000000f2 100%);transition:background .35s;position:absolute;inset:0}.project-card:hover .project-card-bg-overlay{background:linear-gradient(#0000002e 0%,#0006 55%,#000000eb 100%)}.placeholder-bg{background:radial-gradient(circle,#181b22 0%,#08090c 100%);justify-content:center;align-items:center;display:flex}.project-card-placeholder-glow{opacity:.6;background:radial-gradient(circle,#ffffff0a 0%,#0000 65%);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.project-card-placeholder-text{color:#ffffff14;-webkit-user-select:none;user-select:none;font-size:3.2rem;font-weight:900}.project-card-top{z-index:2;pointer-events:none;justify-content:space-between;align-items:center;display:flex;position:relative}.project-meta-year{color:#ffffffe6;letter-spacing:.06em;text-transform:uppercase;-webkit-backdrop-filter:blur(12px);background:#000000a6;border:1px solid #ffffff2e;border-radius:999px;padding:2px 7px;font-size:.58rem;font-weight:700}.project-card-bottom{z-index:2;justify-content:space-between;align-items:flex-end;gap:8px;display:flex;position:relative}.project-card-title{color:#fff;letter-spacing:-.01em;text-overflow:ellipsis;-webkit-line-clamp:2;text-shadow:0 2px 8px #000c;-webkit-box-orient:vertical;margin:0;font-size:.95rem;font-weight:700;line-height:1.25;display:-webkit-box;overflow:hidden}.project-card-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.project-card-link-btn{background:#fff;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;text-decoration:none;transition:all .25s cubic-bezier(.22,1,.36,1);display:inline-flex;box-shadow:0 2px 10px #00000080;color:#000!important}.project-card-link-btn .arrow-icon{stroke:#000;width:12px;height:12px;transition:transform .25s cubic-bezier(.22,1,.36,1)}.project-card-link-btn:hover{background:#e2e8f0;transform:scale(1.1);box-shadow:0 4px 16px #ffffff4d}.project-card-link-btn:hover .arrow-icon{transform:translate(1.5px)}.project-card-icon-link{color:#ffffffd9;-webkit-backdrop-filter:blur(8px);background:#000000a6;border:1px solid #fff3;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;text-decoration:none;transition:all .25s;display:inline-flex}.project-card-icon-link:hover{color:#fff;background:#fff3;border-color:#ffffff73;transform:scale(1.1)}.project-card-icon-link svg{width:14px;height:14px}.section-kicker{letter-spacing:.18em;text-transform:uppercase;color:#ffffff5c;margin-bottom:1.25rem;font-size:.72rem;font-weight:700}.about-section,.lab-section{z-index:10;opacity:0;max-width:1200px;margin:0 auto;padding:7rem clamp(1.5rem,4vw,3rem);transition:opacity .8s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1);position:relative;transform:translateY(30px)}.about-section.visible,.lab-section.visible{opacity:1;transform:translateY(0)}.about-grid{grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);align-items:center;gap:clamp(2rem,6vw,5rem);display:grid}.about-title,.lab-title{letter-spacing:-.04em;color:#fff;max-width:780px;font-size:clamp(2.4rem,7vw,5.8rem);font-weight:900;line-height:.98}.about-text{color:#ffffff85;max-width:650px;margin-top:1.5rem;font-size:clamp(1rem,2vw,1.18rem);line-height:1.8}.about-actions{flex-wrap:wrap;gap:12px;margin-top:2rem;display:flex}.github-heatmap-wrapper{flex-direction:column;width:100%;min-width:0;display:flex;position:relative}.gh-heatmap-card{-webkit-backdrop-filter:blur(14px);background:#12161ca6;border:1px solid #ffffff14;border-radius:18px;padding:1.4rem;transition:border-color .4s,transform .4s cubic-bezier(.22,1,.36,1);position:relative;overflow:hidden;box-shadow:0 20px 40px #00000073}.gh-heatmap-card:hover{border-color:#000;transform:translateY(-2px)}.gh-heatmap-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.gh-heatmap-title-group{align-items:center;gap:.75rem;display:flex}.gh-icon{color:#232323;flex-shrink:0}.gh-title-wrap{flex-direction:column;display:flex}.gh-title{color:#fff;letter-spacing:-.01em;font-size:.95rem;font-weight:700}.gh-username{color:#ffffff80;font-size:.78rem;text-decoration:none;transition:color .2s}.gh-username:hover{color:#fff}.gh-heatmap-stats{color:#ffffffb3;font-size:.78rem}.gh-total-badge{color:#bcbcbc;background:#fcfcfc1f;border:1px solid #00000040;border-radius:99px;align-items:center;gap:6px;padding:4px 10px;font-weight:600;display:inline-flex}@keyframes gh-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}.gh-heatmap-body{scrollbar-width:thin;scrollbar-color:#ffffff26 transparent;width:100%;padding-bottom:10px;overflow:auto hidden}.gh-heatmap-body::-webkit-scrollbar{height:4px}.gh-heatmap-body::-webkit-scrollbar-track{background:#ffffff05;border-radius:4px}.gh-heatmap-body::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:4px}.gh-heatmap-months{color:#ffffff73;height:14px;margin-bottom:6px;padding-left:28px;font-size:.7rem;display:flex;position:relative}.gh-month-label{white-space:nowrap;position:absolute}.gh-heatmap-grid-wrapper{align-items:flex-start;gap:8px;display:flex}.gh-heatmap-days{color:#fff6;box-sizing:border-box;flex-direction:column;justify-content:space-between;height:98px;padding-top:10px;padding-bottom:8px;font-size:.65rem;display:flex}.gh-heatmap-grid{grid-template-rows:repeat(7,1fr);grid-template-columns:repeat(52,1fr);grid-auto-flow:column;gap:3px;width:max-content;display:grid}.gh-cell{cursor:pointer;background:#ffffff0a;border-radius:2.5px;width:11px;height:11px;transition:transform .15s,border-color .15s}.gh-cell:hover{z-index:10;border:1px solid #ffffff80;transform:scale(1.35)}.gh-cell.level-0{background:#000}.gh-cell.level-1{background:#1e1e1e}.gh-cell.level-2{background:#767676}.gh-cell.level-3{background:#afafaf}.gh-cell.level-4{background:#fff;box-shadow:0 0 6px #00000073}.gh-heatmap-footer{color:#ffffff73;border-top:1px solid #ffffff0f;justify-content:space-between;align-items:center;margin-top:1rem;padding-top:.8rem;font-size:.72rem;display:flex}.gh-footer-status,.gh-legend{align-items:center;gap:6px;display:flex}.gh-legend-cells{gap:3px;margin:0;padding:0;list-style:none;display:flex}.gh-legend-cells .gh-cell{cursor:default}.gh-legend-cells .gh-cell:hover{border:none;transform:none}.gh-tooltip{color:#fff;pointer-events:none;opacity:0;z-index:50;white-space:nowrap;background:#0a0c10f2;border:1px solid #ffffff26;border-radius:8px;padding:6px 12px;font-size:.75rem;transition:opacity .2s,transform .2s;position:absolute;bottom:12px;left:50%;transform:translate(-50%)translateY(6px);box-shadow:0 4px 12px #0009}.gh-tooltip.is-active{opacity:1;transform:translate(-50%)translateY(0)}.magnetic-link{color:#fff;min-height:44px;font:inherit;cursor:pointer;background:#ffffff08;border:1px solid #ffffff24;border-radius:999px;justify-content:center;align-items:center;padding:0 18px;font-size:.9rem;font-weight:700;text-decoration:none;transition:transform .3s cubic-bezier(.22,1,.36,1),background-color .3s,border-color .3s,color .3s;display:inline-flex}.magnetic-link:hover{color:#000;background:#fff;border-color:#fff;transform:translateY(-3px)}.mood-mosaic{aspect-ratio:3/2;border-radius:14px;grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);gap:3px;margin-top:clamp(.75rem,2vw,1.25rem);display:grid;overflow:hidden;box-shadow:0 12px 32px #0000004d}.mood-cell{position:relative;overflow:hidden}.mood-layer{background-position:50%;background-size:cover;transition:opacity 1.8s cubic-bezier(.22,1,.36,1);position:absolute;inset:0}.mood-cell:hover .mood-layer{filter:brightness(1.15)}@media (max-width:768px){.mood-mosaic,.github-heatmap-wrapper{display:none!important}}.lab-scroll-track{position:relative}.lab-scroll-track ::selection{color:#fff!important;background-color:#000!important}@media (min-width:769px){.lab-scroll-track{min-height:100vh}.lab-scroll-track .lab-section{align-items:center;max-width:none;height:100vh;padding-top:0;padding-bottom:0;display:flex;position:sticky;top:0}}.lab-section-inner{width:100%;max-width:1200px;margin:0 auto}.lab-section{padding-top:4rem}.lab-title{max-width:860px;margin-bottom:0}.lab-scroll-text{margin-top:clamp(1rem,3vw,2rem)}.lab-scroll-text-viewport{padding:.12em 0;overflow:hidden}.lab-scroll-text-track{will-change:transform;flex-direction:column;display:flex}.lab-scroll-text-track ::selection{color:#000!important;background-color:#d00000!important}.lab-scroll-text-item{letter-spacing:-.04em;color:#4d4d4d;opacity:0;visibility:hidden;transform-origin:0;flex-shrink:0;align-items:center;max-width:860px;height:auto;min-height:1.05em;font-size:clamp(2.4rem,7vw,5.8rem);font-weight:900;line-height:1.05;transition:opacity .35s,visibility .35s;display:flex}.lab-scroll-text-item.is-active{opacity:1;visibility:visible}.lab-orbit{flex-wrap:wrap;gap:10px;margin-bottom:1rem;display:flex}.lab-chip{color:#ffffff94;font:inherit;cursor:pointer;background:#ffffff08;border:1px solid #ffffff1a;border-radius:999px;padding:12px 16px;font-size:.86rem;font-weight:700;transition:transform .25s,color .25s,background-color .25s,border-color .25s}.lab-chip:hover,.lab-chip.active{color:#000;background:#fff;border-color:#fff;transform:translateY(-2px)}.lab-console{background:#080808d1;border:1px solid #ffffff14;border-radius:18px;max-width:780px;min-height:170px;overflow:hidden;box-shadow:inset 0 1px #ffffff0a}.lab-console-top{border-bottom:1px solid #ffffff0f;gap:7px;padding:14px 16px;display:flex}.lab-console-top span{background:#ffffff47;border-radius:50%;width:8px;height:8px}.lab-console-text{letter-spacing:-.03em;color:#ffffffe0;padding:clamp(1.25rem,3vw,2rem);font-size:clamp(1.15rem,3vw,1.85rem);font-weight:800;line-height:1.45}.scroll-indicator.fade-out{transition:opacity .4s;opacity:0!important}.education-section,.experience-section{z-index:10;opacity:0;max-width:1200px;margin:0 auto;padding:7rem clamp(1.5rem,4vw,3rem);transition:opacity .8s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1);position:relative;transform:translateY(30px)}.education-section.visible,.experience-section.visible{opacity:1;transform:translateY(0)}.education-title,.experience-title{letter-spacing:-.04em;color:#fff;margin-bottom:1rem;font-size:clamp(2.4rem,7vw,5rem);font-weight:900;line-height:.98;position:relative}.education-title:after,.experience-title:after{content:none;display:none}.section-lede{color:#ffffff80;max-width:640px;margin-bottom:3rem;font-size:clamp(1rem,2vw,1.16rem);line-height:1.75}.education-timeline,.experience-timeline{max-width:980px;margin-left:auto;padding-left:clamp(1.8rem,5vw,5.5rem);position:relative}.timeline-item{margin-bottom:clamp(2.5rem,6vw,5.5rem);position:relative}.timeline-item:last-child{margin-bottom:0}.timeline-dot{display:none}.timeline-content{border-bottom:0;grid-template-columns:minmax(72px,.18fr) minmax(0,1fr);align-items:flex-start;gap:clamp(1.2rem,4vw,3.5rem);padding:0 0 clamp(1.4rem,3vw,2rem);transition:transform .4s cubic-bezier(.22,1,.36,1);display:grid;position:relative}.timeline-logo{opacity:.62;mix-blend-mode:screen;flex-shrink:0;justify-content:center;align-self:start;align-items:center;width:clamp(68px,8vw,92px);height:clamp(68px,8vw,92px);min-height:clamp(68px,8vw,92px);padding:0;transition:opacity .35s,transform .35s cubic-bezier(.22,1,.36,1),filter .35s;display:flex}.timeline-logo a{place-items:center;width:100%;height:100%;display:grid}.company-logo-placeholder{color:#ffffff80;justify-content:center;align-items:center;width:100%;height:100%;transition:all .35s cubic-bezier(.22,1,.36,1);display:flex}.timeline-item:hover .company-logo-placeholder{color:#fff}.timeline-item:hover .timeline-logo{opacity:1;filter:brightness(1.22);transform:translate(-4px)}.company-logo,.institution-logo{object-fit:contain;width:100%;height:100%;display:block}.company-logo{max-width:78px;max-height:78px;transition:filter .35s cubic-bezier(.22,1,.36,1)}.timeline-item:hover .company-logo{filter:brightness(1.5)contrast(1.2)}.timeline-info{flex-grow:1;min-width:0}.timeline-item:hover .timeline-content{transform:translate(10px)}.timeline-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.timeline-degree{color:#fff;letter-spacing:-.04em;font-size:clamp(1.45rem,3vw,2.35rem);font-weight:850;line-height:1}.timeline-period{text-transform:uppercase;letter-spacing:.08em;color:#ffffff6b;padding-top:.28rem;font-size:.68rem;font-weight:800;transition:color .3s}.timeline-item:hover .timeline-period{color:#fff}.timeline-institution{color:#ffffffc7;margin-bottom:1rem;font-size:clamp(.95rem,1.5vw,1.08rem);font-weight:650}.timeline-desc{color:#ffffff80;max-width:720px;font-size:clamp(.95rem,1.6vw,1.08rem);line-height:1.72}.timeline-tags{flex-wrap:wrap;gap:8px;margin-top:1rem;display:flex}.timeline-tags span{color:#ffffff7a;letter-spacing:.08em;text-transform:uppercase;border-bottom:0;padding:0;font-size:.7rem;font-weight:800;transition:color .25s}.timeline-item:hover .timeline-tags span{color:#fff}.experience-section .experience-timeline{padding-left:clamp(1rem,3vw,3rem)}.experience-section .timeline-item{margin-bottom:clamp(1rem,3vw,1.8rem)}.experience-section .timeline-content{grid-template-columns:minmax(78px,.16fr) minmax(0,1fr);gap:clamp(1.2rem,3vw,2.2rem);padding:0 0 clamp(1rem,2.5vw,1.5rem)}.experience-section .timeline-logo{width:clamp(74px,7vw,96px);height:clamp(74px,7vw,96px);min-height:clamp(74px,7vw,96px)}.experience-section .company-logo{max-width:88px;max-height:88px}.experience-section .timeline-degree{font-size:clamp(1.1rem,2.2vw,1.5rem)}.experience-section .timeline-header{margin-bottom:.25rem}.experience-section .timeline-institution{margin-bottom:.4rem;font-size:clamp(.85rem,1.3vw,.95rem)}.experience-section .timeline-desc{font-size:clamp(.85rem,1.3vw,.95rem);line-height:1.55}.experience-section .timeline-tags{gap:6px;margin-top:.5rem}.experience-section .timeline-tags span{font-size:.62rem}@media (max-width:1024px){.top-bar{flex-wrap:nowrap;justify-content:space-between;align-items:center;height:64px;padding:0 1.25rem}.nav-tabs,#contact-btn{display:none!important}.menu-toggle-btn{display:flex!important}}@media (max-width:768px){.hero{padding-top:60px}body,.main-page{background:#000!important}.glow-orb,.grain{display:none!important}.constellation-canvas{opacity:.45!important;display:block!important}.footer-content{flex-direction:column;gap:2rem}.about-section,.lab-section{padding:4.5rem 1.25rem}.lab-scroll-track .lab-section{align-items:center;min-height:auto;display:flex;position:relative}.lab-section{padding-top:5.25rem;padding-bottom:3rem}.about-grid{grid-template-columns:1fr}.about-title,.lab-title,.lab-scroll-text-item{font-size:clamp(2.3rem,14vw,4rem);line-height:1.05}.lab-scroll-text-viewport{min-height:1.2em;overflow:hidden}.signal-panel{min-height:380px;padding:1.25rem}.signal-panel-inner{min-height:350px}.signal-dial{width:min(100%,200px);margin-top:1.5rem}.lab-console-text{font-size:1.08rem}.education-timeline,.experience-timeline{margin-left:0;padding-left:1.4rem}.timeline-dot{top:.5rem;left:0}.timeline-header{flex-direction:column;align-items:flex-start;gap:4px}.timeline-content{grid-template-columns:52px minmax(0,1fr);align-items:flex-start;gap:1rem;padding:0 0 1.65rem}.timeline-logo{align-self:flex-start;width:52px;height:52px;min-height:52px}.company-logo{max-width:52px;max-height:52px}.timeline-degree{font-size:clamp(1.22rem,7vw,1.65rem)}.experience-section .experience-timeline{padding-left:0}.experience-section .timeline-item{margin-bottom:1.25rem}.experience-section .timeline-content{border-bottom:1px solid #ffffff0a;grid-template-columns:48px minmax(0,1fr);gap:.75rem;padding:0 0 1rem}.experience-section .timeline-item:last-child .timeline-content{border-bottom:none}.experience-section .timeline-logo{border-radius:10px;width:48px;height:48px;min-height:48px;margin-bottom:0}.experience-section .company-logo{max-width:30px;max-height:30px}.experience-section .timeline-header{flex-flow:wrap;justify-content:space-between;align-items:baseline;gap:2px 6px;margin-bottom:.15rem;display:flex}.experience-section .timeline-degree{font-size:.95rem;font-weight:800}.experience-section .timeline-period{color:#ffffff5c;padding-top:0;font-size:.65rem}.experience-section .timeline-institution{color:#ffffffb3;margin-bottom:.35rem;font-size:.8rem}.experience-section .timeline-desc{color:#ffffff70;font-size:.76rem;line-height:1.4}.experience-section .timeline-tags{gap:4px 8px;margin-top:.4rem}.experience-section .timeline-tags span{font-size:.58rem}.projects-stack-scene{width:280px;height:420px;margin-top:0}.projects-scroll-track{min-height:auto}.projects-heading{align-self:flex-start;max-width:100%;margin-bottom:2rem;position:relative;top:auto;left:auto}.projects-subtitle{display:none}.projects-section{align-items:center;height:auto;min-height:auto;padding:5rem 1.25rem}.projects-stack-scroller{touch-action:pan-y;width:min(100%,340px);height:560px;min-height:520px;overflow:visible}}.name-warp-section{z-index:10;opacity:0;flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:75vh;padding:6rem 0;transition:opacity .8s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1);display:flex;position:relative;overflow:hidden;transform:translateY(30px)}.name-warp-section.visible{opacity:1;transform:translateY(0)}.name-warp-container{justify-content:center;align-items:center;width:100%;height:350px;display:flex;position:relative}#name-warp-canvas{width:100%;height:100%;display:block;position:absolute;top:0;left:0}.connect-invite-container{text-align:center;z-index:20;flex-direction:column;align-items:center;max-width:650px;margin:2rem auto 0;padding:0 1.5rem;display:flex}.connect-logo{object-fit:contain;filter:invert();width:64px;height:64px;margin-bottom:1.5rem;transition:transform .8s cubic-bezier(.22,1,.36,1)}.connect-invite-container:hover .connect-logo{transform:rotate(360deg)scale(1.1)}.connect-title{color:#fff;letter-spacing:-.03em;margin-bottom:1rem;font-size:clamp(1.75rem,5vw,2.75rem);font-weight:800}.connect-subtitle{color:#ffffff80;font-size:1.05rem;font-weight:400;line-height:1.6}.connect-btn{letter-spacing:.03em;color:#fff;cursor:pointer;z-index:20;background:0 0;border:1px solid #fff3;border-radius:100px;align-items:center;gap:10px;margin-top:1.5rem;padding:14px 36px;font-family:Inter,sans-serif;font-size:.95rem;font-weight:600;text-decoration:none;transition:background-color .35s cubic-bezier(.22,1,.36,1),border-color .35s cubic-bezier(.22,1,.36,1),color .35s cubic-bezier(.22,1,.36,1),transform .35s cubic-bezier(.22,1,.36,1);display:inline-flex;position:relative;overflow:hidden}.connect-btn:before{content:"";border-radius:inherit;transform-origin:100%;z-index:-1;background:#fff;transition:transform .4s cubic-bezier(.22,1,.36,1);position:absolute;inset:0;transform:scaleX(0)}.connect-btn:hover{color:#000;border-color:#fff;box-shadow:0 10px 25px #ffffff1a}.connect-btn:hover:before{transform-origin:0;transform:scaleX(1)}.connect-btn span{z-index:1;position:relative}.connect-btn .arrow-icon{z-index:1;stroke:currentColor;stroke-width:2px;width:16px;height:16px;transition:transform .35s;position:relative}.connect-btn:hover .arrow-icon{transform:translate(4px)}.reach-section{z-index:10;max-width:1200px;margin:0 auto;padding:5rem clamp(1.5rem,4vw,3rem) 7rem;position:relative}.animated-me-container{justify-content:center;align-items:center;width:50%;max-width:400px;margin:0 auto 3rem;display:flex;position:relative}.animated-me{object-fit:contain;cursor:pointer;filter:drop-shadow(0 0 30px #ffffff1a);width:100%;height:auto;transition:transform .3s cubic-bezier(.22,1,.36,1)}.animated-me:hover{transform:scale(1.05)}.animated-me.animating{animation:.5s ease-in-out infinite alternate pulse}@keyframes pulse{0%{transform:scale(1)}to{transform:scale(1.08)}}.emoji-particle{pointer-events:none;z-index:1000;font-size:2rem;animation:1.5s cubic-bezier(.22,1,.36,1) forwards explode;position:fixed}@keyframes explode{0%{opacity:1;transform:translate(0)scale(0)rotate(0)}50%{opacity:1}to{opacity:0;transform:translate(var(--tx), var(--ty)) scale(1.5) rotate(var(--rot))}}.reach-title{letter-spacing:-.04em;color:#fff;max-width:760px;margin-bottom:2rem;font-size:clamp(2.4rem,7vw,5rem);font-weight:900;line-height:.98}.reach-form{-webkit-backdrop-filter:blur(12px);background:#080808b8;border:1px solid #ffffff14;border-radius:18px;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-width:880px;padding:clamp(1rem,2.5vw,1.5rem);display:grid}.reach-field{gap:8px;display:grid}.reach-field-full{grid-column:1/-1}.reach-field label{letter-spacing:.1em;text-transform:uppercase;color:#ffffff6b;font-size:.72rem;font-weight:800}.reach-field input,.reach-field textarea{color:#fff;width:100%;font:inherit;background:#00000061;border:1px solid #ffffff1a;border-radius:14px;outline:none;padding:13px 14px;transition:border-color .25s,background-color .25s,box-shadow .25s}.reach-field textarea{resize:vertical;min-height:140px}.reach-field input:focus,.reach-field textarea:focus{background:#ffffff09;border-color:#ffffff59;box-shadow:0 0 0 3px #ffffff0a}.reach-send{color:#000;min-height:46px;font:inherit;cursor:pointer;background:#fff;border:1px solid #fff;border-radius:999px;grid-column:1/-1;justify-self:start;padding:0 22px;font-size:.9rem;font-weight:800;transition:transform .25s,box-shadow .25s}.reach-send:hover{transform:translateY(-2px);box-shadow:0 12px 30px #ffffff1f}@media (max-width:768px){.hero{min-height:100dvh;padding:80px 1.5rem 3rem}.hero-title{margin-bottom:1rem}.hero-easter{margin-bottom:1.5rem}.hero-subtitle{margin-bottom:2rem}.name-warp-section{min-height:55vh;padding:4rem 0}.name-warp-container{height:250px}.connect-btn{margin-top:1rem;padding:12px 30px;font-size:.88rem}.reach-section{padding:4rem 1.25rem 5rem}.reach-form{grid-template-columns:1fr}}.custom-cursor-dot,.custom-cursor-ring{display:none}@media (hover:hover) and (pointer:fine){html.has-custom-cursor,html.has-custom-cursor *{cursor:none!important}.custom-cursor-dot,.custom-cursor-ring{pointer-events:none;z-index:10000;will-change:transform, width, height, background-color, border-color;border-radius:50%;transition:width .25s cubic-bezier(.25,1,.5,1),height .25s cubic-bezier(.25,1,.5,1),background-color .25s,border-color .25s,opacity .25s;display:block;position:fixed;top:0;left:0;transform:translate(-50%,-50%)}.custom-cursor-dot{background-color:#fff;width:6px;height:6px}.custom-cursor-ring{-webkit-backdrop-filter:blur(4px)saturate(1.35)contrast(1.08);background-color:#ffffff12;border:1px solid #ffffff73;width:26px;height:26px;box-shadow:inset 0 0 14px #ffffff14}html.has-custom-cursor.cursor-hover .custom-cursor-dot{background-color:#fffc;width:4px;height:4px}html.has-custom-cursor.cursor-hover .custom-cursor-ring{-webkit-backdrop-filter:blur(6px)saturate(1.45)contrast(1.1);background-color:#ffffff1c;border-color:#ffffffe6;width:40px;height:40px}html.has-custom-cursor.cursor-click .custom-cursor-dot{background-color:#fff;transform:translate(-50%,-50%)scale(1.8)}html.has-custom-cursor.cursor-click .custom-cursor-ring{border-color:#fff;transform:translate(-50%,-50%)scale(.65)}:is(body:has(.nav-tabs:hover) .custom-cursor-dot,body:has(.nav-tabs:hover) .custom-cursor-ring,body:has(.nav-tab:hover) .custom-cursor-dot,body:has(.nav-tab:hover) .custom-cursor-ring){opacity:0!important}html.has-custom-cursor.cursor-in-light-ray .custom-cursor-dot{background-color:#000!important}html.has-custom-cursor.cursor-in-light-ray .custom-cursor-ring{background-color:#0000000d!important;border-color:#000000bf!important;box-shadow:inset 0 0 10px #0000000d!important}html.has-custom-cursor.cursor-in-light-ray.cursor-hover .custom-cursor-dot{background-color:#000!important}html.has-custom-cursor.cursor-in-light-ray.cursor-hover .custom-cursor-ring{background-color:#0000001f!important;border-color:#000!important}}.egg-toast{z-index:10020;color:#fff;text-align:center;opacity:0;pointer-events:none;-webkit-backdrop-filter:blur(16px);background:#050505e0;border:1px solid #ffffff24;border-radius:999px;max-width:min(90vw,420px);padding:12px 16px;font-size:.84rem;font-weight:700;transition:opacity .28s,transform .28s;position:fixed;bottom:2rem;left:50%;transform:translate(-50%,16px)}.egg-toast.show{opacity:1;transform:translate(-50%)}.terminal-overlay{z-index:10010;opacity:0;pointer-events:none;-webkit-backdrop-filter:blur(14px);background:#000000d9;justify-content:center;align-items:center;padding:1.5rem;transition:opacity .25s;display:flex;position:fixed;inset:0}.terminal-overlay.active{opacity:1;pointer-events:auto}.terminal-window{background:#000;border:1px solid #fff3;border-radius:12px;flex-direction:column;width:min(760px,100%);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;transition:transform .25s cubic-bezier(.22,1,.36,1);display:flex;overflow:hidden;transform:translateY(16px)scale(.98);box-shadow:0 25px 80px #000000f2,0 0 0 1px #ffffff14}.terminal-overlay.active .terminal-window{transform:translateY(0)scale(1)}.terminal-header{-webkit-user-select:none;user-select:none;background:#0a0a0a;border-bottom:1px solid #ffffff1f;justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.terminal-dots{align-items:center;gap:7px;display:flex}.term-dot{cursor:pointer;background:0 0;border:1px solid #ffffff80;border-radius:50%;width:10px;height:10px;padding:0;transition:background .15s,border-color .15s}.term-dot:hover{background:#fff;border-color:#fff}.term-dot-dim{cursor:default;border-color:#fff3}.terminal-title{letter-spacing:.04em;align-items:center;gap:10px;font-size:.78rem;display:flex}.term-status-badge{color:#fff;background:#ffffff1a;border:1px solid #fff3;border-radius:4px;padding:2px 7px;font-size:.7rem;font-weight:700}.term-user{color:#ffffffbf;font-weight:600}.terminal-close-btn{color:#fff;letter-spacing:.06em;cursor:pointer;background:0 0;border:1px solid #fff3;border-radius:4px;padding:3px 10px;font-family:inherit;font-size:.7rem;font-weight:700;transition:all .15s}.terminal-close-btn:hover{color:#000;background:#fff;border-color:#fff}.terminal-body{color:#ffffffe0;background:#000;flex-direction:column;gap:12px;min-height:260px;max-height:54vh;padding:16px 18px;font-size:.86rem;line-height:1.6;display:flex;overflow-y:auto}.terminal-body::-webkit-scrollbar{width:6px}.terminal-body::-webkit-scrollbar-track{background:#000}.terminal-body::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.terminal-body::-webkit-scrollbar-thumb:hover{background:#fff6}.terminal-line pre{white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}.terminal-system{color:#ffffff73;border-left:2px solid #ffffff4d;padding-left:10px;font-size:.8rem}.terminal-cmd{color:#fff;align-items:baseline;gap:8px;font-weight:600;display:flex}.terminal-cmd-text{color:#fff}.terminal-output{color:#ffffffd1}.terminal-error{color:#fff;background:#ffffff0f;border-left:2px solid #fff;padding:6px 10px}.term-tag{color:#fff;font-weight:700}.terminal-table-block{flex-direction:column;gap:6px;display:flex}.terminal-table-title{color:#fff;letter-spacing:.08em;border-bottom:1px dashed #fff3;padding-bottom:4px;font-size:.8rem;font-weight:700}.terminal-table{flex-direction:column;gap:4px;display:flex}.terminal-table-row{grid-template-columns:140px 20px 1fr;align-items:baseline;font-size:.82rem;display:grid}.terminal-table-key{color:#fff;font-weight:600}.terminal-table-sep{color:#ffffff4d}.terminal-table-val{color:#ffffffb8}.terminal-pills-bar{background:#080808;border-top:1px solid #ffffff14;align-items:center;gap:10px;padding:8px 16px;display:flex;overflow-x:auto}.terminal-pills-label{letter-spacing:.1em;color:#fff6;white-space:nowrap;font-size:.68rem;font-weight:700}.terminal-pills{flex-wrap:nowrap;align-items:center;gap:6px;display:flex}.terminal-pill{color:#ffffffd9;cursor:pointer;white-space:nowrap;background:#ffffff0f;border:1px solid #ffffff26;border-radius:4px;padding:3px 9px;font-family:inherit;font-size:.72rem;transition:all .15s}.terminal-pill:hover{color:#000;background:#fff;border-color:#fff}.terminal-form{background:#050505;border-top:1px solid #ffffff1f;align-items:center;gap:8px;padding:10px 16px;display:flex}.terminal-prompt{color:#fff;white-space:nowrap;font-size:.84rem;font-weight:700}.terminal-input{color:#fff;caret-color:#fff;background:0 0;border:0;outline:0;flex:1;min-width:0;font-family:inherit;font-size:.86rem}.terminal-input::placeholder{color:#ffffff40}.terminal-submit-btn{color:#fff;cursor:pointer;background:0 0;border:1px solid #fff3;border-radius:4px;justify-content:center;align-items:center;width:26px;height:26px;font-size:.8rem;transition:all .15s;display:flex}.terminal-submit-btn:hover{color:#000;background:#fff;border-color:#fff}.terminal-footer{color:#ffffff59;letter-spacing:.05em;-webkit-user-select:none;user-select:none;background:#020202;border-top:1px solid #ffffff0d;justify-content:center;align-items:center;gap:8px;padding:6px 16px;font-size:.68rem;display:flex}html.logo-tilt .logo-icon,html.logo-tilt .footer-logo-img,html.logo-tilt .connect-logo{animation:.9s cubic-bezier(.22,1,.36,1) logoSpin}@keyframes logoSpin{0%{transform:rotate(0)scale(1)}55%{transform:rotate(300deg)scale(1.35)}to{transform:rotate(360deg)scale(1)}}@media (max-width:768px){.terminal-overlay{align-items:flex-end;padding:1rem}.terminal-window{border-radius:16px}.egg-toast{bottom:1rem}}.passport-toast{color:#000;z-index:999999;opacity:0;background:#fff;border:1px solid #d3d3d3;flex-direction:column;gap:4px;padding:12px 18px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;transition:all .4s cubic-bezier(.22,1,.36,1);display:flex;position:fixed;bottom:2rem;right:2rem;transform:translateY(20px);box-shadow:0 8px 24px #000c}.passport-toast.show{opacity:1;transform:translateY(0)}.toast-kicker{color:#0000008c;text-transform:uppercase;letter-spacing:.08em;font-size:.65rem}.toast-title{letter-spacing:.02em;font-size:1.1rem;font-weight:700}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-smooth [data-lenis-prevent]{overflow:clip}.lenis.lenis-stopped{overflow:hidden}.lenis.lenis-smooth iframe{pointer-events:none}.curved-marquee-grey{letter-spacing:.02em;font-family:Georgia,Times New Roman,serif;font-style:italic;color:#444!important;fill:#444!important;font-size:clamp(2rem,1vw,2rem)!important}
