:root{--void:#0c0b12;--panel:#16141d;--panel-2:#1d1a26;--rail:#2b2735;--slate:#423d52;--dusty:#6b6486;--lavender:#b9a9cf;--cream:#ede8e4;--cream-dim:#a39dab;--font-display:'Playfair Display',Georgia,serif;--font-mono:'IBM Plex Mono',ui-monospace,'SFMono-Regular',monospace;--font-body:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;color-scheme:dark}@font-face{font-family:'Playfair Display';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/playfair-display-400.woff2') format('woff2')}@font-face{font-family:'Playfair Display';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/playfair-display-500.woff2') format('woff2')}@font-face{font-family:'Playfair Display';font-style:italic;font-weight:400;font-display:swap;src:url('fonts/playfair-display-400-italic.woff2') format('woff2')}@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/ibm-plex-mono-400.woff2') format('woff2')}@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/ibm-plex-mono-500.woff2') format('woff2')}*{box-sizing:border-box}html{scroll-behavior:smooth}html{scrollbar-width:thin;scrollbar-color:var(--slate) var(--void)}body::-webkit-scrollbar,html::-webkit-scrollbar{width:10px;height:10px}body::-webkit-scrollbar-track,html::-webkit-scrollbar-track{background:var(--void)}body::-webkit-scrollbar-thumb,html::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--slate),var(--rail));border:2px solid var(--void);border-radius:999px}body::-webkit-scrollbar-thumb:hover,html::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,var(--dusty),var(--slate))}body::-webkit-scrollbar-corner,html::-webkit-scrollbar-corner{background:var(--void)}body{margin:0;background:var(--void);color:var(--cream);font-family:var(--font-body);line-height:1.7;overflow-x:clip}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation-duration:0s!important;animation-iteration-count:1!important;transition-duration:0s!important}}.skip-link{position:fixed;top:12px;left:12px;z-index:1000;transform:translateY(-160%);padding:10px 14px;background:var(--cream);color:var(--void);font-family:var(--font-mono);font-size:12px;letter-spacing:1px;text-transform:uppercase;text-decoration:none;border-radius:2px;transition:transform .2s ease}.skip-link:focus{transform:translateY(0)}a:focus-visible{outline:2px solid var(--lavender);outline-offset:5px;border-radius:2px}.grain{position:fixed;inset:0;z-index:999;pointer-events:none;opacity:.045;mix-blend-mode:overlay;background-image:radial-gradient(circle at 1px 1px,#fff 1px,transparent 0);background-size:3px 3px}.nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:24px 40px;mix-blend-mode:difference;background:0 0;backdrop-filter:none;border-bottom:1px solid transparent;transition:background-color .4s ease,backdrop-filter .4s ease,border-color .4s ease}.nav.scrolled{mix-blend-mode:normal;background:rgba(12,11,18,.8);backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.06)}.logo{font-family:var(--font-display);font-style:italic;font-size:20px;letter-spacing:1px;color:var(--cream);text-decoration:none}.nav nav{display:flex;gap:32px}.nav nav a{position:relative;font-family:var(--font-mono);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--cream-dim);text-decoration:none;padding-bottom:6px;transition:color .3s ease,text-shadow .35s ease}.nav nav a::after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left center;transition:transform .35s cubic-bezier(.2, .8, .2, 1)}.nav nav a:hover{color:var(--lavender)}.nav nav a.is-active{color:var(--lavender);text-shadow:0 0 12px rgba(185,169,207,.55),0 0 28px rgba(185,169,207,.28)}.nav nav a.is-active::after{transform:scaleX(1)}.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:center;overflow:hidden}.atmosphere{position:absolute;inset:0;z-index:0;background:radial-gradient(circle at 68% 34%,rgba(155,132,181,.22),transparent 24%),linear-gradient(165deg,#0a0910 0,#17131f 48%,#292038 100%)}.atmosphere-photo{position:absolute;inset:-8%;width:116%;height:116%;object-fit:cover;object-position:center 60%;filter:saturate(.85) brightness(.75);opacity:1;transform:translate3d(var(--hero-x,0),var(--hero-y,0),0);will-change:transform,opacity}.js .atmosphere-photo{opacity:0;transition:opacity 1.1s ease}.js .hero.hero-loaded .atmosphere-photo{opacity:1}.atmosphere-drift{position:absolute;inset:0;will-change:transform}@media (prefers-reduced-motion:no-preference){.js .hero.hero-loaded .atmosphere-drift{animation:hero-drift 28s ease-in-out infinite alternate}@keyframes hero-drift{from{transform:scale(1.03) translate3d(0,0,0)}to{transform:scale(1.08) translate3d(-1.4%,-.9%,0)}}}.haze{position:absolute;border-radius:50%;filter:blur(70px);mix-blend-mode:screen}.haze-3{width:28vw;height:28vw;top:30%;left:55%;background:radial-gradient(circle,var(--lavender),transparent 70%);opacity:.22;transform:translate3d(var(--haze-x,0),var(--haze-y,0),0);animation:haze-drift-1 70s ease-in-out infinite alternate-reverse}@keyframes haze-drift-1{from{transform:translate3d(var(--haze-x,0),var(--haze-y,0),0)}to{transform:translate3d(calc(var(--haze-x,0) + 4vw),calc(var(--haze-y,0) + 3vh),0)}}.fog{position:absolute;inset:0;overflow:hidden;pointer-events:none;mix-blend-mode:soft-light}.fog-bank{position:absolute;border-radius:50%;filter:blur(48px);opacity:0;will-change:transform,opacity}.js .hero.hero-loaded .fog-bank{opacity:1}.fog-bank-1{width:55vw;height:28vh;left:-10%;bottom:8%;background:radial-gradient(ellipse,rgba(230,224,240,.55),transparent 70%)}.fog-bank-2{width:40vw;height:22vh;right:-5%;bottom:22%;background:radial-gradient(ellipse,rgba(185,169,207,.4),transparent 72%)}.fog-bank-3{width:35vw;height:18vh;left:30%;top:42%;background:radial-gradient(ellipse,rgba(220,214,230,.28),transparent 70%)}@media (prefers-reduced-motion:no-preference){.js .hero.hero-loaded .fog-bank-1{animation:fog-drift-a 48s ease-in-out infinite alternate}.js .hero.hero-loaded .fog-bank-2{animation:fog-drift-b 62s ease-in-out infinite alternate}.js .hero.hero-loaded .fog-bank-3{animation:fog-drift-c 38s ease-in-out infinite alternate-reverse}@keyframes fog-drift-a{from{transform:translate3d(0,0,0) scale(1);opacity:.45}to{transform:translate3d(12%,-6%,0) scale(1.08);opacity:.7}}@keyframes fog-drift-b{from{transform:translate3d(0,0,0) scale(1.05);opacity:.35}to{transform:translate3d(-14%,5%,0) scale(1);opacity:.55}}@keyframes fog-drift-c{from{transform:translate3d(0,4%,0) scale(1);opacity:.2}to{transform:translate3d(8%,-8%,0) scale(1.12);opacity:.4}}}@media (prefers-reduced-motion:reduce){.js .hero.hero-loaded .fog-bank{opacity:.35}}.glow{position:absolute;top:18%;left:62%;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(185,169,207,.35),transparent 72%);filter:blur(30px);mix-blend-mode:screen;transform:translate3d(var(--glow-x,0),var(--glow-y,0),0);transition:transform .4s cubic-bezier(.2, .7, .2, 1)}.scrim{position:absolute;inset:0;background:linear-gradient(115deg,rgba(8,7,12,.88) 0,rgba(8,7,12,.55) 38%,rgba(8,7,12,.25) 60%,transparent 78%),linear-gradient(0deg,rgba(8,7,12,.75) 0,transparent 45%)}.vignette{position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 45%,rgba(6,5,10,.55) 100%)}.hero-content{position:relative;z-index:2;max-width:640px;padding:0 40px}.js .hero-content>*,.js .scroll-cue{opacity:0;transform:translateY(14px)}.js .hero.hero-loaded .hero-content>*,.js .hero.hero-loaded .scroll-cue{animation:hero-copy-in .9s cubic-bezier(.2,.8,.2,1) forwards}.js .hero.hero-loaded .hero-content>:first-child{animation-delay:50ms}.js .hero.hero-loaded .hero-content>:nth-child(2){animation-delay:.14s}.js .hero.hero-loaded .hero-content>:nth-child(3){animation-delay:.25s}.js .hero.hero-loaded .hero-content>:nth-child(4){animation-delay:.34s}.js .hero.hero-loaded .scroll-cue{animation-delay:.55s}@keyframes hero-copy-in{to{opacity:1;transform:translateY(0)}}.eyebrow{font-family:var(--font-mono);font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--lavender);margin:0 0 18px}.hero h1{font-family:var(--font-display);font-weight:500;font-size:clamp(56px, 9vw, 110px);line-height:1.02;margin:0 0 20px;color:var(--cream)}.tagline{font-size:18px;color:var(--cream-dim);max-width:460px;margin:0 0 32px}.text-link{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:13px;letter-spacing:1px;text-transform:uppercase;color:var(--lavender);text-decoration:none;border-bottom:1px solid transparent;padding-bottom:2px;transition:color .25s ease,border-color .25s ease,gap .25s ease}.text-link:hover{color:var(--cream);border-color:var(--dusty);gap:10px}.scroll-cue{position:absolute;left:40px;bottom:48px;z-index:2;display:flex;flex-direction:column;align-items:flex-start;gap:10px;text-decoration:none;font-family:var(--font-mono);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--cream-dim)}.scroll-cue-line{width:1px;height:40px;background:linear-gradient(180deg,var(--lavender),transparent);animation:scroll-line 2.4s ease-in-out infinite}@keyframes scroll-line{0%{opacity:.2;transform:scaleY(.3);transform-origin:top}50%{opacity:1;transform:scaleY(1);transform-origin:top}100%{opacity:.2;transform:scaleY(.3);transform-origin:top}}main>section:not(.hero){max-width:1080px;margin:0 auto;padding:140px 40px}.label{font-family:var(--font-mono);font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--lavender);margin:0 0 16px}.about-copy h2,.section-head h2{font-family:var(--font-display);font-weight:500;font-size:clamp(32px, 4vw, 46px);margin:0 0 12px;color:var(--cream)}.section-sub{color:var(--cream-dim);font-size:16px;max-width:520px;margin:0}.skills-tap-cue{display:none;margin:14px 0 0;font-family:var(--font-mono);font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:var(--dusty)}@media (hover:none){.skills-tap-cue{display:block}}.reveal{opacity:1}.js .reveal{opacity:0;transform:translateY(24px);transition:opacity .9s ease,transform .9s ease}.js .reveal.in-view{opacity:1;transform:translateY(0)}.selected{position:relative;overflow:visible}.selected::before{content:'';position:absolute;top:-60px;bottom:-60px;left:50%;width:100vw;margin-left:-50vw;z-index:0;pointer-events:none;background:radial-gradient(ellipse 60% 50% at 72% 40%,rgba(185,169,207,.06) 0,rgba(155,132,181,.02) 40%,transparent 70%)}.selected>*{position:relative;z-index:1}.projects{margin-top:56px;display:flex;flex-direction:column;gap:0}.project{padding:36px 0;border-top:1px solid var(--rail)}.project:last-child{border-bottom:1px solid var(--rail)}.project h3{font-family:var(--font-display);font-style:italic;font-weight:500;font-size:clamp(22px, 2.5vw, 28px);margin:0 0 8px;color:var(--cream)}.project-meta{font-family:var(--font-mono);font-size:12px;letter-spacing:.4px;color:var(--dusty);margin:0 0 16px}.project-summary{margin:0 0 16px;max-width:640px;font-size:16px;color:var(--cream-dim)}.project-points{list-style:none;margin:0 0 20px;padding:0;max-width:640px}.project-points li{position:relative;padding:4px 0 4px 16px;font-family:var(--font-mono);font-size:13px;color:var(--cream-dim)}.project-points li::before{content:'';position:absolute;left:0;top:.75em;width:5px;height:1px;background:var(--lavender)}.project-stack{margin:0;padding-top:16px;border-top:1px solid rgba(43,39,53,.85);font-family:var(--font-mono);font-size:12px;letter-spacing:.3px;color:var(--dusty);max-width:640px}.project-stack-label{color:var(--lavender);margin-right:10px;text-transform:uppercase;letter-spacing:1.2px;font-size:10px}.about,.experience{position:relative;overflow:visible}.work{position:relative;overflow:visible}.work::before{content:'';position:absolute;top:-80px;bottom:-80px;left:50%;width:100vw;margin-left:-50vw;z-index:0;pointer-events:none;background:radial-gradient(ellipse 75% 55% at 55% 45%,rgba(155,132,181,.07) 0,rgba(41,32,56,.035) 42%,transparent 72%);-webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 18%,#000 82%,transparent 100%);mask-image:linear-gradient(180deg,transparent 0%,#000 18%,#000 82%,transparent 100%)}.work>*{position:relative;z-index:1}.section-atmosphere{display:none}.about>:not(.section-atmosphere),.experience>:not(.section-atmosphere){position:relative;z-index:1}@media (min-width:901px){.section-atmosphere{display:block;position:absolute;top:0;bottom:0;left:50%;width:100vw;margin-left:-50vw;z-index:0;pointer-events:none;overflow:hidden;-webkit-mask-image:linear-gradient(to right,transparent 0%,#000 10%,#000 90%,transparent 100%),linear-gradient(to bottom,transparent 0%,#000 14%,#000 86%,transparent 100%);mask-image:linear-gradient(to right,transparent 0%,#000 10%,#000 90%,transparent 100%),linear-gradient(to bottom,transparent 0%,#000 14%,#000 86%,transparent 100%);-webkit-mask-composite:source-in;mask-composite:intersect}.section-atmosphere picture{display:contents}.section-atmosphere-photo{position:absolute;inset:-12%;width:124%;height:124%;object-fit:cover;object-position:center;filter:saturate(.78) brightness(.72);transform:translate3d(var(--section-x,0),var(--section-y,0),0) scale(1.04);will-change:transform}.section-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,11,18,.72) 0,rgba(12,11,18,.42) 42%,rgba(12,11,18,.78) 100%),radial-gradient(ellipse at center,transparent 28%,rgba(8,7,12,.55) 100%)}.experience-atmosphere .section-atmosphere-photo{object-position:center 34%;filter:saturate(.75) brightness(.7) hue-rotate(12deg)}.experience-atmosphere .section-scrim{background:linear-gradient(90deg,rgba(12,11,18,.88) 0,rgba(12,11,18,.45) 42%,rgba(12,11,18,.72) 100%),linear-gradient(180deg,rgba(12,11,18,.35) 0,transparent 35%,rgba(12,11,18,.55) 100%)}.about-atmosphere .section-atmosphere-photo{object-position:center 40%;filter:brightness(.12) saturate(.7);opacity:.85}.about-atmosphere .section-scrim{background:linear-gradient(200deg,rgba(12,11,18,.88) 0,rgba(12,11,18,.55) 42%,rgba(12,11,18,.82) 100%),radial-gradient(circle at 24% 18%,rgba(185,169,207,.06),transparent 42%),linear-gradient(180deg,rgba(12,11,18,.45) 0,transparent 28%,transparent 70%,rgba(12,11,18,.55) 100%)}.about-atmosphere{-webkit-mask-image:linear-gradient(to right,transparent 0%,#000 14%,#000 86%,transparent 100%),linear-gradient(to bottom,transparent 0%,#000 18%,#000 80%,transparent 100%);mask-image:linear-gradient(to right,transparent 0%,#000 14%,#000 86%,transparent 100%),linear-gradient(to bottom,transparent 0%,#000 18%,#000 80%,transparent 100%);-webkit-mask-composite:source-in;mask-composite:intersect}}.cards{margin-top:56px;display:grid;grid-template-columns:repeat(3,1fr);gap:28px;align-items:start}.card{opacity:1;padding:0 0 4px;border-radius:4px;outline:0;cursor:default}.js .card{opacity:0;transform:translateY(24px);transition:opacity .9s ease,transform .9s ease}.js .card.in-view{opacity:1;transform:translateY(0)}.card:nth-child(2){transition-delay:80ms}.card:nth-child(3){transition-delay:0.16s}.card:nth-child(4){transition-delay:0.24s}.card:nth-child(5){transition-delay:0.32s}.card:nth-child(6){transition-delay:0.4s}.card-art{height:175px;border-radius:8px;margin-bottom:20px;position:relative;overflow:hidden;background:var(--panel);transition:filter .4s ease}.about-art picture,.atmosphere picture,.card-art picture{display:contents}.card-art img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}.card-art-design img{object-position:center -120px}.card-art::before{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(200deg,rgba(12,11,18,.05) 0,rgba(12,11,18,.35) 100%);pointer-events:none}.card-art::after{content:'';position:absolute;inset:0;z-index:1;background-image:radial-gradient(circle at 1px 1px,rgba(255,255,255,.5) 1px,transparent 0);background-size:3px 3px;opacity:.06;mix-blend-mode:overlay;pointer-events:none}.js .card .card-art{clip-path:inset(12% 0 12% 0 round 8px);opacity:0;transform:translateY(18px);transition:clip-path 1.1s cubic-bezier(.2, .8, .2, 1),opacity .9s ease,transform 1.1s cubic-bezier(.2, .8, .2, 1),filter .4s ease}.js .card.in-view .card-art{clip-path:inset(0 0 0 0 round 8px);opacity:1;transform:translateY(0)}.card.is-expanded .card-art,.card:focus-visible .card-art,.card:hover .card-art{filter:brightness(1.08)}.card h3{font-family:var(--font-display);font-weight:500;font-size:21px;margin:0 0 10px;color:var(--cream)}.card>p{font-size:14px;color:var(--cream-dim);margin:0}.card-terminal{display:grid;grid-template-rows:0fr;margin-top:0;transition:grid-template-rows 2s cubic-bezier(.2, .8, .2, 1),margin-top 2s ease}.card-terminal-inner{overflow:hidden;min-height:0;opacity:0;transition:opacity .9s ease}.card.is-expanded .card-terminal{grid-template-rows:1fr;margin-top:16px;transition:grid-template-rows .45s cubic-bezier(.2, .8, .2, 1),margin-top .45s ease}.card.is-expanded .card-terminal-inner{opacity:1;transition:opacity .35s ease .1s}.card-terminal-prompt{margin:0;padding:10px 12px 8px;font-family:var(--font-mono);font-size:11px;letter-spacing:.4px;color:var(--dusty);background:var(--panel);border:1px solid rgba(185,169,207,.1);border-bottom:0;border-radius:8px 8px 0 0}.card-terminal-ps{color:var(--lavender);margin-right:6px}.card-terminal-lines{list-style:none;margin:0;padding:0 12px 12px;background:var(--panel);border:1px solid rgba(185,169,207,.1);border-top:0;border-radius:0 0 8px 8px;min-height:4.5em}.card-terminal-lines li{position:relative;padding:3px 0 3px 14px;font-family:var(--font-mono);font-size:11px;line-height:1.55;letter-spacing:.3px;color:var(--lavender)}.card-terminal-lines li::before{content:'›';position:absolute;left:0;color:var(--dusty)}.card-terminal-lines li.has-cursor::after,.card-terminal-lines li.is-typing::after{content:'█';margin-left:2px;font-size:9px;color:var(--lavender);animation:terminal-blink 1s steps(1) infinite;vertical-align:baseline}@keyframes terminal-blink{0%,49%{opacity:1}100%,50%{opacity:0}}html:not(.js) .card:focus-within .card-terminal,html:not(.js) .card:hover .card-terminal{grid-template-rows:1fr;margin-top:16px;transition:grid-template-rows .45s cubic-bezier(.2, .8, .2, 1),margin-top .45s ease}html:not(.js) .card:focus-within .card-terminal-inner,html:not(.js) .card:hover .card-terminal-inner{opacity:1}html:not(.js) .card:not(:hover):not(:focus-within) .card-terminal{transition:grid-template-rows 2s cubic-bezier(.2, .8, .2, 1),margin-top 2s ease}@media (prefers-reduced-motion:reduce){.card-terminal,.card-terminal-inner,.card.is-expanded .card-terminal,.card.is-expanded .card-terminal-inner{transition-duration:0s!important}.card-terminal-lines li.has-cursor::after,.card-terminal-lines li.is-typing::after{animation:none;opacity:1}}.timeline{list-style:none;margin:56px 0 0;padding:0 0 0 28px;position:relative;border-left:0}.timeline::before{content:'';position:absolute;top:0;bottom:0;left:0;width:1px;background:var(--rail);transform:scaleY(1);transform-origin:top}.js .timeline::before{transform:scaleY(0);transition:transform 1.4s cubic-bezier(.2, .8, .2, 1)}.js .timeline.in-view::before{transform:scaleY(1)}.timeline li{position:relative;padding:0 0 40px}.timeline li:last-child{padding-bottom:0}.timeline li::before{content:'';position:absolute;left:-33px;top:6px;width:9px;height:9px;border-radius:50%;background:var(--lavender);box-shadow:0 0 0 4px var(--void),0 0 12px rgba(185,169,207,.5)}.timeline-role h3{font-family:var(--font-display);font-style:italic;font-weight:500;font-size:20px;margin:0 0 6px;color:var(--cream)}.timeline-company{font-family:var(--font-mono);font-size:13px;color:var(--cream-dim)}.timeline-dates{display:block;margin-top:8px;font-family:var(--font-mono);font-size:12px;letter-spacing:.5px;color:var(--dusty)}.timeline-blurb{margin:12px 0 0;max-width:540px;font-size:15px;line-height:1.65;color:var(--cream-dim)}.education{margin:32px 0 0 28px;font-family:var(--font-mono);font-size:13px;color:var(--cream-dim)}.about-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:64px;align-items:center}.about-copy p{font-size:16px;color:var(--cream-dim);max-width:480px;margin:0 0 28px}.about-art{position:relative;height:380px;border-radius:12px;overflow:hidden}.about-art img{width:100%;height:100%;object-fit:cover;object-position:center 30%;display:block;filter:grayscale(.45) contrast(1.1) brightness(1.02)}.duo-shadow{position:absolute;inset:0;background:var(--void);mix-blend-mode:multiply;opacity:.35}.duo-highlight{position:absolute;inset:0;background:radial-gradient(circle at 30% 15%,var(--lavender),var(--dusty) 65%,transparent 100%);mix-blend-mode:screen;opacity:.22}.about-art::after{content:'';position:absolute;inset:0;background-image:radial-gradient(circle at 1px 1px,rgba(255,255,255,.6) 1px,transparent 0);background-size:3px 3px;opacity:.14;mix-blend-mode:overlay}.traits{list-style:none;margin:72px 0 0;padding:40px 0 0;border-top:1px solid var(--rail);display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.traits li{display:flex;flex-direction:column;gap:10px}.trait-icon{width:22px;height:22px;color:var(--lavender)}.trait-icon svg{width:100%;height:100%}.trait-title{font-family:var(--font-display);font-style:italic;font-size:17px;color:var(--cream)}.trait-sub{font-family:var(--font-mono);font-size:12px;color:var(--cream-dim)}.trait-link{color:inherit;text-decoration:none;background-image:linear-gradient(currentColor,currentColor);background-position:0 100%;background-repeat:no-repeat;background-size:0 1px;transition:color .25s ease,background-size .25s ease}.trait-link:focus-visible,.trait-link:hover{color:var(--lavender);background-size:100% 1px}.contact{position:relative;overflow:visible}.contact::before{content:'';position:absolute;top:-80px;bottom:-100px;left:50%;width:100vw;margin-left:-50vw;z-index:0;pointer-events:none;background:radial-gradient(ellipse 42vw 38vh at 18% 48%,rgba(185,169,207,.1) 0,rgba(155,132,181,.035) 38%,transparent 72%)}.contact>*{position:relative;z-index:1}.contact h2{font-family:var(--font-display);font-weight:500;font-size:clamp(32px, 5vw, 52px);margin:0 0 16px;max-width:560px}.contact-links{display:flex;gap:32px;margin:32px 0 24px;flex-wrap:wrap}.contact-links .text-link{border-bottom-color:transparent;background-image:linear-gradient(var(--lavender),var(--lavender));background-position:0 100%;background-repeat:no-repeat;background-size:0 1px;transition:color .25s ease,gap .25s ease,background-size .45s cubic-bezier(.2, .8, .2, 1)}.contact-links .text-link:hover{border-bottom-color:transparent;background-size:100% 1px}.location{font-family:var(--font-mono);font-size:13px;color:var(--dusty);margin:0}footer{display:flex;align-items:center;justify-content:space-between;max-width:1080px;margin:0 auto;padding:32px 40px 56px;font-family:var(--font-mono);font-size:12px;color:var(--dusty)}.back-to-top{color:var(--dusty);text-decoration:none;transition:color .25s ease}.back-to-top:hover{color:var(--lavender)}@media (max-width:900px){.cards{grid-template-columns:repeat(2,1fr)}.about-grid{grid-template-columns:1fr}.about-art{order:-1}.traits{grid-template-columns:repeat(2,1fr);row-gap:32px}}@media (max-width:640px){.nav{padding:16px 20px}.nav nav{overflow-x:auto;flex-wrap:nowrap;max-width:calc(100vw - 72px);gap:16px;scrollbar-width:none}.nav nav::-webkit-scrollbar{display:none}.nav nav a{font-size:10px;letter-spacing:1px;white-space:nowrap;flex-shrink:0}.nav nav a[href="#top"]{display:none}.hero-content{padding:0 24px}main>section:not(.hero){padding:96px 24px}.cards{grid-template-columns:1fr}.scroll-cue{left:24px;bottom:32px}footer{padding:28px 24px 40px;flex-direction:column;gap:12px;align-items:flex-start}}