@import "https://fonts.googleapis.com/css2?family=Share+Tech+Mono&family=Silkscreen:wght@400;700&display=swap";@import "https://fonts.googleapis.com/css2?family=Jersey+15&display=swap";@import "https://fonts.googleapis.com/css2?family=Press+Start+2P&family=Share+Tech+Mono&display=swap";@import "https://fonts.googleapis.com/css2?family=Pixelify+Sans:wght@400&family=Share+Tech+Mono&display=swap";@import "https://fonts.googleapis.com/css2?family=Pixelify+Sans:wght@400&display=swap";@import "https://fonts.googleapis.com/css2?family=Share+Tech+Mono&display=swap";@import "https://fonts.googleapis.com/css2?family=Share+Tech+Mono&display=swap";@import "https://fonts.googleapis.com/css2?family=Pixelify+Sans:wght@400&family=Share+Tech+Mono&display=swap";@import "https://fonts.googleapis.com/css2?family=Pixelify+Sans:wght@400&display=swap";@import "https://fonts.googleapis.com/css2?family=Share+Tech+Mono&display=swap";@import "https://fonts.googleapis.com/css2?family=Pixelify+Sans:wght@400&family=Share+Tech+Mono&display=swap";@import "https://fonts.googleapis.com/css2?family=Share+Tech+Mono&display=swap";@import "https://fonts.googleapis.com/css2?family=Pixelify+Sans:wght@400&family=Share+Tech+Mono&display=swap";@import "https://fonts.googleapis.com/css2?family=Pixelify+Sans:wght@400&family=Share+Tech+Mono&display=swap";@import "https://fonts.googleapis.com/css2?family=Pixelify+Sans:wght@400&family=Share+Tech+Mono&display=swap";@import "https://fonts.googleapis.com/css2?family=Pixelify+Sans:wght@400&family=Share+Tech+Mono&display=swap";@import "https://fonts.googleapis.com/css2?family=Pixelify+Sans:wght@400&family=Share+Tech+Mono&display=swap";@media (width<=700px) and (orientation:portrait){.homepage-layer--back .homepage-scene-image{transform:translate(-50%,-49%)}}@media (height<=520px) and (width<=1000px) and (orientation:landscape){.homepage-layer--back .homepage-scene-image{transform:translate(-50%,-47.5%)}}@media (width>=601px) and (width<=900px) and (orientation:portrait){.homepage-layer--back .homepage-scene-image{transform:translate(-50%,-48%)}}@media (width>=901px) and (width<=1400px){.homepage-layer--back .homepage-scene-image{transform:translate(-50%,-47.8%)}}@media (width>=1401px){.homepage-layer--back .homepage-scene-image{transform:translate(-50%,-48.2%)}}@media (hover:none) and (pointer:coarse) and (orientation:portrait){.homepage-layer--buildings .homepage-scene-image,.homepage-layer--buildings .home-project-overlay{width:max(100vw, min(calc(100svh * var(--homepage-scene-ratio)), 260vw));left:calc(50% + var(--homepage-mobile-pan-x,0px));top:54%;transform:translate(-50%,-50%)}.homepage-layer--grid{z-index:2}.homepage-layer--grid .homepage-scene-image{width:max(100vw, calc(112svh * var(--homepage-scene-ratio)));top:44%;left:50%;transform:translate(-50%,-50%)}}@media (hover:none) and (pointer:coarse){.home-project-overlay{transition:opacity .21s,visibility .21s,filter .22s}.home-project-overlay--active{opacity:1;visibility:visible}}@media (width<=370px) and (hover:none) and (pointer:coarse) and (orientation:portrait){.homepage-layer--buildings .homepage-scene-image,.homepage-layer--buildings .home-project-overlay{width:max(100vw, min(calc(100svh * var(--homepage-scene-ratio)), 250vw));top:54%}.homepage-layer--grid{z-index:2}.homepage-layer--grid .homepage-scene-image{width:max(100vw, calc(112svh * var(--homepage-scene-ratio)));top:44%;left:50%;transform:translate(-50%,-50%)}}@media (width>=701px) and (width<=1100px) and (hover:none) and (pointer:coarse) and (orientation:portrait){.homepage-layer--buildings .homepage-scene-image,.homepage-layer--buildings .home-project-overlay{width:max(100vw, min(calc(100svh * var(--homepage-scene-ratio)), 245vw));top:53.5%}.homepage-layer--grid{z-index:2}.homepage-layer--grid .homepage-scene-image{width:max(100vw, calc(112svh * var(--homepage-scene-ratio)));top:44%;left:50%;transform:translate(-50%,-50%)}}@media (prefers-reduced-motion:reduce){.home-project-overlay{transition:none}}@media (width<=1400px){.hero{top:24px;left:28px}.hero-title{font-size:18px}.hero-subtitle{letter-spacing:.28em;margin-top:8px;font-size:8px}}@media (width<=900px){.hero{max-width:calc(100vw - 44px);top:22px;left:22px}.hero-title{letter-spacing:.08em;font-size:19px}.hero-subtitle{letter-spacing:.22em;margin-top:8px;font-size:8px}}@media (width<=600px){.hero{width:auto;max-width:none;top:18px;left:16px;right:16px}.hero-title{letter-spacing:.065em;white-space:nowrap;font-size:20px;line-height:1}.hero-subtitle{letter-spacing:.18em;white-space:nowrap;margin:9px 0 0 1px;font-size:8px;line-height:1.2}}@media (width<=400px){.hero{top:16px;left:14px;right:14px}.hero-title{letter-spacing:.055em;font-size:18px}.hero-subtitle{letter-spacing:.15em;margin-top:8px;font-size:7px}}@media (width<=1400px){.main-menu{top:22px;right:30px}.main-menu-list{gap:28px}.main-menu-item{font-size:9px}}@media (width>=701px) and (width<=1024px) and (height>=521px){.main-menu{top:24px;left:auto;right:24px}.main-menu-list{gap:20px}.main-menu-item{letter-spacing:.08em;font-size:8px}}@media (width<=700px),(height<=520px) and (width<=1000px){.main-menu{width:0;height:0;position:static}.main-menu-toggle,.main-menu-backdrop{display:block}.main-menu-panel{z-index:10001;width:auto;height:auto;box-shadow:none;-webkit-backdrop-filter:none;opacity:0;visibility:hidden;pointer-events:none;background:0 0;border:0;padding:0;transition:opacity .18s,transform .22s cubic-bezier(.22,.8,.24,1),visibility .18s;position:fixed;top:74px;right:20px;transform:translateY(-8px)}.main-menu-list{flex-direction:column;justify-content:flex-start;align-items:flex-end;gap:20px;width:auto;margin:0;padding:0;display:flex}.main-menu-item{letter-spacing:.11em;text-align:right;color:#c4e1ece0;text-shadow:0 0 3px #000,0 0 7px #000000f2,0 0 10px #58e6ff1f;cursor:pointer;opacity:0;justify-content:flex-end;width:auto;min-width:max-content;padding:7px 4px;font-size:14px;transition:opacity .18s,transform .22s,color .16s,text-shadow .16s;display:flex;transform:translate(8px)}.main-menu-item:after{display:none}.main-menu--open .main-menu-panel{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}.main-menu--open .main-menu-item{opacity:1;transform:translate(0)}.main-menu--open .main-menu-item:first-child{transition-delay:20ms}.main-menu--open .main-menu-item:nth-child(2){transition-delay:50ms}.main-menu--open .main-menu-item:nth-child(3){transition-delay:80ms}.main-menu--open .main-menu-item:nth-child(4){transition-delay:.11s}.main-menu--open .main-menu-backdrop{opacity:1;visibility:visible}}@media (width<=370px){.main-menu-toggle{right:16px}.main-menu-panel{top:70px;right:16px}.main-menu-list{gap:18px}.main-menu-item{font-size:13px}}@media (height<=520px) and (width<=1000px) and (orientation:landscape){.main-menu-toggle{top:18px;right:18px}.main-menu-panel{top:58px;right:18px}.main-menu-list{gap:10px}.main-menu-item{padding:4px;font-size:11px}}@media (hover:none){.main-menu-item:hover{color:#c4e1ece0;text-shadow:0 0 3px #000,0 0 7px #000000f2,0 0 10px #58e6ff1f;filter:none;transform:none}.main-menu-item:hover:after{opacity:0}}@media (prefers-reduced-motion:reduce){.main-menu-panel,.main-menu-backdrop,.main-menu-toggle-line,.main-menu-item,.main-menu-item:after{transition:none}}@keyframes typing-cursor-blink{0%,48%{opacity:1}49%,to{opacity:0}}@media (width<=600px){.intro-content{width:86vw;height:430px}.terminal{height:290px;padding-top:20px;line-height:1.75}.continue-area{height:120px}}@media (prefers-reduced-motion:reduce){.intro-screen,.terminal,.continue-area,.continue-button{transition:none}}:root{--ui-font:"Jersey 15", monospace;font-synthesis:none;text-rendering:geometricprecision;color:#edf0ef;background:#000;font-family:Share Tech Mono,monospace}*,:before,:after{box-sizing:border-box}html{background:#000;width:100%;min-width:320px;min-height:100%;margin:0;padding:0;overflow-x:hidden}body{overscroll-behavior:none;-webkit-text-size-adjust:100%;background:#000;width:100%;min-width:320px;min-height:100svh;margin:0;padding:0;overflow:hidden}#app{background:#000;width:100%;min-width:320px;height:100svh;min-height:100svh;margin:0;padding:0;position:relative;overflow:hidden}img,svg,video,canvas{max-width:100%;display:block}button,input,textarea,select{font:inherit}button{margin:0}.homepage{background:#000;width:100%;height:100svh;min-height:100svh;position:fixed;inset:0;overflow:hidden}*,:before,:after{cursor:url(/cursors/cursor.svg) 0 0,auto!important}body.grabbing-cursor,body.grabbing-cursor *,body.grabbing-cursor :before,body.grabbing-cursor :after{cursor:url(/cursors/cursor-click.svg) 0 0,grabbing!important}a,button,input,textarea,select{cursor:url(/cursors/cursor.svg) 0 0,pointer!important}@media (width<=1024px){html,body,#app{min-width:0}}@media (width<=768px){html{width:100%}body{width:100%;min-width:0;min-height:100svh}#app{width:100%;min-width:0;height:100svh;min-height:100svh}.homepage{width:100%;height:100svh;min-height:100svh}}@media (pointer:coarse){*,:before,:after,a,button,input,textarea,select,body.grabbing-cursor,body.grabbing-cursor *,body.grabbing-cursor :before,body.grabbing-cursor :after{cursor:auto!important}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.intro-screen{z-index:300000;opacity:1;visibility:visible;pointer-events:auto;background:#000;justify-content:center;align-items:center;width:100vw;height:100vh;transition:opacity .8s steps(10,end),visibility .8s;display:flex;position:fixed;inset:0;overflow:hidden}.intro-screen--hidden{opacity:0;visibility:hidden;pointer-events:none}.intro-content{flex-direction:column;justify-content:center;align-items:stretch;width:min(650px,84vw);height:470px;display:flex;position:relative}.terminal{box-sizing:border-box;color:#d8f7ff;letter-spacing:.055em;text-align:left;opacity:0;visibility:hidden;text-shadow:0 0 3px #d8f7fff2,0 0 9px #58e6ff80;width:100%;height:310px;padding-top:40px;font-family:Share Tech Mono,Courier New,monospace;font-size:clamp(18px,1.65vw,25px);line-height:1.65;transition:opacity .35s,transform .35s,visibility .35s;transform:translateY(4px)}.terminal--visible{opacity:1;visibility:visible;transform:translateY(0)}.terminal-line{white-space:pre-wrap;min-height:1.65em}.terminal-text{opacity:.96}.typing-cursor{color:#58e6ff;text-shadow:0 0 5px #58e6ff,0 0 12px #ff6aa6a6;margin-left:4px;animation:.7s steps(2,end) infinite typing-cursor-blink;display:inline-block}.continue-area{opacity:0;visibility:hidden;pointer-events:none;flex-direction:column;justify-content:flex-start;align-items:center;width:100%;height:130px;transition:opacity .7s,transform .7s,visibility 0s linear .7s;display:flex;transform:translateY(10px)}.continue-area--visible{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .7s,transform .7s,visibility;transform:translateY(0)}.continue-button{color:#d5d5d5;letter-spacing:.2em;text-transform:uppercase;opacity:.78;cursor:pointer;text-shadow:0 0 3px #ffffff80;background:0 0;border:0;padding:15px 20px;font-family:Share Tech Mono,Courier New,monospace;font-size:clamp(20px,2.2vw,31px);transition:color .2s,opacity .2s,text-shadow .2s,transform .2s}.continue-button:hover,.continue-button:focus-visible{color:#fff;opacity:1;text-shadow:0 0 5px #fff,0 0 13px #58e6ffe6,0 0 24px #ff6aa68c;outline:none;transform:scale(1.025)}.continue-button:disabled{pointer-events:none}.continue-hint{color:#d8f7ff66;letter-spacing:.18em;text-align:center;margin-top:12px;font-family:Share Tech Mono,Courier New,monospace;font-size:clamp(11px,.9vw,14px)}@media (width<=600px){.intro-content{width:86vw;height:430px}.terminal{height:290px;padding-top:20px;line-height:1.75}.continue-area{height:120px}}@media (prefers-reduced-motion:reduce){.intro-screen,.terminal,.continue-area,.continue-button{transition:none}}.homepage-background{--homepage-scene-ratio:1.77683;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:0;background:#01050d;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.homepage-layer{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.homepage-layer img{pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;max-width:none;display:block;position:absolute}.homepage-scene-image,.home-project-overlay{width:max(100vw, calc(100svh * var(--homepage-scene-ratio)));object-fit:initial;object-position:initial;max-width:none;height:auto;top:50%;bottom:auto;left:50%;transform:translate(-50%,-50%)}.homepage-layer--back{z-index:1;background:#01050d}.homepage-layer--back .homepage-scene-image{transform:translate(-50%,-48.2%)}.homepage-layer--buildings{z-index:3}.homepage-buildings-base{z-index:1}.home-project-overlay{z-index:2;opacity:0;visibility:hidden;pointer-events:none;filter:brightness();will-change:opacity, filter;transition:opacity .17s,visibility .17s,filter .2s}.home-project-overlay--active{opacity:1;visibility:visible;filter:brightness(1.28)contrast(1.04)saturate(1.08)drop-shadow(0 0 3px #96ebff4d)drop-shadow(0 0 8px #58e6ff29)}.homepage-layer--grid{z-index:4}@media (width<=700px) and (orientation:portrait){.homepage-layer--back .homepage-scene-image{transform:translate(-50%,-49%)}}@media (height<=520px) and (width<=1000px) and (orientation:landscape){.homepage-layer--back .homepage-scene-image{transform:translate(-50%,-47.5%)}}@media (width>=601px) and (width<=900px) and (orientation:portrait){.homepage-layer--back .homepage-scene-image{transform:translate(-50%,-48%)}}@media (width>=901px) and (width<=1400px){.homepage-layer--back .homepage-scene-image{transform:translate(-50%,-47.8%)}}@media (width>=1401px){.homepage-layer--back .homepage-scene-image{transform:translate(-50%,-48.2%)}}@media (hover:none) and (pointer:coarse) and (orientation:portrait){.homepage-layer--buildings .homepage-scene-image,.homepage-layer--buildings .home-project-overlay{width:max(100vw, min(calc(100svh * var(--homepage-scene-ratio)), 260vw));left:calc(50% + var(--homepage-mobile-pan-x,0px));top:54%;transform:translate(-50%,-50%)}.homepage-layer--grid{z-index:2}.homepage-layer--grid .homepage-scene-image{width:max(100vw, calc(112svh * var(--homepage-scene-ratio)));top:44%;left:50%;transform:translate(-50%,-50%)}}@media (hover:none) and (pointer:coarse){.home-project-overlay{transition:opacity .21s,visibility .21s,filter .22s}.home-project-overlay--active{opacity:1;visibility:visible}}@media (width<=370px) and (hover:none) and (pointer:coarse) and (orientation:portrait){.homepage-layer--buildings .homepage-scene-image,.homepage-layer--buildings .home-project-overlay{width:max(100vw, min(calc(100svh * var(--homepage-scene-ratio)), 250vw));top:54%}.homepage-layer--grid{z-index:2}.homepage-layer--grid .homepage-scene-image{width:max(100vw, calc(112svh * var(--homepage-scene-ratio)));top:44%;left:50%;transform:translate(-50%,-50%)}}@media (width>=701px) and (width<=1100px) and (hover:none) and (pointer:coarse) and (orientation:portrait){.homepage-layer--buildings .homepage-scene-image,.homepage-layer--buildings .home-project-overlay{width:max(100vw, min(calc(100svh * var(--homepage-scene-ratio)), 245vw));top:53.5%}.homepage-layer--grid{z-index:2}.homepage-layer--grid .homepage-scene-image{width:max(100vw, calc(112svh * var(--homepage-scene-ratio)));top:44%;left:50%;transform:translate(-50%,-50%)}}@media (prefers-reduced-motion:reduce){.home-project-overlay{transition:none}}.hero{z-index:20;pointer-events:none;-webkit-user-select:none;user-select:none;background:0 0;flex-direction:column;align-items:flex-start;width:auto;max-width:calc(100vw - 48px);margin:0;padding:0;display:flex;position:absolute;top:28px;left:24px}.hero-title{letter-spacing:.12em;color:#f2f7fceb;white-space:nowrap;text-shadow:0 0 4px #6ebeeb14;margin:0;padding:0;font-family:Pixelify Sans,monospace;font-size:clamp(16px,1.35vw,24px);font-weight:400;line-height:1}.hero-subtitle{letter-spacing:.32em;color:#75a6c7a6;white-space:nowrap;margin:9px 0 0 1px;padding:0;font-family:Share Tech Mono,monospace;font-size:clamp(7px,.48vw,11px);font-weight:400;line-height:1}@media (width<=1400px){.hero{top:24px;left:28px}.hero-title{font-size:18px}.hero-subtitle{letter-spacing:.28em;margin-top:8px;font-size:8px}}@media (width<=900px){.hero{max-width:calc(100vw - 44px);top:22px;left:22px}.hero-title{letter-spacing:.08em;font-size:19px}.hero-subtitle{letter-spacing:.22em;margin-top:8px;font-size:8px}}@media (width<=600px){.hero{width:auto;max-width:none;top:18px;left:16px;right:16px}.hero-title{letter-spacing:.065em;white-space:nowrap;font-size:20px;line-height:1}.hero-subtitle{letter-spacing:.18em;white-space:nowrap;margin:9px 0 0 1px;font-size:8px;line-height:1.2}}@media (width<=400px){.hero{top:16px;left:14px;right:14px}.hero-title{letter-spacing:.055em;font-size:18px}.hero-subtitle{letter-spacing:.15em;margin-top:8px;font-size:7px}}.main-menu{z-index:9999;pointer-events:auto;width:auto;height:auto;position:absolute;top:24px;right:36px}.main-menu-panel{width:auto;height:auto;position:relative}.main-menu-list{flex-direction:row;justify-content:flex-end;align-items:center;gap:34px;margin:0;padding:0;display:flex}.main-menu-item{box-shadow:none;letter-spacing:.12em;color:#a8c4d8bd;text-transform:uppercase;white-space:nowrap;cursor:none;text-shadow:0 0 3px #50a5d214;background:0 0;border:none;outline:none;justify-content:center;align-items:center;margin:0;padding:4px 0;font-family:Pixelify Sans,monospace;font-size:13px;font-weight:400;line-height:1;transition:color .18s,text-shadow .18s,filter .18s,transform .18s,opacity .18s;display:inline-flex;position:relative}.main-menu-label{pointer-events:none;display:block}.main-menu-item:hover{color:#f2fbff;text-shadow:0 0 3px #dcf8fff2,0 0 8px #78dcffad,0 0 16px #46aaff4d;filter:brightness(1.35);transform:translateY(-1px)}.main-menu-item:after{content:"";opacity:0;background:#83dcff;width:2px;height:2px;transition:opacity .16s,transform .16s,box-shadow .16s;position:absolute;bottom:-7px;left:50%;transform:translate(-50%);box-shadow:0 0 4px #6ed7ff59}.main-menu-item:hover:after{opacity:1;transform:translate(-50%)translateY(-1px);box-shadow:0 0 4px #b4f0ffd9,0 0 8px #50beff66}.main-menu-item:focus:not(:focus-visible){outline:none}.main-menu-item:focus-visible{color:#f2fbff;outline-offset:6px;outline:1px solid #82d7ff66}.main-menu-toggle{z-index:10003;-webkit-backdrop-filter:blur(2px);cursor:pointer;background:#01080c6b;border:1px solid #58e6ff29;width:32px;height:28px;margin:0;padding:5px;display:none;position:fixed;top:22px;right:20px}.main-menu-toggle-line{transform-origin:50%;background:#bce3f1cc;width:16px;height:1px;transition:top .18s,transform .18s,opacity .12s,background .18s;position:absolute;left:7px}.main-menu-toggle-line:first-child{top:8px}.main-menu-toggle-line:nth-child(2){top:13px}.main-menu-toggle-line:nth-child(3){top:18px}.main-menu--open .main-menu-toggle-line:first-child{top:13px;transform:rotate(45deg)}.main-menu--open .main-menu-toggle-line:nth-child(2){opacity:0}.main-menu--open .main-menu-toggle-line:nth-child(3){top:13px;transform:rotate(-45deg)}.main-menu-backdrop{z-index:10000;opacity:0;visibility:hidden;-webkit-backdrop-filter:none;background:0 0;border:none;margin:0;padding:0;transition:visibility .18s;display:none;position:fixed;inset:0}@media (width<=1400px){.main-menu{top:22px;right:30px}.main-menu-list{gap:28px}.main-menu-item{font-size:9px}}@media (width>=701px) and (width<=1024px) and (height>=521px){.main-menu{top:24px;left:auto;right:24px}.main-menu-list{gap:20px}.main-menu-item{letter-spacing:.08em;font-size:8px}}@media (width<=700px),(height<=520px) and (width<=1000px){.main-menu{width:0;height:0;position:static}.main-menu-toggle,.main-menu-backdrop{display:block}.main-menu-panel{z-index:10001;width:auto;height:auto;box-shadow:none;-webkit-backdrop-filter:none;opacity:0;visibility:hidden;pointer-events:none;background:0 0;border:0;padding:0;transition:opacity .18s,transform .22s cubic-bezier(.22,.8,.24,1),visibility .18s;position:fixed;top:74px;right:20px;transform:translateY(-8px)}.main-menu-list{flex-direction:column;justify-content:flex-start;align-items:flex-end;gap:20px;width:auto;margin:0;padding:0;display:flex}.main-menu-item{letter-spacing:.11em;text-align:right;color:#c4e1ece0;text-shadow:0 0 3px #000,0 0 7px #000000f2,0 0 10px #58e6ff1f;cursor:pointer;opacity:0;justify-content:flex-end;width:auto;min-width:max-content;padding:7px 4px;font-size:14px;transition:opacity .18s,transform .22s,color .16s,text-shadow .16s;display:flex;transform:translate(8px)}.main-menu-item:after{display:none}.main-menu--open .main-menu-panel{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}.main-menu--open .main-menu-item{opacity:1;transform:translate(0)}.main-menu--open .main-menu-item:first-child{transition-delay:20ms}.main-menu--open .main-menu-item:nth-child(2){transition-delay:50ms}.main-menu--open .main-menu-item:nth-child(3){transition-delay:80ms}.main-menu--open .main-menu-item:nth-child(4){transition-delay:.11s}.main-menu--open .main-menu-backdrop{opacity:1;visibility:visible}}@media (width<=370px){.main-menu-toggle{right:16px}.main-menu-panel{top:70px;right:16px}.main-menu-list{gap:18px}.main-menu-item{font-size:13px}}@media (height<=520px) and (width<=1000px) and (orientation:landscape){.main-menu-toggle{top:18px;right:18px}.main-menu-panel{top:58px;right:18px}.main-menu-list{gap:10px}.main-menu-item{padding:4px;font-size:11px}}@media (hover:none){.main-menu-item:hover{color:#c4e1ece0;text-shadow:0 0 3px #000,0 0 7px #000000f2,0 0 10px #58e6ff1f;filter:none;transform:none}.main-menu-item:hover:after{opacity:0}}@media (prefers-reduced-motion:reduce){.main-menu-panel,.main-menu-backdrop,.main-menu-toggle-line,.main-menu-item,.main-menu-item:after{transition:none}}.page-transition{z-index:200000;opacity:0;visibility:hidden;pointer-events:all;background:#000;justify-content:center;align-items:center;width:100vw;height:100vh;transition:opacity .18s steps(6,end),visibility .18s;display:flex;position:fixed;inset:0;overflow:hidden}.page-transition--visible{opacity:1;visibility:visible}.page-transition-content{z-index:2;color:#d8f7ff;width:min(650px,84vw);font-family:Share Tech Mono,Courier New,monospace;position:relative}.page-transition-terminal-line{letter-spacing:.055em;color:#d8f7ff;text-shadow:0 0 3px #d8f7fff2,0 0 9px #58e6ff7a;margin-bottom:10px;font-size:clamp(17px,1.45vw,23px);line-height:1.5}.page-transition-status{color:#d8f7ffc2}.page-transition-dots:after{content:"";animation:.8s steps(4,end) infinite transition-dots}@keyframes transition-dots{0%{content:""}25%{content:"."}50%{content:".."}75%,to{content:"..."}}.page-transition-loading{align-items:center;gap:18px;margin-top:28px;display:flex}.page-transition-bar{box-sizing:border-box;background:#061319b8;border:1px solid #d8f7ff6b;flex:1;height:9px;padding:2px;position:relative;overflow:hidden;box-shadow:0 0 4px #58e6ff24}.page-transition-bar-fill{background:linear-gradient(90deg,#316b80,#58e6ff,#d8f7ff);width:0%;height:100%;transition:width 35ms linear;position:relative;box-shadow:0 0 4px #58e6ffa6,0 0 10px #58e6ff40}.page-transition-bar-fill:after{content:"";background:repeating-linear-gradient(90deg,#0000 0 7px,#00000047 8px);position:absolute;inset:0}.page-transition-percent{letter-spacing:.08em;text-align:right;color:#d8f7ffb8;text-shadow:0 0 4px #58e6ff40;flex:0 0 46px;width:46px;font-family:Share Tech Mono,Courier New,monospace;font-size:clamp(13px,1vw,16px)}.page-transition-ready{letter-spacing:.055em;color:#d8f7ff;opacity:0;text-shadow:0 0 3px #d8f7fff2,0 0 9px #58e6ff80;margin-top:20px;font-family:Share Tech Mono,Courier New,monospace;font-size:clamp(16px,1.35vw,21px);transition:opacity .1s,transform .1s;transform:translateY(3px)}.page-transition-ready--visible{opacity:1;transform:translateY(0)}.page-transition--complete .page-transition-bar-fill{background:#d8f7ff;box-shadow:0 0 5px #d8f7fff2,0 0 14px #58e6ff8c}.page-transition:after{content:"";z-index:1;pointer-events:none;opacity:.035;background:repeating-linear-gradient(#0000 0 3px,#58e6ff33 4px);position:absolute;inset:0}.page-transition--exit{opacity:0;visibility:hidden;transition:opacity .45s steps(8,end),visibility .45s}@media (width<=600px){.page-transition-content{width:86vw}.page-transition-loading{gap:12px;margin-top:22px}.page-transition-terminal-line{font-size:16px}.page-transition-ready{font-size:15px}}@media (prefers-reduced-motion:reduce){.page-transition,.page-transition-dots:after,.page-transition-ready{transition:none;animation:none}}.home-project-label-layer{z-index:8;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.home-project-label{box-sizing:border-box;opacity:0;visibility:hidden;-webkit-backdrop-filter:blur(3px);background:#01080cc7;border:1px solid #58e6ff2b;flex-direction:column;align-items:center;gap:4px;min-width:max-content;padding:7px 12px;transition:opacity .16s,visibility .16s,transform .16s;display:flex;position:absolute;transform:translate(-50%,calc(-100% - 17px))translateY(5px);box-shadow:0 0 12px #58e6ff09}.home-project-label:after{content:"";background:linear-gradient(#58e6ff80,#58e6ff0d);width:1px;height:14px;position:absolute;top:100%;left:50%;transform:translate(-50%)}.home-project-label:before{content:"";background:#58e6ff;width:3px;height:3px;position:absolute;top:calc(100% + 13px);left:50%;transform:translate(-50%);box-shadow:0 0 5px #58e6ff6b}.home-project-label--visible{opacity:1;visibility:visible;transform:translate(-50%,calc(-100% - 17px))translateY(0)}.home-project-label-name{color:#eafafff5;letter-spacing:.09em;white-space:nowrap;text-shadow:0 0 5px #58e6ff2e;font-family:Pixelify Sans,monospace;font-size:12px;font-weight:400;line-height:1.1}.home-project-label-year{color:#8bb9c894;letter-spacing:.12em;white-space:nowrap;font-family:Share Tech Mono,monospace;font-size:8px;line-height:1}.home-project-touch-surface{display:none}.home-project-mobile-hint{z-index:9;box-sizing:border-box;opacity:0;visibility:hidden;color:#a7d3e09e;letter-spacing:.1em;white-space:nowrap;pointer-events:none;background:#01080c94;border:1px solid #58e6ff1f;justify-content:center;align-items:center;gap:8px;width:max-content;max-width:calc(100vw - 32px);padding:6px 10px;font-family:Share Tech Mono,monospace;font-size:8px;transition:opacity .35s,visibility .35s,transform .35s;display:none;position:absolute;bottom:max(28px,8svh);left:50%;transform:translate(-50%)translateY(4px)}.home-project-mobile-hint--visible{opacity:1;visibility:visible;transform:translate(-50%)translateY(0)}.home-project-mobile-hint-arrow{color:#58e6ffb8;font-size:10px}@media (width<=1400px){.home-project-label{padding:6px 10px}.home-project-label-name{font-size:10px}.home-project-label-year{font-size:7px}}@media (hover:none) and (pointer:coarse){.home-project-label-layer{display:block}.home-project-touch-surface{z-index:7;pointer-events:auto;touch-action:pan-y pinch-zoom;-webkit-tap-highlight-color:transparent;display:block;position:absolute;inset:20% 0 0}.home-project-label{background:#01080ce0;border-color:#58e6ff3d;padding:7px 11px;transition:opacity .22s,visibility .22s,transform .22s;box-shadow:0 0 13px #58e6ff0f}.home-project-label-name{font-size:11px}.home-project-label-year{font-size:8px}.home-project-mobile-hint{display:flex}}@media (width<=370px) and (hover:none) and (pointer:coarse){.home-project-label-name{font-size:10px}.home-project-label-year{font-size:7px}.home-project-mobile-hint{letter-spacing:.07em;gap:5px;padding:5px 7px;font-size:7px}.home-project-mobile-hint-arrow{font-size:9px}}@media (hover:none) and (pointer:coarse) and (orientation:landscape){.home-project-touch-surface{top:15%}.home-project-mobile-hint{bottom:max(12px,4svh)}}@media (prefers-reduced-motion:reduce){.home-project-label,.home-project-mobile-hint{transition:none}}.home-city-people-layer{z-index:5;pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.home-city-people-canvas{pointer-events:none;image-rendering:auto;width:100%;height:100%;display:block;position:absolute;inset:0}@media (width<=500px){.home-city-people-layer{opacity:.95}}@media (prefers-reduced-motion:reduce){.home-city-people-layer{opacity:1}}.about-page{--about-font-back:12px;--about-font-location:11px;--about-font-profile-label:11px;--about-font-hello:13px;--about-font-name-min:42px;--about-font-name-fluid:4.4vw;--about-font-name-max:42px;--about-font-role-min:12px;--about-font-role-fluid:1.1vw;--about-font-role-max:14px;--about-font-description:14px;--about-font-cv:11px;--about-font-tab:11px;--about-font-tab-number:10px;--about-font-section-number:11px;--about-font-section-title:27px;--about-font-timeline-year:11px;--about-font-timeline-title:15px;--about-font-timeline-place:11px;--about-font-timeline-description:13px;--about-font-course-item:13px;--about-font-skill-heading:12px;--about-font-skill-item:13px;--about-font-language-name:13px;--about-font-language-level:11px;--about-font-recognition-year:11px;--about-font-recognition-type:9px;--about-font-recognition-title:15px;--about-font-recognition-place:11px;--about-font-recognition-description:13px;--about-font-footer:10px;--about-font-photo-placeholder:11px;--about-font-photo-meta:8px;z-index:10000;color:#d8f7ff;opacity:0;visibility:hidden;background:#010609;width:100vw;height:100vh;transition:opacity .22s,visibility .22s;position:fixed;inset:0;overflow:hidden auto}.about-page[hidden]{display:none}.about-page--visible{opacity:1;visibility:visible}.about-stars{z-index:1;pointer-events:none;background-image:radial-gradient(circle at 8% 17%,#58e6ff52 0 1.2px,#0000 1.6px),radial-gradient(circle at 18% 73%,#a0e1f53d 0 1px,#0000 1.5px),radial-gradient(circle at 29% 31%,#58e6ff3d 0 1px,#0000 1.5px),radial-gradient(circle at 38% 81%,#b4f0ff40 0 1px,#0000 1.5px),radial-gradient(circle at 51% 15%,#58e6ff47 0 1px,#0000 1.5px),radial-gradient(circle at 63% 57%,#96e1f53d 0 1.1px,#0000 1.5px),radial-gradient(circle at 72% 27%,#58e6ff3d 0 1px,#0000 1.5px),radial-gradient(circle at 83% 68%,#afebff40 0 1px,#0000 1.5px),radial-gradient(circle at 94% 38%,#58e6ff45 0 1px,#0000 1.5px);width:100vw;height:100vh;position:fixed;inset:0;overflow:hidden}.about-stars:before{content:"";pointer-events:none;opacity:.16;filter:drop-shadow(0 0 2px #58e6ff4d);background-image:radial-gradient(circle at 12% 42%,#58e6ff 0 1.3px,#0000 1.9px),radial-gradient(circle at 35% 18%,#bcefff 0 1.2px,#0000 1.8px),radial-gradient(circle at 46% 72%,#58e6ff 0 1.2px,#0000 1.8px),radial-gradient(circle at 77% 40%,#bcefff 0 1.3px,#0000 1.9px),radial-gradient(circle at 91% 62%,#58e6ff 0 1.2px,#0000 1.8px);animation:5.5s ease-in-out infinite about-stars-blink-a;position:absolute;inset:0}.about-stars:after{content:"";pointer-events:none;opacity:.12;filter:drop-shadow(0 0 2px #58e6ff42);background-image:radial-gradient(circle at 6% 78%,#bcefff 0 1.2px,#0000 1.8px),radial-gradient(circle at 25% 56%,#58e6ff 0 1.2px,#0000 1.8px),radial-gradient(circle at 58% 32%,#bcefff 0 1.3px,#0000 1.9px),radial-gradient(circle at 69% 84%,#58e6ff 0 1.2px,#0000 1.8px),radial-gradient(circle at 87% 17%,#bcefff 0 1.2px,#0000 1.8px);animation:7.3s ease-in-out infinite about-stars-blink-b;position:absolute;inset:0}@keyframes about-stars-blink-a{0%,to{opacity:.12}20%{opacity:.22}45%{opacity:.58}65%{opacity:.18}82%{opacity:.38}}@keyframes about-stars-blink-b{0%,to{opacity:.3}28%{opacity:.1}55%{opacity:.46}78%{opacity:.16}}.about-back-button{z-index:50;color:#7fbed29e;font-family:Share Tech Mono,monospace;font-size:var(--about-font-back);letter-spacing:.14em;cursor:none;background:0 0;border:0;align-items:center;gap:8px;padding:0;display:flex;position:fixed;top:24px;left:28px}.about-back-button:hover{color:#58e6ff;text-shadow:0 0 8px #58e6ff59}.about-back-arrow{color:#58e6ff}.about-page-inner{z-index:5;width:min(1180px,100vw - 100px);margin:0 auto;padding:120px 0 110px;position:relative}.about-profile{grid-template-columns:minmax(260px,.78fr) minmax(0,1.22fr);align-items:center;gap:clamp(70px,9vw,140px);min-height:450px;display:grid}.about-photo-column{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;justify-self:end;width:100%;max-width:360px}.about-photo-frame{aspect-ratio:.82;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation;background:#040c10c2;border:1px solid #58e6ff4d;width:100%;position:relative;overflow:hidden;box-shadow:0 0 35px #0000008c}.about-photo-frame:before{content:"";z-index:20;pointer-events:auto;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:0 0;position:absolute;inset:0}.about-photo-image{object-fit:cover;object-position:center;filter:grayscale(.68)contrast(1.05)brightness(.96);pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none;touch-action:none;width:100%;height:100%;display:block}.about-photo-frame:after{content:"";z-index:10;pointer-events:none;background:linear-gradient(#58e6ff06,#0000 55%,#58e6ff09);position:absolute;inset:0}.about-photo-placeholder{color:#6fa9bd6b;letter-spacing:.16em;pointer-events:none;-webkit-user-select:none;user-select:none;flex-direction:column;justify-content:center;align-items:center;gap:8px;font-family:Share Tech Mono,monospace;display:flex;position:absolute;inset:0}.about-photo-placeholder span{font-size:var(--about-font-photo-placeholder)}.about-photo-placeholder small{font-size:var(--about-font-photo-meta);opacity:.7}.about-photo-corner{z-index:30;pointer-events:none;width:8px;height:8px;position:absolute}.about-photo-corner--tl{border-top:1px solid #58e6ff;border-left:1px solid #58e6ff;top:-1px;left:-1px}.about-photo-corner--tr{border-top:1px solid #58e6ff;border-right:1px solid #58e6ff;top:-1px;right:-1px}.about-photo-corner--bl{border-bottom:1px solid #58e6ff;border-left:1px solid #58e6ff;bottom:-1px;left:-1px}.about-photo-corner--br{border-bottom:1px solid #58e6ff;border-right:1px solid #58e6ff;bottom:-1px;right:-1px}.about-location{color:#74a6b79e;font-family:Share Tech Mono,monospace;font-size:var(--about-font-location);letter-spacing:.12em;align-items:center;gap:8px;margin-top:13px;display:flex}.about-location-dot{background:#58e6ff;width:4px;height:4px;box-shadow:0 0 6px #58e6ff8c}.about-introduction{width:100%;max-width:610px}.about-profile-label{color:#5b93a77a;font-family:Share Tech Mono,monospace;font-size:var(--about-font-profile-label);letter-spacing:.16em;margin-bottom:34px}.about-hello{color:#7fbacd94;font-family:Share Tech Mono,monospace;font-size:var(--about-font-hello);letter-spacing:.08em;text-transform:none;margin-bottom:8px;font-weight:400}.about-name{color:#edfbfff7;font-family:Share Tech Mono,monospace;font-size:clamp(var(--about-font-name-min), var(--about-font-name-fluid), var(--about-font-name-max));letter-spacing:.035em;margin:0 0 14px;font-weight:400;line-height:1}.about-role{color:#58e6ff;font-family:Share Tech Mono,monospace;font-size:clamp(var(--about-font-role-min), var(--about-font-role-fluid), var(--about-font-role-max));letter-spacing:.12em}.about-description{color:#a7c2ccbd;max-width:570px;font-family:Share Tech Mono,monospace;font-size:var(--about-font-description);letter-spacing:.025em;margin:30px 0 0;line-height:1.7}.about-cv-link{color:#58e6ff;font-family:Share Tech Mono,monospace;font-size:var(--about-font-cv);letter-spacing:.13em;cursor:none;border-bottom:1px solid #58e6ff66;align-items:center;gap:10px;margin-top:28px;padding-bottom:4px;text-decoration:none;transition:color .14s,border-color .14s,text-shadow .14s;display:inline-flex}.about-cv-link:hover{color:#d8f7ff;text-shadow:0 0 8px #58e6ff6b;border-color:#58e6ff}.about-divider{background:linear-gradient(90deg,#0000,#58e6ff33 7% 93%,#0000);width:100%;height:1px;margin:70px 0 0}.about-tabs{border-bottom:1px solid #58e6ff29;grid-template-columns:repeat(5,minmax(0,1fr));width:100%;display:grid}.about-tab{color:#649eb28c;min-width:0;min-height:56px;font-family:Share Tech Mono,monospace;font-size:var(--about-font-tab);letter-spacing:.08em;white-space:nowrap;cursor:none;background:#02090c3d;border:0;border-right:1px solid #58e6ff1f;justify-content:center;align-items:center;gap:8px;padding:0 12px;transition:color .15s,background .15s;display:flex;position:relative}.about-tab:last-child{border-right:0}.about-tab:hover{color:#c1ecf7e6;background:#58e6ff06}.about-tab-indicator{box-sizing:border-box;border:1px solid #58e6ff6b;flex:0 0 5px;width:5px;height:5px}.about-tab--active .about-tab-indicator{background:#58e6ff;border-color:#58e6ff;box-shadow:0 0 6px #58e6ff80}.about-tab--active{color:#d8f7ff;background:#58e6ff09}.about-tab-number{color:#58e6ff8c;font-size:var(--about-font-tab-number)}.about-content-panel{opacity:1;min-height:360px;padding:66px 40px 80px;transition:opacity .13s,transform .13s;transform:translateY(0)}.about-content-panel--switching{opacity:0;transform:translateY(4px)}.about-section-content{width:min(900px,100%);margin:0 auto}.about-section-heading{align-items:baseline;gap:14px;margin-bottom:42px;display:flex}.about-section-heading span{color:#58e6ff;font-family:Share Tech Mono,monospace;font-size:var(--about-font-section-number);letter-spacing:.12em}.about-section-heading h2{color:#dff8ffe6;font-family:Pixelify Sans,monospace;font-size:var(--about-font-section-title);letter-spacing:.06em;margin:0;font-weight:400}.about-timeline{flex-direction:column;display:flex}.about-timeline-item{border-top:1px solid #58e6ff1a;grid-template-columns:150px minmax(0,1fr);gap:35px;padding:26px 0;display:grid}.about-timeline-item:last-child{border-bottom:1px solid #58e6ff1a}.about-timeline-year{color:#5fa0b69e;font-family:Share Tech Mono,monospace;font-size:var(--about-font-timeline-year);letter-spacing:.1em;padding-top:3px}.about-timeline-main h3{color:#dcf6fde6;font-family:Share Tech Mono,monospace;font-size:var(--about-font-timeline-title);letter-spacing:.07em;margin:0 0 7px;font-weight:400}.about-timeline-place{color:#58e6ff;font-family:Share Tech Mono,monospace;font-size:var(--about-font-timeline-place);letter-spacing:.08em;margin-bottom:15px}.about-timeline-main p{color:#9cbbc6ad;max-width:610px;font-family:Share Tech Mono,monospace;font-size:var(--about-font-timeline-description);letter-spacing:.02em;margin:0;line-height:1.7}.about-course-list{flex-direction:column;gap:9px;max-width:610px;margin:15px 0 0;padding:0;list-style:none;display:flex}.about-course-list li{color:#9cbbc6b8;font-family:Share Tech Mono,monospace;font-size:var(--about-font-course-item);letter-spacing:.02em;padding-left:16px;line-height:1.55;position:relative}.about-course-list li:before{content:"";background:#58e6ff;border-radius:50%;width:4px;height:4px;position:absolute;top:.65em;left:0;box-shadow:0 0 5px #58e6ff73}.about-skills-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:48px 100px;display:grid}.about-skill-group{min-width:0}.about-skill-group h3{color:#58e6ff;font-family:Share Tech Mono,monospace;font-size:var(--about-font-skill-heading);letter-spacing:.12em;margin:0 0 16px;font-weight:400}.about-skill-group ul{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.about-skill-group li{color:#b7d3dcbd;font-family:Share Tech Mono,monospace;font-size:var(--about-font-skill-item);letter-spacing:.04em;padding-left:14px;line-height:1.45;position:relative}.about-skill-group li:before{content:"";background:#58e6ffa6;width:3px;height:3px;position:absolute;top:.58em;left:0;box-shadow:0 0 4px #58e6ff2e}.about-languages{border-top:1px solid #58e6ff1a;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:0;width:100%;padding:0;display:grid}.about-language-column{flex-direction:column;min-width:0;display:flex}.about-language-column:first-child{border-right:1px solid #58e6ff1a}.about-language{box-sizing:border-box;border-bottom:1px solid #58e6ff1a;grid-template-columns:5px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:68px;padding:0 18px;display:grid}.about-language:nth-child(odd),.about-language:nth-child(2n){border-right:0;padding:0 18px}.about-language-dot{background:#58e6ff;border-radius:50%;width:4px;height:4px;display:block;box-shadow:0 0 5px #58e6ff59}.about-language strong{color:#d5f2f9db;font-family:Share Tech Mono,monospace;font-size:var(--about-font-language-name);letter-spacing:.08em;text-align:left;font-weight:400}.about-language-level{color:#58e6ff9e;font-family:Share Tech Mono,monospace;font-size:var(--about-font-language-level);letter-spacing:.08em;text-align:right;white-space:nowrap}.about-recognition-list{border-top:1px solid #58e6ff1a;flex-direction:column;display:flex}.about-recognition-item{border-bottom:1px solid #58e6ff1a;grid-template-columns:160px minmax(0,1fr);gap:35px;padding:28px 0;display:grid}.about-recognition-meta{flex-direction:column;align-items:flex-start;gap:12px;padding-top:2px;display:flex}.about-recognition-year{color:#5fa0b69e;font-family:Share Tech Mono,monospace;font-size:var(--about-font-recognition-year);letter-spacing:.1em}.about-recognition-type{box-sizing:border-box;color:#79c0d5b8;min-height:20px;font-family:Share Tech Mono,monospace;font-size:var(--about-font-recognition-type);letter-spacing:.1em;border:1px solid #58e6ff38;justify-content:center;align-items:center;padding:0 7px;display:inline-flex}.about-recognition-type--award{color:#58e6ff;background:#58e6ff06;border-color:#58e6ff5c}.about-recognition-type--certificate{color:#b6dce7bd}.about-recognition-main h3{color:#dcf6fde6;font-family:Share Tech Mono,monospace;font-size:var(--about-font-recognition-title);letter-spacing:.07em;margin:0 0 7px;font-weight:400}.about-recognition-place{color:#58e6ff;font-family:Share Tech Mono,monospace;font-size:var(--about-font-recognition-place);letter-spacing:.08em;margin-bottom:15px}.about-recognition-main p{color:#9cbbc6ad;max-width:610px;font-family:Share Tech Mono,monospace;font-size:var(--about-font-recognition-description);letter-spacing:.02em;margin:0;line-height:1.7}.about-footer{z-index:5;color:#52899c70;min-height:30px;font-family:Share Tech Mono,monospace;font-size:var(--about-font-footer);letter-spacing:.14em;border-top:1px solid #58e6ff1f;justify-content:space-between;align-items:center;padding:0 28px;display:flex;position:relative}@media (width<=1000px){.about-page-inner{width:calc(100vw - 64px);padding-top:100px}.about-profile{grid-template-columns:minmax(210px,.7fr) minmax(0,1.3fr);gap:55px}.about-tabs{grid-template-columns:repeat(2,1fr)}.about-tab{border-bottom:1px solid #58e6ff1a}.about-tab:nth-child(2n){border-right:0}.about-tab:last-child{border-bottom:0;grid-column:1/-1}.about-skills-grid{column-gap:60px}}@media (width<=650px){.about-page{--about-font-back:11px;--about-font-location:10px;--about-font-profile-label:10px;--about-font-hello:12px;--about-font-description:13px;--about-font-tab:11px;--about-font-tab-number:10px;--about-font-timeline-year:10px;--about-font-timeline-title:14px;--about-font-timeline-place:10px;--about-font-timeline-description:12px;--about-font-course-item:12px;--about-font-skill-heading:11px;--about-font-skill-item:12px;--about-font-language-name:12px;--about-font-language-level:10px;--about-font-recognition-year:10px;--about-font-recognition-title:14px;--about-font-recognition-place:10px;--about-font-recognition-description:12px}.about-back-button{top:18px;left:20px}.about-page-inner{width:calc(100vw - 40px);padding:80px 0}.about-profile{grid-template-columns:1fr;gap:48px}.about-photo-column{justify-self:start;max-width:280px}.about-profile-label{margin-bottom:26px}.about-name{letter-spacing:.025em;white-space:nowrap;font-size:clamp(25px,8vw,34px)}.about-divider{margin-top:55px}.about-tabs{grid-template-columns:1fr}.about-tab{border-bottom:1px solid #58e6ff1a;border-right:0;justify-content:flex-start;padding-left:16px}.about-tab:last-child{border-bottom:0;grid-column:auto}.about-content-panel{padding:50px 0 60px}.about-timeline-item{grid-template-columns:1fr;gap:10px}.about-skills-grid{grid-template-columns:1fr;row-gap:38px}.about-languages{grid-template-columns:1fr}.about-language-column:first-child{border-right:0}.about-language{min-height:54px;padding:0 10px}.about-language:nth-child(odd),.about-language:nth-child(2n){padding:0 10px}.about-recognition-item{grid-template-columns:1fr;gap:18px}.about-recognition-meta{flex-direction:row;align-items:center;gap:14px}.about-footer{padding:0 20px}}@media (width<=370px){.about-name{letter-spacing:.015em;white-space:nowrap;font-size:clamp(24px,7.7vw,27px)}}@media (prefers-reduced-motion:reduce){.about-stars:before,.about-stars:after{animation:none}}.contact-page{--contact-font-back:12px;--contact-font-index:11px;--contact-font-title:30px;--contact-font-intro:13px;--contact-font-label:11px;--contact-font-recipient:14px;--contact-font-input:13px;--contact-font-social:10px;--contact-font-send:11px;--contact-font-footer:10px;z-index:10000;color:#d8f7ff;opacity:0;visibility:hidden;background:#010609;width:100vw;height:100dvh;min-height:100vh;transition:opacity .22s,visibility .22s;position:fixed;inset:0;overflow:hidden auto}.contact-page[hidden]{display:none}.contact-page--visible{opacity:1;visibility:visible}.contact-stars{z-index:1;pointer-events:none;background-image:radial-gradient(circle at 9% 18%,#58e6ff42 0 1px,#0000 1.5px),radial-gradient(circle at 24% 73%,#aaebff2e 0 1px,#0000 1.5px),radial-gradient(circle at 48% 21%,#58e6ff33 0 1px,#0000 1.5px),radial-gradient(circle at 72% 69%,#aaebff2e 0 1px,#0000 1.5px),radial-gradient(circle at 90% 32%,#58e6ff38 0 1px,#0000 1.5px);position:fixed;inset:0}.contact-stars:before{content:"";background-image:radial-gradient(circle at 14% 44%,#58e6ff 0 1.2px,#0000 1.8px),radial-gradient(circle at 39% 82%,#bcefff 0 1.2px,#0000 1.8px),radial-gradient(circle at 66% 27%,#58e6ff 0 1.2px,#0000 1.8px),radial-gradient(circle at 87% 76%,#bcefff 0 1.2px,#0000 1.8px);animation:6s ease-in-out infinite contact-stars-blink;position:absolute;inset:0}@keyframes contact-stars-blink{0%,to{opacity:.08}45%{opacity:.42}70%{opacity:.14}}.contact-back-button{z-index:50;color:#7fbed29e;font-family:Share Tech Mono,monospace;font-size:var(--contact-font-back);letter-spacing:.14em;cursor:none;background:0 0;border:0;align-items:center;gap:8px;padding:0;display:flex;position:fixed;top:24px;left:28px}.contact-back-button:hover{color:#58e6ff;text-shadow:0 0 8px #58e6ff59}.contact-back-arrow{color:#58e6ff}.contact-main{z-index:5;width:min(820px,100vw - 100px);margin:0 auto;padding:105px 0 85px;position:relative}.contact-header{width:100%;margin-bottom:28px}.contact-header-index{color:#5b93a785;font-family:Share Tech Mono,monospace;font-size:var(--contact-font-index);letter-spacing:.16em;margin-bottom:10px}.contact-title{color:#e6f9fff0;font-family:Pixelify Sans,Share Tech Mono,monospace;font-size:var(--contact-font-title);letter-spacing:.04em;margin:0;font-weight:400;line-height:1}.contact-intro{color:#9cbbc6b3;width:100%;font-family:Share Tech Mono,monospace;font-size:var(--contact-font-intro);letter-spacing:.025em;margin:16px 0 0;line-height:1.65}.contact-terminal{box-sizing:border-box;background:#030b0f33;border-top:1px solid #58e6ff2e;border-bottom:1px solid #58e6ff2e;width:100%}.contact-row,.contact-field{grid-template-columns:110px minmax(0,1fr);column-gap:28px}.contact-row{box-sizing:border-box;border-bottom:1px solid #58e6ff1a;align-items:center;min-height:56px;padding:12px 26px;display:grid}.contact-label{color:#5fa0b6b3;min-width:0;font-family:Share Tech Mono,monospace;font-size:var(--contact-font-label);letter-spacing:.12em}.contact-recipient{justify-content:flex-start;align-items:center;width:100%;min-width:0;display:flex;overflow:hidden}.contact-recipient strong{color:#def6fde6;width:100%;min-width:0;font-family:Share Tech Mono,monospace;font-size:var(--contact-font-recipient);letter-spacing:.07em;white-space:nowrap;text-overflow:clip;margin:0;font-weight:400;line-height:1.2;display:block;overflow:hidden}.contact-form{box-sizing:border-box;flex-direction:column;padding:0 26px 20px;display:flex}.contact-field{box-sizing:border-box;border-bottom:1px solid #58e6ff12;align-items:center;min-height:52px;display:grid}.contact-field label{color:#5fa0b6b3;min-width:0;font-family:Share Tech Mono,monospace;font-size:var(--contact-font-label);letter-spacing:.12em}.contact-field input{box-sizing:border-box;color:#d8f7ff;width:100%;min-width:0;font-family:Share Tech Mono,monospace;font-size:var(--contact-font-input);letter-spacing:.03em;cursor:none;background:0 0;border:0;border-bottom:1px solid #58e6ff38;outline:none;padding:9px 0 7px;transition:border-color .15s,box-shadow .15s;display:block}.contact-field input::placeholder,.contact-message-frame textarea::placeholder{color:#6e98a657}.contact-field input:focus{border-color:#58e6ff;box-shadow:0 4px 8px -8px #58e6ffb3}.contact-field--message{border-bottom:0;min-height:0;padding:18px 0 16px;display:block}.contact-field--message label{margin-bottom:12px;display:block}.contact-message-frame{box-sizing:border-box;background:#030e123d;border:1px solid #58e6ff33;width:100%;height:190px;transition:border-color .15s,box-shadow .15s;position:relative}.contact-message-frame:focus-within{border-color:#58e6ff80;box-shadow:0 0 15px #58e6ff06}.contact-message-frame textarea{box-sizing:border-box;resize:none;color:#d8f7ff;width:100%;height:100%;font-family:Share Tech Mono,monospace;font-size:var(--contact-font-input);letter-spacing:.025em;cursor:none;background:0 0;border:0;outline:none;padding:16px;line-height:1.65;display:block}.contact-message-corner{pointer-events:none;width:8px;height:8px;position:absolute}.contact-message-corner--tl{border-top:1px solid #58e6ff;border-left:1px solid #58e6ff;top:-1px;left:-1px}.contact-message-corner--tr{border-top:1px solid #58e6ff;border-right:1px solid #58e6ff;top:-1px;right:-1px}.contact-message-corner--bl{border-bottom:1px solid #58e6ff;border-left:1px solid #58e6ff;bottom:-1px;left:-1px}.contact-message-corner--br{border-bottom:1px solid #58e6ff;border-right:1px solid #58e6ff;bottom:-1px;right:-1px}.contact-actions{justify-content:space-between;align-items:center;gap:30px;padding-top:14px;display:flex}.contact-socials{align-items:center;gap:12px;display:flex}.contact-social-link{box-sizing:border-box;color:#97cad9b8;min-height:32px;font-family:Share Tech Mono,monospace;font-size:var(--contact-font-social);letter-spacing:.1em;white-space:nowrap;cursor:none;background:#58e6ff04;border:1px solid #58e6ff33;justify-content:center;align-items:center;padding:0 12px;text-decoration:none;transition:color .14s,border-color .14s,background .14s,box-shadow .14s;display:inline-flex}.contact-social-link:hover{color:#d8f7ff;background:#58e6ff09;border-color:#58e6ff;box-shadow:0 0 8px #58e6ff1a}.contact-send-button{color:#58e6ff;min-height:34px;font-family:Share Tech Mono,monospace;font-size:var(--contact-font-send);letter-spacing:.12em;cursor:none;background:#58e6ff06;border:1px solid #58e6ff57;flex:none;align-items:center;gap:12px;padding:0 13px;transition:color .15s,border-color .15s,background .15s,box-shadow .15s;display:inline-flex}.contact-send-button:hover{color:#e7fbff;background:#58e6ff0e;border-color:#58e6ff;box-shadow:0 0 10px #58e6ff1f}.contact-send-arrow{transition:transform .14s}.contact-send-button:hover .contact-send-arrow{transform:translate(3px)}.contact-footer{z-index:5;color:#52899c70;min-height:30px;font-family:Share Tech Mono,monospace;font-size:var(--contact-font-footer);letter-spacing:.14em;border-top:1px solid #58e6ff1f;justify-content:space-between;align-items:center;padding:0 28px;display:flex;position:relative}@media (width<=900px){.contact-main{width:calc(100vw - 70px);padding-top:95px}}@media (width<=600px){.contact-page{--contact-font-back:10px;--contact-font-index:9px;--contact-font-title:25px;--contact-font-intro:11px;--contact-font-label:9px;--contact-font-recipient:11px;--contact-font-input:11px;--contact-font-social:8px;--contact-font-send:9px;--contact-font-footer:7px}.contact-back-button{top:18px;left:18px}.contact-main{width:calc(100vw - 32px);padding:76px 0 58px}.contact-header{margin-bottom:25px}.contact-title{font-size:var(--contact-font-title)}.contact-intro{font-size:var(--contact-font-intro)}.contact-row{grid-template-columns:58px minmax(0,1fr);column-gap:12px;padding:11px 12px}.contact-form{padding:0 12px 18px}.contact-field{grid-template-columns:58px minmax(0,1fr);column-gap:12px}.contact-recipient strong{letter-spacing:.02em;font-size:clamp(9px,2.7vw,11px)}.contact-message-frame{height:180px}.contact-actions{align-items:center;gap:12px}.contact-socials{gap:8px}.contact-social-link{min-height:30px;padding:0 9px}.contact-send-button{gap:8px;min-height:32px;padding:0 10px}.contact-footer{padding:0 18px}}@media (width<=370px){.contact-main{width:calc(100vw - 28px)}.contact-row{grid-template-columns:46px minmax(0,1fr);column-gap:10px;padding:10px}.contact-form{padding:0 10px 17px}.contact-field{grid-template-columns:46px minmax(0,1fr);column-gap:10px}.contact-recipient strong{letter-spacing:.01em;white-space:nowrap;font-size:9px}.contact-field input{font-size:10px}.contact-message-frame{height:168px}.contact-message-frame textarea{padding:14px;font-size:10px}.contact-actions{gap:8px}.contact-socials{gap:6px}.contact-social-link{padding:0 8px;font-size:7px}.contact-send-button{padding:0 9px;font-size:8px}.contact-footer{padding:0 14px;font-size:6px}}@media (height<=520px) and (orientation:landscape){.contact-back-button{position:absolute;top:14px;left:18px}.contact-main{width:min(760px,100vw - 60px);padding:56px 0 45px}.contact-header{margin-bottom:18px}.contact-header-index{margin-bottom:7px}.contact-title{font-size:22px}.contact-intro{margin-top:11px;font-size:10px}.contact-message-frame{height:130px}.contact-field--message{padding:14px 0}}@media (hover:none){.contact-back-button:hover{color:#7fbed29e;text-shadow:none}.contact-social-link:hover{color:#97cad9b8;box-shadow:none;background:#58e6ff04;border-color:#58e6ff33}.contact-send-button:hover{color:#58e6ff;box-shadow:none;background:#58e6ff06;border-color:#58e6ff57}.contact-send-button:hover .contact-send-arrow{transform:none}}@media (prefers-reduced-motion:reduce){.contact-stars:before{animation:none}}.projects-page{z-index:100;color:#d8f7ff;background:#000;width:100%;height:100svh;position:fixed;inset:0;overflow:hidden}.projects-page[hidden]{display:none}.projects-stars{z-index:0;pointer-events:none;opacity:.2;background-image:radial-gradient(circle,#58e6ffcc 0 1px,#0000 2px),radial-gradient(circle,#58e6ffa6 0 1px,#0000 2px),radial-gradient(circle,#d8f7ff99 0 1px,#0000 2px);background-position:20px 40px,120px 90px,70px 160px;background-size:190px 170px,270px 230px,340px 290px;animation:4.2s steps(2,end) infinite projects-stars-blink;position:absolute;inset:0}.projects-back-button{z-index:30;letter-spacing:.12em;color:#98c4d7a3;text-transform:uppercase;background:0 0;border:0;align-items:center;gap:8px;margin:0;padding:5px 2px;font-family:Pixelify Sans,monospace;font-size:13px;font-weight:400;line-height:1;transition:color .17s,text-shadow .17s,transform .17s,filter .17s;display:inline-flex;position:absolute;top:24px;left:28px}.projects-back-button:after{content:"";background:#58e6ff;width:0;height:1px;transition:width .18s;position:absolute;bottom:-5px;left:1px;box-shadow:0 0 5px #58e6ff99}.projects-back-button:hover{color:#f0fbff;filter:brightness(1.25);text-shadow:0 0 4px #d8f7ffbf,0 0 9px #58e6ff59;transform:translate(-2px)}.projects-back-button:hover:after{width:calc(100% - 2px)}.projects-back-button:active{transform:translate(-1px)scale(.96)}.back-arrow{color:#58e6ff;text-shadow:0 0 5px #58e6ff73;font-size:13px}.projects-filters{z-index:30;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px 24px;width:min(1080px,72vw);display:flex;position:absolute;top:24px;left:50%;transform:translate(-50%)}.projects-filter{color:#7ea9be80;letter-spacing:.1em;white-space:nowrap;background:0 0;border:0;flex:none;margin:0;padding:5px 1px 7px;font-family:Pixelify Sans,monospace;font-size:13px;font-weight:400;line-height:1;transition:color .16s,text-shadow .16s,filter .16s;position:relative}.projects-filter:after{content:"";opacity:0;background:#58e6ffe6;width:0;height:1px;transition:width .17s,opacity .17s;position:absolute;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 0 5px #58e6ff66}.projects-filter:hover{color:#dcf7ffe6;filter:brightness(1.2);text-shadow:0 0 5px #58e6ff47}.projects-filter:hover:after{opacity:.55;width:45%}.projects-filter--active{color:#d8f7ff;text-shadow:0 0 4px #d8f7ff80,0 0 8px #58e6ff47}.projects-filter--active:before{content:"[";color:#58e6ff9e;position:absolute;left:-8px}.projects-filter--active:after{opacity:1;width:70%}.projects-slider{z-index:2;perspective:1200px;touch-action:pan-y;justify-content:center;align-items:center;display:flex;position:absolute;inset:82px 0;overflow:hidden}.projects-track{width:100%;height:100%;transform-style:preserve-3d;justify-content:center;align-items:center;display:flex;position:relative}.project-card{--card-position:0;--card-distance:0;width:min(340px,72vw);height:min(480px,100svh - 180px);min-height:390px;opacity:calc(1 - var(--card-distance) * .22);transform:translateX(calc(var(--card-position) * 390px)) translateZ(calc(var(--card-distance) * -150px)) rotateY(calc(var(--card-position) * -8deg)) scale(calc(1 - var(--card-distance) * .12));filter:grayscale(calc(var(--card-distance) * .55)) brightness(calc(1 - var(--card-distance) * .15));pointer-events:none;background:#04090d;border:1px solid #58e6ff29;border-radius:1px;transition:transform .5s cubic-bezier(.22,.8,.24,1),opacity .35s,filter .5s,border-color .5s,box-shadow .5s;position:absolute;overflow:hidden}.project-card--filtered-out{visibility:hidden;opacity:0!important;pointer-events:none!important;transform:translateY(12px)scale(.94)!important}.project-card--active{z-index:10;opacity:1;filter:none;pointer-events:auto;border-color:#58e6ffb8;box-shadow:0 0 4px #58e6ff2b,0 0 16px #58e6ff0e}.project-card--active:before{content:"";z-index:10;pointer-events:none;background:linear-gradient(90deg,#0000,#d8f7ffbf,#0000);width:100%;height:1px;position:absolute;top:0;left:0}.project-card--hidden{opacity:0;visibility:hidden}.project-image{image-rendering:auto;background:linear-gradient(#0f2331eb,#040a10fa) 50%/cover;justify-content:center;align-items:center;width:100%;height:74%;min-height:0;display:flex;position:relative;overflow:hidden}.project-image:before{content:"";pointer-events:none;opacity:.14;background-image:linear-gradient(#86d7f01f 1px,#0000 1px);background-size:100% 5px;position:absolute;inset:0}.project-image:after{content:"";pointer-events:none;background:linear-gradient(90deg,#1c5d7814,#0000 32% 68%,#58e6ff14);position:absolute;inset:0}.project-placeholder{z-index:2;color:#a7cfdf47;letter-spacing:.13em;font-family:Pixelify Sans,monospace;font-size:10px;font-weight:400;position:relative}.project-information{box-sizing:border-box;background:linear-gradient(#050b10,#020608);border-top:1px solid #58e6ff1f;grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr) auto;gap:7px 14px;height:26%;min-height:105px;padding:16px 18px;display:grid}.project-information h2{color:#d8f7fff0;letter-spacing:.025em;grid-column:1;margin:0;font-family:Pixelify Sans,monospace;font-size:13px;font-weight:400;line-height:1.3}.project-information p{color:#a3c5d594;grid-column:1;margin:0;font-family:Share Tech Mono,monospace;font-size:14px;line-height:1.28;overflow:hidden}.project-information span{color:#84b7cb94;grid-area:1/2/span 2;align-self:end;font-family:Share Tech Mono,monospace;font-size:13px}.projects-controls{z-index:20;gap:68px;display:flex;position:absolute;bottom:28px;left:50%;transform:translate(-50%)}.project-arrow{color:#8bc0d58f;background:0 0;border:0;width:48px;height:36px;padding:0;font-family:Pixelify Sans,monospace;font-size:24px;font-weight:400;line-height:1;transition:color .17s,transform .17s,text-shadow .17s,filter .17s;position:relative}.project-arrow:before{content:"";background:#58e6ff3d;width:15px;height:1px;transition:width .17s,background .17s;position:absolute;top:50%}.project-arrow--previous:before{right:34px}.project-arrow--next:before{left:34px}.project-arrow:hover{color:#eafaff;filter:brightness(1.3);text-shadow:0 0 4px #d8f7ffe6,0 0 9px #58e6ff8c}.project-arrow--previous:hover{transform:translate(-3px)}.project-arrow--next:hover{transform:translate(3px)}@keyframes projects-stars-blink{0%,42%{opacity:.13}43%,70%{opacity:.23}71%,to{opacity:.17}}@media (width<=1200px){.projects-filters{gap:7px 18px;width:min(900px,74vw)}.projects-filter{font-size:9px}.project-card{width:min(320px,62vw);transform:translateX(calc(var(--card-position) * 330px)) translateZ(calc(var(--card-distance) * -140px)) rotateY(calc(var(--card-position) * -7deg)) scale(calc(1 - var(--card-distance) * .12))}}@media (width>=601px) and (width<=1024px) and (orientation:portrait){.projects-back-button{font-size:11px;top:20px;left:22px}.projects-filters{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px 20px;width:calc(100% - 40px);max-width:760px;padding:0;display:flex;top:62px;left:50%;transform:translate(-50%)}.projects-filter{letter-spacing:.07em;font-size:9px}.projects-slider{top:122px;bottom:86px}.project-card{width:min(360px,68vw);height:min(520px,62svh);min-height:420px;transform:translateX(calc(var(--card-position) * 310px)) translateZ(calc(var(--card-distance) * -150px)) rotateY(calc(var(--card-position) * -6deg)) scale(calc(1 - var(--card-distance) * .13))}}@media (width<=600px) and (orientation:portrait){.projects-back-button{gap:6px;font-size:10px;top:18px;left:16px}.back-arrow{font-size:11px}.projects-filters{text-align:center;flex-flow:wrap;place-content:center;align-items:center;gap:10px 14px;width:calc(100% - 24px);max-width:430px;padding:0;display:flex;top:56px;left:50%;overflow:visible;transform:translate(-50%)}.projects-filter{letter-spacing:.045em;white-space:nowrap;text-align:center;flex:none;min-width:0;margin:0;padding:4px 1px 7px;font-size:7px;line-height:1}.projects-filter--active:before{left:-5px}.projects-slider{perspective:800px;top:116px;bottom:78px}.project-card{width:min(82vw,330px);height:min(500px,57svh);min-height:350px;transform:translateX(calc(var(--card-position) * 235px)) translateZ(calc(var(--card-distance) * -120px)) rotateY(calc(var(--card-position) * -5deg)) scale(calc(1 - var(--card-distance) * .15))}.project-image{height:72%}.project-information{gap:6px 10px;height:28%;min-height:100px;padding:14px 15px}.project-information h2{font-size:12px}.project-information p{font-size:12px;line-height:1.32}.project-information span{font-size:11px}.projects-controls{gap:50px;bottom:20px}.project-arrow{width:44px;height:34px;font-size:22px}}@media (width<=380px) and (orientation:portrait){.projects-filters{place-content:center;gap:9px 10px;width:calc(100% - 16px);max-width:340px;top:54px}.projects-filter{letter-spacing:.025em;padding:4px 0 6px;font-size:6px}.projects-slider{top:112px;bottom:72px}.project-card{width:82vw;height:min(455px,56svh);min-height:340px;transform:translateX(calc(var(--card-position) * 205px)) translateZ(calc(var(--card-distance) * -110px)) rotateY(calc(var(--card-position) * -4deg)) scale(calc(1 - var(--card-distance) * .16))}.project-information{padding:12px 13px}.project-information h2,.project-information p{font-size:11px}}@media (height<=520px) and (width<=1000px) and (orientation:landscape){.projects-back-button{font-size:9px;top:16px;left:18px}.projects-filters{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 14px;width:min(650px,70vw);padding:0;display:flex;top:14px;left:50%;transform:translate(-50%)}.projects-filter{letter-spacing:.04em;padding:3px 0 5px;font-size:6.5px}.projects-slider{perspective:900px;top:60px;bottom:46px}.project-card{width:min(250px,29vw);height:min(310px,70svh);min-height:240px;transform:translateX(calc(var(--card-position) * 250px)) translateZ(calc(var(--card-distance) * -110px)) rotateY(calc(var(--card-position) * -5deg)) scale(calc(1 - var(--card-distance) * .13))}.project-image{height:68%}.project-information{gap:4px 8px;height:32%;min-height:78px;padding:9px 11px}.project-information h2{font-size:9px}.project-information p{font-size:9px;line-height:1.18}.project-information span{font-size:9px}.projects-controls{gap:44px;bottom:7px}.project-arrow{width:38px;height:30px;font-size:18px}}@media (width>=601px) and (width<=900px) and (height>=521px) and (height<=850px){.projects-filters{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 16px;width:calc(100% - 28px);padding:0;display:flex;top:56px;left:50%;transform:translate(-50%)}.projects-filter{font-size:7px}.projects-slider{top:108px;bottom:66px}.project-card{width:min(310px,48vw);height:min(430px,58svh);min-height:325px;transform:translateX(calc(var(--card-position) * 270px)) translateZ(calc(var(--card-distance) * -125px)) rotateY(calc(var(--card-position) * -5deg)) scale(calc(1 - var(--card-distance) * .14))}.projects-controls{bottom:16px}}@media (hover:none){.projects-filter:hover{color:#7ea9be80;filter:none;text-shadow:none}.projects-filter--active:hover{color:#d8f7ff;text-shadow:0 0 4px #d8f7ff80,0 0 8px #58e6ff47}.project-arrow:hover{color:#8bc0d58f;filter:none;text-shadow:none;transform:none}}@media (prefers-reduced-motion:reduce){.projects-stars{animation:none}.project-card,.projects-filter,.project-arrow{transition:none}}.project-window-overlay{z-index:5000;box-sizing:border-box;opacity:0;pointer-events:auto;background:#000307c2;justify-content:center;align-items:center;padding:5vh 5vw;transition:opacity .22s,padding .26s;display:flex;position:fixed;inset:0}.project-window-overlay[hidden]{display:none}.project-window-overlay--visible{opacity:1}.project-window{box-sizing:border-box;opacity:0;transform-origin:50%;background:#05090d;border:1px solid #58e6ff94;border-radius:1px;grid-template-rows:36px minmax(0,1fr) 28px;width:min(1450px,88vw);height:86vh;transition:width .26s,height .26s,opacity .22s,transform .26s,border-color .26s,box-shadow .26s;display:grid;position:relative;overflow:hidden;transform:scale(.975)translateY(8px);box-shadow:0 0 8px #58e6ff1a,0 18px 60px #000000b8}.project-window--visible{opacity:1;transform:scale(1)translateY(0)}.project-window-overlay--maximized{padding:0}.project-window.project-window--maximized{width:100vw;max-width:none;height:100vh;max-height:none;box-shadow:none;border:0;border-radius:0;transform:scale(1)translateY(0)}.project-window-header{z-index:20;box-sizing:border-box;-webkit-user-select:none;user-select:none;background:linear-gradient(#08131c,#061018);border-bottom:1px solid #58e6ff3d;justify-content:space-between;align-items:center;height:36px;padding:0 8px 0 14px;display:flex;position:relative}.project-window-title{letter-spacing:.12em;text-transform:uppercase;color:#d8f7ffd1;text-shadow:0 0 4px #58e6ff1f;align-items:center;gap:9px;min-width:0;font-family:Pixelify Sans,monospace;font-size:10px;font-weight:400;line-height:1;display:flex}.project-window-title-dot{background:#58e6ff;flex:none;width:4px;height:4px;box-shadow:0 0 5px #58e6ffa6}.project-window-actions{align-items:stretch;height:100%;margin-left:auto;display:flex}.project-window-action{color:#96c3d794;background:0 0;border:0;justify-content:center;align-items:center;width:36px;height:100%;padding:0;font-family:Pixelify Sans,monospace;font-size:14px;font-weight:400;line-height:1;transition:color .15s,background .15s,text-shadow .15s,filter .15s,transform .1s;display:flex;position:relative}.project-window-action:hover{color:#eafaff;filter:brightness(1.2);text-shadow:0 0 4px #d8f7ffb8,0 0 8px #58e6ff73;background:#58e6ff12}.project-window-action:active{transform:scale(.9)}.project-window-close:hover{color:#fff;text-shadow:0 0 5px #d8f7ffd9,0 0 10px #58e6ff8c;background:#58e6ff1a}.project-window-content{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#58e6ff57 #04080b;background:#090d11;min-width:0;min-height:0;position:relative;overflow:hidden auto}.project-window-content::-webkit-scrollbar{width:7px}.project-window-content::-webkit-scrollbar-track{background:#04080b}.project-window-content::-webkit-scrollbar-thumb{background:#58e6ff47;border:2px solid #04080b}.project-window-content::-webkit-scrollbar-thumb:hover{background:#58e6ff8c}.project-document{box-sizing:border-box;flex-direction:column;align-items:center;gap:38px;width:100%;padding:48px 0 65px;display:flex;position:relative}.project-document-page{background:#fff;flex:none;width:min(1180px,86%);transition:box-shadow .22s;display:block;position:relative;overflow:hidden;box-shadow:0 8px 30px #0000007a}.project-document-page:hover{box-shadow:0 10px 40px #00000094}.project-document-image{object-fit:contain;image-rendering:auto;-webkit-user-select:none;user-select:none;pointer-events:none;width:100%;height:auto;margin:0;padding:0;display:block}.project-document-page--video{box-shadow:none;background:#05090d;justify-content:center;align-items:center;display:flex}.project-document-page--video:hover{box-shadow:none}.project-document-video{box-sizing:border-box;object-fit:contain;object-position:center;background:#05090d;border:0;outline:0;width:100%;max-width:100%;height:auto;max-height:100%;margin:0;padding:0;display:block}.project-window-content:has(.project-document-page--video:only-child){background:#05090d;overflow:hidden}.project-document:has(>.project-document-page--video:only-child){justify-content:center;align-items:stretch;gap:0;width:100%;height:100%;min-height:100%;margin:0;padding:0}.project-document>.project-document-page--video:only-child{width:100%;max-width:none;height:100%;min-height:0;box-shadow:none;background:#05090d;flex:auto;justify-content:center;align-items:center;margin:0;padding:0;display:flex}.project-document>.project-document-page--video:only-child .project-document-video{object-fit:contain;object-position:center;width:100%;max-width:100%;height:100%;max-height:100%}.project-document-empty{letter-spacing:.14em;color:#82b7cc6b;justify-content:center;align-items:center;width:100%;min-height:55vh;font-family:Share Tech Mono,monospace;font-size:11px;display:flex}.project-window-footer{z-index:20;box-sizing:border-box;letter-spacing:.14em;text-transform:uppercase;color:#82b7cc80;-webkit-user-select:none;user-select:none;background:linear-gradient(#050b10,#03070a);border-top:1px solid #58e6ff29;justify-content:space-between;align-items:center;height:28px;padding:0 14px;font-family:Share Tech Mono,monospace;font-size:8px;line-height:1;display:flex;position:relative}.project-window--maximized .project-document{gap:42px;padding-top:45px;padding-bottom:70px}.project-window--maximized .project-document-page{width:min(1450px,88%)}.project-window--maximized .project-document:has(>.project-document-page--video:only-child){gap:0;width:100%;height:100%;padding:0}.project-window--maximized .project-document>.project-document-page--video:only-child{width:100%;max-width:none;height:100%}@media (width<=900px){.project-window-overlay{padding:4vh 4vw}.project-window{width:92vw;height:88vh}.project-window-overlay--maximized{padding:0}.project-window.project-window--maximized{width:100vw;height:100vh}.project-document{gap:30px;padding:36px 0 50px}.project-document-page{width:90%}.project-document:has(>.project-document-page--video:only-child){gap:0;width:100%;height:100%;padding:0}.project-document>.project-document-page--video:only-child{width:100%;height:100%}}@media (width<=600px){.project-window-overlay{padding:3vh 3vw}.project-window{grid-template-rows:34px minmax(0,1fr) 26px;width:94vw;height:90vh}.project-window-overlay--maximized{padding:0}.project-window.project-window--maximized{width:100vw;height:100vh}.project-window-header{height:34px;padding-left:10px}.project-window-title{gap:7px;font-size:9px}.project-window-action{width:33px;font-size:13px}.project-document{gap:22px;padding:25px 0 40px}.project-document-page{width:94%}.project-window--maximized .project-document-page{width:96%}.project-window-content:has(.project-document-page--video:only-child){overflow:hidden}.project-document:has(>.project-document-page--video:only-child){gap:0;width:100%;height:100%;min-height:100%;padding:0}.project-document>.project-document-page--video:only-child{width:100%;max-width:none;height:100%}.project-window--maximized .project-document>.project-document-page--video:only-child{width:100%;height:100%}.project-window-footer{height:26px;padding:0 10px;font-size:7px}}@media (prefers-reduced-motion:reduce){.project-window-overlay,.project-window,.project-window-action,.project-document-page{transition:none}}.project-magnifier{z-index:390000;box-sizing:border-box;pointer-events:none;opacity:0;visibility:hidden;will-change:left, top, background-position;background-color:#fff;background-repeat:no-repeat;border:1px solid #58e6ffe0;border-radius:2px;width:140px;height:140px;transition:opacity .1s,visibility .1s,transform .12s;position:fixed;top:0;left:0;overflow:hidden;transform:translate(-50%,-50%)scale(.92);box-shadow:0 0 5px #58e6ff52,0 0 14px #58e6ff1f,0 8px 24px #00000047}.project-magnifier--visible{opacity:1;visibility:visible;transform:translate(-50%,-50%)scale(1)}.project-magnifier:before{content:"";z-index:5;pointer-events:none;border:1px solid #58e6ff2e;position:absolute;inset:4px}.project-magnifier:after{content:"";z-index:6;pointer-events:none;opacity:.68;background:linear-gradient(90deg,#d8f7ff 0 7px,#0000 7px) 0 0/18px 1px no-repeat,linear-gradient(#d8f7ff 0 7px,#0000 7px) 0 0/1px 18px no-repeat,linear-gradient(270deg,#d8f7ff 0 7px,#0000 7px) 100% 0/18px 1px no-repeat,linear-gradient(#d8f7ff 0 7px,#0000 7px) 100% 0/1px 18px no-repeat,linear-gradient(90deg,#d8f7ff 0 7px,#0000 7px) 0 100%/18px 1px no-repeat,linear-gradient(0deg,#d8f7ff 0 7px,#0000 7px) 0 100%/1px 18px no-repeat,linear-gradient(270deg,#d8f7ff 0 7px,#0000 7px) 100% 100%/18px 1px no-repeat,linear-gradient(0deg,#d8f7ff 0 7px,#0000 7px) 100% 100%/1px 18px no-repeat;position:absolute;inset:0}.project-magnifier-crosshair{z-index:10;pointer-events:none;width:20px;height:20px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.project-magnifier-crosshair-horizontal{background:#14a0c88c;width:20px;height:1px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.project-magnifier-crosshair-vertical{background:#14a0c88c;width:1px;height:20px;position:absolute;top:0;left:50%;transform:translate(-50%)}.project-magnifier-crosshair-dot{background:#58e6ff;width:3px;height:3px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 4px #58e6ffcc}.home-cursor.is-magnifying{opacity:0!important}@media (pointer:coarse){.project-magnifier{display:none!important}}@media (prefers-reduced-motion:reduce){.project-magnifier{transition:none}}.publications-page{z-index:100;color:#d8f7ff;opacity:0;background:#000;width:100%;height:100dvh;transition:opacity .22s;position:fixed;inset:0;overflow:hidden}.publications-page[hidden]{display:none}.publications-page--visible{opacity:1}.publications-stars{z-index:1;pointer-events:none;background-image:radial-gradient(circle at 3% 7%,#58e6ff57 0 1px,#0000 1.8px),radial-gradient(circle at 7% 18%,#bef2ff40 0 1px,#0000 1.7px),radial-gradient(circle at 11% 33%,#58e6ff42 0 1px,#0000 1.8px),radial-gradient(circle at 14% 52%,#bef2ff30 0 1px,#0000 1.7px),radial-gradient(circle at 18% 74%,#58e6ff40 0 1px,#0000 1.8px),radial-gradient(circle at 22% 12%,#bef2ff38 0 1px,#0000 1.7px),radial-gradient(circle at 25% 28%,#58e6ff33 0 .9px,#0000 1.5px),radial-gradient(circle at 29% 47%,#bef2ff3b 0 1px,#0000 1.7px),radial-gradient(circle at 32% 66%,#58e6ff38 0 1px,#0000 1.7px),radial-gradient(circle at 36% 87%,#bef2ff33 0 .9px,#0000 1.5px),radial-gradient(circle at 39% 16%,#58e6ff3d 0 1px,#0000 1.7px),radial-gradient(circle at 42% 36%,#bef2ff33 0 1px,#0000 1.7px),radial-gradient(circle at 46% 57%,#58e6ff38 0 .9px,#0000 1.5px),radial-gradient(circle at 49% 81%,#bef2ff30 0 1px,#0000 1.7px),radial-gradient(circle at 53% 9%,#58e6ff3d 0 1px,#0000 1.7px),radial-gradient(circle at 57% 25%,#bef2ff33 0 .9px,#0000 1.5px),radial-gradient(circle at 60% 44%,#58e6ff3b 0 1px,#0000 1.7px),radial-gradient(circle at 64% 70%,#bef2ff33 0 1px,#0000 1.7px),radial-gradient(circle at 68% 89%,#58e6ff33 0 .9px,#0000 1.5px),radial-gradient(circle at 71% 15%,#bef2ff3d 0 1px,#0000 1.7px),radial-gradient(circle at 74% 34%,#58e6ff38 0 1px,#0000 1.7px),radial-gradient(circle at 78% 55%,#bef2ff38 0 .9px,#0000 1.5px),radial-gradient(circle at 81% 76%,#58e6ff3d 0 1px,#0000 1.7px),radial-gradient(circle at 84% 10%,#bef2ff30 0 1px,#0000 1.7px),radial-gradient(circle at 87% 29%,#58e6ff3d 0 .9px,#0000 1.5px),radial-gradient(circle at 90% 48%,#bef2ff3b 0 1px,#0000 1.7px),radial-gradient(circle at 93% 67%,#58e6ff36 0 1px,#0000 1.7px),radial-gradient(circle at 96% 86%,#bef2ff33 0 .9px,#0000 1.5px),radial-gradient(circle at 5% 61%,#58e6ff26 0 .7px,#0000 1.25px),radial-gradient(circle at 9% 88%,#bef2ff26 0 .7px,#0000 1.25px),radial-gradient(circle at 16% 22%,#58e6ff24 0 .7px,#0000 1.25px),radial-gradient(circle at 20% 41%,#bef2ff24 0 .7px,#0000 1.25px),radial-gradient(circle at 27% 78%,#58e6ff24 0 .7px,#0000 1.25px),radial-gradient(circle at 34% 7%,#bef2ff26 0 .7px,#0000 1.25px),radial-gradient(circle at 38% 62%,#58e6ff24 0 .7px,#0000 1.25px),radial-gradient(circle at 44% 91%,#bef2ff24 0 .7px,#0000 1.25px),radial-gradient(circle at 51% 32%,#58e6ff24 0 .7px,#0000 1.25px),radial-gradient(circle at 55% 67%,#bef2ff24 0 .7px,#0000 1.25px),radial-gradient(circle at 62% 11%,#58e6ff24 0 .7px,#0000 1.25px),radial-gradient(circle at 66% 51%,#bef2ff24 0 .7px,#0000 1.25px),radial-gradient(circle at 72% 82%,#58e6ff24 0 .7px,#0000 1.25px),radial-gradient(circle at 76% 23%,#bef2ff24 0 .7px,#0000 1.25px),radial-gradient(circle at 82% 64%,#58e6ff24 0 .7px,#0000 1.25px),radial-gradient(circle at 88% 91%,#bef2ff24 0 .7px,#0000 1.25px),radial-gradient(circle at 94% 16%,#58e6ff24 0 .7px,#0000 1.25px);position:absolute;inset:0;overflow:hidden}.publications-stars:before{content:"";pointer-events:none;mix-blend-mode:screen;opacity:.24;filter:drop-shadow(0 0 5px #58e6ff94);background-image:radial-gradient(circle at 4% 26%,#58e6ff 0 1.5px,#0000 2.5px),radial-gradient(circle at 10% 11%,#d8f7ff 0 1.25px,#0000 2.2px),radial-gradient(circle at 17% 47%,#58e6ff 0 1.45px,#0000 2.4px),radial-gradient(circle at 23% 71%,#d8f7ff 0 1.3px,#0000 2.3px),radial-gradient(circle at 30% 19%,#58e6ff 0 1.4px,#0000 2.4px),radial-gradient(circle at 37% 52%,#d8f7ff 0 1.3px,#0000 2.3px),radial-gradient(circle at 43% 83%,#58e6ff 0 1.45px,#0000 2.4px),radial-gradient(circle at 50% 13%,#d8f7ff 0 1.3px,#0000 2.3px),radial-gradient(circle at 56% 41%,#58e6ff 0 1.45px,#0000 2.4px),radial-gradient(circle at 63% 75%,#d8f7ff 0 1.25px,#0000 2.2px),radial-gradient(circle at 69% 21%,#58e6ff 0 1.45px,#0000 2.4px),radial-gradient(circle at 76% 59%,#d8f7ff 0 1.3px,#0000 2.3px),radial-gradient(circle at 82% 32%,#58e6ff 0 1.4px,#0000 2.4px),radial-gradient(circle at 89% 72%,#d8f7ff 0 1.3px,#0000 2.3px),radial-gradient(circle at 95% 42%,#58e6ff 0 1.5px,#0000 2.5px);animation:2.6s ease-in-out infinite publications-twinkle-a;position:absolute;inset:0}.publications-stars:after{content:"";pointer-events:none;mix-blend-mode:screen;opacity:.2;filter:drop-shadow(0 0 5px #58e6ff80);background-image:radial-gradient(circle at 7% 82%,#d8f7ff 0 1.3px,#0000 2.3px),radial-gradient(circle at 14% 58%,#58e6ff 0 1.4px,#0000 2.4px),radial-gradient(circle at 21% 29%,#d8f7ff 0 1.25px,#0000 2.2px),radial-gradient(circle at 28% 89%,#58e6ff 0 1.4px,#0000 2.4px),radial-gradient(circle at 35% 34%,#d8f7ff 0 1.3px,#0000 2.3px),radial-gradient(circle at 41% 67%,#58e6ff 0 1.45px,#0000 2.4px),radial-gradient(circle at 48% 24%,#d8f7ff 0 1.3px,#0000 2.3px),radial-gradient(circle at 54% 88%,#58e6ff 0 1.45px,#0000 2.4px),radial-gradient(circle at 60% 57%,#d8f7ff 0 1.3px,#0000 2.3px),radial-gradient(circle at 67% 7%,#58e6ff 0 1.45px,#0000 2.4px),radial-gradient(circle at 74% 43%,#d8f7ff 0 1.3px,#0000 2.3px),radial-gradient(circle at 80% 86%,#58e6ff 0 1.4px,#0000 2.4px),radial-gradient(circle at 87% 17%,#d8f7ff 0 1.3px,#0000 2.3px),radial-gradient(circle at 92% 54%,#58e6ff 0 1.45px,#0000 2.4px),radial-gradient(circle at 98% 77%,#d8f7ff 0 1.25px,#0000 2.2px);animation:3.1s ease-in-out infinite publications-twinkle-b;position:absolute;inset:0}@keyframes publications-twinkle-a{0%{opacity:.12}15%{opacity:.7}31%{opacity:.2}47%{opacity:.88}63%{opacity:.16}80%{opacity:.62}to{opacity:.12}}@keyframes publications-twinkle-b{0%{opacity:.65}17%{opacity:.14}36%{opacity:.76}54%{opacity:.22}73%{opacity:.92}88%{opacity:.2}to{opacity:.65}}.publications-shooting-star{z-index:3;opacity:0;pointer-events:none;transform-origin:100%;filter:drop-shadow(0 0 4px #58e6ff66);background:linear-gradient(90deg,#0000 0%,#58e6ff0f 20%,#58e6ff52 65%,#d8f7fff2 100%);width:115px;height:1px;position:absolute}.publications-shooting-star:after{content:"";background:#d8f7ff;border-radius:50%;width:3px;height:3px;position:absolute;top:50%;right:-1px;transform:translateY(-50%);box-shadow:0 0 5px #d8f7ffe6,0 0 10px #58e6ff80}.publications-shooting-star--1{animation:10s linear infinite publications-shoot-1;top:20%;left:-150px}.publications-shooting-star--2{animation:14s linear infinite publications-shoot-2;top:60%;left:-160px}.publications-shooting-star--3{width:90px;animation:17s linear infinite publications-shoot-3;top:-100px;left:58%}@keyframes publications-shoot-1{0%,65%{opacity:0;transform:translate(0,0)rotate(17deg)}67%{opacity:.15}70%{opacity:.9}77%{opacity:.55}84%{opacity:0;transform:translate(760px,220px)rotate(17deg)}to{opacity:0}}@keyframes publications-shoot-2{0%,72%{opacity:0;transform:translate(0,0)rotate(14deg)}75%{opacity:.8}83%{opacity:.55}90%{opacity:0;transform:translate(700px,200px)rotate(14deg)}to{opacity:0}}@keyframes publications-shoot-3{0%,78%{opacity:0;transform:translate(0,0)rotate(42deg)}80%{opacity:.75}87%{opacity:.48}93%{opacity:0;transform:translate(390px,390px)rotate(42deg)}to{opacity:0}}.publications-back-button{z-index:30;color:#98c4d7bd;letter-spacing:.11em;cursor:none;background:0 0;border:0;align-items:center;gap:9px;margin:0;padding:6px 3px;font-family:Pixelify Sans,monospace;font-size:14px;font-weight:400;line-height:1;transition:color .17s,text-shadow .17s,transform .17s;display:inline-flex;position:absolute;top:24px;left:28px}.publications-back-button:hover{color:#f0fbff;text-shadow:0 0 4px #d8f7ffbf,0 0 9px #58e6ff59;transform:translate(-2px)}.publications-back-button:active{transform:translate(-1px)scale(.96)}.publications-back-arrow{color:#58e6ff;text-shadow:0 0 5px #58e6ff66;font-size:18px;line-height:.8}.publications-library{z-index:10;box-sizing:border-box;justify-content:center;align-items:center;padding:80px 60px 50px;display:flex;position:absolute;inset:0;overflow:hidden}.publications-library:before{content:"";pointer-events:none;filter:blur(20px);background:radial-gradient(#1353681f 0%,#0925320f 45%,#0000 73%);border-radius:50%;width:min(900px,65vw);height:min(500px,50vh);position:absolute;top:55%;left:50%;transform:translate(-50%,-50%)}.publications-books{z-index:10;transform-origin:50%;flex-wrap:nowrap;justify-content:center;align-items:flex-end;gap:72px;display:flex;position:relative;transform:scale(1.08)}.publication-book{width:var(--book-width);height:var(--book-height);cursor:none;background:0 0;border:0;outline:none;flex:none;margin:0;padding:0;transition:transform .28s cubic-bezier(.22,.8,.24,1),opacity .22s,filter .22s;position:relative;overflow:visible}.publication-book-scene{perspective:1800px;perspective-origin:50%;width:100%;height:100%;transform-style:preserve-3d;position:relative;overflow:visible}.publication-book-aura{z-index:-8;pointer-events:none;filter:blur(13px);opacity:.82;background:radial-gradient(#9bedff30 0%,#58e6ff24 18%,#2c9abd12 39%,#10445906 58%,#0000 76%);width:125%;height:105px;transition:opacity .26s,transform .26s,filter .26s;position:absolute;bottom:-58px;left:50%;transform:translate(-50%)scaleX(1)}.publication-book-aura:after{content:"";filter:blur(2px);background:linear-gradient(90deg,#0000,#58e6ff1f,#c3f4ff42,#58e6ff1f,#0000);width:68%;height:2px;position:absolute;top:39%;left:50%;transform:translate(-50%)}.publication-book-model{z-index:5;transform-style:preserve-3d;transform-origin:50%;transition:transform .38s cubic-bezier(.22,.8,.24,1);position:absolute;inset:0;transform:rotateX(-3deg)rotateY(18deg)}.book-face{box-sizing:border-box;transform-style:preserve-3d;backface-visibility:hidden;position:absolute;top:50%;left:50%}.book-face--front{width:var(--book-width);height:var(--book-height);margin-left:calc(var(--book-width) / -2);margin-top:calc(var(--book-height) / -2);transform:translateZ(calc(var(--book-depth) / 2));background:#fff;border:1px solid #ffffff8f;overflow:hidden;box-shadow:inset 7px 0 8px #00000006,0 0 0 1px #58e6ff0d,0 15px 32px #00000042}.publication-cover-image{object-fit:fill;-webkit-user-select:none;user-select:none;pointer-events:none;image-rendering:auto;width:100%;height:100%;display:block}.book-face--front:after{content:"";pointer-events:none;opacity:.4;background:linear-gradient(90deg,#0000001c,#00000006,#0000);width:5px;position:absolute;top:0;bottom:0;left:8px}.book-face--back{width:var(--book-width);height:var(--book-height);margin-left:calc(var(--book-width) / -2);margin-top:calc(var(--book-height) / -2);transform:rotateY(180deg) translateZ(calc(var(--book-depth) / 2));background:#e7e7e2;border:1px solid #00000014}.book-face--spine{width:var(--book-depth);height:var(--book-height);margin-left:calc(var(--book-depth) / -2);margin-top:calc(var(--book-height) / -2);transform:rotateY(-90deg) translateZ(calc(var(--book-width) / 2));background:linear-gradient(90deg,#a4a6a1 0%,#c2c3be 10%,#dadbd6 24%,#eeeeea 40%,#f8f8f4 50%,#ebebe7 61%,#d2d3ce 80%,#acaea9 100%);border-left:1px solid #00000024;border-right:1px solid #ffffff80;border-radius:4px 0 0 4px;justify-content:center;align-items:center;display:flex;overflow:hidden;box-shadow:inset 5px 0 7px #0000001c,inset -3px 0 5px #ffffff5c}.publication-spine-title{color:#2a353aeb;letter-spacing:.1em;white-space:nowrap;writing-mode:vertical-rl;-webkit-user-select:none;user-select:none;font-family:Pixelify Sans,monospace;font-size:9px;font-weight:400;line-height:1;transform:rotate(180deg)}.book-face--pages-right{width:var(--book-depth);height:calc(var(--book-height) - 10px);margin-left:calc(var(--book-depth) / -2);margin-top:calc(( var(--book-height) - 10px ) / -2);transform:rotateY(90deg) translateZ(calc(var(--book-width) / 2));background:repeating-linear-gradient(#f9f9f6 0 2px,#deded9 3px,#f4f4f0 4px);border-left:1px solid #ffffff94;border-right:1px solid #00000014;box-shadow:inset -2px 0 4px #0000000d}.book-face--pages-top{width:calc(var(--book-width) - 10px);height:var(--book-depth);margin-left:calc(( var(--book-width) - 10px ) / -2);margin-top:calc(var(--book-depth) / -2);transform:rotateX(90deg) translateZ(calc(var(--book-height) / 2));background:repeating-linear-gradient(90deg,#fafaf7 0 3px,#deded9 4px);border-top:1px solid #ffffffb8;border-bottom:1px solid #00000012;box-shadow:inset 0 1px 2px #ffffff59}.book-face--pages-bottom{width:calc(var(--book-width) - 10px);height:var(--book-depth);margin-left:calc(( var(--book-width) - 10px ) / -2);margin-top:calc(var(--book-depth) / -2);transform:rotateX(-90deg) translateZ(calc(var(--book-height) / 2));opacity:.86;background:#d6d7d2}.publication-book-shadow{z-index:-7;pointer-events:none;opacity:.72;background:radial-gradient(#000c 0%,#00000061 42%,#0000 77%);width:94%;height:38px;transition:opacity .22s,transform .22s;position:absolute;bottom:-38px;left:47%;transform:translate(-50%)skew(-10deg)}.publication-book:hover{transform:translateY(-12px)scale(1.018)}.publication-book:hover .publication-book-model{transform:rotateX(-2deg)rotateY(10deg)translateZ(16px)}.publication-book:hover .publication-book-aura{opacity:1;filter:blur(15px);transform:translate(-50%)scaleX(1.12)scaleY(1.08)}.publication-book:hover .book-face--front{box-shadow:inset 7px 0 8px #00000006,0 0 0 1px #58e6ff61,0 0 14px #58e6ff1a,0 20px 38px #00000052}.publication-book:hover .book-face--spine{box-shadow:inset 5px 0 7px #0000001c,inset -3px 0 5px #ffffff5c,0 0 7px #58e6ff24}.publication-book:hover .publication-book-shadow{opacity:.42;transform:translate(-50%)translateY(9px)skew(-10deg)scaleX(.84)}.publications-books:has(.publication-book:hover) .publication-book:not(:hover){opacity:.6;filter:brightness(.78)}.publication-book:active{transform:translateY(-7px)scale(.99)}@media (width<=1100px){.publications-library{padding:70px 35px 42px}.publications-books{gap:52px;transform:scale(.88)}}@media (width>=701px) and (width<=1000px) and (orientation:portrait){.publications-back-button{top:22px;left:24px}.publications-library{padding:70px 24px 36px}.publications-books{gap:44px;transform:scale(.78)}}@media (width<=700px) and (orientation:portrait){.publications-back-button{gap:7px;font-size:11px;top:18px;left:16px}.publications-back-arrow{font-size:15px}.publications-library{padding:58px 10px 24px}.publications-books{transform-origin:50%;gap:28px;transform:scale(.64)}.publications-shooting-star{width:76px}.publication-book-aura{height:82px;bottom:-44px}}@media (width<=420px) and (orientation:portrait){.publications-library{padding:54px 8px 20px}.publications-books{gap:24px;transform:scale(.56)}.publications-back-button{left:14px}}@media (width<=360px) and (orientation:portrait){.publications-library{padding:50px 4px 18px}.publications-books{gap:20px;transform:scale(.53)}.publications-back-button{font-size:10px;top:16px;left:12px}.publications-back-arrow{font-size:14px}.publication-book-aura{height:74px;bottom:-40px}}@media (width<=1000px) and (height<=520px) and (orientation:landscape){.publications-back-button{gap:6px;font-size:9px;top:14px;left:16px}.publications-back-arrow{font-size:13px}.publications-library{align-items:center;padding:34px 16px 14px}.publications-books{transform-origin:50%;gap:34px;transform:scale(.68)}.publication-book-aura{height:72px;bottom:-38px}.publications-shooting-star{width:70px}}@media (width<=900px) and (height<=380px) and (orientation:landscape){.publications-library{padding:28px 12px 10px}.publications-books{gap:30px;transform:scale(.6)}.publications-back-button{font-size:8px;top:10px;left:12px}}@media (width>=701px) and (width<=950px) and (height>=521px) and (height<=850px){.publications-library{padding:64px 24px 30px}.publications-books{gap:44px;transform:scale(.78)}}@media (hover:none){.publication-book:hover{transform:none}.publication-book:hover .publication-book-model{transform:rotateX(-3deg)rotateY(18deg)}.publication-book:hover .publication-book-aura{opacity:.82;filter:blur(13px);transform:translate(-50%)scaleX(1)}.publication-book:hover .publication-book-shadow{opacity:.72;transform:translate(-50%)skew(-10deg)}.publications-books:has(.publication-book:hover) .publication-book:not(:hover){opacity:1;filter:none}.publications-back-button:hover{color:#98c4d7bd;text-shadow:none;transform:none}}@media (prefers-reduced-motion:reduce){.publications-page,.publication-book,.publication-book-model,.book-face--front,.publication-book-aura{transition:none}.publications-stars:before,.publications-stars:after,.publications-shooting-star{animation:none}}.publication-viewer-overlay{z-index:180000;box-sizing:border-box;padding-top:max(36px, calc(env(safe-area-inset-top,0px) + 18px));padding-right:max(36px, calc(env(safe-area-inset-right,0px) + 18px));padding-bottom:max(36px, calc(env(safe-area-inset-bottom,0px) + 18px));padding-left:max(36px, calc(env(safe-area-inset-left,0px) + 18px));-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);opacity:0;visibility:hidden;background:#000000c2;justify-content:center;align-items:center;transition:opacity .22s,visibility .22s;display:flex;position:fixed;inset:0}.publication-viewer-overlay[hidden]{display:none}.publication-viewer-overlay--visible{opacity:1;visibility:visible}.publication-viewer{background:#020609fb;border:1px solid #58e6ff61;grid-template-rows:38px minmax(0,1fr) 28px;width:min(1200px,92vw);max-width:100%;height:min(700px,86dvh);max-height:100%;transition:width .28s,height .28s;display:grid;position:relative;overflow:hidden;box-shadow:0 0 0 1px #58e6ff09,0 0 28px #58e6ff0a,0 35px 90px #000000c7}.publication-viewer--fullscreen{width:100%;max-width:none;height:100%;max-height:none}.publication-viewer-header{z-index:100;box-sizing:border-box;background:#02070afe;border-bottom:1px solid #58e6ff29;justify-content:space-between;align-items:center;min-width:0;padding:0 8px 0 14px;display:flex;position:relative}.publication-viewer-header-left{align-items:center;gap:9px;min-width:0;display:flex}.publication-viewer-status-dot{background:#58e6ff;flex:none;width:4px;height:4px;box-shadow:0 0 6px #58e6ffb3}.publication-viewer-header-name{color:#badce8a6;letter-spacing:.1em;white-space:nowrap;text-overflow:ellipsis;min-width:0;font-family:Pixelify Sans,monospace;font-size:13px;font-weight:400;overflow:hidden}.publication-viewer-controls{z-index:120;flex:none;align-items:center;gap:2px;display:flex;position:relative}.publication-viewer-control{color:#86b8cb9e;background:0 0;border:0;flex:none;justify-content:center;align-items:center;width:30px;min-width:30px;height:30px;min-height:30px;padding:0;font-family:Share Tech Mono,monospace;font-size:16px;line-height:1;transition:color .16s,background .16s,text-shadow .16s;display:flex}.publication-viewer-control:hover{color:#effcff;text-shadow:0 0 7px #58e6ff66;background:#58e6ff0e}.publication-viewer-content{grid-template-columns:minmax(0,1.3fr) minmax(330px,.7fr);min-width:0;min-height:0;display:grid;overflow:hidden}.publication-viewer-book-area{isolation:isolate;background:radial-gradient(circle,#58e6ff06,#0000 60%);border-right:1px solid #58e6ff17;justify-content:center;align-items:center;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.publication-viewer-drag-label{z-index:40;color:#699fb366;letter-spacing:.11em;pointer-events:none;font-family:Share Tech Mono,monospace;font-size:12px;position:absolute;bottom:17px;left:18px}.publication-viewer-shadow{z-index:1;pointer-events:none;filter:blur(9px);opacity:.65;background:radial-gradient(#000000ad 0%,#00000042 44%,#0000 75%);width:38%;height:25px;position:absolute;bottom:7%;left:50%;transform:translate(-50%)}.publication-viewer-book-scene{z-index:10;perspective:1900px;perspective-origin:50%;width:min(590px,90%);height:min(590px,86%);transform-style:preserve-3d;touch-action:none;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;display:flex;position:relative}.publication-viewer-book{--viewer-page-depth:calc(var(--viewer-book-depth) - ( var(--viewer-cover-thickness) * 2 ) - 1px);--viewer-page-width:calc(var(--viewer-book-width) - ( var(--viewer-page-inset) * 2 ));--viewer-page-height:calc(var(--viewer-book-height) - ( var(--viewer-page-inset) * 2 ));width:var(--viewer-book-width,340px);height:var(--viewer-book-height,340px);transform-style:preserve-3d;will-change:transform;transition:transform 70ms linear;position:relative;overflow:visible;transform:rotateX(-2deg)rotateY(18deg)}.publication-viewer-book-scene--dragging .publication-viewer-book{transition:none}.viewer-page-block{width:var(--viewer-page-width);height:var(--viewer-page-height);margin-left:calc(var(--viewer-page-width) / -2);margin-top:calc(var(--viewer-page-height) / -2);transform-style:preserve-3d;position:absolute;top:50%;left:50%}.viewer-page-face{box-sizing:border-box;transform-style:preserve-3d;backface-visibility:hidden;position:absolute}.viewer-page-face--front{transform:translateZ(calc(var(--viewer-page-depth) / 2));background:#f2f2ef;inset:0}.viewer-page-face--back{transform:rotateY(180deg) translateZ(calc(var(--viewer-page-depth) / 2));background:#e9e9e5;inset:0}.viewer-page-face--right{width:var(--viewer-page-depth);height:100%;margin-left:calc(var(--viewer-page-depth) / -2);transform:rotateY(90deg) translateZ(calc(var(--viewer-page-width) / 2));background:repeating-linear-gradient(#f8f8f5 0 1px,#e4e4df 1.5px,#f2f2ee 2.5px);top:0;left:50%;box-shadow:inset 2px 0 4px #0000000b}.viewer-page-face--left{width:var(--viewer-page-depth);height:100%;margin-left:calc(var(--viewer-page-depth) / -2);transform:rotateY(-90deg) translateZ(calc(var(--viewer-page-width) / 2));background:#e3e3de;top:0;left:50%}.viewer-page-face--top{width:100%;height:var(--viewer-page-depth);margin-top:calc(var(--viewer-page-depth) / -2);transform:rotateX(90deg) translateZ(calc(var(--viewer-page-height) / 2));background:repeating-linear-gradient(90deg,#f8f8f5 0 1px,#e5e5e0 1.5px,#f2f2ee 2.5px);top:50%;left:0}.viewer-page-face--bottom{width:100%;height:var(--viewer-page-depth);margin-top:calc(var(--viewer-page-depth) / -2);transform:rotateX(-90deg) translateZ(calc(var(--viewer-page-height) / 2));background:repeating-linear-gradient(90deg,#e8e8e4 0 1px,#d7d7d2 1.5px,#e4e4df 2.5px);top:50%;left:0}.viewer-cover-board{width:var(--viewer-book-width);height:var(--viewer-book-height);margin-left:calc(var(--viewer-book-width) / -2);margin-top:calc(var(--viewer-book-height) / -2);transform-style:preserve-3d;position:absolute;top:50%;left:50%}.viewer-cover-board--front{transform:translateZ(calc(( var(--viewer-book-depth) - var(--viewer-cover-thickness) ) / 2))}.viewer-cover-board--back{transform:translateZ(calc(( var(--viewer-book-depth) - var(--viewer-cover-thickness) ) / -2))}.viewer-board-face,.viewer-board-edge{box-sizing:border-box;transform-style:preserve-3d;backface-visibility:hidden;position:absolute}.viewer-board-face--outer-front{transform:translateZ(calc(var(--viewer-cover-thickness) / 2));background:#fff;border-radius:3px 1px 1px 3px;inset:0;overflow:hidden;box-shadow:inset 0 0 0 1px #50504b06,inset 7px 0 9px #00000006}.viewer-board-face--inner-front{transform:rotateY(180deg) translateZ(calc(var(--viewer-cover-thickness) / 2));background:#efefeb;inset:0}.viewer-board-face--outer-back{transform:rotateY(180deg) translateZ(calc(var(--viewer-cover-thickness) / 2));background:#fff;border-radius:3px 1px 1px 3px;inset:0;overflow:hidden;box-shadow:inset 0 0 0 1px #50504b06}.viewer-board-face--inner-back{transform:translateZ(calc(var(--viewer-cover-thickness) / 2));background:#efefeb;inset:0}.publication-viewer-cover-image{object-fit:fill;pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.viewer-cover-hinge{pointer-events:none;opacity:.42;background:linear-gradient(90deg,#32322e17 0%,#32322e09 28%,#ffffff1f 62%,#0000 100%);width:8px;position:absolute;top:0;bottom:0;left:6px}.viewer-board-edge--right{width:var(--viewer-cover-thickness);height:100%;margin-left:calc(var(--viewer-cover-thickness) / -2);transform:rotateY(90deg) translateZ(calc(var(--viewer-book-width) / 2));background:linear-gradient(90deg,#eeeeea,#d2d3ce);top:0;left:50%}.viewer-board-edge--top{width:100%;height:var(--viewer-cover-thickness);margin-top:calc(var(--viewer-cover-thickness) / -2);transform:rotateX(90deg) translateZ(calc(var(--viewer-book-height) / 2));background:linear-gradient(#fafaf7,#deded9);top:50%;left:0}.viewer-board-edge--bottom{width:100%;height:var(--viewer-cover-thickness);margin-top:calc(var(--viewer-cover-thickness) / -2);transform:rotateX(-90deg) translateZ(calc(var(--viewer-book-height) / 2));background:linear-gradient(#ddddd8,#c7c8c3);top:50%;left:0}.viewer-book-spine-shell{transform-style:preserve-3d;pointer-events:none;position:absolute;inset:0}.viewer-book-spine-segment{box-sizing:border-box;transform-style:preserve-3d;backface-visibility:hidden;background:linear-gradient(#fafaf7 0%,#f6f6f2 10%,#f0f0ec 48%,#e9e9e5 90%,#ddddd8 100%);position:absolute;top:50%;left:50%;overflow:hidden;box-shadow:inset 0 0 1px #00000006}.viewer-book-spine-label{box-sizing:border-box;transform-style:preserve-3d;backface-visibility:hidden;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;left:50%}.publication-viewer-spine-title{color:#2d3335b3;letter-spacing:.1em;white-space:nowrap;writing-mode:vertical-rl;-webkit-user-select:none;user-select:none;font-family:Pixelify Sans,monospace;font-size:10px;font-weight:400;line-height:1;transform:rotate(180deg)}.publication-viewer-info{box-sizing:border-box;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#58e6ff38 transparent;min-width:0;height:100%;min-height:0;overflow:hidden auto}.publication-viewer-info-inner{box-sizing:border-box;flex-direction:column;align-items:flex-start;min-height:100%;padding:44px 46px 58px;display:flex}.publication-viewer-info::-webkit-scrollbar{width:5px}.publication-viewer-info::-webkit-scrollbar-track{background:0 0}.publication-viewer-info::-webkit-scrollbar-thumb{background:#58e6ff2b;border-radius:999px}.publication-viewer-info::-webkit-scrollbar-thumb:hover{background:#58e6ff61}.publication-viewer-title{color:#eefafff5;letter-spacing:.045em;max-width:440px;margin:0;font-family:Pixelify Sans,monospace;font-size:clamp(26px,2.5vw,38px);font-weight:400;line-height:1}.publication-viewer-subtitle{color:#aed2dfa3;letter-spacing:.015em;max-width:440px;margin:17px 0 0;font-family:Share Tech Mono,monospace;font-size:12px;line-height:1.5}.publication-viewer-year{color:#58e6ffab;letter-spacing:.15em;margin-top:21px;font-family:Share Tech Mono,monospace;font-size:11px}.publication-viewer-link{color:#58e6ff85;letter-spacing:.12em;border-bottom:1px solid #58e6ff26;align-self:flex-start;align-items:center;gap:7px;margin-top:12px;padding:3px 0;font-family:Share Tech Mono,monospace;font-size:9px;font-weight:400;line-height:1;text-decoration:none;transition:color .16s,border-color .16s,text-shadow .16s;display:inline-flex}.publication-viewer-link:hover{color:#dffaff;text-shadow:0 0 6px #58e6ff4d;border-color:#58e6ffa6}.publication-viewer-link-arrow{color:#58e6ff;font-size:10px}.publication-viewer-link[hidden]{display:none}.publication-viewer-divider{background:#58e6ff52;flex:none;width:35px;height:1px;margin:28px 0;box-shadow:0 0 6px #58e6ff29}.publication-viewer-description{color:#b8cfd8a1;white-space:normal;overflow-wrap:break-word;width:100%;max-width:440px;margin:0;padding:0 0 8px;font-family:Share Tech Mono,monospace;font-size:12px;line-height:1.65}.publication-viewer-footer{z-index:30;color:#6697a95c;letter-spacing:.11em;background:#020609fc;border-top:1px solid #58e6ff17;justify-content:space-between;align-items:center;padding:0 14px;font-family:Share Tech Mono,monospace;font-size:10px;display:flex;position:relative}.publication-viewer--fullscreen .publication-viewer-content{grid-template-columns:minmax(0,1.4fr) minmax(350px,.6fr)}@media (width<=950px) and (orientation:portrait){.publication-viewer{width:min(94vw,760px);height:100%}.publication-viewer-content{grid-template-rows:minmax(270px,42%) minmax(0,58%);grid-template-columns:1fr;overflow:hidden}.publication-viewer-book-area{border-bottom:1px solid #58e6ff17;border-right:0}.publication-viewer-info-inner{padding:30px 34px 46px}}@media (width<=600px) and (orientation:portrait){.publication-viewer-overlay{padding-top:max(24px, calc(env(safe-area-inset-top,0px) + 14px));padding-right:max(10px, env(safe-area-inset-right,0px));padding-bottom:max(14px, calc(env(safe-area-inset-bottom,0px) + 8px));padding-left:max(10px, env(safe-area-inset-left,0px))}.publication-viewer{grid-template-rows:38px minmax(0,1fr) 22px;width:100%;height:100%}.publication-viewer-header{padding:0 4px 0 12px}.publication-viewer-control{width:34px;min-width:34px;height:34px;min-height:34px;font-size:15px}.publication-viewer-header-name{font-size:10px}.publication-viewer-content{grid-template-rows:minmax(235px,38%) minmax(0,62%);grid-template-columns:1fr}.publication-viewer-book-scene{width:88%;height:88%}.publication-viewer-drag-label{font-size:9px;bottom:8px;left:10px}.publication-viewer-info-inner{padding:24px 20px 38px}.publication-viewer-title{font-size:22px}.publication-viewer-subtitle{margin-top:14px;font-size:10px;line-height:1.45}.publication-viewer-year{margin-top:17px;font-size:9px}.publication-viewer-link{margin-top:10px;font-size:8px}.publication-viewer-divider{margin:22px 0}.publication-viewer-description{font-size:10px;line-height:1.58}.publication-viewer-footer{padding:0 10px;font-size:6px}.publication-viewer-spine-title{font-size:8px}}@media (width<=370px) and (orientation:portrait){.publication-viewer-overlay{padding-left:8px;padding-right:8px}.publication-viewer-content{grid-template-rows:minmax(215px,36%) minmax(0,64%)}.publication-viewer-book-scene{width:84%;height:84%}.publication-viewer-info-inner{padding:21px 18px 34px}.publication-viewer-title{font-size:20px}.publication-viewer-subtitle,.publication-viewer-description{font-size:9px}}@media (height<=520px) and (width<=1000px) and (orientation:landscape){.publication-viewer-overlay{padding-top:max(18px, calc(env(safe-area-inset-top,0px) + 10px));padding-right:max(18px, calc(env(safe-area-inset-right,0px) + 10px));padding-bottom:max(14px, calc(env(safe-area-inset-bottom,0px) + 8px));padding-left:max(18px, calc(env(safe-area-inset-left,0px) + 10px))}.publication-viewer{grid-template-rows:34px minmax(0,1fr) 20px;width:100%;height:100%}.publication-viewer-header{padding:0 5px 0 12px}.publication-viewer-control{width:32px;min-width:32px;height:30px;min-height:30px;font-size:13px}.publication-viewer-header-name{font-size:9px}.publication-viewer-content{grid-template-rows:1fr;grid-template-columns:minmax(0,1.12fr) minmax(240px,.88fr);overflow:hidden}.publication-viewer-book-area{border-bottom:0;border-right:1px solid #58e6ff17}.publication-viewer-book-scene{width:86%;height:82%}.publication-viewer-drag-label{font-size:8px;bottom:8px;left:12px}.publication-viewer-info-inner{padding:18px 20px 28px}.publication-viewer-title{font-size:18px}.publication-viewer-subtitle{margin-top:11px;font-size:9px;line-height:1.4}.publication-viewer-year{margin-top:13px;font-size:8px}.publication-viewer-link{margin-top:8px;font-size:7px}.publication-viewer-divider{margin:16px 0}.publication-viewer-description{font-size:8.5px;line-height:1.48}.publication-viewer-footer{font-size:6px}}@media (height<=370px) and (orientation:landscape){.publication-viewer-overlay{padding-top:12px;padding-bottom:10px}.publication-viewer-content{grid-template-columns:minmax(0,1.08fr) minmax(220px,.92fr)}.publication-viewer-info-inner{padding:14px 16px 24px}.publication-viewer-book-scene{width:82%;height:78%}.publication-viewer-title{font-size:16px}}@media (hover:none){.publication-viewer-control:hover{color:#86b8cb9e;text-shadow:none;background:0 0}.publication-viewer-link:hover{color:#58e6ff85;text-shadow:none;border-color:#58e6ff26}}@media (prefers-reduced-motion:reduce){.publication-viewer-overlay,.publication-viewer,.publication-viewer-book{transition:none}}#intro-screen,#intro-screen *,#homepage,#homepage *,#about-page,#about-page *,#contact-page,#contact-page *,#projects-page,#projects-page *,#publications-page,#publications-page *,.page-transition,.page-transition *,#project-window-overlay,#project-window-overlay *,#publication-viewer-overlay,#publication-viewer-overlay *{cursor:none!important}.home-cursor{z-index:400000;box-sizing:border-box;pointer-events:none;opacity:0;transform-origin:50%;will-change:left, top, transform;background:#0310191f;border:1px solid #7ed5ffb8;width:12px;height:12px;transition:width .14s,height .14s,border-color .14s,background .14s,box-shadow .14s,opacity 90ms,transform 90ms;position:fixed;top:0;left:0;transform:translate(-50%,-50%)scale(1);box-shadow:0 0 4px #50b9ff29}.home-cursor-dot{background:#bcedfff0;width:2px;height:2px;transition:background .14s,box-shadow .14s,transform .14s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 4px #78dcff7a}.home-cursor.is-visible{opacity:1}.home-cursor.is-hovering{background:#14506e14;border-color:#d2f6fffa;width:17px;height:17px;box-shadow:0 0 5px #a0e6ff80,0 0 12px #46b4ff38}.home-cursor.is-hovering .home-cursor-dot{background:#f0fbff;transform:translate(-50%,-50%)scale(1.15);box-shadow:0 0 5px #b4f0ffe0,0 0 9px #5ac8ff42}.home-cursor.is-clicking{transform:translate(-50%,-50%)scale(.72)}.home-cursor:before,.home-cursor:after{content:"";opacity:.45;pointer-events:none;width:3px;height:3px;transition:opacity .14s,border-color .14s;position:absolute}.home-cursor:before{border-top:1px solid #78dcff80;border-left:1px solid #78dcff80;top:-2px;left:-2px}.home-cursor:after{border-bottom:1px solid #78dcff80;border-right:1px solid #78dcff80;bottom:-2px;right:-2px}.home-cursor.is-hovering:before,.home-cursor.is-hovering:after{opacity:.9}@media (pointer:coarse){#intro-screen,#intro-screen *,#homepage,#homepage *,#about-page,#about-page *,#contact-page,#contact-page *,#projects-page,#projects-page *,#publications-page,#publications-page *,.page-transition,.page-transition *,#project-window-overlay,#project-window-overlay *,#publication-viewer-overlay,#publication-viewer-overlay *{cursor:auto!important}.home-cursor{display:none!important}}@media (prefers-reduced-motion:reduce){.home-cursor,.home-cursor-dot,.home-cursor:before,.home-cursor:after{transition:none}}.animated-stars{z-index:6;pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.animated-star{left:var(--star-x);top:var(--star-y);width:var(--star-size);height:var(--star-size);opacity:.18;animation:starBlink var(--star-duration) ease-in-out var(--star-delay) infinite;background:#cdebffd9;border-radius:50%;position:absolute;box-shadow:0 0 3px #a0dcff40}@keyframes starBlink{0%,to{opacity:.15;transform:scale(.8);box-shadow:0 0 2px #96d2ff1f}35%{opacity:.3}50%{opacity:.95;transform:scale(1.15);box-shadow:0 0 4px #c8f0ff8c,0 0 8px #64beff38}65%{opacity:.28}}.animated-star--sparkle{background:#eaf9ff;border-radius:0;width:2px;height:2px;animation-name:starSparkle}.animated-star--sparkle:before{content:"";opacity:0;background:linear-gradient(90deg,#0000,#beebff99,#0000);width:8px;height:1px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.animated-star--sparkle:after{content:"";opacity:0;background:linear-gradient(#0000,#beebff99,#0000);width:1px;height:8px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.animated-star--sparkle:before,.animated-star--sparkle:after{animation:sparkleCross var(--star-duration) ease-in-out var(--star-delay) infinite}@keyframes starSparkle{0%,to{opacity:.12;transform:scale(.7)}42%{opacity:.22}50%{opacity:1;transform:scale(1.25);box-shadow:0 0 5px #d7f5ffbf,0 0 12px #5abeff4d}58%{opacity:.22}}@keyframes sparkleCross{0%,42%,58%,to{opacity:0}50%{opacity:.75}}@media (prefers-reduced-motion:reduce){.animated-star,.animated-star--sparkle:before,.animated-star--sparkle:after{animation:none}.animated-star{opacity:.35}}.home-tram-layer{--tram-track-y:50%;--tram-duration:12s;--tram-width:150px;--tram-body-height:18px;z-index:2;pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.home-tram-track{left:0;right:0;top:var(--tram-track-y);opacity:.42;height:14px;position:absolute;transform:translateY(-7px)}.home-tram-track:after{content:"";background:repeating-linear-gradient(90deg,#0000 0 74px,#467ea038 74px 75px);height:18px;position:absolute;top:7px;left:0;right:0}.home-tram-rail{background:#5c97ba57;width:100%;height:1px;position:absolute;left:0;box-shadow:0 0 3px #469bd214}.home-tram-rail--top{top:2px}.home-tram-rail--bottom{opacity:.55;top:7px}.home-tram{left:0;top:calc(var(--tram-track-y) - 18px);width:var(--tram-width);height:var(--tram-body-height);transform:translateX(calc(var(--tram-width) * -1));animation:tramPass var(--tram-duration) linear infinite;will-change:transform;position:absolute}.home-tram-body{box-sizing:border-box;background:#091626;border:1px solid #5ca5cd8c;width:100%;height:100%;position:relative;overflow:hidden;box-shadow:0 0 5px #41a0d71a}.home-tram-body:after{content:"";background:#07111d;border-top:1px solid #538fb140;height:7px;position:absolute;bottom:0;left:0;right:0}.home-tram-windows{gap:4px;height:11px;display:flex;position:absolute;top:6px;left:13px;right:13px}.home-tram-windows span{background:linear-gradient(#a2dcefc2,#4589ae7a);border:1px solid #94d3ee40;flex:1;box-shadow:inset 0 0 3px #b9ecff1f}.home-tram-windows span:nth-child(2){opacity:.62}.home-tram-windows span:nth-child(4){opacity:.78}.home-tram-front{background:#0d2034;border-left:1px solid #6fb4d747;width:10px;height:100%;position:absolute;top:0;right:0}.home-tram-light{background:#d8f6ff;width:2px;height:2px;position:absolute;bottom:8px;right:2px;box-shadow:0 0 4px #a0e6ffb8}.home-tram-back{background:#07121f;border-right:1px solid #64a5c833;width:7px;height:100%;position:absolute;top:0;left:0}@keyframes tramPass{0%{transform:translateX(calc(var(--tram-width) * -1))}98%{transform:translateX(calc(100vw + var(--tram-width)))}to{transform:translateX(calc(100vw + var(--tram-width)))}}@media (width>=601px) and (width<=1024px) and (orientation:portrait){.home-tram-layer{--tram-width:120px;--tram-body-height:16px;--tram-duration:13s}.home-tram{top:calc(var(--tram-track-y) - 16px)}.home-tram-windows{height:10px;top:5px;left:11px;right:11px}}@media (width<=600px) and (orientation:portrait){.home-tram-layer{--tram-width:92px;--tram-body-height:14px;--tram-duration:11s}.home-tram{top:calc(var(--tram-track-y) - 14px)}.home-tram-windows{gap:3px;height:9px;top:4px;left:9px;right:9px}.home-tram-front{width:8px}.home-tram-back{width:6px}.home-tram-light{bottom:6px;right:2px}.home-tram-track{opacity:.34}.home-tram-track:after{background:repeating-linear-gradient(90deg,#0000 0 58px,#467ea02e 58px 59px)}}@media (height<=520px) and (width<=1000px) and (orientation:landscape){.home-tram-layer{--tram-width:105px;--tram-body-height:14px;--tram-duration:12s}.home-tram{top:calc(var(--tram-track-y) - 14px)}.home-tram-windows{gap:3px;height:9px;top:4px;left:9px;right:9px}}@media (width<=360px) and (orientation:portrait){.home-tram-layer{--tram-width:82px;--tram-body-height:13px}.home-tram{top:calc(var(--tram-track-y) - 13px)}}@media (prefers-reduced-motion:reduce){.home-tram{display:none}}
