:root{--bg:#090909;--bg-2:#0d0d0c;--bg-3:#131311;--ink:#f2efe9;--ink-2:#b9b5ac;--ink-3:#8e8a80;--ink-4:#807c72;--accent:#c9b08a;--accent-2:#9d8b6c;--line:#f2efe914;--line-2:#f2efe92e;--font-sans:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI Variable Display", "Segoe UI", Inter, Roboto, "Helvetica Neue", Arial, sans-serif;--font-serif:"New York", ui-serif, Georgia, "Times New Roman", serif;--font-mono:ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--t-hero:clamp(3.4rem, 11.5vw, 11.5rem);--t-d2:clamp(2.3rem, 5.6vw, 5.4rem);--t-d3:clamp(1.6rem, 3.2vw, 3rem);--t-lede:clamp(1.125rem, 1.5vw, 1.4375rem);--t-body:clamp(.9375rem, 1.02vw, 1.0625rem);--t-label:.6875rem;--gutter:clamp(1.25rem, 4vw, 4rem);--section-pad:clamp(6rem, 16vh, 13rem);--container:1680px;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-inout:cubic-bezier(.65, 0, .35, 1);--d-micro:.2s;--d-small:.45s;--d-reveal:.95s;--d-hero:1.2s;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink-2);font-family:var(--font-sans);font-size:var(--t-body);letter-spacing:.001em;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;min-height:100dvh;font-weight:400;line-height:1.65;overflow-x:clip}h1,h2,h3,h4{color:var(--ink);font-weight:550}img,svg,canvas,video{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}::selection{color:var(--ink);background:#c9b08a40}:focus{outline:none}:focus-visible{outline:1px solid var(--accent);outline-offset:4px;border-radius:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;background:var(--ink);color:var(--bg);font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.14em;text-transform:uppercase;transition:transform var(--d-micro) var(--ease-out);border-radius:999px;padding:.7em 1.4em;position:fixed;top:1rem;left:1rem;transform:translateY(-300%)}.skip-link:focus-visible{outline-offset:2px;transform:translateY(0)}.container{width:100%;max-width:var(--container);padding-inline:var(--gutter);margin-inline:auto}.section{padding-block:var(--section-pad);position:relative}.eyebrow{font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3);align-items:center;gap:1em;font-weight:500;display:inline-flex}.eyebrow:before{content:"";background:var(--accent-2);transform-origin:0;width:2.4em;height:1px}.display{font-size:var(--t-d2);letter-spacing:-.03em;text-wrap:balance;max-width:20ch;line-height:1.04}.serif-accent{font-family:var(--font-serif);letter-spacing:-.01em;font-style:italic;font-weight:400}.lede{font-size:var(--t-lede);color:var(--ink-2);text-wrap:pretty;max-width:56ch;line-height:1.55}.section-head{grid-template-columns:1fr;gap:2rem;margin-bottom:clamp(3.5rem,8vh,7rem);display:grid}@media (width>=900px){.section-head{grid-template-columns:1.4fr 1fr;align-items:end}.section-head .sec-note{text-align:left;justify-self:end;max-width:38ch}}.section-head .display{margin-top:1.6rem}.sec-note{color:var(--ink-3);font-size:var(--t-body)}.hairline{background:var(--line);border:0;height:1px}#ambient{z-index:-2;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.grain{z-index:60;pointer-events:none;opacity:.05;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:220px 220px;position:fixed;inset:0}.site-nav{z-index:40;transition:transform .6s var(--ease-out), background-color .6s var(--ease-out), border-color .6s var(--ease-out), backdrop-filter .6s var(--ease-out);border-bottom:1px solid #0000;position:fixed;top:0;left:0;right:0}.site-nav.is-scrolled{-webkit-backdrop-filter:blur(18px)saturate(1.4);backdrop-filter:blur(18px)saturate(1.4);border-bottom-color:var(--line);background:#0909099e}.site-nav.is-hidden{transform:translateY(-102%)}.nav-inner{justify-content:space-between;align-items:center;padding-block:1.1rem;display:flex}.wordmark{font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.22em;text-transform:uppercase;color:var(--ink);align-items:baseline;gap:.9em;display:inline-flex}.wordmark em{color:var(--ink-4);letter-spacing:.18em;font-style:normal}@media (width<=759px){.wordmark em{display:none}}.nav-links{gap:clamp(1.4rem,2.4vw,2.6rem);list-style:none;display:none}@media (width>=760px){.nav-links{display:flex}.menu-btn{display:none}}.nav-link{font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);transition:color var(--d-small) var(--ease-out);padding-block:.4em;position:relative}.nav-link:after{content:"";background:var(--accent);transform-origin:100%;width:100%;height:1px;transition:transform .5s var(--ease-out);position:absolute;bottom:0;left:0;transform:scaleX(0)}.nav-link:hover{color:var(--ink)}.nav-link:hover:after{transform-origin:0;transform:scaleX(1)}.menu-btn{font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.18em;text-transform:uppercase;color:var(--ink);padding:.5em 0}.menu{width:100vw;max-width:none;height:100dvh;max-height:none;color:var(--ink);background:#090909f7;border:0;padding:0}.menu::backdrop{background:0 0}.menu-inner{height:100%;padding:1.4rem var(--gutter) 3rem;flex-direction:column;display:flex}.menu-top{justify-content:space-between;align-items:center;display:flex}.menu-list{flex-direction:column;gap:.4em;margin-top:auto;margin-bottom:auto;list-style:none;display:flex}.menu-link{letter-spacing:-.03em;color:var(--ink);opacity:0;font-size:clamp(2.6rem,10vw,4.4rem);font-weight:550;line-height:1.15;display:inline-block;transform:translateY(40px)}.menu[open] .menu-link{opacity:1;transition:transform .8s var(--ease-out) calc(var(--i,0) * 70ms), opacity .8s var(--ease-out) calc(var(--i,0) * 70ms);transform:translateY(0)}.menu-link span{font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.2em;color:var(--ink-4);vertical-align:super;margin-right:1em}.hero{flex-direction:column;justify-content:center;min-height:100dvh;padding-top:6rem;padding-bottom:3rem;display:flex;position:relative}.hero-grid{grid-template-columns:1fr;align-items:center;gap:3rem;display:grid}@media (width>=1000px){.hero-grid{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}}.hero-eyebrow{margin-bottom:clamp(1.4rem,3vh,2.4rem)}.hero-name{font-size:var(--t-hero);letter-spacing:-.045em;font-weight:560;line-height:.94}.hero-name .mask{margin-bottom:-.06em;padding-bottom:.06em;display:block;overflow:hidden}.hero-name .mask:nth-child(2){margin-left:clamp(0rem,6vw,7rem)}.hero-name .mask-inner{display:inline-block;transform:translateY(112%)}.is-loaded .hero-name .mask-inner{transition:transform var(--d-hero) var(--ease-out);transform:translateY(0)}.is-loaded .hero-name .mask:nth-child(2) .mask-inner{transition-delay:.12s}.hero-positioning{letter-spacing:-.015em;color:var(--ink);text-wrap:balance;max-width:24ch;margin-top:clamp(2rem,5vh,3.6rem);font-size:clamp(1.3rem,2.4vw,2.1rem);font-weight:480;line-height:1.3}.hero-statement{max-width:52ch;color:var(--ink-3);font-size:var(--t-lede);margin-top:1.6rem;line-height:1.55}.hero-eyebrow,.hero-positioning,.hero-statement{opacity:.01;filter:blur(6px);transform:translateY(26px)}.is-loaded .hero-eyebrow,.is-loaded .hero-positioning,.is-loaded .hero-statement{opacity:1;filter:blur();transition:opacity var(--d-hero) var(--ease-out), transform var(--d-hero) var(--ease-out), filter var(--d-hero) var(--ease-out);transform:translateY(0)}.is-loaded .hero-eyebrow{transition-delay:60ms}.is-loaded .hero-positioning{transition-delay:.42s}.is-loaded .hero-statement{transition-delay:.56s}.hero-canvas-wrap{aspect-ratio:1;opacity:0;justify-self:center;width:100%;max-width:min(88vw,620px);position:relative;transform:scale(.94)}.is-loaded .hero-canvas-wrap{opacity:1;transition:opacity 1.6s var(--ease-out) .7s, transform 1.6s var(--ease-out) .7s;transform:scale(1)}.hero-canvas-wrap canvas{width:100%;height:100%}.hero-meta{border-top:1px solid var(--line);opacity:0;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem 3rem;margin-top:clamp(3rem,8vh,5rem);padding-top:1.6rem;display:grid}.is-loaded .hero-meta{opacity:1;transition:opacity 1.4s var(--ease-out) 1.1s}.hero-meta dt{font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-4);margin-bottom:.5em}.hero-meta dd{color:var(--ink-2);font-size:var(--t-body)}.scroll-cue{bottom:2.2rem;right:var(--gutter);font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-4);opacity:0;align-items:center;gap:1em;display:flex;position:absolute}.is-loaded .scroll-cue{opacity:1;transition:opacity 1.4s var(--ease-out) 1.5s}.scroll-cue:after{content:"";background:linear-gradient(var(--ink-3), transparent);width:1px;height:3.4em;animation:cue-drop 2.6s var(--ease-inout) infinite;transform-origin:top}@keyframes cue-drop{0%{transform:scaleY(0)}45%{transform:scaleY(1)}to{transform-origin:bottom;transform:scaleY(0)}}.work-list{flex-direction:column;display:flex}.work-row{border-top:1px solid var(--line);grid-template-columns:1fr;align-items:center;gap:2.2rem;padding-block:clamp(3.5rem,9vh,7rem);display:grid}@media (width>=1000px){.work-row{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(3rem,5vw,6rem)}.work-row:nth-child(2n) .work-figure{order:2}}.work-figure{position:relative}.figure-frame{aspect-ratio:16/10;border:1px solid var(--line);background:var(--bg-2);border-radius:4px;position:relative;overflow:hidden}.figure-frame>svg{width:100%;height:100%;transition:transform 1.4s var(--ease-out);position:absolute;inset:0;transform:scale(1.02)}.work-row:hover .figure-frame>svg{transform:scale(1.06)}.figure-caption{font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-4);justify-content:space-between;gap:1rem;margin-top:.9rem;display:flex}.work-index{font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.2em;color:var(--accent-2);margin-bottom:1.2rem;display:block}.work-title{font-size:var(--t-d3);letter-spacing:-.025em;transition:transform .7s var(--ease-out);line-height:1.05}.work-row:hover .work-title{transform:translate(6px)}.work-essence{font-family:var(--font-serif);color:var(--accent);letter-spacing:0;margin-top:.9rem;font-size:clamp(1.05rem,1.4vw,1.3rem);font-style:italic}.work-desc{max-width:52ch;color:var(--ink-3);margin-top:1.1rem}.work-meta{font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-4);flex-wrap:wrap;gap:.5em 0;margin-top:1.6rem;list-style:none;display:flex}.work-meta li:not(:last-child):after{content:"/";color:var(--line-2);margin-inline:.9em}.cs-open{font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.18em;text-transform:uppercase;color:var(--ink);border:1px solid var(--line-2);transition:background-color .5s var(--ease-out), color .5s var(--ease-out), border-color .5s var(--ease-out);will-change:transform;border-radius:999px;align-items:center;gap:.9em;margin-top:2rem;padding:1em 1.8em;display:inline-flex}.cs-open:after{content:"→";font-family:var(--font-sans);transition:transform .5s var(--ease-out)}.cs-open:hover{background:var(--ink);border-color:var(--ink);color:var(--bg)}.cs-open:hover:after{transform:translate(4px)}.art{color:var(--ink-3)}.art .a-line{stroke:currentColor;stroke-width:1px;fill:none;opacity:.55}.art .a-faint{stroke:currentColor;stroke-width:1px;fill:none;opacity:.18}.art .a-warm{stroke:var(--accent);stroke-width:1px;fill:none;opacity:.7}.art .a-dot{fill:currentColor;opacity:.7}.art .a-warm-dot{fill:var(--accent);opacity:.85}.art .a-label{font-family:var(--font-mono);fill:var(--ink-4);letter-spacing:.14em;font-size:7.5px}.art .a-fill{fill:currentColor;opacity:.06}.art .a-drift{animation:a-drift 14s var(--ease-inout) infinite alternate}.art .a-drift-2{animation:a-drift 18s var(--ease-inout) infinite alternate-reverse}.art .a-pulse{animation:a-pulse 6s var(--ease-inout) infinite}.art .a-dash{stroke-dasharray:4 7;animation:26s linear infinite a-dash}.art .a-spin{transform-origin:50%;transform-box:fill-box;animation:60s linear infinite a-spin}.figure-frame:not(.is-visible) .art *{animation-play-state:paused}@keyframes a-drift{0%{transform:translateY(0)}to{transform:translateY(-8px)}}@keyframes a-pulse{0%,to{opacity:.25}50%{opacity:.8}}@keyframes a-dash{to{stroke-dashoffset:-220px}}@keyframes a-spin{to{transform:rotate(360deg)}}dialog.cs{background:var(--bg);width:100vw;max-width:none;height:100dvh;max-height:none;color:var(--ink-2);opacity:0;border:0;padding:0;transform:translateY(28px)scale(.985)}dialog.cs[open]{opacity:1;transition:opacity .55s var(--ease-out), transform .55s var(--ease-out);transform:translateY(0)scale(1)}dialog.cs.is-closing{opacity:0;transition:opacity .3s var(--ease-inout), transform .3s var(--ease-inout);transform:translateY(18px)scale(.99)}dialog.cs::backdrop{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#090909b3}.cs-scroll{overscroll-behavior:contain;height:100%;overflow-y:auto}.cs-inner{max-width:980px;padding:clamp(3.5rem, 8vh, 6rem) var(--gutter) clamp(6rem, 12vh, 9rem);margin-inline:auto}.cs-topbar{z-index:5;padding:1.1rem var(--gutter);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);background:#090909b8;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.cs-close{font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.18em;text-transform:uppercase;color:var(--ink);border:1px solid var(--line-2);transition:background-color .4s var(--ease-out), color .4s var(--ease-out);border-radius:999px;padding:.6em 1.4em}.cs-close:hover{background:var(--ink);color:var(--bg)}.cs-title{letter-spacing:-.03em;font-size:clamp(2.2rem,5vw,4.2rem);line-height:1.02}.cs-lede{font-size:var(--t-lede);color:var(--ink-2);max-width:54ch;margin-top:1.4rem;line-height:1.55}.cs-meta-grid{border-block:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1.4rem 2rem;margin-top:2.6rem;padding-block:1.4rem;display:grid}.cs-meta-grid dt{font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-4);margin-bottom:.45em}.cs-meta-grid dd{color:var(--ink-2);font-size:.95rem;line-height:1.5}.cs-section{margin-top:clamp(3rem,7vh,5rem)}.cs-h{letter-spacing:-.015em;align-items:baseline;gap:1.2em;margin-bottom:1.2rem;font-size:clamp(1.25rem,2vw,1.7rem);display:flex}.cs-h .n{font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.2em;color:var(--accent-2)}.cs-section p{max-width:62ch;color:var(--ink-2);margin-bottom:1em}.cs-section p:last-child{margin-bottom:0}.cs-list{max-width:62ch;list-style:none}.cs-list li{border-top:1px solid var(--line);color:var(--ink-2);padding:.85em 0}.cs-list li:last-child{border-bottom:1px solid var(--line)}.cs-list b{color:var(--ink);font-weight:550}.cs-diagram{border:1px solid var(--line);background:var(--bg-2);border-radius:4px;padding:clamp(1rem,3vw,2rem);overflow-x:auto}.cs-diagram svg{width:100%;min-width:640px;height:auto}.dgm .d-box{fill:var(--bg-3);stroke:var(--line-2)}.dgm .d-box-hi{fill:#c9b08a12;stroke:var(--accent-2)}.dgm .d-label{font-family:var(--font-mono);fill:var(--ink-2);letter-spacing:.08em;font-size:10.5px}.dgm .d-sub{font-family:var(--font-mono);fill:var(--ink-4);letter-spacing:.08em;font-size:8.5px}.dgm .d-wire{stroke:var(--line-2);stroke-width:1px;fill:none}.dgm .d-flow{stroke:var(--accent-2);stroke-width:1px;fill:none;stroke-dasharray:3 6;animation:20s linear infinite a-dash}.code{font-family:var(--font-mono);color:var(--ink-2);background:var(--bg-2);border:1px solid var(--line);border-radius:4px;max-width:100%;padding:1.4rem 1.6rem;font-size:.8125rem;line-height:1.7;overflow-x:auto}.code .c{color:var(--ink-4)}.code .k{color:var(--accent)}.code .s{color:#a8b8a0}.code .f{color:var(--ink)}.code-caption{font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-4);margin-top:.8rem}.cs-stats{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:2rem;display:grid}.stat{border-top:1px solid var(--line-2);padding-top:1.1rem}.stat-n{letter-spacing:-.03em;color:var(--ink);font-size:clamp(1.9rem,3.4vw,2.9rem);font-weight:550;line-height:1.1}.stat-l{font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin-top:.5em}.philosophy{padding-block:0}.phil-intro{padding-block:var(--section-pad) 0}.phil-panel{background:var(--bg);align-content:center;min-height:100dvh;display:grid;position:sticky;top:0}.phil-panel-inner{will-change:opacity, transform;max-width:1100px}.phil-index{font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.2em;color:var(--accent-2);margin-bottom:1.6rem;display:block}.phil-title{letter-spacing:-.035em;text-wrap:balance;max-width:16ch;font-size:clamp(2.4rem,6.4vw,6.4rem);line-height:1.02}.phil-sub{max-width:46ch;color:var(--ink-3);font-size:var(--t-lede);margin-top:1.8rem;line-height:1.5}.timeline-outer{position:relative}.timeline-sticky{flex-direction:column;justify-content:center;height:100dvh;display:flex;position:sticky;top:0;overflow:hidden}.timeline-head{margin-bottom:clamp(2.5rem,6vh,4.5rem)}.timeline-viewport{overflow:hidden}.timeline-track{padding-inline:var(--gutter);will-change:transform;gap:clamp(3rem,6vw,7rem);width:max-content;list-style:none;display:flex}.tl-item{flex-shrink:0;width:clamp(280px,30vw,420px)}.tl-year{font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.2em;color:var(--accent-2)}.tl-title{letter-spacing:-.02em;margin-top:1rem;font-size:clamp(1.5rem,2.4vw,2.2rem);line-height:1.1}.tl-desc{color:var(--ink-3);max-width:34ch;margin-top:.9rem;font-size:.95rem}.tl-rail{background:var(--line);height:1px;margin-top:clamp(2rem,5vh,3.5rem);margin-inline:var(--gutter);position:relative}.tl-progress{background:var(--accent-2);width:0%;position:absolute;inset:0 auto 0 0}.timeline-outer.is-static{height:auto!important}.timeline-outer.is-static .timeline-sticky{height:auto;padding-block:var(--section-pad);position:static;overflow:visible}.timeline-outer.is-static .timeline-viewport{scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;padding-bottom:1.5rem;overflow-x:auto}.timeline-outer.is-static .tl-item{scroll-snap-align:start}.timeline-outer.is-static .tl-rail{display:none}.exp-stats{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:2rem;margin-block:clamp(4rem,10vh,7rem);display:grid}.roles{border-top:1px solid var(--line)}.role{border-bottom:1px solid var(--line);grid-template-columns:1fr;gap:1.4rem;padding-block:clamp(2.2rem,5vh,3.6rem);display:grid}@media (width>=900px){.role{grid-template-columns:1.1fr 1fr;gap:4rem}}.role-org{letter-spacing:-.02em;font-size:clamp(1.5rem,2.6vw,2.4rem);line-height:1.1}.role-title{color:var(--ink-3);font-size:var(--t-body);margin-top:.5rem}.role-time{font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-4);margin-top:.9rem}.role-points{list-style:none}.role-points li{border-top:1px solid var(--line);color:var(--ink-2);padding:.8em 0;font-size:.95rem}.role-points li:first-child{border-top:0}.about-grid{grid-template-columns:1fr;gap:3rem;display:grid}@media (width>=1000px){.about-grid{grid-template-columns:1.2fr 1fr;align-items:start;gap:clamp(3rem,6vw,7rem)}}.bio p{max-width:58ch;color:var(--ink-2);font-size:var(--t-lede);margin-bottom:1.2em;line-height:1.55}.bio p:last-child{margin-bottom:0}.portrait{aspect-ratio:4/5;border:1px solid var(--line);background:radial-gradient(120% 90% at 70% 20%, #c9b08a0f, transparent 60%), radial-gradient(100% 100% at 20% 90%, #8c96a00d, transparent 55%), var(--bg-2);border-radius:4px;position:relative;overflow:hidden}.portrait-note{font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-4);border-top:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#09090980;padding:1.2rem 1.4rem;position:absolute;inset:auto 0 0}.eco-grid{border-top:1px solid var(--line);grid-template-columns:1fr;margin-top:clamp(4rem,10vh,7rem);display:grid}@media (width>=800px){.eco-grid{grid-template-columns:1fr 1fr}}.eco{border-bottom:1px solid var(--line);padding:clamp(2rem,4vw,3.4rem) 0}@media (width>=800px){.eco{padding:clamp(2.4rem,4vw,3.8rem) clamp(2rem,4vw,3.6rem)}.eco:nth-child(odd){border-right:1px solid var(--line);padding-left:0}.eco:nth-child(2n){padding-right:0}}.eco-h{letter-spacing:-.015em;font-size:clamp(1.3rem,1.9vw,1.7rem)}.eco-thesis{font-family:var(--font-serif);color:var(--ink-3);margin-top:.7rem;font-size:1.02rem;font-style:italic}.eco-list{font-family:var(--font-mono);letter-spacing:.08em;color:var(--ink-2);flex-wrap:wrap;gap:.6em 0;margin-top:1.4rem;font-size:.78rem;list-style:none;display:flex}.eco-list li:not(:last-child):after{content:"·";color:var(--ink-4);margin-inline:.8em}.lab-list{border-top:1px solid var(--line);list-style:none}.lab-item{border-bottom:1px solid var(--line);transition:background-color .5s var(--ease-out);grid-template-columns:auto 1fr auto;align-items:baseline;gap:1.5rem 2.5rem;padding-block:1.6rem;display:grid}.lab-item:hover{background:#f2efe905}.lab-n{font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.18em;color:var(--ink-4)}.lab-name{color:var(--ink);letter-spacing:-.01em;font-size:clamp(1.05rem,1.6vw,1.35rem);font-weight:500}.lab-name small{color:var(--ink-3);max-width:60ch;margin-top:.3em;font-size:.9rem;font-weight:400;display:block}.lab-status{font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);border:1px solid var(--line-2);white-space:nowrap;border-radius:999px;padding:.45em 1.1em}.lab-status.is-live{color:var(--accent);border-color:#c9b08a59}@media (width<=700px){.lab-item{grid-template-columns:1fr auto}.lab-n{display:none}}.contact{flex-direction:column;justify-content:center;min-height:90dvh;display:flex}.contact-title{letter-spacing:-.04em;text-wrap:balance;max-width:12ch;font-size:clamp(2.6rem,8vw,8.4rem);line-height:1}.contact-lede{margin-top:2rem}.contact-actions{flex-wrap:wrap;gap:1rem;margin-top:clamp(2.6rem,6vh,4rem);display:flex}.btn-pill{font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.18em;text-transform:uppercase;color:var(--ink);border:1px solid var(--line-2);transition:background-color .5s var(--ease-out), color .5s var(--ease-out), border-color .5s var(--ease-out);will-change:transform;border-radius:999px;align-items:center;gap:.9em;padding:1.15em 2.1em;display:inline-flex}.btn-pill:hover,.btn-pill.is-primary{background:var(--ink);border-color:var(--ink);color:var(--bg)}.btn-pill.is-primary:hover{background:var(--accent);border-color:var(--accent)}.contact-quiet{color:var(--ink-4);margin-top:1.8rem;font-size:.95rem}.contact-quiet a{color:var(--ink-3);border-bottom:1px solid var(--line-2);transition:color .4s var(--ease-out), border-color .4s var(--ease-out)}.contact-quiet a:hover{color:var(--ink);border-color:var(--ink)}.availability{border-top:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem 3rem;margin-top:clamp(4rem,9vh,6rem);padding-top:2rem;display:grid}.avail-item .k{font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-4);margin-bottom:.5em;display:block}.avail-item .v{color:var(--ink-2)}.site-footer{border-top:1px solid var(--line);font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-4);flex-wrap:wrap;justify-content:space-between;gap:1rem 2rem;padding-block:2rem;display:flex}[data-reveal]{opacity:0;filter:blur(7px);transition:opacity var(--d-reveal) var(--ease-out), transform var(--d-reveal) var(--ease-out), filter var(--d-reveal) var(--ease-out);transition-delay:calc(var(--i,0) * 90ms);will-change:opacity, transform, filter;transform:translateY(30px)}[data-reveal].in-view{opacity:1;filter:blur();transform:translateY(0)}[data-reveal=mask]{filter:none;opacity:1;transition:none;transform:none}[data-reveal=mask] .figure-frame{clip-path:inset(100% 0 0);transition:clip-path 1.1s var(--ease-out) calc(var(--i,0) * 90ms)}[data-reveal=mask].in-view .figure-frame{clip-path:inset(0)}[data-reveal=mask] .figure-caption{opacity:0;transition:opacity .9s var(--ease-out) .35s, transform .9s var(--ease-out) .35s;transform:translateY(14px)}[data-reveal=mask].in-view .figure-caption{opacity:1;transform:translateY(0)}[data-reveal=line]{opacity:1;filter:none;transform-origin:0;transition:transform 1.2s var(--ease-out) calc(var(--i,0) * 90ms);transform:scaleX(0)}[data-reveal=line].in-view{transform:scaleX(1)}[data-split] .sw-mask{vertical-align:bottom;margin-bottom:-.08em;padding-bottom:.08em;display:inline-block;overflow:hidden}[data-split] .sw{transition:transform .9s var(--ease-out);transition-delay:calc(var(--wi,0) * 45ms);display:inline-block;transform:translateY(115%)}[data-split].in-view .sw{transform:translateY(0)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important}[data-reveal],[data-reveal=mask],[data-reveal=line],[data-split] .sw,.hero-eyebrow,.hero-positioning,.hero-statement,.hero-name .mask-inner,.hero-canvas-wrap,.hero-meta,.scroll-cue,.menu-link{opacity:1!important;filter:none!important;clip-path:none!important;transform:none!important}.phil-panel{min-height:0;padding-block:4rem;position:static}.scroll-cue:after{animation:none}}@media (width<=999px){.hero{padding-top:7rem}.hero-canvas-wrap{order:-1;max-width:min(70vw,400px);margin-inline:auto}.scroll-cue{display:none}}@media (width<=700px){:root{--section-pad:clamp(4.5rem, 12vh, 7rem)}.work-row{gap:1.6rem}.contact-actions .btn-pill{flex:calc(50% - .5rem);justify-content:center}}@media print{#ambient,.grain,.site-nav,.scroll-cue,.menu-btn{display:none!important}body{color:#111;background:#fff}h1,h2,h3,h4{color:#000}}
