:root{--bg:#08090d;--surface:#0d0f15;--ink:#f1f0ec;--muted:#9b9ca6;--line:rgba(241,240,236,.14);--accent:#7c6cff;--accent-2:#a79dff;--container:min(88vw,1360px);--display:'Space Grotesk',sans-serif;--body:'Manrope',sans-serif;--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg)}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.6;overflow-x:hidden}body.menu-open{overflow:hidden}::selection{background:var(--accent);color:#fff}a{color:inherit;text-decoration:none}button{color:inherit;font:inherit}.container{width:var(--container);margin-inline:auto}.skip-link{position:fixed;z-index:1000;top:1rem;left:1rem;background:var(--ink);color:var(--bg);padding:.7rem 1rem;transform:translateY(-150%)}.skip-link:focus{transform:none}:focus-visible{outline:2px solid var(--accent-2);outline-offset:5px}.page-noise{position:fixed;inset:0;z-index:20;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E")}.site-header{position:fixed;z-index:100;left:0;right:0;top:0;height:88px;display:flex;align-items:center;justify-content:space-between;padding:0 3.5vw;transition:background .4s,border-color .4s,height .4s;border-bottom:1px solid transparent}.site-header.is-scrolled{height:70px;background:rgba(8,9,13,.78);backdrop-filter:blur(14px);border-color:var(--line)}.brand{display:flex;align-items:center;gap:.8rem;font:500 .82rem var(--display);letter-spacing:.03em}.brand svg{width:35px;fill:none;stroke:currentColor;stroke-width:2}.desktop-nav{display:flex;align-items:center;gap:2.2rem;font-size:.76rem}.desktop-nav a:not(.nav-cta){position:relative;color:#c8c8ce}.desktop-nav a:not(.nav-cta):after{content:'';position:absolute;left:0;right:100%;bottom:-5px;height:1px;background:var(--accent);transition:right .35s var(--ease)}.desktop-nav a:hover:after{right:0}.nav-cta{border:1px solid var(--line);border-radius:100px;padding:.7rem 1rem}.nav-cta span{display:inline-block;margin-left:.5rem;transition:transform .3s}.nav-cta:hover span{transform:translate(2px,-2px)}.menu-toggle{display:none;border:0;background:none;width:44px;height:44px;padding:12px}.menu-toggle span{display:block;height:1px;background:currentColor;margin:6px 0;transition:.4s var(--ease)}.mobile-menu{position:fixed;z-index:90;inset:0;background:#0b0c12;padding:110px 7vw 32px;display:flex;flex-direction:column;visibility:hidden;clip-path:inset(0 0 100% 0);transition:clip-path .65s var(--ease),visibility .65s}.menu-open .mobile-menu{visibility:visible;clip-path:inset(0)}.mobile-menu__meta{display:flex;justify-content:space-between;color:var(--muted);font-size:.62rem;letter-spacing:.14em;border-bottom:1px solid var(--line);padding-bottom:1rem}.mobile-menu nav{margin:auto 0}.mobile-menu nav a{display:flex;align-items:baseline;gap:1rem;font:500 clamp(2.4rem,11vw,4.5rem)/1.15 var(--display);opacity:0;transform:translateY(20px);transition:.4s var(--ease)}.menu-open .mobile-menu nav a{opacity:1;transform:none}.menu-open .mobile-menu nav a:nth-child(2){transition-delay:.05s}.menu-open .mobile-menu nav a:nth-child(3){transition-delay:.1s}.menu-open .mobile-menu nav a:nth-child(4){transition-delay:.15s}.menu-open .mobile-menu nav a:nth-child(5){transition-delay:.2s}.mobile-menu nav span{font-size:.65rem;color:var(--accent-2)}.mobile-github{font-size:.8rem;color:var(--muted)}
.hero{position:relative;min-height:100svh;overflow:hidden;border-bottom:1px solid var(--line);background:radial-gradient(ellipse at 70% 20%,rgba(93,73,210,.12),transparent 35%),radial-gradient(ellipse at 48% 100%,rgba(38,52,95,.14),transparent 42%)}.field{position:absolute;inset:0;width:100%;height:100%;opacity:.9;mask-image:linear-gradient(to bottom,black 5%,rgba(0,0,0,.8) 65%,transparent)}.hero-glow{position:absolute;width:42vw;height:42vw;border-radius:50%;right:4vw;top:3vh;background:rgba(100,79,255,.1);filter:blur(110px);animation:drift 12s ease-in-out infinite alternate}.hero-monogram{position:absolute;right:-.02em;top:4vh;color:transparent;-webkit-text-stroke:1px rgba(211,209,255,.045);font:600 min(48vw,790px)/1 var(--display);letter-spacing:-.13em;user-select:none}.hero-grid{position:relative;z-index:2;min-height:100svh;padding-top:15vh;padding-bottom:5vh;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto 1fr auto;align-items:end}.hero-kicker{grid-column:1/-1;align-self:start;font:500 .68rem var(--body);letter-spacing:.14em;text-transform:uppercase;color:#c6c5cd}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#8e80ff;box-shadow:0 0 0 5px rgba(142,128,255,.1);margin-right:.75rem;animation:pulse 2.4s infinite}.hero-title{grid-column:1/-1;margin:4vh 0 1vh;font:500 clamp(5rem,12.2vw,13rem)/.76 var(--display);letter-spacing:-.085em}.title-line{display:block;overflow:hidden;padding-right:.08em}.title-line>span{display:block;transform:translateY(115%);animation:titleIn 1.1s var(--ease) .12s forwards}.title-line--indent{padding-left:12.5vw;color:transparent;-webkit-text-stroke:1.5px rgba(241,240,236,.82)}.title-line--indent>span{animation-delay:.22s}.hero-bottom{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;align-items:end}.hero-role{margin:0;font:400 clamp(1rem,1.35vw,1.4rem)/1.5 var(--display);color:var(--muted)}.hero-role span{color:var(--ink)}.hero-copy{width:min(100%,530px)}.hero-copy>p{margin:0 0 1.7rem;color:#c6c5cc;font-size:clamp(.96rem,1.15vw,1.16rem);max-width:45ch}.hero-actions{display:flex;gap:.75rem}.button{height:52px;padding:0 1.25rem;border:1px solid var(--line);display:inline-flex;justify-content:center;align-items:center;gap:2.6rem;font-size:.78rem;border-radius:100px;transition:transform .4s var(--ease),background .3s,color .3s}.button span{transition:transform .3s}.button:hover span{transform:translate(2px,-2px)}.button--primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}.button--primary:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.button--ghost:hover{background:rgba(255,255,255,.05)}.hero-coordinates{position:absolute;right:0;top:15vh;display:flex;gap:1rem;color:#747580;font:500 .56rem var(--body);letter-spacing:.12em}.scroll-cue{position:absolute;right:0;bottom:5vh;display:flex;align-items:center;gap:1rem;color:#777983;font-size:.6rem;text-transform:uppercase;letter-spacing:.18em;writing-mode:vertical-rl}.scroll-cue i{height:55px;width:1px;background:var(--line);position:relative;overflow:hidden}.scroll-cue i:after{content:'';position:absolute;width:1px;height:45%;background:var(--ink);left:0;top:-45%;animation:scrollLine 2.2s infinite}.intro-item{opacity:0;animation:fadeUp .8s var(--ease) .75s forwards}.hero-bottom.intro-item{animation-delay:.58s}.hero-coordinates.intro-item{animation-delay:.9s}.scroll-cue.intro-item{animation-delay:1s}
.section{padding:clamp(6.5rem,12vw,11rem) 0}.section-index{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:.8rem;color:#777983;font-size:.62rem;letter-spacing:.15em}.section-index span:first-child{color:var(--accent-2)}.display-title{font:500 clamp(4rem,10vw,10.5rem)/.82 var(--display);letter-spacing:-.075em;margin:0}.accent-dot{color:var(--accent)}.about-layout{display:grid;grid-template-columns:1fr 1fr;align-items:start;padding-top:clamp(5rem,11vw,10rem)}.about-copy{max-width:610px;padding-top:1.5rem}.about-copy p{color:var(--muted);max-width:58ch}.about-copy .lead{font:400 clamp(1.55rem,2.3vw,2.5rem)/1.35 var(--display);color:var(--ink);letter-spacing:-.03em;margin:0 0 2.5rem}.about-signature{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1.5rem;margin-top:8rem;color:#767782}.about-signature span{font:500 1.2rem var(--display);color:var(--accent-2)}.about-signature i{height:1px;background:var(--line)}.about-signature small{font-size:.57rem;letter-spacing:.16em}
.projects{background:#0b0c11}.projects-heading{display:grid;grid-template-columns:1.5fr .5fr;align-items:end;padding:clamp(4rem,8vw,8rem) 0 8rem}.projects-heading .display-title{font-size:clamp(3.6rem,8.6vw,9.2rem)}.projects-heading .display-title span{color:transparent;-webkit-text-stroke:1px rgba(241,240,236,.55)}.projects-heading>p{color:var(--muted);max-width:30ch;margin:0 0 .5rem}.project{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:clamp(2rem,6vw,7rem);align-items:center;padding:clamp(4rem,8vw,8rem) 0;border-top:1px solid var(--line)}.project:nth-child(even){grid-template-columns:minmax(300px,.65fr) minmax(0,1.35fr)}.project:nth-child(even) .project-visual{order:2}.project-visual{display:block;aspect-ratio:1.42;overflow:hidden;background:#12131a;position:relative}.project-art{height:100%;padding:clamp(1rem,2vw,2rem);position:relative;overflow:hidden;transition:transform .8s var(--ease);font-family:var(--display)}.project-visual:hover .project-art{transform:scale(1.018)}.art-top{position:relative;z-index:3;display:flex;justify-content:space-between;font-size:clamp(.48rem,.6vw,.66rem);letter-spacing:.13em}.project-art>p{position:absolute;z-index:3;bottom:1.4rem;left:2rem;margin:0;font-size:clamp(.55rem,.7vw,.75rem);letter-spacing:.05em}.project-art--editorial{background:#ded3b7;color:#1d1b1a}.art-editorial .sun{position:absolute;width:28%;aspect-ratio:1;border-radius:50%;background:#d86638;right:14%;top:18%;box-shadow:0 0 60px rgba(216,102,56,.2)}.art-editorial .sun:after{content:'';position:absolute;width:120%;height:120%;border:1px solid rgba(34,28,24,.3);border-radius:50%;left:-55%;top:45%}.art-editorial em,.art-editorial strong{position:absolute;font-style:normal;font-size:clamp(2.5rem,6.8vw,7rem);line-height:.75;letter-spacing:-.08em;left:8%;top:39%}.art-editorial strong{left:25%;top:55%;font-weight:500}.art-editorial .trail{position:absolute;width:65%;height:1px;right:-10%;top:72%;background:#645c50;transform:rotate(-17deg)}.art-editorial .trail:after{content:'';position:absolute;left:30%;top:-4px;width:8px;height:8px;background:#1d1b1a;border-radius:50%}.project-art--portal{background:#d7f1eb;color:#133a35}.art-portal:before{content:'';position:absolute;width:60%;height:120%;border:1px solid rgba(17,68,62,.25);border-radius:50%;left:20%;top:-42%;box-shadow:0 0 0 5vw rgba(24,89,79,.04),0 0 0 10vw rgba(24,89,79,.03)}.portal-mark{position:absolute;font:500 clamp(8rem,18vw,19rem)/1 var(--display);letter-spacing:-.1em;right:8%;top:12%;color:#246f64}.art-portal strong{position:absolute;left:8%;top:49%;font-size:clamp(2.3rem,5.8vw,6rem);letter-spacing:.08em}.portal-lines{position:absolute;left:8%;top:27%;width:24%}.portal-lines i{display:block;height:1px;background:#1f5e55;margin:11px 0}.portal-lines i:nth-child(2){width:70%}.portal-lines i:nth-child(3){width:40%}.project-art--planner{background:#dddff9;color:#171a46}.art-planner{position:absolute;inset:15% 8% 13%;border:1px solid rgba(23,26,70,.35);background:rgba(255,255,255,.16);display:grid;grid-template-columns:.55fr 1fr}.planner-date{padding:14%;display:flex;flex-direction:column;justify-content:center;border-right:1px solid rgba(23,26,70,.25)}.planner-date span{font-size:clamp(.55rem,1vw,1rem);letter-spacing:.2em}.planner-date b{font-size:clamp(2rem,5vw,5rem);line-height:.9;letter-spacing:-.07em}.planner-grid{display:grid;grid-template-columns:repeat(3,1fr);padding:10%;gap:7%}.planner-grid i{border:1px solid rgba(23,26,70,.25);position:relative}.planner-grid i:nth-child(3n+2){background:#7068de;border-color:#7068de}.planner-grid i:after{content:'';position:absolute;top:10px;left:10px;width:28%;height:2px;background:currentColor;opacity:.25}.project-meta{display:flex;justify-content:space-between;color:#7d7e88;font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;border-bottom:1px solid var(--line);padding-bottom:.8rem}.project-meta span:first-child{color:var(--accent-2)}.project-info h3{font:500 clamp(2.5rem,4.5vw,5rem)/.95 var(--display);letter-spacing:-.055em;margin:1.8rem 0}.project-description{color:#c9c8ce;font-size:clamp(1rem,1.2vw,1.2rem)}.project-detail{margin:2.2rem 0;display:grid;grid-template-columns:80px 1fr;gap:1rem}.project-detail span{font-size:.55rem;letter-spacing:.14em;color:#73747d;padding-top:.35rem}.project-detail p{font-size:.8rem;color:#8e8f99;margin:0}.feature-list,.tech-list{list-style:none;margin:0;padding:0}.feature-list{margin-bottom:1.7rem}.feature-list li{font-size:.72rem;color:#999aa2;padding:.3rem 0}.feature-list li:before{content:'—';color:var(--accent-2);margin-right:.7rem}.tech-list{display:flex;gap:.5rem;flex-wrap:wrap}.tech-list li{border:1px solid var(--line);border-radius:100px;padding:.35rem .7rem;font-size:.6rem;color:#aaaab3}.project-links{display:flex;gap:1.5rem;margin-top:2.3rem}.project-links a{font-size:.72rem;padding-bottom:.35rem;border-bottom:1px solid #5d5e67}.project-links a span{display:inline-block;margin-left:.45rem;transition:transform .3s}.project-links a:hover span{transform:translate(2px,-2px)}
.process{background:var(--ink);color:var(--bg)}.process .section-index{border-color:rgba(8,9,13,.2);color:#65656b}.process-layout{display:grid;grid-template-columns:.7fr 1.3fr;padding-top:7rem;gap:4rem}.section-title{font:500 clamp(3.5rem,7vw,7rem)/.9 var(--display);letter-spacing:-.06em;margin:0}.process-list{list-style:none;margin:0;padding:0}.process-list li{display:grid;grid-template-columns:45px .7fr 1fr;align-items:center;border-top:1px solid rgba(8,9,13,.2);padding:1.5rem 0}.process-list li:last-child{border-bottom:1px solid rgba(8,9,13,.2)}.process-list span{font-size:.6rem;color:#65656b}.process-list strong{font:500 clamp(1.25rem,2vw,2rem) var(--display)}.process-list p{color:#626269;font-size:.8rem;margin:0}
.stack-heading{display:grid;grid-template-columns:1fr 1fr;align-items:end;padding:7rem 0}.stack-heading p{color:var(--muted);max-width:34ch;margin:0 0 1rem}.stack-groups{border-top:1px solid var(--line)}.stack-group{display:grid;grid-template-columns:70px .65fr 1fr;border-bottom:1px solid var(--line);padding:2rem 0;align-items:start}.stack-group>span{font-size:.6rem;color:var(--accent-2)}.stack-group h3{font:400 clamp(1.2rem,2vw,2rem) var(--display);margin:0}.stack-group ul{list-style:none;margin:0;padding:0;display:flex;gap:.65rem;flex-wrap:wrap}.stack-group li{font:400 clamp(1.3rem,2.5vw,2.7rem) var(--display);color:#b8b7be}.stack-group li:not(:last-child):after{content:' / ';color:#494a52}.github-strip{position:relative;overflow:hidden;background:#10121a;border-block:1px solid var(--line)}.github-layout{position:relative;display:flex;align-items:center;justify-content:space-between;min-height:480px}.eyebrow{font-size:.58rem;letter-spacing:.18em;color:var(--accent-2)}.github-layout h2{font:400 clamp(2.7rem,5.5vw,6rem)/1 var(--display);letter-spacing:-.05em;margin:2rem 0 0}.circle-link{width:180px;height:180px;border-radius:50%;border:1px solid rgba(167,157,255,.45);display:flex;justify-content:center;align-items:center;gap:1rem;font-size:.72rem;transition:background .4s,color .4s,transform .4s}.circle-link b{font-size:1.3rem;font-weight:400}.circle-link:hover{background:var(--accent);color:#fff;transform:rotate(-4deg)}.github-orbit{position:absolute;right:-10vw;top:50%;width:44vw;aspect-ratio:1;transform:translateY(-50%)}.github-orbit i{position:absolute;inset:0;border:1px solid rgba(132,121,255,.09);border-radius:50%}.github-orbit i:nth-child(2){inset:15%}.github-orbit i:nth-child(3){inset:30%;background:rgba(124,108,255,.03)}
.contact{padding-bottom:0;min-height:100svh;display:flex;flex-direction:column}.contact-main{padding:clamp(5rem,10vw,9rem) 0}.contact-title{font:500 clamp(4.2rem,11.6vw,12.5rem)/.76 var(--display);letter-spacing:-.085em;margin:2rem 0}.contact-title span{color:transparent;-webkit-text-stroke:1px rgba(241,240,236,.65)}.contact-row{display:grid;grid-template-columns:1fr 1fr;align-items:center}.contact-row p{max-width:45ch;color:var(--muted)}.contact-row .button{justify-self:end}.footer{border-top:1px solid var(--line);min-height:130px;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;color:#767780;font-size:.66rem}.footer>div{display:flex;gap:1rem}.footer strong{font-weight:500;color:#dddce2}.footer p{text-align:center}.footer>div:last-child{justify-content:flex-end}.footer a{color:#dddce2}.reveal{opacity:0;transform:translateY(28px);transition:opacity .85s var(--ease),transform .85s var(--ease)}.reveal.is-visible{opacity:1;transform:none}.cursor{position:fixed;z-index:999;left:0;top:0;width:9px;height:9px;margin:-4.5px;border-radius:50%;background:var(--ink);pointer-events:none;mix-blend-mode:difference;opacity:0;transition:width .25s,height .25s,margin .25s,opacity .25s,background .25s}.cursor.is-active{opacity:1}.cursor.is-hover{width:54px;height:54px;margin:-27px;background:#fff}.cursor:after{content:attr(data-label);position:absolute;inset:0;display:grid;place-items:center;color:#000;font:600 .52rem var(--body);letter-spacing:.08em}.cursor[data-label=""]:after{display:none}@keyframes titleIn{to{transform:none}}@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes scrollLine{to{top:100%}}@keyframes pulse{50%{box-shadow:0 0 0 8px rgba(142,128,255,0)}}@keyframes drift{to{transform:translate(-7vw,8vh) scale(1.08)}}
@media(max-width:900px){:root{--container:min(89vw,760px)}.site-header{height:72px;padding:0 5.5vw}.desktop-nav{display:none}.menu-toggle{display:block}.menu-open .menu-toggle span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-open .menu-toggle span:last-child{transform:translateY(-3.5px) rotate(-45deg)}.hero-grid{grid-template-columns:1fr;padding-top:18vh;padding-bottom:4vh}.hero-title{font-size:clamp(4.5rem,16vw,8rem);margin-top:8vh;align-self:center}.title-line--indent{padding-left:0}.hero-bottom{grid-template-columns:1fr;gap:2rem}.hero-role{display:none}.hero-copy{width:88%}.hero-coordinates{display:none}.scroll-cue{right:0}.about-layout,.projects-heading,.stack-heading{grid-template-columns:1fr;gap:3rem}.about-copy{margin-left:auto;width:85%}.project,.project:nth-child(even){grid-template-columns:1fr;gap:3rem}.project:nth-child(even) .project-visual{order:0}.process-layout{grid-template-columns:1fr;gap:4rem}.github-layout{gap:2rem}.circle-link{width:150px;height:150px;flex:0 0 150px}.contact-row{grid-template-columns:1fr;gap:2rem}.contact-row .button{justify-self:start}.footer{grid-template-columns:1fr 1fr}.footer p{display:none}}
@media(max-width:600px){.brand span{display:none}.section{padding:6rem 0}.hero-grid{padding-top:16vh}.hero-title{font-size:clamp(4.25rem,21.5vw,6.2rem);line-height:.79;letter-spacing:-.075em}.hero-copy{width:92%}.hero-copy>p{font-size:.9rem}.hero-actions{flex-wrap:wrap}.button{height:48px;gap:1.6rem}.scroll-cue{display:none}.about-layout{padding-top:4rem}.display-title{font-size:clamp(3.7rem,20vw,5.5rem)}.about-copy{width:100%;padding-top:0}.about-copy .lead{font-size:1.5rem}.about-signature{margin-top:5rem;gap:.8rem}.projects-heading{padding:4rem 0}.projects-heading .display-title{font-size:clamp(3.2rem,15vw,5rem);line-height:.88}.project{padding:4rem 0}.project-visual{aspect-ratio:1.08}.project-art>p{left:1rem;bottom:1rem}.art-editorial em,.art-editorial strong{font-size:13vw}.art-editorial strong{left:20%}.project-info h3{font-size:2.7rem}.project-detail{grid-template-columns:1fr;gap:.5rem}.process-layout{padding-top:4rem}.process-list li{grid-template-columns:35px 1fr;padding:1.4rem 0}.process-list p{grid-column:2;margin-top:.3rem}.stack-heading{padding:4rem 0}.stack-group{grid-template-columns:40px 1fr}.stack-group ul{grid-column:2;margin-top:1.3rem}.stack-group li{font-size:1.5rem}.github-layout{min-height:530px;display:block;padding-top:5rem}.github-layout h2{font-size:2.7rem}.circle-link{margin:3rem 0 0 auto;width:140px;height:140px}.github-orbit{width:100vw;right:-50vw}.contact-title{font-size:clamp(3.7rem,19vw,5.8rem)}.footer{grid-template-columns:1fr;padding:2rem 0;gap:1.5rem}.footer>div:last-child{justify-content:flex-start}.footer>div:first-child{flex-direction:column;gap:.2rem}.hero-monogram{font-size:90vw;top:18vh;right:-20vw}.cursor{display:none}}
@media(max-width:340px){.hero-title{font-size:4rem}.hero-actions{gap:.5rem}.button{padding:0 1rem;gap:1rem}.project-links{gap:1rem;flex-wrap:wrap}.display-title{font-size:3.5rem}.contact-title{font-size:3.65rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}.field{display:none}.cursor{display:none}}
