@font-face{font-family:Hanken;src:url("assets/fonts/hanken-grotesk-regular.ttf") format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:Hanken;src:url("assets/fonts/hanken-grotesk-medium.ttf") format("truetype");font-weight:500;font-display:swap}
@font-face{font-family:Cormorant;src:url("assets/fonts/cormorant-garamond-italic.ttf") format("truetype");font-style:italic;font-weight:500;font-display:swap}
@font-face{font-family:IBM;src:url("assets/fonts/ibm-plex-mono-regular.ttf") format("truetype");font-display:swap}
:root{--paper:#e8edef;--paper-2:#dce4e6;--ink:#101719;--muted:#637176;--line:rgba(16,23,25,.2);--green:#597262;--gutter:clamp(1.1rem,3.2vw,3.8rem);--max:1720px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Hanken,Arial,sans-serif;line-height:1.45;text-rendering:optimizeLegibility}img,video{display:block;width:100%}a{color:inherit;text-decoration:none}h1,h2,h3,p,figure{margin:0}button{font:inherit}.skip-link{position:fixed;left:1rem;top:-5rem;z-index:100;padding:.7rem 1rem;background:var(--ink);color:var(--paper)}.skip-link:focus{top:1rem}.site-header,main,footer{width:min(100%,var(--max));margin:0 auto}.site-header{position:absolute;inset:0 0 auto;z-index:20;height:88px;padding:18px var(--gutter);display:grid;grid-template-columns:1fr auto 1fr;align-items:start}.identity{display:flex;flex-direction:column;width:max-content}.identity strong{font-size:clamp(1.55rem,2.4vw,2.5rem);font-weight:500;letter-spacing:-.055em;line-height:1}.identity span,.site-header nav,.focus-intro>p,.scroll-note,.focus-tab span,.focus-tab small,.focus-caption span,.project-heading>span,.project-heading>a,.section-label,.contact>p,footer{font:400 .64rem/1.45 IBM,monospace;text-transform:uppercase;letter-spacing:.025em}.identity span{margin-top:.28rem}.folio{font:500 italic 1.8rem/1 Cormorant,serif}.site-header nav{justify-self:end;display:flex;gap:clamp(1rem,2.4vw,2.5rem);padding-top:.35rem}.site-header nav a{border-bottom:1px solid transparent}.site-header nav a:hover{border-color:currentColor}
.focus-hero{min-height:100dvh;padding:106px var(--gutter) 1.25rem;display:grid;grid-template-rows:auto 1fr auto}.focus-intro{display:grid;grid-template-columns:.43fr 1fr;align-items:end;padding-bottom:clamp(1.6rem,3vw,3rem);border-bottom:1px solid var(--line)}.focus-intro>p{color:var(--muted)}.focus-intro h1{max-width:940px;font-size:clamp(2rem,4vw,4.7rem);font-weight:400;line-height:.98;letter-spacing:-.055em}.focus-stage{display:grid;grid-template-columns:minmax(250px,.43fr) minmax(0,1fr);min-height:620px}.focus-index{padding-right:clamp(1.3rem,4vw,4rem);border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:center}.focus-tab{position:relative;width:100%;padding:1.2rem 0;display:grid;grid-template-columns:2rem 1fr;gap:.25rem 1rem;text-align:left;border:0;border-top:1px solid var(--line);background:none;color:var(--muted);cursor:pointer;transition:color .25s ease,padding-left .35s ease}.focus-tab:last-child{border-bottom:1px solid var(--line)}.focus-tab strong{font-size:clamp(1rem,1.4vw,1.35rem);font-weight:400;line-height:1.12}.focus-tab small{grid-column:2}.focus-tab.is-active{padding-left:.7rem;color:var(--ink)}.focus-tab.is-active:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--green)}.focus-visual{position:relative;min-height:620px;padding:clamp(2rem,4vw,4.5rem);display:grid;grid-template-rows:1fr auto;overflow:hidden}.stage-rule{position:absolute;inset:9% 3% auto auto;width:36%;height:1px;background:var(--line)}.focus-visual img{align-self:center;justify-self:center;width:min(92%,970px);height:min(57vh,620px);object-fit:contain;filter:saturate(.9);transition:opacity .18s ease,transform .55s cubic-bezier(.16,1,.3,1)}.focus-visual.is-portrait img{width:auto;height:min(61vh,690px);box-shadow:0 20px 55px rgba(35,52,56,.15)}.focus-visual:hover img{transform:translateY(-5px)}.focus-visual.is-changing img{opacity:0;transform:translateY(7px)}.focus-caption{display:flex;justify-content:space-between;align-items:end;padding-top:1.25rem;border-top:1px solid var(--line)}.focus-caption h2{max-width:850px;margin-top:.3rem;font-size:clamp(2rem,3.8vw,4.4rem);font-weight:400;line-height:.95;letter-spacing:-.055em}.focus-caption span{color:var(--muted)}.open-project{padding-bottom:.2rem;border-bottom:1px solid currentColor}.scroll-note{padding-top:1rem;border-top:1px solid var(--line);color:var(--muted)}
.project-list{padding:clamp(8rem,14vw,15rem) var(--gutter) 4rem}.project-row{margin-bottom:clamp(10rem,16vw,18rem)}.project-heading{display:grid;grid-template-columns:.18fr .8fr .52fr;gap:clamp(1rem,3vw,3rem);align-items:start;margin-bottom:clamp(2rem,5vw,5rem)}.project-heading>span{color:var(--muted)}.project-heading h2{font-size:clamp(2.8rem,6.5vw,7.8rem);font-weight:400;line-height:.88;letter-spacing:-.07em}.project-heading h2 em{font-family:Cormorant,serif;font-weight:500;line-height:1.1}.project-heading p{max-width:34rem;color:var(--muted);font-size:clamp(1rem,1.35vw,1.28rem)}.project-heading>a{grid-column:3;width:max-content;margin-top:2rem;padding-bottom:.25rem;border-bottom:1px solid currentColor}.project-media{display:block;overflow:hidden}.project-media>img{height:min(78vh,960px);object-fit:cover;transition:transform .8s cubic-bezier(.16,1,.3,1)}.project-media:hover>img{transform:scale(1.012)}.wake-grid{display:grid;grid-template-columns:.38fr .62fr;gap:var(--gutter);align-items:center}.wake-grid img{height:min(72vh,820px);object-fit:contain}.wake-grid video{height:min(64vh,720px);object-fit:cover}.project-city{margin-left:clamp(0px,5vw,90px)}.project-city .project-media{width:90%;margin-left:auto}.project-vines{padding-top:clamp(4rem,8vw,8rem);border-top:1px solid var(--line)}.vines-media{display:grid;grid-template-columns:1.35fr .65fr;gap:var(--gutter);align-items:end}.vines-media>img{height:min(70vh,780px);object-fit:cover}.vines-media video{height:min(53vh,620px);object-fit:cover}
.about{margin:0 var(--gutter);padding:clamp(6rem,11vw,12rem) 0;display:grid;grid-template-columns:.28fr 1fr;border-top:1px solid var(--line)}.about>div{display:grid;grid-template-columns:1fr .58fr;gap:clamp(2rem,7vw,8rem)}.about h2{font-size:clamp(2.7rem,5.8vw,6.7rem);font-weight:400;line-height:.9;letter-spacing:-.065em}.about div p{color:var(--muted);font-size:clamp(1rem,1.3vw,1.24rem)}.contact{min-height:58vh;padding:clamp(3rem,7vw,7rem) var(--gutter);display:flex;flex-direction:column;justify-content:space-between;background:var(--paper-2)}.contact a{font-size:clamp(2rem,6.6vw,7.5rem);line-height:.94;letter-spacing:-.06em;overflow-wrap:anywhere}footer{padding:1.1rem var(--gutter);display:grid;grid-template-columns:1fr 1fr auto;border-top:1px solid var(--line)}.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s cubic-bezier(.16,1,.3,1)}.reveal.is-visible{opacity:1;transform:none}
@media(max-width:900px){.focus-intro{grid-template-columns:1fr;gap:1rem}.focus-stage{grid-template-columns:1fr;min-height:0}.focus-index{padding:1.5rem 0;border-right:0}.focus-visual{min-height:560px;padding:1rem 0 2rem}.project-heading{grid-template-columns:1fr}.project-heading>a{grid-column:auto;margin-top:0}.about{grid-template-columns:1fr;gap:3rem}.about>div{grid-template-columns:1fr}.project-city{margin-left:0}.project-city .project-media{width:100%}}
@media(max-width:640px){.site-header{height:96px;grid-template-columns:1fr auto}.folio{display:none}.site-header nav{gap:1rem}.identity strong{font-size:1.65rem}.focus-hero{padding-top:102px}.focus-intro h1{font-size:2.35rem}.focus-stage{min-height:0}.focus-index{padding-bottom:.5rem}.focus-tab{padding:.85rem 0}.focus-visual{min-height:520px}.focus-visual img{height:48vh}.focus-visual.is-portrait img{height:53vh}.focus-caption{align-items:start}.focus-caption h2{font-size:2.1rem}.open-project{display:none}.project-list{padding-top:7rem}.project-heading h2{font-size:3.2rem}.wake-grid,.vines-media{grid-template-columns:1fr}.wake-grid img{height:65vh}.wake-grid video,.vines-media video{height:auto;aspect-ratio:16/10}.project-media>img,.vines-media>img{height:auto}.about{padding:6rem 0}.contact{min-height:48vh}footer{grid-template-columns:1fr auto}footer span:nth-child(2){display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.focus-visual img,.project-media>img{transition:none}}

/* Interactive introduction and revised In the Wake presentation */
.site-header{top:100dvh}
.lotus-intro{position:relative;width:100%;height:100dvh;overflow:hidden;background:#101719;color:#dce4e6;isolation:isolate}
.lotus-intro>img{display:none}
.lotus-intro canvas{position:absolute;inset:0;width:100%;height:100%;cursor:crosshair}
.lotus-intro::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 48%,transparent 0 36%,rgba(4,10,13,.28) 72%,rgba(4,10,13,.58) 100%)}
.lotus-ui{position:absolute;z-index:2;inset:0;padding:clamp(1.2rem,3vw,3.5rem);display:flex;flex-direction:column;justify-content:space-between;pointer-events:none}
.lotus-top,.lotus-bottom{display:flex;justify-content:space-between;align-items:flex-start}
.lotus-top strong{font-size:clamp(1.8rem,3vw,3.4rem);font-weight:400;letter-spacing:-.055em;line-height:1}
.lotus-top span{font:500 italic clamp(1.6rem,2.4vw,2.7rem)/1 Cormorant,serif}
.lotus-bottom{font:400 .65rem/1.45 "IBM Plex Mono",monospace;text-transform:uppercase}
.lotus-bottom a{pointer-events:auto;padding-bottom:.25rem;border-bottom:1px solid currentColor}
.lotus-bottom a:hover{color:#fff}
.wake-single{min-height:min(78vh,900px);display:grid;place-items:center;background:#dfe5e6}
.cover-crop{display:block;width:min(58vw,560px);aspect-ratio:.605;overflow:hidden}
.cover-crop img{width:100%;height:100%;object-fit:cover;object-position:center;transform:scale(1.045)}
.focus-visual.is-portrait img{width:auto;aspect-ratio:.605;object-fit:cover;object-position:center;clip-path:inset(1.5% 0);box-shadow:0 20px 55px rgba(35,52,56,.15)}
@supports (animation-timeline:view()){
  .lotus-intro canvas,.lotus-ui{animation:lotus-exit linear both;animation-timeline:view();animation-range:exit 0% exit 75%}
  @keyframes lotus-exit{to{opacity:0;transform:scale(1.08);filter:blur(7px)}}
}
@media(max-width:640px){.lotus-ui{padding:1.2rem}.lotus-top strong{font-size:1.7rem}.lotus-top span{font-size:1.55rem}.lotus-bottom span{max-width:12rem}.wake-single{min-height:68vh}.cover-crop{width:min(82vw,430px)}}
@media(prefers-reduced-motion:reduce){.lotus-intro canvas,.lotus-ui{animation:none}}

/* Final palette and immersive transition */
:root{--paper:#efedf1;--paper-2:#e3e1e8;--ink:#172033;--muted:#687185;--line:rgba(23,32,51,.2);--accent:#ce8585;--green:#ce8585;--shadow:rgba(47,52,88,.2)}
.lotus-intro{background:#020716}
.lotus-intro::after{z-index:1;background:radial-gradient(circle at 50% 48%,transparent 0 39%,rgba(2,7,22,.12) 58%,rgba(1,4,15,.62) 100%)}
.lotus-intro canvas{z-index:0}
.lotus-wash{position:absolute;z-index:3;inset:-2px;pointer-events:none;opacity:0;background:radial-gradient(circle at 50% 48%,#f3d6c6 0,#efedf1 42%,#efedf1 100%);transform:scale(.05);border-radius:50%}
.lotus-transition-lines{position:absolute;z-index:4;inset:0;pointer-events:none;opacity:0;display:flex;flex-direction:column;justify-content:center;gap:clamp(3.5rem,9vh,7.5rem);padding:0 var(--gutter)}
.lotus-transition-lines i{display:block;width:100%;height:1px;background:rgba(23,32,51,.2);transform:scaleX(.15);transform-origin:center}
.focus-tab.is-active::before{background:var(--accent)}
.wake-single{background:var(--paper-2)}
.cover-crop{aspect-ratio:.63}
.cover-crop img{object-position:62% center;transform:none}
.focus-visual.is-portrait img{aspect-ratio:.63;object-position:62% center;clip-path:none;transform:none}
@supports (animation-timeline:view()){
  .lotus-intro canvas{animation:lotus-canvas-exit linear both;animation-timeline:view();animation-range:exit 0% exit 78%}
  .lotus-wash{animation:lotus-light-open linear both;animation-timeline:view();animation-range:exit 12% exit 88%}
  .lotus-transition-lines{animation:lotus-lines-in linear both;animation-timeline:view();animation-range:exit 42% exit 96%}
  .lotus-transition-lines i{animation:lotus-line-expand linear both;animation-timeline:view();animation-range:exit 45% exit 96%}
  @keyframes lotus-canvas-exit{0%{opacity:1;filter:none;transform:scale(1)}65%{opacity:.72;filter:blur(2px);transform:scale(1.04)}100%{opacity:0;filter:blur(9px);transform:scale(1.13)}}
  @keyframes lotus-light-open{0%{opacity:0;transform:scale(.05);border-radius:50%}55%{opacity:.82}100%{opacity:1;transform:scale(1.65);border-radius:0}}
  @keyframes lotus-lines-in{0%,35%{opacity:0}100%{opacity:1}}
  @keyframes lotus-line-expand{to{transform:scaleX(1)}}
}
@media(prefers-reduced-motion:reduce){.lotus-intro canvas,.lotus-wash,.lotus-transition-lines,.lotus-transition-lines i{animation:none}.lotus-wash,.lotus-transition-lines{display:none}}

/* Sequenced introduction, identity page and project entry */
:root{--paper:#e4e8ec;--paper-2:#d6dce2;--paper-3:#cacfd8;--ink:#172033;--muted:#626d7f;--line:rgba(23,32,51,.2);--accent:#ce8585;--night:#020716}
.lotus-intro{height:100dvh;background:var(--night)}
.lotus-phrase{position:absolute;z-index:6;left:50%;top:53%;width:min(72vw,650px);padding:1.2rem 2rem;transform:translate(-50%,-50%);color:#f0eef3;text-align:center;font:400 clamp(.82rem,1.1vw,1.05rem)/1.5 Hanken,Arial,sans-serif;letter-spacing:.055em;text-wrap:balance;text-shadow:0 2px 28px rgba(2,7,22,1);background:radial-gradient(ellipse at center,rgba(2,7,22,.78) 0,rgba(2,7,22,.42) 45%,transparent 74%);opacity:0;animation:phrase-arrive 1.35s .85s ease forwards;transition:opacity .45s ease,filter .7s ease,letter-spacing .7s ease}
.lotus-hud{position:absolute;z-index:5;inset:0;color:#d7dbea;pointer-events:none;font:400 .62rem/1.35 IBM,monospace;letter-spacing:.08em;text-transform:uppercase;transition:opacity .5s ease,transform .8s cubic-bezier(.16,1,.3,1)}
.hud-corner{position:absolute;top:clamp(1.4rem,3vw,3.25rem);display:grid;grid-template-columns:auto minmax(40px,9vw) auto;gap:.8rem;align-items:center}
.hud-corner i{height:1px;background:rgba(215,219,234,.28)}
.hud-corner small{color:rgba(215,219,234,.55);font:inherit}
.hud-nw{left:var(--gutter)}.hud-ne{right:var(--gutter)}
.hud-side{position:absolute;top:50%;color:rgba(215,219,234,.62);writing-mode:vertical-rl;letter-spacing:.13em}
.hud-side-left{left:var(--gutter);transform:translateY(-50%) rotate(180deg)}
.hud-side-right{right:var(--gutter);transform:translateY(-50%)}
.hud-axis{position:absolute;top:30%;bottom:27%;display:flex;flex-direction:column;align-items:center;justify-content:space-between;color:rgba(215,219,234,.32)}
.hud-axis i{width:1px;flex:1;margin:.6rem 0;background:repeating-linear-gradient(to bottom,rgba(215,219,234,.22) 0 1px,transparent 1px 9px)}
.hud-axis b{font-weight:400}.hud-axis-left{left:clamp(5rem,8vw,9rem)}.hud-axis-right{right:clamp(5rem,8vw,9rem)}
.hud-status{position:absolute;left:var(--gutter);bottom:clamp(1.4rem,3vw,3.25rem);display:flex;align-items:center;gap:.65rem}
.hud-status span{width:.42rem;height:.42rem;border-radius:50%;background:var(--accent);box-shadow:0 0 16px rgba(206,133,133,.8);animation:status-pulse 1.8s ease-in-out infinite}
.intro-enter,.intro-skip{position:absolute;z-index:7;border:0;color:#d7dbea;background:transparent;font:400 .64rem/1.2 IBM,monospace;text-transform:uppercase;letter-spacing:.06em;cursor:pointer}
.intro-enter{right:var(--gutter);bottom:clamp(1.3rem,2.8vw,3rem);display:flex;align-items:center;gap:.85rem;padding:.45rem 0;border-bottom:1px solid rgba(215,219,234,.65)}
.intro-enter b{font-size:1.05rem;font-weight:400;animation:enter-nudge 1.7s ease-in-out infinite}
.intro-skip{right:var(--gutter);top:clamp(4.2rem,6.5vw,6.3rem);padding:.3rem 0;color:rgba(215,219,234,.48)}
.lotus-intro.is-leaving .lotus-hud,.lotus-intro.is-leaving .intro-enter,.lotus-intro.is-leaving .intro-skip{opacity:0;transform:scale(.985)}
.lotus-intro.is-leaving .lotus-phrase{opacity:0;filter:blur(8px);letter-spacing:.16em}
.lotus-intro.is-leaving .lotus-wash{animation:intro-light-open 1.25s cubic-bezier(.65,0,.2,1) forwards}
.lotus-intro.is-leaving .lotus-transition-lines{animation:intro-lines-in 1.1s .25s ease forwards}
.lotus-intro.is-leaving .lotus-transition-lines i{animation:intro-line-expand .9s .28s cubic-bezier(.16,1,.3,1) forwards}
.site-header{top:0;position:sticky;height:88px;background:rgba(228,232,236,.9);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.home-hero{position:relative;scroll-margin-top:88px;min-height:calc(100dvh - 88px);padding:clamp(3.5rem,8vh,6rem) var(--gutter) clamp(2rem,5vh,4rem);display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);grid-template-rows:1fr auto;gap:3rem;overflow:hidden;background:var(--paper)}
.home-grid{position:absolute;inset:0;pointer-events:none;opacity:.48;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:clamp(70px,8vw,130px) clamp(70px,8vw,130px);mask-image:linear-gradient(to bottom,transparent,black 18%,black 78%,transparent)}
.home-copy{position:relative;z-index:1;align-self:center;max-width:1060px}
.home-kicker,.home-foot,.practice-switcher button,.home-orbit p{font:400 .65rem/1.45 IBM,monospace;text-transform:uppercase;letter-spacing:.035em}
.home-kicker{margin-bottom:clamp(1.5rem,4vh,3.5rem);color:var(--muted)}
.home-copy h1{max-width:980px;font-size:clamp(3.1rem,6.4vw,7.6rem);font-weight:400;line-height:.88;letter-spacing:-.07em}
.home-copy h1 em{font-family:Cormorant,serif;font-weight:500;line-height:1.12;color:var(--accent)}
.home-orbit{position:relative;z-index:1;align-self:center;justify-self:center;width:min(32vw,470px);aspect-ratio:1;display:grid;place-items:center}
.orbit-field{position:absolute;inset:0;border:1px solid var(--line);border-radius:50%;animation:orbit-rotate 22s linear infinite}
.orbit-field::before,.orbit-field::after{content:"";position:absolute;inset:14%;border:1px solid rgba(23,32,51,.16);border-radius:50%}.orbit-field::after{inset:32%;background:radial-gradient(circle,var(--accent) 0 2px,transparent 3px);box-shadow:0 0 32px rgba(206,133,133,.28)}
.orbit-field span{position:absolute;width:.4rem;height:.4rem;border-radius:50%;background:var(--ink)}
.orbit-field span:nth-child(1){left:8%;top:38%}.orbit-field span:nth-child(2){right:13%;top:20%;background:var(--accent)}.orbit-field span:nth-child(3){right:2%;bottom:34%}.orbit-field span:nth-child(4){left:24%;bottom:5%;background:var(--accent)}.orbit-field span:nth-child(5){left:48%;top:-.2rem}
.home-orbit p{position:relative;max-width:11rem;text-align:center;color:var(--ink);transition:opacity .2s ease,transform .25s ease}
.home-orbit p.is-changing{opacity:0;transform:translateY(5px)}
.home-foot{position:relative;z-index:1;grid-column:1/-1;display:grid;grid-template-columns:1fr auto 1fr;gap:2rem;align-items:end;padding-top:1.1rem;border-top:1px solid var(--line);color:var(--muted)}
.home-portrait{position:relative;z-index:1;align-self:center;justify-self:center;width:min(29vw,430px);min-width:280px;padding:clamp(1rem,2vw,1.8rem)}
.home-portrait figure{position:relative;z-index:2;margin:0;width:78%;margin-left:auto;background:#f3f4f5;box-shadow:0 24px 65px rgba(23,32,51,.14)}
.home-portrait figure>img{aspect-ratio:4/5;object-fit:cover;object-position:center 18%;filter:saturate(.83) contrast(.98)}
.home-portrait figcaption{padding:.62rem .72rem;color:var(--muted);font:400 .58rem/1.4 IBM,monospace;text-transform:uppercase}
.portrait-trace{position:absolute;z-index:1;left:-23%;top:8%;width:96%;height:90%;object-fit:cover;object-position:center;opacity:.23;mix-blend-mode:multiply;filter:grayscale(.2) saturate(.7) contrast(1.15);clip-path:polygon(0 4%,100% 0,88% 93%,7% 100%);animation:trace-drift 9s ease-in-out infinite alternate}
.portrait-note{position:absolute;z-index:3;left:-5%;bottom:15%;padding:.5rem .65rem;background:rgba(228,232,236,.88);backdrop-filter:blur(8px);color:var(--ink);font:400 .58rem/1.3 IBM,monospace;text-transform:uppercase;letter-spacing:.04em;writing-mode:vertical-rl;transform:rotate(180deg)}
.home-copy,.home-portrait,.home-foot{opacity:0;transform:translateY(22px);transition:opacity .8s ease,transform 1s cubic-bezier(.16,1,.3,1)}
.site-entered .home-copy,.site-entered .home-portrait,.site-entered .home-foot{opacity:1;transform:none}.site-entered .home-portrait{transition-delay:.13s}.site-entered .home-foot{transition-delay:.24s}
.home-foot>a{justify-self:end;color:var(--ink);padding-bottom:.2rem;border-bottom:1px solid currentColor}
.practice-switcher{display:flex;gap:1.4rem}.practice-switcher button{padding:.2rem 0;border:0;border-bottom:1px solid transparent;background:transparent;color:var(--muted);cursor:pointer}.practice-switcher button.is-active{color:var(--ink);border-color:var(--accent)}
.focus-hero{background:var(--paper-2)}
.project-list{background:var(--paper)}
.project-row:nth-child(2){margin-left:calc(var(--gutter) * -1);margin-right:calc(var(--gutter) * -1);padding:clamp(5rem,8vw,9rem) var(--gutter);background:#dce2e5}
.project-row:nth-child(3){padding-top:clamp(5rem,8vw,9rem);border-top:0;background:#d7ddd9}
.about{margin:0;padding-left:var(--gutter);padding-right:var(--gutter);background:var(--paper-3)}
.about-copy{display:block!important}.about-links{display:flex;flex-wrap:wrap;gap:.7rem 1.5rem;margin-top:2rem!important;font:400 .64rem/1.45 IBM,monospace!important;text-transform:uppercase}.about-links a{padding-bottom:.2rem;border-bottom:1px solid currentColor;color:var(--ink)}
.contact{background:var(--ink);color:var(--paper)}.contact p{color:#b7bfcc}
.cover-crop{aspect-ratio:3 / 4}
.cover-crop img{object-position:62% center}
.focus-visual.is-portrait img{aspect-ratio:3 / 4;object-position:62% center}
@keyframes status-pulse{50%{opacity:.35;transform:scale(.75)}}
@keyframes phrase-arrive{from{opacity:0;filter:blur(9px);letter-spacing:.14em}to{opacity:1;filter:none;letter-spacing:.055em}}
@keyframes enter-nudge{50%{transform:translateY(5px)}}
@keyframes orbit-rotate{to{transform:rotate(360deg)}}
@keyframes trace-drift{to{transform:translate3d(12px,-8px,0) scale(1.025);opacity:.3}}
@keyframes intro-light-open{0%{opacity:0;transform:scale(.04);border-radius:50%}40%{opacity:.94}100%{opacity:1;transform:scale(1.7);border-radius:0}}
@keyframes intro-lines-in{0%,22%{opacity:0}100%{opacity:1}}
@keyframes intro-line-expand{to{transform:scaleX(1)}}
@media(max-width:900px){.home-hero{grid-template-columns:1fr;grid-template-rows:auto auto auto;min-height:auto}.home-copy{align-self:end}.home-portrait{position:relative;right:auto;top:auto;width:min(72vw,430px);min-width:0;justify-self:end;margin:-2rem 2vw 2rem 0}.home-foot{grid-template-columns:1fr auto}.practice-switcher{grid-column:1/-1;grid-row:1}.home-foot>a{grid-column:2}.hud-axis{display:none}}
@media(max-width:640px){.hud-corner{grid-template-columns:auto}.hud-corner i,.hud-corner small,.hud-side{display:none}.intro-skip{top:4.2rem}.lotus-phrase{top:54%;width:88vw;padding:1.1rem 1.5rem}.site-header{height:96px}.site-header nav a:nth-child(n+3){display:none}.home-hero{scroll-margin-top:96px;min-height:auto;padding-top:3.5rem}.home-copy h1{font-size:clamp(3rem,14vw,4.8rem)}.home-portrait{width:82vw;margin:1rem 0 2rem}.portrait-note{left:0}.home-foot{grid-template-columns:1fr}.home-foot>a{grid-column:1;justify-self:start}.practice-switcher{display:grid;gap:.45rem}.project-row:nth-child(2){margin-left:calc(var(--gutter) * -1);margin-right:calc(var(--gutter) * -1)}}
@media(prefers-reduced-motion:reduce){.lotus-phrase{opacity:1;animation:none}.hud-status span,.intro-enter b,.orbit-field,.portrait-trace{animation:none}.lotus-intro.is-leaving .lotus-wash,.lotus-intro.is-leaving .lotus-transition-lines,.lotus-intro.is-leaving .lotus-transition-lines i{animation:none}.home-copy,.home-portrait,.home-foot{opacity:1;transform:none;transition:none}}

/* Personal introduction + lotus-backed work index */
.home-hero{min-height:calc(100dvh - 88px);padding:clamp(3rem,6vw,6.5rem) var(--gutter);display:grid;grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr);grid-template-rows:auto;gap:clamp(3rem,7vw,9rem);align-items:center;background:var(--paper);overflow:hidden}
.home-photo{align-self:center;width:min(100%,480px);margin:0;background:#f4f3f2;box-shadow:0 24px 70px rgba(23,32,51,.1);opacity:0;transform:translateY(22px);transition:opacity .8s ease,transform 1s cubic-bezier(.16,1,.3,1)}
.home-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 16%;filter:saturate(.86) contrast(.98)}
.home-photo figcaption{padding:.7rem .8rem;color:var(--muted);font:400 .6rem/1.4 IBM,monospace;text-transform:uppercase;letter-spacing:.035em}
.home-introduction{max-width:860px;opacity:0;transform:translateY(22px);transition:opacity .8s .12s ease,transform 1s .12s cubic-bezier(.16,1,.3,1)}
.site-entered .home-photo,.site-entered .home-introduction{opacity:1;transform:none}
.home-introduction h1{max-width:820px;margin:0 0 clamp(1.8rem,3vw,3rem);font-size:clamp(2.3rem,4.4vw,5.2rem);font-weight:400;line-height:.98;letter-spacing:-.058em}
.home-bio{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.4rem,3vw,3.5rem);max-width:820px;padding-top:1.2rem;border-top:1px solid var(--line)}
.home-bio p{color:var(--muted);font-size:clamp(.98rem,1.15vw,1.18rem)}
.home-details{display:grid;grid-template-columns:1fr 1fr;gap:1rem 2rem;margin:clamp(2rem,4vw,3.8rem) 0 0}
.home-details div{padding-top:.65rem;border-top:1px solid var(--line)}
.home-details dt,.home-details dd,.home-links{font:400 .63rem/1.5 IBM,monospace;text-transform:uppercase;letter-spacing:.03em}
.home-details dt{color:var(--muted)}.home-details dd{margin:.25rem 0 0;color:var(--ink)}
.home-links{display:flex;flex-wrap:wrap;gap:.8rem 1.7rem;margin-top:2rem}.home-links a{padding-bottom:.2rem;border-bottom:1px solid currentColor}
.home-portrait,.home-copy,.home-foot{display:none}

.focus-hero{position:relative;isolation:isolate;overflow:hidden;background:var(--paper-2)}
.focus-hero::before{content:"";position:absolute;z-index:-1;inset:-8%;background-image:url("assets/images/lotus-source.png");background-repeat:repeat;background-position:center;background-size:clamp(500px,48vw,820px) auto;opacity:.25;filter:invert(1) grayscale(1) contrast(.72);mix-blend-mode:multiply;pointer-events:none}
.focus-hero::after{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,rgba(227,225,232,.76),rgba(227,225,232,.35) 48%,rgba(227,225,232,.72));pointer-events:none}
.focus-stage,.focus-intro,.scroll-note{position:relative;z-index:1}
.focus-visual img{width:min(94%,1040px);height:min(57vh,620px);aspect-ratio:auto;object-fit:contain;object-position:center;clip-path:none;box-shadow:none}
.wake-single{min-height:0;display:block;background:transparent}
.wake-single>img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;object-position:center;transform:none}

@media(max-width:900px){.home-hero{grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr);gap:2.5rem}.home-bio{grid-template-columns:1fr}.home-introduction h1{font-size:clamp(2.2rem,6vw,4rem)}}
@media(max-width:700px){.home-hero{grid-template-columns:1fr;padding-top:3rem}.home-photo{width:min(74vw,380px)}.home-introduction{max-width:none}.home-introduction h1{font-size:clamp(2.25rem,10vw,3.6rem)}.home-details{grid-template-columns:1fr}.focus-hero::before{background-size:620px auto}.wake-single>img{aspect-ratio:3/2}}
@media(prefers-reduced-motion:reduce){.home-photo,.home-introduction{opacity:1;transform:none;transition:none}}

.contact a{font-size:clamp(1.45rem,3.6vw,4.2rem);line-height:1;letter-spacing:-.045em}

/* Trace-field introduction and related work-index atmosphere */
.trace-intro{position:relative;width:100%;height:100dvh;overflow:hidden;isolation:isolate;background:#e4e8ec;color:var(--ink)}
.trace-intro>img{display:none}
.trace-intro canvas{position:absolute;z-index:0;inset:0;width:100%;height:100%;cursor:crosshair}
.trace-intro::after{content:"";position:absolute;z-index:1;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(228,232,236,.55),transparent 28%,transparent 74%,rgba(228,232,236,.68)),radial-gradient(circle at 50% 49%,transparent 0 38%,rgba(228,232,236,.22) 74%,rgba(228,232,236,.55) 100%)}
.trace-heading{position:absolute;z-index:4;top:clamp(1.4rem,3.2vw,3.5rem);left:var(--gutter);right:var(--gutter);display:flex;justify-content:space-between;align-items:flex-start;gap:2rem;pointer-events:none}
.trace-heading div{display:flex;flex-direction:column;gap:.45rem}
.trace-heading strong{font-size:clamp(1.45rem,2.45vw,3rem);font-weight:400;line-height:.9;letter-spacing:-.055em;text-transform:uppercase}
.trace-heading span,.trace-heading p,.trace-note{font:400 .62rem/1.45 IBM,monospace;text-transform:uppercase;letter-spacing:.055em}
.trace-heading span{color:var(--muted)}
.trace-heading p{padding-top:.1rem}
.trace-phrase{position:absolute;z-index:4;left:50%;top:51%;width:min(76vw,720px);transform:translate(-50%,-50%);text-align:center;text-wrap:balance;font:500 italic clamp(1.7rem,3.25vw,4.15rem)/1.02 Cormorant,serif;letter-spacing:-.035em;color:#26344b;text-shadow:0 1px 24px rgba(228,232,236,.95);transition:opacity .5s ease,filter .7s ease,letter-spacing .7s ease}
.trace-note{position:absolute;z-index:4;left:var(--gutter);bottom:clamp(1.4rem,3vw,3.25rem);color:var(--muted)}
.trace-intro .intro-enter,.trace-intro .intro-skip{color:var(--ink)}
.trace-intro .intro-enter{border-color:rgba(23,32,51,.55)}
.trace-intro .intro-skip{color:var(--muted)}
.trace-wash{position:absolute;z-index:5;inset:-2px;pointer-events:none;opacity:0;background:#e4e8ec;clip-path:circle(0 at 50% 50%)}
.trace-intro.is-leaving .trace-heading,.trace-intro.is-leaving .trace-note,.trace-intro.is-leaving .intro-enter,.trace-intro.is-leaving .intro-skip{opacity:0;transform:translateY(-6px);transition:opacity .35s ease,transform .55s ease}
.trace-intro.is-leaving .trace-phrase{opacity:0;filter:blur(9px);letter-spacing:.02em}
.trace-intro.is-leaving .trace-wash{animation:trace-open .95s cubic-bezier(.65,0,.2,1) forwards}
@keyframes trace-open{0%{opacity:0;clip-path:circle(0 at 50% 50%)}35%{opacity:.95}100%{opacity:1;clip-path:circle(78% at 50% 50%)}}

.focus-hero::before{inset:-5%;background-image:url("assets/images/trace-field.png");background-repeat:repeat-y;background-position:center;background-size:cover;opacity:.16;filter:grayscale(.25) saturate(.55) contrast(.86);mix-blend-mode:multiply}
.focus-hero::after{background:linear-gradient(90deg,rgba(214,220,226,.9),rgba(214,220,226,.55) 46%,rgba(214,220,226,.84)),linear-gradient(180deg,rgba(214,220,226,.82),transparent 28%,rgba(214,220,226,.72))}

@media(max-width:640px){.trace-heading{gap:1rem}.trace-heading span{max-width:15rem}.trace-phrase{top:53%;width:86vw}.trace-note{max-width:11rem}.focus-hero::before{background-size:auto 100%;background-repeat:repeat-y}}
@media(prefers-reduced-motion:reduce){.trace-intro.is-leaving .trace-wash{animation:none;opacity:1;clip-path:none}.trace-phrase{transition:none}}
