@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&family=Space+Mono:wght@400;700&display=swap";:root{color-scheme:dark;--paper:#11110f;--ink:#f4f4f0;--muted:#a7a79f;--line:#f4f4f0;--accent:#ff6d38;--accent-soft:#78351f;background:var(--paper);color:var(--ink);font-family:DM Sans,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);min-width:320px;margin:0}a{color:inherit}button{color:inherit;font:inherit}.site-frame{flex-direction:column;width:min(100% - 48px,1320px);min-height:100vh;margin:0 auto;display:flex}.site-frame>main{flex-direction:column;flex:1;display:flex}.accent{color:var(--accent)}.site-header{border-bottom:1px solid var(--line);grid-template-columns:1fr auto 1fr;align-items:center;min-height:88px;display:grid}.site-mark{letter-spacing:-.12em;justify-self:start;font:700 1.2rem/1 Space Mono,monospace;text-decoration:none}.site-mark span{color:var(--accent)}.site-header nav{text-transform:uppercase;grid-column-start:2;gap:clamp(18px,3vw,42px);font:700 .76rem Space Mono,monospace;display:flex}.site-header nav a{align-items:center;min-height:44px;text-decoration:none;display:inline-flex;position:relative}.site-header nav a:after{background:var(--accent);content:"";transform-origin:0;height:2px;transition:transform .18s;position:absolute;bottom:-9px;left:0;right:0;transform:scaleX(0)}.site-header nav a:hover:after,.site-header nav a.active:after{transform:scaleX(1)}.globe-toggle{z-index:3;min-height:44px;color:var(--muted);cursor:pointer;text-transform:uppercase;background:0 0;border:0;padding:0;font:700 .68rem Space Mono,monospace;position:absolute;top:0;right:0}.globe-toggle:hover,.globe-toggle[aria-pressed=true]{color:var(--accent)}.globe{opacity:1;visibility:visible;transition:opacity .22s,visibility .22s}.globe-hidden .globe{opacity:0;visibility:hidden}.site-footer{border-top:1px solid var(--line);color:var(--muted);text-transform:uppercase;justify-content:space-between;gap:20px;padding:20px 0 28px;font:.68rem Space Mono,monospace;display:flex}.eyebrow,.module-label,.track-state,.label{letter-spacing:.08em;text-transform:uppercase;font:700 .68rem Space Mono,monospace}.eyebrow{color:var(--accent);max-width:unset!important}.home-grid{flex:1;grid-template-columns:minmax(0,1.6fr) minmax(280px,.8fr);gap:clamp(24px,5vw,90px);min-height:0;display:grid;position:relative}.hero{z-index:1;flex-direction:column;justify-content:space-between;padding:clamp(42px,8vw,110px) 0 0;animation:.65s both reveal;display:flex;position:relative}.hero>div:not(.globe){z-index:1;position:relative}.hero h1{letter-spacing:-.08em;max-width:740px;margin:20px 0 28px;font-size:clamp(3.8rem,9.5vw,9rem);font-weight:700;line-height:.58}.hero-name{font-size:.7em;display:inline-block}.hero h1 em{color:var(--accent);font-size:.3em;font-style:normal}.hero-role{letter-spacing:.02em;white-space:nowrap;font-size:.5em;display:inline-block}.hero-intro{max-width:520px;margin:0;font-family:Space Mono,monospace;font-size:clamp(1rem,1.2vw,1.2rem);line-height:1.18}.hero-interests{color:var(--muted);font-family:Space Mono,monospace;font-size:.82rem;line-height:1.15}.globe{z-index:0;width:min(42vw,360px);color:var(--accent);perspective:900px;pointer-events:none;position:absolute;top:clamp(24px,5vw,70px);right:0}.globe-canvas{aspect-ratio:1;width:100%}.globe-canvas canvas{width:100%;height:100%;display:block}.hero-bottom{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:32px;margin-top:80px;display:flex}.hero-links{text-transform:uppercase;gap:20px;font:.7rem Space Mono,monospace;display:flex}.hero-links a{text-underline-offset:4px}.hero-links a:hover{color:var(--accent)}.hero-index{color:var(--accent);letter-spacing:-.15em;font:700 clamp(4rem,10vw,9rem)/.8 Space Mono,monospace}.side-rail{flex-direction:column;justify-content:flex-end;align-items:flex-end;display:flex}.side-rail .hero-interests{width:min(100%,440px);color:var(--muted);text-align:right;margin:0 0 16px;font-size:.72rem}.now-playing{background:var(--ink);width:min(100%,440px);color:var(--paper);grid-template-columns:112px minmax(0,1fr);gap:18px;padding:22px;text-decoration:none;animation:.65s .18s both reveal;display:grid}.now-playing .module-label{color:var(--accent);grid-column:1/-1}.signal-dot{background:var(--muted);border-radius:50%;width:7px;height:7px;margin-right:7px;display:inline-block}.signal-dot.playing{background:var(--accent);box-shadow:0 0 0 5px var(--accent-soft);animation:2s infinite pulse}.signal-dot.recent{background:var(--accent)}.track-art{aspect-ratio:1;background:var(--accent);color:var(--ink);place-items:center;font-size:1.8rem;display:grid;overflow:hidden}.track-art img{object-fit:cover;width:100%;height:100%}.track-copy{min-width:0}.track-copy h2{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0 0 3px;font-size:1.05rem;line-height:1.05;overflow:hidden}.track-copy p,.track-copy small{color:var(--paper);margin:0;font-size:.82rem;display:block}.track-copy small{color:var(--muted);margin-top:7px;font-size:.62rem;line-height:1.3}.track-state{color:var(--accent)!important;margin:0 0 10px!important;font-size:.6rem!important}.page-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:end;gap:24px;padding:clamp(54px,10vw,120px) 0 48px;display:flex}.page-heading h1{letter-spacing:-.09em;max-width:800px;margin:16px 0 0;font-size:clamp(3.5rem,10vw,9rem);line-height:.82}.page-heading p{max-width:260px;color:var(--muted);margin:0;font-size:.92rem;line-height:1.35}.project-list{border-inline:1px solid var(--line)}.project-card{border-bottom:1px solid var(--line);color:inherit;grid-template-columns:90px minmax(0,1fr) 180px 100px;align-items:start;gap:22px;padding:30px 20px;text-decoration:none;transition:background .18s,padding .18s;display:grid}.project-card:hover{background:var(--accent);color:#11110f;padding-left:26px;padding-right:14px}.project-number{font:.7rem Space Mono,monospace}.project-card h2{letter-spacing:0;margin:0 0 12px;font:700 clamp(1.15rem,2vw,1.7rem)/1.15 Space Mono,monospace}.project-card p{max-width:450px;color:var(--muted);margin:0;font-size:.93rem;line-height:1.35}.project-card:hover p{color:#11110f}.project-tags{flex-wrap:wrap;gap:6px;display:flex}.project-tags span{text-transform:uppercase;border:1px solid;padding:5px 7px;font:.58rem Space Mono,monospace}.project-meta{justify-content:space-between;gap:12px;font:.68rem Space Mono,monospace;display:flex}.prose{width:100%;max-width:none;padding:clamp(54px,10vw,120px) 0}.prose h1{letter-spacing:-.09em;margin:0 0 60px;font-size:clamp(3.5rem,10vw,9rem);line-height:.82}.prose h2{color:var(--accent);text-transform:uppercase;margin:62px 0 15px;font:700 1rem Space Mono,monospace}.prose h3{margin:34px 0 7px;font-size:1.3rem}.prose p,.prose li{max-width:none;font-size:1.06rem;line-height:1.55}.prose ul{padding-left:20px}.profile-section{grid-template-columns:minmax(180px,.35fr) minmax(0,1fr);align-items:start;gap:clamp(28px,6vw,90px);display:grid}.profile-image{border:2px solid var(--accent);width:min(100%,220px);margin:0;padding:8px}.profile-image img{aspect-ratio:1;object-fit:cover;filter:grayscale()sepia(.35)saturate(.7)contrast(1.1);width:100%;display:block}.profile-copy h2,.profile-copy p{margin-top:0}.tech-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;list-style:none;display:grid;padding:0!important}.tech-list li{border:1px solid var(--line);align-items:center;gap:10px;min-height:48px;padding:10px 12px;font:.78rem Space Mono,monospace;display:flex}.tech-list img{flex:0 0 20px;width:20px;height:20px}.publication-index{margin-bottom:28px!important}.publication-list{gap:18px;display:grid}.publication-card{grid-template-columns:80px minmax(0,1fr);gap:22px;padding:18px 0;display:grid}.publication-year{color:var(--accent);font:700 .72rem Space Mono,monospace;margin:4px 0 0!important}.publication-card h3{max-width:850px;margin:0 0 8px;font:700 1.15rem/1.3 Space Mono,monospace}.publication-card h3 a{color:var(--ink);text-decoration:none}.publication-card h3 a:hover{color:var(--accent)}.publication-venue{color:var(--muted);margin:0 0 14px!important}.publication-tags{flex-wrap:wrap;gap:7px;display:flex}.publication-tags span{border:1px solid var(--accent);color:var(--accent);text-transform:uppercase;padding:5px 7px;font:.6rem Space Mono,monospace}.prose a{color:var(--accent);text-underline-offset:4px}.cv-actions{flex-wrap:wrap;gap:10px;margin:-32px 0 56px;display:flex}.button{border:1px solid var(--line);background:var(--ink);color:var(--paper);text-transform:uppercase;padding:12px 15px;font:700 .68rem Space Mono,monospace;text-decoration:none;display:inline-block}.button.secondary{color:var(--ink);background:0 0}.button:hover{background:var(--accent);color:#11110f}@keyframes reveal{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}@media (width<=800px){.site-frame{width:min(100% - 28px,1320px)}.home-grid{flex-direction:column;display:flex}.hero{flex:1;min-height:auto;padding-bottom:0;padding-left:0;padding-right:0}.side-rail{align-items:flex-end;padding-bottom:0;display:flex}.globe{z-index:0;opacity:.32;width:min(72vw,320px);top:0;right:0}.now-playing{gap:12px;width:100%;padding:16px}.track-copy h2{font-size:1.35rem}.project-card{grid-template-columns:48px minmax(0,1fr)}.project-tags,.project-meta{grid-column:2}}@media (width<=520px){.site-header{grid-template-columns:auto 1fr auto;min-height:70px}.site-header nav{grid-column-start:2;justify-content:center;gap:clamp(8px,3vw,15px);font-size:.63rem}.hero{min-height:auto;padding-top:58px;padding-bottom:58px}.hero h1{overflow-wrap:anywhere;margin-top:16px;font-size:clamp(4rem,21vw,7rem);line-height:.72}.hero-role{white-space:normal;overflow-wrap:anywhere;max-width:100%;margin-top:.12em;line-height:1.15;display:block}.hero-bottom{align-items:flex-start;margin-top:48px}.hero-links{flex-wrap:wrap;gap:4px 14px}.hero-links a{align-items:center;min-height:44px;display:inline-flex}.hero-index{margin-left:auto}.side-rail{padding-bottom:0;display:flex}.now-playing{grid-template-columns:92px minmax(0,1fr);gap:14px;width:100%;padding:18px}.track-copy h2,.track-copy p,.track-copy small{overflow-wrap:anywhere}.page-heading{padding-top:58px;padding-bottom:34px;display:block}.page-heading h1,.prose h1{overflow-wrap:anywhere}.page-heading p{margin-top:28px}.project-card{grid-template-columns:1fr;gap:14px;padding:24px 14px}.project-card:hover{padding-left:14px;padding-right:14px}.project-tags,.project-meta{grid-column:1}.project-number{padding-top:0}.project-meta{flex-direction:row;align-items:flex-start}.prose{padding-top:58px;padding-bottom:58px}.prose h1{margin-bottom:44px}.profile-section{flex-direction:column;gap:28px;display:flex}.profile-image{align-self:flex-end;width:min(42vw,180px)}.tech-list{grid-template-columns:repeat(2,minmax(0,1fr))}.publication-card{grid-template-columns:1fr;gap:8px}.publication-card h3{font-size:.95rem}.cv-actions{margin-bottom:44px}.site-footer{flex-direction:column;gap:5px}}
