@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=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=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";: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,body,#app{width:100%;height:100%;margin:0}html,body{background:#000;min-width:320px;overflow:hidden}button{font:inherit}.homepage{background:#000;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}.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;align-items:stretch;width:min(650px,84vw);height:470px;display:flex;position:relative}.boot-button{color:#d8f7ff;letter-spacing:.22em;text-transform:uppercase;opacity:1;visibility:visible;cursor:pointer;text-shadow:0 0 4px #d8f7fff2,0 0 12px #58e6ffa6;background:0 0;border:0;width:max-content;height:max-content;margin:auto;padding:18px 24px;font-family:Share Tech Mono,Courier New,monospace;font-size:clamp(18px,2vw,28px);transition:opacity .25s,visibility .25s,color .2s,text-shadow .2s;position:absolute;inset:0}.boot-button:hover{color:#fff;text-shadow:0 0 5px #fff,0 0 14px #58e6ffe6,0 0 24px #ff6aa680}.boot-button--hidden{opacity:0;visibility:hidden;pointer-events:none}.terminal{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 .25s}.terminal--visible{opacity:1;visibility:visible}.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 .5s;display:flex}.continue-area--visible{opacity:1;visibility:visible;pointer-events:auto}.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)}@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}}.homepage-background{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}.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-layer--back{z-index:1}.homepage-layer--back img{object-fit:cover;object-position:center;width:100%;height:100%;top:0;left:0}.homepage-layer--buildings{z-index:3}.homepage-layer--buildings img{object-fit:contain;object-position:center bottom;width:100%;height:auto;bottom:0;left:50%;transform:translate(-50%)}.homepage-layer--grid{z-index:4}.homepage-layer--grid img{object-fit:contain;object-position:center bottom;width:100%;height:auto;bottom:0;left:50%;transform:translate(-50%)}.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;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(11px,.48vw,8px);font-weight:400;line-height:1}@media (width<=1400px){.hero{top:28px;left:36px}.hero-title{font-size:18px}.hero-subtitle{margin-top:8px;font-size:10px}}@media (width<=900px){.hero{top:24px;left:24px}.hero-title{letter-spacing:.09em;font-size:16px}.hero-subtitle{letter-spacing:.24em;font-size:6px}}@media (width<=600px){.hero{top:18px;left:18px}.hero-title{letter-spacing:.07em;font-size:15px}.hero-subtitle{letter-spacing:.18em;margin-top:7px;font-size:5px}}.main-menu{pointer-events:auto;background:0 0;border:none;margin:0;padding:0;z-index:9999!important;opacity:1!important;visibility:visible!important;width:auto!important;height:auto!important;display:block!important;position:absolute!important;inset:24px 36px auto auto!important;transform:none!important}.main-menu-list{background:0 0;flex-direction:row;justify-content:flex-end;align-items:center;gap:34px;width:auto;height:auto;margin:0;padding:0;opacity:1!important;visibility:visible!important;display:flex!important}.main-menu-item{letter-spacing:.12em;color:#a8c4d8bd;text-transform:uppercase;white-space:nowrap;cursor:pointer;outline:none;justify-content:center;align-items:center;width:auto;min-width:0;height:auto;margin:0;padding:3px 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;position:relative;box-shadow:none!important;opacity:1!important;visibility:visible!important;background:0 0!important;border:none!important;display:inline-flex!important}.main-menu-label{font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;pointer-events:none;margin:0;padding:0;opacity:1!important;visibility:visible!important;display:block!important}.main-menu-item{text-shadow:0 0 3px #50a5d214}.main-menu-item--active{color:#e1f4ffed;text-shadow:0 0 3px #aae6ff59,0 0 7px #5abef52e}.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--active:after{opacity:.4}.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-visible{color:#f2fbff;outline-offset:6px;text-shadow:0 0 6px #6ecdff66;outline:1px solid #82d7ff66}@media (width<=1400px){.main-menu{top:22px!important;right:30px!important}.main-menu-list{gap:28px}.main-menu-item{letter-spacing:.11em;font-size:9px}}@media (width<=900px){.main-menu{top:72px!important;left:24px!important;right:24px!important}.main-menu-list{justify-content:flex-start;gap:22px}.main-menu-item{letter-spacing:.1em;font-size:8px}}@media (width<=600px){.main-menu{overflow:hidden;top:86px!important;left:18px!important;right:18px!important}.main-menu-list{scrollbar-width:none;justify-content:flex-start;gap:18px;overflow-x:auto}.main-menu-list::-webkit-scrollbar{display:none}.main-menu-item{letter-spacing:.08em;flex:none;font-size:7px}}.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}}.projects-page{z-index:100;color:#d8f7ff;background:#000;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;min-width:0;height:auto;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;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;box-sizing:border-box;justify-content:center;align-items:center;width:100%;height:calc(100vh - 150px);padding-top:24px;display:flex;position:relative}.projects-track{width:100%;height:560px;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:480px;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 .55s cubic-bezier(.22,.8,.24,1),opacity .35s,filter .55s,border-color .55s,box-shadow .55s;position:absolute;overflow:hidden;box-shadow:0 0 #58e6ff00}.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:355px;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:1fr auto;gap:7px 14px;height:125px;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}.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:38px;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,box-shadow .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:hover:before{background:#58e6ffb8;width:23px}.project-arrow--previous:hover{transform:translate(-3px)}.project-arrow--next:hover{transform:translate(3px)}.project-arrow:active{transform:scale(.88)}@keyframes projects-stars-blink{0%,42%{opacity:.13}43%,70%{opacity:.23}71%,to{opacity:.17}}@media (width<=1050px){.projects-filters{gap:7px 18px;width:68vw;top:18px}.projects-filter{font-size:8px}}@media (width<=900px){.projects-slider{padding-top:42px}.project-card{width:min(310px,72vw);transform:translateX(calc(var(--card-position) * 300px)) translateZ(calc(var(--card-distance) * -140px)) rotateY(calc(var(--card-position) * -7deg)) scale(calc(1 - var(--card-distance) * .13))}}@media (width<=600px){.projects-back-button{top:18px;left:18px}.projects-filters{gap:8px 14px;width:92vw;top:62px}.projects-filter{letter-spacing:1em;font-size:13px}.projects-slider{height:calc(100vh - 125px);padding-top:80px}.projects-track{height:500px}.project-card{width:76vw;height:430px;transform:translateX(calc(var(--card-position) * 245px)) translateZ(calc(var(--card-distance) * -140px)) rotateY(calc(var(--card-position) * -6deg)) scale(calc(1 - var(--card-distance) * .14))}.project-image{height:310px}.project-information{height:120px}.projects-controls{gap:55px;bottom:25px}}.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 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-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-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%)}@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%}}@media (width<=600px){.project-window-overlay{padding:3vh 3vw}.project-window{grid-template-rows:34px 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-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;transition:opacity .22s;position:fixed;inset:0;overflow:hidden}.publications-page[hidden]{display:none}.publications-page--visible{opacity:1}.publications-stars{z-index:0;pointer-events:none;opacity:.17;background-image:radial-gradient(circle,#58e6ffc7 0 1px,#0000 2px),radial-gradient(circle,#58e6ff8c 0 1px,#0000 2px),radial-gradient(circle,#d8f7ff73 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 publications-stars-blink;position:absolute;inset:0}.publications-back-button{z-index:30;color:#98c4d7a3;letter-spacing:.12em;background:0 0;border:0;align-items:center;gap:8px;margin:0;padding:5px 2px;font-family:Pixelify Sans,monospace;font-size:10px;font-weight:400;line-height:1;transition:color .17s,text-shadow .17s,transform .17s;display:inline-flex;position:absolute;top:26px;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:13px}.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}.publications-books{perspective:1800px;perspective-origin:50%;justify-content:center;align-items:flex-end;gap:70px;display:flex;position:relative}.publication-book{width:var(--book-width);height:var(--book-height);transform-style:preserve-3d;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;transform:translateY(0)}.publication-book-object{width:100%;height:100%;transform-style:preserve-3d;transform-origin:50%;transition:transform .34s cubic-bezier(.22,.8,.24,1);position:relative}.publication-book--1 .publication-book-object,.publication-book--2 .publication-book-object{transform:rotateY(-18deg)rotateX(1.5deg)}.publication-book-front{z-index:10;box-sizing:border-box;transform:translateZ(calc(var(--book-depth) / 2));background:#fff;border:1px solid #ffffff40;transition:box-shadow .22s;position:absolute;inset:0;overflow:hidden;box-shadow:0 0 0 1px #58e6ff14,0 12px 30px #0000006b}.publication-book-cover-image{object-fit:cover;-webkit-user-select:none;user-select:none;pointer-events:none;width:100%;height:100%;display:block}.publication-book-back{z-index:1;transform:translateZ(calc(var(--book-depth) / -2));background:#e2e2de;border:1px solid #0000001a;position:absolute;inset:0}.publication-book-side{top:3px;right:calc(var(--book-depth) * -.5);z-index:5;width:var(--book-depth);transform-origin:50%;background:linear-gradient(90deg,#efefeb 0%,#e2e2dc 30%,#d2d2cc 65%,#bdbeb7 100%);border-right:1px solid #0000001f;height:calc(100% - 6px);position:absolute;transform:rotateY(90deg);box-shadow:inset 1px 0 #ffffff8c,inset -2px 0 3px #00000014}.publication-book-pages{top:6px;right:calc(var(--book-depth) * -.48);z-index:6;width:calc(var(--book-depth) - 4px);transform-origin:50%;opacity:.95;background:repeating-linear-gradient(#f8f8f4 0 2px,#dbdbd6 3px);height:calc(100% - 12px);position:absolute;transform:rotateY(90deg)}.publication-book-top{left:3px;top:calc(var(--book-depth) / -2);z-index:7;width:calc(100% - 6px);height:var(--book-depth);transform-origin:50%;background:linear-gradient(#fafaf6 0%,#eeeeea 55%,#d8d8d3 100%);border-top:1px solid #ffffffa6;position:absolute;transform:rotateX(90deg)}.publication-book:after{content:"";z-index:-1;pointer-events:none;opacity:.72;background:radial-gradient(#000000b8 0%,#00000047 46%,#0000 78%);width:82%;height:28px;transition:opacity .22s,transform .22s;position:absolute;bottom:-28px;left:50%;transform:translate(-50%)}.publication-book:hover{transform:translateY(-12px)scale(1.02)}.publication-book--1:hover .publication-book-object,.publication-book--2:hover .publication-book-object{transform:rotateY(-10deg)rotateX(1deg)translateZ(7px)}.publication-book:hover .publication-book-front{box-shadow:0 0 0 1px #58e6ff61,0 0 13px #58e6ff1f,0 18px 38px #0000007a}.publication-book:hover:after{opacity:.42;transform:translate(-50%)translateY(9px)scaleX(.82)}.publications-books:has(.publication-book:hover) .publication-book:not(:hover){opacity:.58;filter:brightness(.76)}.publication-book:active{transform:translateY(-7px)scale(.99)}@keyframes publications-stars-blink{0%,42%{opacity:.11}43%,70%{opacity:.2}71%,to{opacity:.15}}@media (width<=900px){.publications-books{gap:48px;transform:scale(.82)}}@media (width<=600px){.publications-back-button{top:18px;left:18px}.publications-library{padding:70px 20px 30px}.publications-books{gap:34px;transform:scale(.62)}}@media (prefers-reduced-motion:reduce){.publications-page,.publication-book,.publication-book-object,.publication-book-front{transition:none}}#intro-screen,#intro-screen *,#homepage,#homepage *,#projects-page,#projects-page *,#publications-page,#publications-page *,.page-transition,.page-transition *,#project-window-overlay,#project-window-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 *,#projects-page,#projects-page *,.page-transition,.page-transition *,#project-window-overlay,#project-window-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-height:45%;--tram-duration:12s;--tram-width:150px;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;bottom:var(--tram-height);opacity:.42;height:14px;position:absolute}.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;bottom:calc(var(--tram-height) + 7px);width:var(--tram-width);height:18px;animation:tramPass var(--tram-duration) linear infinite;position:absolute;transform:translate(-150px)}.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:translate(-150px)}98%{transform:translate(calc(100vw + 150px))}to{transform:translate(calc(100vw + 150px))}}@media (prefers-reduced-motion:reduce){.home-tram{display:none}}
