:root{--ink-0:#0a0708;--ink-1:#110d10;--ink-2:#191317;--fg:#f7f1ea;--fg-mid:#cdc5bd;--fg-low:#9a908a;--line:#f5ede61a;--line-2:#f5ede633;--sun-gold:#ffc46b;--sun-amber:#ff9a4d;--sun-coral:#ff6b5a;--sun-rose:#f0568c;--sun-plum:#7c4a9c;--sun:#ff9761;--sun-dim:#ff8a4c24;--sun-line:#ff8a4c61;--sky:radial-gradient(58% 42% at 50% 104%,#f0568c57 0%,#0000 68%),radial-gradient(42% 34% at 50% 88%,#ff9a4d4d 0%,#0000 70%),radial-gradient(70% 48% at 50% 6%,#7c4a9c4d 0%,#0000 72%);--sans:"Geist",ui-sans-serif,system-ui,-apple-system,sans-serif;--mono:"Geist Mono",ui-monospace,"SF Mono",Menlo,monospace;--serif:"Instrument Serif","Iowan Old Style",Georgia,serif;--gut:clamp(1.25rem,4vw,3.5rem);--wide:1440px;--text:1080px;--ease:cubic-bezier(0.16,1,0.3,1);color-scheme:dark}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:88px;scrollbar-color:#f5ede633 #0000;scrollbar-color:var(--line-2) #0000;scrollbar-width:thin}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:#0a0708;background:var(--ink-0);color:#cdc5bd;color:var(--fg-mid);font-family:Geist,ui-sans-serif,system-ui,-apple-system,sans-serif;font-family:var(--sans);font-size:16px;font-weight:400;line-height:1.6;overflow-x:hidden}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button{background:none;border:none;color:inherit;cursor:pointer;font:inherit}:where(a,button,[tabindex]):focus-visible{border-radius:1px;outline:2px solid #ff9761;outline:2px solid var(--sun);outline-offset:3px}.sr-only{border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.em{font-family:"Instrument Serif",Iowan Old Style,Georgia,serif;font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:.005em;line-height:1.1;padding-right:.06em}::selection{background:#ff9761;background:var(--sun);color:#0a0708;color:var(--ink-0)}.site{position:relative}.eyebrow{color:var(--fg-low);font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase}.sec{margin-inline:auto;max-width:var(--wide);padding:clamp(64px,7.6vw,112px) var(--gut)}.sec-head{margin-bottom:clamp(40px,6vw,72px);max-width:var(--text)}.sec-title{color:var(--fg);font-family:var(--serif);font-size:clamp(34px,5.2vw,60px);font-weight:400;letter-spacing:-.015em;line-height:1.04;margin-top:14px}.sec-lede{color:var(--fg-mid);font-size:16px;margin-top:18px;max-width:46ch}.btn{align-items:center;border-radius:2px;display:inline-flex;font-family:var(--mono);font-size:13px;font-weight:500;gap:8px;letter-spacing:.04em;padding:13px 24px;transition:background .18s var(--ease),border-color .18s var(--ease),color .18s var(--ease),transform 90ms ease}.btn:active{transform:translateY(1px)}.btn-solid{background:var(--sun);color:var(--ink-0);font-weight:500}.btn-solid:hover{background:#d3bcff}.btn-line{border:1px solid var(--line-2);color:var(--fg)}.btn-line:hover{background:#ece8e10a;border-color:var(--fg-mid)}.chips{display:flex;flex-wrap:wrap;gap:6px}.chips--wide{gap:8px}.chip{align-items:center;background:var(--ink-1);border:1px solid var(--line);border-radius:2px;color:var(--fg-mid);display:inline-flex;font-family:var(--mono);font-size:11.5px;gap:7px;letter-spacing:.02em;padding:5px 11px;transition:border-color .18s var(--ease),color .18s var(--ease)}.chip:hover{border-color:var(--line-2);color:var(--fg)}.chip--concept .tech-glyph{color:var(--sun);opacity:.78}.chip--concept:hover .tech-glyph{opacity:1}.tech-glyph,.tech-icon{flex-shrink:0;object-fit:contain;transition:opacity .18s var(--ease)}.nav-sentinel{height:1px;left:0;pointer-events:none;position:absolute;top:0;width:100%}.nav{align-items:center;background:#0000;border-bottom:1px solid #0000;display:flex;gap:24px;height:64px;padding-inline:var(--gut);position:-webkit-sticky;position:sticky;top:0;transition:background .26s var(--ease),border-color .26s var(--ease);z-index:50}.nav--stuck{backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);background:#0b0c0ed1;border-bottom-color:var(--line)}.nav-brand{align-items:baseline;display:inline-flex;flex-shrink:0;gap:10px}.nav-brand-mark{color:var(--sun);font-family:var(--mono);font-size:13px;font-weight:500;letter-spacing:.1em}.nav-brand-name{color:var(--fg);font-family:var(--sans);font-size:14px;font-weight:500;letter-spacing:-.01em}.nav-links{align-items:center;display:flex;gap:4px;margin-inline:auto}.nav-link{color:var(--fg-low);font-family:var(--mono);font-size:12px;letter-spacing:.04em;padding:7px 12px;position:relative;transition:color .18s var(--ease);white-space:nowrap}.nav-link.is-active,.nav-link:hover{color:var(--fg)}.nav-link.is-active:after{background:var(--sun);bottom:1px;content:"";height:1px;left:12px;position:absolute;right:12px}.nav-cta{align-items:center;border:1px solid var(--line-2);border-radius:2px;color:var(--fg);display:inline-flex;flex-shrink:0;font-family:var(--mono);font-size:12px;gap:6px;letter-spacing:.04em;padding:8px 16px;transition:border-color .18s var(--ease),background .18s var(--ease)}.nav-cta:hover{background:var(--sun-dim);border-color:var(--sun-line)}.hero{display:flex;flex-direction:column;gap:clamp(28px,4vh,56px);isolation:isolate;justify-content:center;margin-inline:auto;max-width:var(--wide);min-height:calc(100dvh - 64px);overflow:hidden;padding:clamp(28px,5vh,64px) var(--gut) clamp(24px,4vh,44px);position:relative}.hero-sky{animation:sky-drift 24s ease-in-out infinite alternate;background:var(--sky);inset:-30% -30% -10% -30%;pointer-events:none;position:absolute;will-change:transform;z-index:-1}@keyframes sky-drift{0%{transform:translate3d(-2%,1%,0) scale(1)}to{transform:translate3d(3%,-2%,0) scale(1.09)}}@media (prefers-reduced-motion:reduce){.hero-sky{animation:none}}.hero-inner{grid-gap:clamp(24px,4vw,64px);align-items:center;display:grid;gap:clamp(24px,4vw,64px);grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr)}.hero-title{color:var(--fg);font-family:var(--sans);font-size:clamp(32px,4.4vw,60px);font-weight:500;letter-spacing:-.028em;line-height:1.06;margin-top:16px}.hero-title .line{display:block;overflow:hidden;padding-bottom:.09em}.hero-title .line>span{display:block}@media (prefers-reduced-motion:no-preference){@keyframes h-wipe{0%{transform:translateY(106%)}to{transform:translateY(0)}}@keyframes h-rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes h-scene-in{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.hero-title .line>span{animation:h-wipe 1s var(--ease) both}.hero-title .line:nth-child(2)>span{animation-delay:.09s}[data-h-fade]{animation:h-rise .7s var(--ease) both}.hero-copy .eyebrow{animation-delay:.05s}.hero-sub{animation-delay:.5s}.hero-actions{animation-delay:.6s}[data-h-scene]{animation:h-scene-in 1.1s var(--ease) .2s both}[data-h-stat]{animation:h-rise .55s var(--ease) both}.hero-rail li:first-child{animation-delay:.7s}.hero-rail li:nth-child(2){animation-delay:.77s}.hero-rail li:nth-child(3){animation-delay:.84s}.hero-rail li:nth-child(4){animation-delay:.91s}}.hero-title .em{color:var(--sun);font-size:1.1em}.hero-sub{color:var(--fg-mid);font-size:clamp(15px,1.25vw,17.5px);line-height:1.62;margin-top:20px;max-width:46ch}.hero-actions{align-items:center;display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.hero-socials{display:inline-flex;gap:2px;margin-left:6px}.hero-socials a{display:grid;height:38px;opacity:.55;place-items:center;transition:opacity .2s var(--ease),transform .2s var(--ease);width:38px}.hero-socials a:hover{opacity:1;transform:translateY(-2px)}.hero-socials .tech-icon{filter:grayscale(1) brightness(1.9)}.hero-scene{height:clamp(320px,52vh,520px);mix-blend-mode:lighten;position:relative}.hero-scene canvas{display:block;height:100%!important;width:100%!important}.scene-loading{animation:scene-pulse 1.9s ease-in-out infinite;background:radial-gradient(32% 36% at 50% 52%,#ff976133,#0000 70%);inset:0;position:absolute}@keyframes scene-pulse{0%,to{opacity:.35}50%{opacity:.85}}.hero-rail{grid-gap:1px;background:var(--line);border:1px solid var(--line);display:grid;gap:1px;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none}.hero-rail li{background:linear-gradient(180deg,#ff97610f,#0000 70%),var(--ink-1);display:flex;flex-direction:column;gap:3px;padding:15px 18px}@media (max-width:900px){.hero{min-height:0;padding-block:clamp(24px,5vh,48px)}.hero-inner{gap:32px;grid-template-columns:1fr}.hero-scene{height:clamp(260px,42vh,380px);order:-1}.hero-rail{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:520px){.hero-rail{grid-template-columns:1fr}}.marquee{background:var(--ink-1);border-block:1px solid var(--line);overflow:hidden;padding-block:20px}.marquee-track{animation:marquee-run 46s linear infinite;display:flex;width:-webkit-max-content;width:max-content}.marquee:hover .marquee-track{animation-play-state:paused}.marquee-run{align-items:center;display:flex;gap:44px;list-style:none;padding-right:44px}.marquee-item{align-items:center;color:var(--fg-low);display:inline-flex;font-family:var(--mono);font-size:12.5px;gap:10px;letter-spacing:.05em;white-space:nowrap}.marquee-item .tech-icon{opacity:.72}.marquee-item .tech-glyph{color:var(--sun);opacity:.72}@keyframes marquee-run{0%{transform:translateZ(0)}to{transform:translate3d(-50%,0,0)}}@media (prefers-reduced-motion:reduce){.marquee-track{animation:none}.marquee{overflow-x:auto}}.lede{margin-bottom:clamp(32px,4vw,56px)}.lede-title{color:var(--fg);font-family:var(--sans);font-size:clamp(28px,3.6vw,46px);font-weight:500;letter-spacing:-.022em;line-height:1.12;margin-top:10px}.lede-title .em{color:var(--sun);font-size:1.14em}.about-grid{grid-gap:clamp(32px,5vw,72px);align-items:start;border-top:1px solid var(--line);display:grid;gap:clamp(32px,5vw,72px);grid-template-columns:minmax(0,1.25fr) minmax(0,.85fr);padding-top:clamp(28px,3vw,44px)}.ag{margin-top:clamp(26px,3vw,38px)}.ag-points{display:flex;flex-direction:column;gap:11px;list-style:none;max-width:56ch}.ag-points li{text-wrap:pretty;color:var(--fg-mid);font-size:clamp(15px,1.25vw,17px);line-height:1.62;padding-left:22px;position:relative}.ag-points li:before{background:var(--sun-line);content:"";height:1px;left:0;position:absolute;top:.72em;width:11px}.key{color:var(--fg);font-weight:500;text-decoration:underline;-webkit-text-decoration-color:var(--sun);text-decoration-color:var(--sun);text-decoration-thickness:1px;text-underline-offset:4px}.about-open{color:var(--fg)!important;font-size:clamp(20px,1.9vw,26px)!important;letter-spacing:-.015em;line-height:1.4!important}.about-side{display:flex;flex-direction:column;gap:clamp(24px,3vw,36px)}.pull{border-left:2px solid var(--sun);color:var(--fg);font-family:var(--serif);font-size:clamp(19px,1.9vw,26px);line-height:1.32;margin:0;padding:20px 0 20px 20px}.pull .em{color:var(--sun)}.facts{margin:0}.facts>div{grid-gap:14px;border-top:1px solid var(--line);display:grid;gap:14px;grid-template-columns:84px minmax(0,1fr);padding:9px 0}.facts>div:last-child{border-bottom:1px solid var(--line)}.facts dt{color:var(--fg-low);font-family:var(--mono);font-size:11px;letter-spacing:.14em;padding-top:2px;text-transform:uppercase}.facts dd{color:var(--fg);font-size:14px;margin:0}.record{display:flex;flex-direction:column;gap:clamp(28px,3.4vw,44px)}.job{background:var(--ink-1);border:1px solid var(--line);border-top:2px solid var(--sun-line);padding:clamp(22px,2.4vw,34px)}.job-head{align-items:flex-start;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between}.job-id{align-items:center;display:flex;gap:14px}.job-logo{background:var(--fg);flex-shrink:0;height:40px;object-fit:contain;padding:5px;width:40px}.job-role{align-items:baseline;color:var(--fg);display:flex;flex-wrap:wrap;font-family:var(--sans);font-size:clamp(18px,1.8vw,23px);font-weight:500;gap:10px;letter-spacing:-.012em}.job-grade{border:1px solid var(--sun-line);border-radius:2px;color:var(--sun);font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;padding:2px 7px}.job-org{color:var(--fg-mid);font-family:var(--serif);font-size:17px;margin-top:1px}.job-when{display:flex;flex-direction:column;font-family:var(--mono);font-size:12px;gap:3px;letter-spacing:.03em;text-align:right}.job-period{color:var(--fg)}.job-where{color:var(--fg-low)}.job-metrics{grid-gap:1px;background:var(--line);border:1px solid var(--line);display:grid;gap:1px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));list-style:none;margin:clamp(20px,2.2vw,28px) 0}.job-metrics li{background:linear-gradient(180deg,#ff976112,#0000 70%),var(--ink-2);display:flex;flex-direction:column;gap:2px;padding:13px 15px}.m-v{color:var(--sun);font-family:var(--mono);font-size:clamp(18px,1.7vw,24px);font-weight:500;letter-spacing:-.01em}.m-k{color:var(--fg-mid);font-size:11.5px}.job-groups{grid-gap:clamp(18px,2vw,30px);display:grid;gap:clamp(18px,2vw,30px);grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.jg-label{border-bottom:1px solid var(--line);color:var(--sun);font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.16em;margin-bottom:12px;padding-bottom:8px;text-transform:uppercase}.jg-points{display:flex;flex-direction:column;gap:10px;list-style:none}.jg-points li{color:var(--fg-mid);font-size:14px;line-height:1.6}.job-chips{margin-top:clamp(20px,2.2vw,28px)}@media (max-width:900px){.about-grid{grid-template-columns:1fr}.job-when{text-align:left}}.pan,.sec-pan{position:relative}.pan{display:flex;flex-direction:column;height:100dvh;overflow:hidden}.pan-head{align-items:baseline;display:flex;flex-wrap:wrap;gap:12px 32px;justify-content:space-between;margin-inline:auto;max-width:var(--wide);padding-inline:var(--gut);width:100%}.pan .pan-head{flex:0 0 auto;padding-top:calc(64px + clamp(16px, 3vh, 40px))}.proj-stack .pan-head{margin-inline:0;padding-inline:0}.pan-track{flex:1 1 auto;gap:clamp(40px,5vw,88px);min-height:0;padding-inline:var(--gut);will-change:transform}.pan-hint,.pan-track{align-items:center;display:flex}.pan-hint{color:var(--fg-low);font-family:var(--mono);font-size:11px;gap:10px;letter-spacing:.16em;text-transform:uppercase}.pan-hint:after{animation:hint-run 1.9s var(--ease) infinite;background:var(--sun);content:"";height:1px;transform-origin:left;width:46px}@keyframes hint-run{0%{opacity:.4;transform:scaleX(.2)}55%{opacity:1;transform:scaleX(1)}to{opacity:.4;transform:scaleX(.2)}}.pan-panel{grid-gap:clamp(28px,3.4vw,56px);align-items:center;display:grid;flex:0 0 auto;gap:clamp(28px,3.4vw,56px);grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);width:min(84vw,1140px)}.pan-panel--portrait{align-items:center;grid-template-columns:minmax(0,.5fr) minmax(0,1fr);width:min(68vw,860px)}.shot-slot{align-items:center;background:radial-gradient(120% 90% at 50% 0,#ff976112,#0000 70%),var(--ink-1);display:flex;flex-direction:column;gap:14px;inset:0;justify-content:center;padding:24px;position:absolute;text-align:center}.shot-slot-icon{border-radius:15px;flex:0 0 auto;height:68px;object-fit:cover;width:68px}.shot-slot-name{color:var(--fg);font-family:var(--serif);font-size:20px}.shot-slot-label{color:var(--fg-low);font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase}.proj-shot{position:relative}.pan-panel--text{background:var(--ink-1);border-top:1px solid var(--line);border:1px solid var(--line);border-top-color:var(--sun-line);grid-template-columns:1fr;padding:clamp(28px,3vw,44px);width:min(52vw,640px)}.proj-stack{display:flex;flex-direction:column;gap:clamp(56px,8vw,96px);margin-inline:auto;max-width:var(--wide);padding:clamp(64px,7.6vw,112px) var(--gut)}.proj-stack .proj-shot{margin-bottom:26px}.proj-stack .proj--text{background:var(--ink-1);border-top:1px solid var(--line);border:1px solid var(--line);border-top-color:var(--sun-line);padding:clamp(26px,2.4vw,36px)}.device,.proj-shot{display:block}.device{width:100%}.device-body{background:var(--ink-2);border:1px solid var(--line-2);position:relative;transition:border-color .3s var(--ease),box-shadow .3s var(--ease)}.device-screen{background:var(--ink-0);overflow:hidden;position:relative}.device-shot{display:block;filter:saturate(.94) brightness(.94);height:auto;transition:transform .62s var(--ease),filter .62s var(--ease);width:100%}.proj-shot:hover .device-shot{filter:none;transform:scale(1.022)}.proj-shot:hover .device-body{border-color:var(--sun-line);box-shadow:0 0 0 1px #ff976114,0 30px 70px -40px #000000e6}.device--laptop .device-body{border-radius:11px 11px 3px 3px;padding:13px 13px 17px}.device--laptop .device-body:after{background:var(--line-2);border-radius:50%;content:"";height:4px;left:50%;margin-left:-2px;position:absolute;top:5px;width:4px}.device--laptop .device-screen{border-radius:3px}.device-base{background:linear-gradient(var(--ink-2),var(--ink-1));border:1px solid var(--line-2);border-radius:0 0 11px 11px;border-top:none;height:13px;margin-left:-6%;position:relative;width:112%}.device-base:after{background:var(--ink-0);border-radius:0 0 4px 4px;content:"";height:4px;left:50%;margin-left:-43px;position:absolute;top:0;width:86px}.device--phone{margin-inline:auto;width:min(292px,31vh)}.device--phone .device-body{border-radius:36px;padding:7px}.device--phone .device-screen{border-radius:29px}.device--phone .device-body:after,.device--phone .device-body:before{background:var(--line-2);border-radius:2px;content:"";position:absolute;width:2px}.device--phone .device-body:before{height:54px;left:-2px;top:88px}.device--phone .device-body:after{height:38px;right:-2px;top:112px}.device--laptop.is-empty .device-screen{aspect-ratio:16/10}.device--phone.is-empty .device-screen{aspect-ratio:9/19.5}.proj-kind{align-items:center;color:var(--fg-low);display:flex;flex-wrap:wrap;font-family:var(--mono);font-size:11px;gap:10px;letter-spacing:.14em;text-transform:uppercase}.proj-context{border:1px solid var(--sun-line);border-radius:2px;color:var(--sun);letter-spacing:.1em;padding:2px 8px}.proj-title{color:var(--fg);font-family:var(--serif);font-size:clamp(28px,3.4vw,44px);font-weight:400;letter-spacing:-.018em;line-height:1.04;margin-top:10px}.proj-sub{color:var(--fg-mid);font-size:15px;margin-top:6px}.proj-points{display:flex;flex-direction:column;gap:10px;list-style:none;margin-top:20px}.proj-points li{color:var(--fg-mid);font-size:14.5px;line-height:1.6;padding-left:22px;position:relative}.proj-points li:before{background:var(--line-2);content:"";height:1px;left:0;position:absolute;top:.7em;width:9px}.proj-foot{align-items:flex-start;display:flex;flex-direction:column;gap:16px;margin-top:24px}.proj-link{align-items:center;border-bottom:1px solid var(--sun-line);color:var(--sun);display:inline-flex;font-family:var(--mono);font-size:12.5px;gap:7px;letter-spacing:.03em;padding-bottom:3px;transition:border-color .18s var(--ease)}.proj-link:hover{border-bottom-color:var(--sun)}.proj-meta{color:var(--fg-low);font-family:var(--mono);font-size:12px;letter-spacing:.03em}.chipfield{overflow:hidden;pointer-events:none;position:relative}.chipfield.is-live{cursor:grab;pointer-events:auto}.chipfield.is-grabbing{cursor:grabbing}.chipfield-chip{align-items:center;background:var(--ink-2);border:1px solid var(--line-2);border-radius:2px;color:var(--fg);display:inline-flex;font-family:var(--mono);font-size:12.5px;gap:7px;letter-spacing:.02em;padding:7px 13px;-webkit-user-select:none;user-select:none;white-space:nowrap}.chipfield.is-live .chipfield-chip{box-shadow:0 10px 30px #00000080;left:0;position:absolute;top:0;will-change:transform}.chipfield.is-live .chipfield-chip:nth-child(4n+1){border-color:var(--sun-line);color:var(--sun)}.chipfield.is-live .chipfield-chip:nth-child(6n+3){background:var(--sun);border-color:var(--sun);color:var(--ink-0)}.chipfield:not(.is-live){align-content:center;display:flex;flex-wrap:wrap;gap:8px;opacity:.6;padding:var(--gut)}.sec .chipfield{background:var(--ink-1);border-bottom:1px solid var(--line);border-top:1px solid var(--line);height:clamp(240px,30vh,340px);inset:auto;margin-bottom:clamp(40px,5vw,72px);overflow:hidden;position:relative}.domains{display:flex;flex-direction:column}.domain{grid-gap:clamp(24px,5vw,72px);align-items:start;border-top:1px solid var(--line);display:grid;gap:clamp(24px,5vw,72px);grid-template-columns:minmax(0,340px) minmax(0,1fr);padding-block:clamp(28px,3.4vw,40px)}.domain:last-child{border-bottom:1px solid var(--line)}.domain-name{color:var(--fg);font-family:var(--serif);font-size:clamp(22px,2.4vw,30px);font-weight:400;letter-spacing:-.012em;line-height:1.12}.domain-note{color:var(--fg-low);font-size:14px;line-height:1.55;margin-top:9px;max-width:38ch}.sec--edu{padding-top:0}.edu-heading{color:var(--fg-low);font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.16em;margin-bottom:20px;text-transform:uppercase}.edu-list{list-style:none}.edu-row{grid-gap:20px;align-items:center;border-top:1px solid var(--line);display:grid;gap:20px;grid-template-columns:40px minmax(0,1fr) auto;padding-block:20px}.edu-row:last-child{border-bottom:1px solid var(--line)}.edu-logo{background:var(--fg);height:40px;object-fit:contain;padding:5px;width:40px}.edu-degree{color:var(--fg);font-size:16px;font-weight:500}.edu-school{color:var(--fg-low);font-size:14px;margin-top:2px}.edu-period{color:var(--fg-low);font-family:var(--mono);font-size:12px;letter-spacing:.03em;white-space:nowrap}.contact{background:var(--ink-1);border-top:1px solid var(--line)}.contact-inner{grid-gap:clamp(32px,5vw,80px);align-items:center;display:grid;gap:clamp(32px,5vw,80px);grid-template-areas:"copy  scene" "list  list";grid-template-columns:minmax(0,1fr) minmax(0,.92fr);margin-inline:auto;max-width:var(--wide);padding:clamp(68px,8.4vw,124px) var(--gut)}.contact-copy{grid-area:copy}.contact-scene{grid-area:scene}.contact-list{grid-area:list}.contact-scene{aspect-ratio:1/1;min-height:clamp(340px,42vw,560px);position:relative}.contact-scene canvas{display:block;height:100%!important;width:100%!important}@media (max-width:1079px){.contact-inner{grid-template-areas:"scene" "copy" "list";grid-template-columns:1fr}.contact-scene{aspect-ratio:4/3;min-height:320px;order:-1}}.contact-title{color:var(--fg);font-family:var(--serif);font-size:clamp(38px,6.4vw,84px);font-weight:400;letter-spacing:-.025em;line-height:1.01;margin-top:16px;max-width:17ch}.contact-note{color:var(--fg-mid);font-size:16px;line-height:1.62;margin-top:clamp(20px,2.4vw,28px);max-width:44ch}.contact-actions{margin-top:clamp(28px,3.4vw,40px)}.contact-actions,.contact-mailrow{display:flex;flex-wrap:wrap;gap:12px}.contact-mailrow{align-items:center;margin-top:clamp(24px,2.8vw,34px)}.contact-mail{border-bottom:1px solid var(--sun-line);color:var(--sun);font-family:var(--mono);font-size:clamp(13px,1.4vw,16px);letter-spacing:-.01em;overflow-wrap:anywhere;padding-bottom:6px;transition:border-color .2s var(--ease)}.contact-mail:hover{border-bottom-color:var(--sun)}.contact-copy-btn{background:none;border:1px solid var(--line);border-radius:2px;color:var(--fg-low);cursor:pointer;font-family:var(--mono);font-size:11px;letter-spacing:.12em;padding:5px 12px;text-transform:uppercase;transition:border-color .18s var(--ease),color .18s var(--ease)}.contact-copy-btn:hover{border-color:var(--line-2);color:var(--fg)}.contact-list{grid-gap:1px;background:var(--line);border-block:1px solid var(--line);display:grid;gap:1px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));list-style:none;margin-top:clamp(32px,3.4vw,52px)}.contact-item{background:var(--ink-1);color:var(--fg);display:flex;flex-direction:column;font-family:var(--mono);font-size:13px;gap:7px;letter-spacing:.02em;padding:20px 24px}.contact-item:first-child{padding-left:0}.contact-item a{overflow-wrap:anywhere;transition:color .18s var(--ease)}.contact-item a:hover{color:var(--sun)}.contact-label{color:var(--fg-low);font-size:11px;letter-spacing:.14em;text-transform:uppercase}.contact-link{align-items:center;display:inline-flex;gap:9px}.contact-out{opacity:0;transform:translate(-3px,3px);transition:opacity .18s var(--ease),transform .18s var(--ease)}.contact-link:hover .contact-out{opacity:1;transform:none}.contact-clock{align-items:center;color:var(--fg-low);display:inline-flex;font-size:11.5px;gap:8px}.contact-dot{animation:contact-pulse 2.6s var(--ease) infinite;background:var(--sun);border-radius:50%;flex:0 0 auto;height:5px;width:5px}@keyframes contact-pulse{0%,to{opacity:.35}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.contact-dot{animation:none;opacity:.8}}.footer{color:var(--fg-low);display:flex;font-family:var(--mono);font-size:11.5px;gap:16px;justify-content:space-between;letter-spacing:.05em;margin-inline:auto;max-width:var(--wide);padding:26px var(--gut)}@media (prefers-reduced-motion:no-preference){[data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .62s var(--ease),transform .62s var(--ease);will-change:opacity,transform}[data-reveal].is-in{opacity:1;transform:none}}@media (max-width:1080px){.nav-links{display:none}.nav-brand{margin-right:auto}.hero{gap:clamp(20px,4vh,36px);min-height:0;padding-bottom:clamp(48px,8vw,72px);padding-top:clamp(28px,6vh,56px)}.hero-copy{max-width:none}.about-grid{gap:44px;grid-template-columns:1fr}.stat-label{text-align:left}.domain{gap:20px;grid-template-columns:1fr}.domain-note{max-width:56ch}}@media (max-width:860px){.role{gap:20px;grid-template-columns:1fr}.role-meta{flex-direction:row;flex-wrap:wrap;gap:6px 18px}.contact-list{grid-template-columns:1fr}.contact-item,.contact-item:first-child{padding-left:0}}@media (max-width:560px){.hero-actions{gap:10px}.btn{flex:1 1 auto;justify-content:center}.edu-row{grid-template-columns:34px minmax(0,1fr);row-gap:6px}.edu-logo{height:34px;width:34px}.edu-period{grid-column:2}.footer{flex-direction:column;gap:8px}}.grain{animation:grain-shift 7s steps(6) infinite;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Cpath filter='url(%23a)' d='M0 0h140v140H0z'/%3E%3C/svg%3E");inset:-50%;opacity:.038;pointer-events:none;position:fixed;z-index:60}@keyframes grain-shift{0%{transform:translate(0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-2%)}80%{transform:translate(3%,1%)}to{transform:translate(0)}}@media (prefers-reduced-motion:reduce){.grain{animation:none}}
/*# sourceMappingURL=main.03964eb8.css.map*/