@import"https://fonts.googleapis.com/css2?family=Syne:wght@600;800&family=IBM+Plex+Mono:wght@300;400&display=swap";html{scroll-behavior:smooth}body{margin:0;min-width:320px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;width:100vw;height:100vh}:root{--void: #000;--ink: #0a0a0c;--sl: #E8E6FF;--sl-dim: hsla(248,50%,90%,.6);--muted: hsla(248,25%,65%,.55);--dust: hsla(248,25%,65%,.35);--corona: hsla(318,88%,73%,.9);--cor-dim: hsla(318,70%,68%,.45);--cor-ghost: hsla(318,60%,63%,.15);--f-d: "Syne", sans-serif;--f-m: "IBM Plex Mono", monospace;--s-hero: clamp(3.8rem,11vw,9rem);--s-contact: clamp(2rem,5.5vw,4.5rem);--s-company: clamp(1.8rem,3.5vw,3rem);--ease: cubic-bezier(.16,1,.3,1)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}body{background:var(--void);font-family:var(--f-m);overflow-x:hidden;cursor:crosshair;-webkit-font-smoothing:antialiased;height:1500vh}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:5;pointer-events:none;background:radial-gradient(ellipse at center,transparent 30%,rgba(0,0,0,.75) 100%)}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:none;opacity:.03;background:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E") 128px}a{text-decoration:none}.t-hero{font:800 var(--s-hero)/.88 var(--f-d);letter-spacing:-.05em;color:var(--sl)}.t-heading{font:800 var(--s-company)/1 var(--f-d);letter-spacing:-.02em;color:var(--sl)}.t-subhead{font:600 .9rem/1.3 var(--f-d);letter-spacing:.08em;text-transform:uppercase;color:var(--cor-dim)}.t-item{font:600 .95rem/1.3 var(--f-d);letter-spacing:.02em;color:var(--sl-dim)}.t-body{font:300 clamp(.85rem,1vw,1rem)/1.85 var(--f-m);color:var(--sl-dim)}.t-small{font:300 .75rem/1.5 var(--f-m);color:var(--muted)}.t-label{font:400 .55rem/1 var(--f-m);letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}.progress{position:fixed;top:0;left:0;right:0;height:1px;z-index:200;transform-origin:left;transform:scaleX(0);background:linear-gradient(90deg,transparent,var(--corona),transparent 80%)}.scene{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;perspective:1200px;z-index:1;pointer-events:none;will-change:transform}.sphere-wrap{position:relative;width:min(85vmin,540px);height:min(85vmin,540px);will-change:transform}.glow{position:absolute;border-radius:50%;pointer-events:none;will-change:transform,opacity}.glow--mid{top:-65%;right:-65%;bottom:-65%;left:-65%;filter:blur(32px);background:radial-gradient(circle,transparent 20%,hsla(318,80%,68%,.42) 30%,hsla(318,85%,74%,.66) 40%,hsla(202,75%,55%,.32) 50%,transparent 62%)}.glow--inner{top:-34%;right:-34%;bottom:-34%;left:-34%;filter:blur(13px);background:radial-gradient(circle,transparent 26%,hsla(318,85%,72%,.7) 34%,hsla(318,90%,78%,.92) 42%,hsla(318,85%,72%,.58) 50%,transparent 60%)}.glow--hot{top:-20%;right:-20%;bottom:-20%;left:-20%;filter:blur(5px);background:radial-gradient(circle,transparent 32%,hsla(318,90%,78%,.88) 38%,hsla(318,85%,87%,.96) 43%,hsla(318,20%,98%,1) 46%,hsla(318,85%,87%,.96) 49%,hsla(318,90%,78%,.88) 54%,transparent 62%)}.glow--edge{top:-8%;right:-8%;bottom:-8%;left:-8%;filter:blur(2px);background:radial-gradient(circle,transparent 38%,hsla(318,80%,80%,.75) 43%,hsla(318,15%,96%,.9) 46.5%,transparent 52%)}.void-core{position:absolute;top:4%;right:4%;bottom:4%;left:4%;border-radius:50%;z-index:2;background:radial-gradient(circle at 42% 40%,#060610,#030306 30%,#000);box-shadow:inset 0 0 80px #000,inset 0 0 160px #000000e6;overflow:hidden}.void-headshot{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;border-radius:50%;opacity:0;transition:opacity .6s var(--ease)}.particles{position:absolute;top:-35%;right:-35%;bottom:-35%;left:-35%;transform-style:preserve-3d;pointer-events:none}.particle{position:absolute;border-radius:50%;left:50%;top:50%;will-change:transform,opacity}.nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:1.5rem clamp(1.5rem,5vw,4rem);display:flex;align-items:center;justify-content:flex-end;opacity:0;pointer-events:none;transition:opacity .8s var(--ease)}.nav.visible{opacity:1;pointer-events:auto}.nav ul{display:flex;gap:2rem;list-style:none}.nav a{font:400 .75rem/1 var(--f-m);letter-spacing:.12em;text-transform:uppercase;color:var(--sl-dim);transition:color .3s var(--ease),border-bottom .3s var(--ease);border-bottom:1px solid transparent}.nav a:hover{color:var(--sl)}.nav a.active{border-bottom-color:var(--sl-dim)}.layer{position:fixed;z-index:10;pointer-events:none;opacity:0;visibility:hidden;will-change:opacity}.layer a{pointer-events:auto}.hero-layer{top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:space-between;text-align:center;padding:clamp(6rem,12vh,10rem) 2rem clamp(4rem,8vh,7rem)}.hero-top{display:flex;flex-direction:column;align-items:center}.hero-role{margin-top:1.2rem;font:300 .8rem/1 var(--f-m);letter-spacing:.35em;text-transform:uppercase;color:var(--sl-dim)}.hero-links{display:flex;gap:2rem;pointer-events:auto}.hero-link{font:400 .75rem/1 var(--f-m);letter-spacing:.15em;text-transform:uppercase;color:var(--muted);transition:color .3s var(--ease)}.hero-link:hover{color:var(--sl)}.scroll-cue{position:fixed;bottom:4vh;left:50%;transform:translate(-50%);z-index:10;display:flex;flex-direction:column;align-items:center;gap:6px;opacity:0;transition:opacity .8s;animation:bob 2.5s ease-in-out infinite}.scroll-cue span{font:400 .5rem/1 var(--f-m);letter-spacing:.3em;text-transform:uppercase;color:var(--dust)}.scroll-cue svg{width:14px;height:14px;stroke:var(--dust);fill:none;stroke-width:2}@keyframes bob{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(7px)}}.about-layer{top:50%;right:clamp(2rem,8vw,10vw);transform:translateY(-50%);max-width:min(36vw,420px)}.about-text p+p{margin-top:1rem}.about-skills{margin-top:1.8rem;letter-spacing:.02em;overflow-wrap:break-word}.about-skills .sep{margin:0 .25em;opacity:.25}.orbit-detail{position:fixed;z-index:12;pointer-events:none;right:clamp(2rem,6vw,8vw);top:50%;transform:translateY(-50%);max-width:min(38vw,460px);padding-right:1rem;opacity:0}.orbit-detail-year{margin-top:.35rem;font:400 .8rem/1 var(--f-m);color:var(--muted)}.orbit-detail-items{margin-top:1.5rem;display:flex;flex-direction:column;gap:1.2rem}.orbit-detail-desc{margin-top:.25rem;font:300 .85rem/1.75 var(--f-m);color:#958fbc73}.orbit-dot{position:fixed;top:0;left:0;border-radius:50%;pointer-events:none;z-index:11;will-change:transform,opacity}.orbit-label{position:fixed;top:0;left:0;white-space:nowrap;z-index:11;will-change:transform,opacity;font:600 .45rem/1 var(--f-d);letter-spacing:.12em;text-transform:uppercase;color:var(--dust)}.orbit-label.active{color:var(--sl-dim);font-size:.6rem}.project-layer{top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.project-monitor{position:relative;width:min(88vw,960px);aspect-ratio:16/10;pointer-events:auto}.project-info,.carousel-nav-row{pointer-events:auto}.monitor-frame{position:relative;width:100%;height:100%;overflow:hidden;border:1px solid hsla(275,30%,30%,.1);background:#070609eb}.monitor-frame:before{content:"";position:absolute;top:0;left:0;right:0;height:30px;z-index:2;background:#1c1c21;border-bottom:1px solid hsla(240,8%,18%,.5)}.monitor-dots{position:absolute;top:10px;left:12px;z-index:3;display:flex;gap:7px}.monitor-dot{width:10px;height:10px;border-radius:50%}.monitor-dot:nth-child(1){background:#ff5f57}.monitor-dot:nth-child(2){background:#febc2e}.monitor-dot:nth-child(3){background:#28c840}.monitor-url{position:absolute;top:6px;left:50%;transform:translate(-50%);z-index:3;background:#13101899;padding:4px 14px;border-radius:3px}.project-content{position:absolute;top:30px;right:0;bottom:0;left:0;overflow:hidden;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;background:radial-gradient(ellipse at center,#100c12,#050406)}.project-content iframe{position:absolute;border:none;width:143%;height:143%;top:50%;left:50%;transform:translate(-50%,-50%) scale(.7)}.monitor-stand{width:70px;height:26px;margin:0 auto;clip-path:polygon(10% 0%,90% 0%,100% 100%,0% 100%);background:linear-gradient(to bottom,#13101899,#0a080c4d)}.monitor-base{width:120px;height:4px;margin:0 auto;background:#18141f66;border-radius:0 0 3px 3px;margin-bottom:.5rem}.project-info{text-align:center;margin-top:1.8rem}.project-title{font:800 1.3rem/1 var(--f-d);color:var(--sl)}.carousel-nav-row{display:flex;align-items:center;justify-content:center;gap:1.5rem;margin-top:1rem}.carousel-dot{width:8px;height:8px;border-radius:50%;border:none;cursor:pointer!important;background:var(--dust);transition:background .3s var(--ease),transform .2s var(--ease)}.carousel-dot:hover{transform:scale(1.4)}.carousel-dot.active{background:var(--corona)}.carousel-arrow{background:none;border:none;cursor:pointer!important;padding:6px;color:var(--muted);transition:color .3s var(--ease)}.carousel-arrow:hover{color:var(--sl)}.carousel-arrow svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2}.contact-layer{top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;gap:clamp(3rem,8vw,8rem);padding:0 clamp(2rem,8vw,8rem);pointer-events:auto}.contact-left{flex:0 0 auto}.contact-right{flex:0 0 min(380px,45vw)}.contact-heading{font:800 var(--s-contact)/.92 var(--f-d);letter-spacing:-.04em;color:var(--sl)}.contact-heading em{font-style:italic;color:var(--corona)}.contact-form{display:flex;flex-direction:column;gap:1.5rem}.field{position:relative}.field-label{display:block;margin-bottom:.5rem;font:400 .6rem/1 var(--f-m);letter-spacing:.18em;text-transform:uppercase;color:#ada6d9cc;transition:color .3s var(--ease)}.field:focus-within .field-label{color:var(--corona)}.field-input{width:100%;outline:none;resize:none;background:#151320d9;border:1px solid hsla(248,25%,45%,.5);padding:.65rem .8rem;border-radius:2px;font:300 .85rem/1.5 var(--f-m);color:var(--sl);caret-color:var(--corona);transition:border-color .3s var(--ease),background .3s var(--ease)}.field-input::placeholder{color:#958fbc73}.field-input:focus{border-color:var(--corona);background:#191726f2}textarea.field-input{height:90px;display:block}.form-submit{align-self:flex-start;position:relative;overflow:hidden;cursor:pointer;padding:11px 30px;background:transparent;border:1px solid hsla(248,25%,50%,.55);font:400 .6rem/1 var(--f-m);letter-spacing:.2em;text-transform:uppercase;color:#ada6d9cc;transition:color .4s var(--ease),border-color .4s var(--ease)}.form-submit:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--corona);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}.form-submit:hover{color:var(--void);border-color:var(--corona)}.form-submit:hover:before{transform:scaleX(1)}.form-submit span{position:relative;z-index:1}.form-submit.sent{pointer-events:none;color:var(--void);border-color:var(--corona);background:var(--corona)}.form-submit.sent:before{transform:scaleX(1)}.form-submit.error{color:#fff;border-color:#f87171;background:#f87171}.form-submit.error:before{display:none}.form-submit:disabled{opacity:.7;cursor:default}.form-submit:disabled:hover:before{transform:scaleX(0)}.contact-footnote{margin-top:1.5rem;display:flex;gap:1.5rem}.contact-alt{font:400 .75rem/1 var(--f-m);letter-spacing:.15em;text-transform:uppercase;color:var(--muted);transition:color .3s var(--ease)}.contact-alt:hover{color:var(--sl)}.comm-btn{position:fixed;bottom:2rem;right:2rem;z-index:150;display:flex;align-items:center;gap:.6rem;padding:.5rem 1rem;background:var(--ink);border:1px solid var(--dust);cursor:pointer;font:400 .75rem/1 var(--f-m);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);transition:border-color .3s var(--ease),color .3s var(--ease);pointer-events:auto}.comm-btn:hover{border-color:var(--corona);color:var(--sl)}.comm-btn:hover .comm-dot{background:var(--corona);box-shadow:0 0 8px var(--corona)}.comm-dot{width:6px;height:6px;border-radius:50%;background:var(--cor-dim);animation:pulse-dot 2s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:.4}50%{opacity:1}}.comm-panel{position:fixed;bottom:4.5rem;right:1.5rem;z-index:149;width:380px;height:490px;background:var(--ink);border:1px solid hsla(248,25%,30%,.4);display:flex;flex-direction:column;opacity:0;pointer-events:none;transform:translateY(8px) scale(.97);transform-origin:bottom right;transition:opacity .25s var(--ease),transform .25s var(--ease)}.comm-panel.open{opacity:1;pointer-events:auto;transform:none}.comm-header{display:flex;align-items:center;justify-content:space-between;padding:.65rem 1rem;border-bottom:1px solid var(--dust);flex-shrink:0}.comm-header-left{display:flex;align-items:center;gap:.5rem}.comm-id{font:400 .65rem/1 var(--f-m);letter-spacing:.25em;text-transform:uppercase;color:var(--corona)}.comm-status{font:300 .55rem/1 var(--f-m);letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}.comm-close{background:none;border:none;cursor:pointer;padding:.3rem;font:400 .68rem/1 var(--f-m);color:var(--muted);transition:color .2s}.comm-close:hover{color:var(--sl)}.comm-chips{display:flex;flex-wrap:wrap;gap:.4rem;padding:.6rem 1rem;border-bottom:1px solid var(--dust);flex-shrink:0}.comm-chip{padding:.35rem .6rem;background:transparent;border:1px solid var(--dust);cursor:pointer;font:300 .62rem/1 var(--f-m);letter-spacing:.08em;color:var(--muted);transition:border-color .2s,color .2s}.comm-chip:hover{border-color:var(--corona);color:var(--sl)}.comm-messages{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.85rem;scrollbar-width:thin;scrollbar-color:var(--dust) transparent}.msg{display:flex;flex-direction:column;gap:.2rem}.msg-meta{font:300 .52rem/1 var(--f-m);letter-spacing:.15em;text-transform:uppercase}.msg-text{font:300 .9rem/1.6 var(--f-m);color:var(--sl-dim)}.msg.user .msg-meta{color:var(--corona)}.msg.ai .msg-meta{color:var(--muted)}.msg.ai .msg-text{color:#d5d1f0bf}.msg-cursor{display:inline-block;width:.5em;height:.85em;background:var(--corona);animation:blink .7s steps(1) infinite;vertical-align:text-bottom;margin-left:2px}@keyframes blink{50%{opacity:0}}.comm-input-row{display:flex;align-items:stretch;border-top:1px solid var(--dust);flex-shrink:0}.comm-prompt{padding:.7rem .5rem .7rem 1rem;font:400 .78rem/1 var(--f-m);color:var(--corona);display:flex;align-items:center;flex-shrink:0}.comm-input{flex:1;background:transparent;border:none;outline:none;padding:.7rem 0;font:300 .9rem/1 var(--f-m);color:var(--sl);caret-color:var(--corona)}.comm-input::placeholder{color:var(--dust)}.comm-send{padding:.7rem 1rem;background:none;border:none;border-left:1px solid var(--dust);cursor:pointer;font:400 .58rem/1 var(--f-m);letter-spacing:.15em;text-transform:uppercase;color:var(--muted);transition:color .2s,background .2s}.comm-send:hover{color:var(--void);background:var(--corona)}@media (max-width: 900px){.about-layer{right:1.5rem;left:1.5rem;max-width:100%;top:auto;bottom:6vh;transform:none;text-align:center}.orbit-detail{right:2rem;left:2rem;max-width:100%;top:auto;bottom:4rem;transform:none;text-align:center;padding-right:0}.orbit-detail .t-heading{font-size:clamp(1.4rem,4vw,2rem)}.orbit-detail .t-subhead,.orbit-detail-desc{font-size:.75rem}.orbit-detail-items{gap:1rem}.nav ul{gap:1.2rem}.nav a{font-size:.6rem}.hero-links{gap:1.2rem}.project-monitor{width:min(94vw,860px)}.contact-layer{flex-direction:column;gap:2.5rem;padding:0 2rem;text-align:center}.contact-right{flex:0 0 auto;width:100%;max-width:420px}.form-submit,.contact-footnote{align-self:center;justify-content:center}.comm-panel{right:1rem;bottom:4rem;width:calc(100vw - 2rem);max-width:380px}.comm-btn{right:1rem;bottom:1rem}}@media (max-width: 600px){.t-hero{font-size:clamp(2.6rem,12vw,4.5rem)}.nav ul{display:none}.about-layer{bottom:4vh;padding:0 1.5rem}.about-text{font-size:.75rem}.orbit-detail{left:1.5rem;right:1.5rem;top:auto;bottom:4rem;transform:none;text-align:center;padding:0;max-height:38vh;overflow-y:auto}.orbit-detail .t-heading{font-size:clamp(1.2rem,5.5vw,1.6rem)}.orbit-detail .t-subhead{font-size:.6rem}.orbit-detail-year{font-size:.7rem}.orbit-detail-items{gap:.8rem;margin-top:1rem}.orbit-detail-desc{font-size:.65rem;line-height:1.6}.project-monitor{width:96vw;max-width:100%}.project-title{font-size:1.1rem}.project-info{margin-top:1.2rem}.contact-heading{font-size:clamp(1.6rem,8vw,2.8rem)}.contact-layer{padding:0 1.5rem;gap:1.8rem}.contact-right{max-width:100%}.field-input{font-size:.8rem;padding:.55rem .7rem}textarea.field-input{height:70px}.comm-panel{right:0;left:0;bottom:3.5rem;width:100%;max-width:100%;border-left:none;border-right:none}.comm-btn{right:.75rem;bottom:.75rem;padding:.4rem .75rem;font-size:.65rem}}@media (max-width: 400px){.t-hero{font-size:2.4rem}.hero-role{font-size:.5rem;letter-spacing:.2em}.hero-links{flex-direction:column;align-items:center;gap:.8rem}.orbit-detail{left:1rem;right:1rem;bottom:3.5rem}.orbit-detail .t-heading{font-size:1.1rem}.orbit-detail-desc{font-size:.6rem}.contact-heading{font-size:clamp(1.4rem,7vw,2rem)}}@media (max-height: 500px) and (orientation:landscape){.t-hero{font-size:clamp(2rem,8vh,3.5rem)}.about-layer{bottom:2vh;max-width:40vw;right:2vw;left:auto;text-align:left}.orbit-detail{bottom:2vh;max-width:38vw;right:2vw;left:auto;text-align:left;top:auto}.scroll-cue{bottom:1vh}}@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
