/* Portrait-led introduction. Copy and portrait occupy separate regions. */
.portrait-float{mask-image:radial-gradient(ellipse 60% 73% at 50% 43%,#000 60%,transparent 100%)}
header{align-items:center}.brand{font-size:18px;letter-spacing:.18em}.hero-story{position:relative;background:#0c0910}.hero-stage{position:relative;min-height:100svh;overflow:hidden;isolation:isolate}.hero-aura{position:absolute;inset:5%;background:radial-gradient(ellipse at 50% 45%,#5d3a782b,transparent 64%);z-index:-1}.portrait-stage{position:absolute;margin:0;width:min(40vw,500px);height:76svh;left:72%;top:50%;transform:translate(-50%,-50%);will-change:transform,opacity}.portrait-float{height:100%;width:100%;transform:perspective(1000px) rotateY(var(--portrait-ry,0deg)) rotateX(var(--portrait-rx,0deg));transition:transform 1s ease-out}.story-portrait{display:block;width:100%;height:100%;object-fit:contain;object-position:center;mask-image:linear-gradient(to bottom,#000 85%,transparent);filter:contrast(1.015)}.hero-copy{position:absolute;left:7vw;top:50%;transform:translateY(-50%);width:43vw;max-width:650px;z-index:2}.hero-copy h1{font-size:clamp(78px,10vw,155px);max-width:none;line-height:.94}.hero-copy h1 span{display:block}.hero-copy .eyebrow{font-size:14px;letter-spacing:.25em;color:var(--accent);margin-bottom:22px}.hero-intro{font-family:Georgia,serif;font-size:clamp(17px,1.6vw,22px);line-height:1.6;max-width:450px;margin:26px 0}.hero-actions{gap:22px}.scroll-cue{position:absolute;bottom:34px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:16px;z-index:3;font-size:10px;letter-spacing:.22em;white-space:nowrap;color:#cfc7d5}.scroll-cue i{display:block;height:44px;width:1px;background:linear-gradient(transparent,#ddd2ea);transform-origin:top;animation:scrollPulse 2s ease-in-out infinite}.story-caption{position:absolute;bottom:32px;left:7vw;right:7vw;display:flex;justify-content:space-between;font-size:10px;letter-spacing:.2em;color:var(--muted);pointer-events:none}.story-caption span:last-child{opacity:.6}.story-anchor{position:absolute;top:40%;pointer-events:none}.has-story .hero-story{height:300svh}.has-story .hero-stage{height:100svh;min-height:0;position:sticky;top:0}.has-story .portrait-stage{left:50%;transform:translate(-50%,-50%)}.has-story .hero-copy{opacity:0;visibility:hidden;transform:translateY(calc(-50% + 35px));will-change:transform,opacity}.has-story .story-caption{opacity:0}.has-story .portrait-float img{animation:portraitBreath 9s ease-in-out infinite}.has-story header nav{opacity:0;pointer-events:none;transition:opacity .6s}.has-story.show-nav header nav{opacity:1;pointer-events:auto}.has-story header .top-links{font-size:13px}.section-heading h2,.about h2{transition:transform 1s cubic-bezier(.2,.8,.2,1)}.section:not(.visible) h2{transform:translateY(20px)}.detail-reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .9s cubic-bezier(.2,.75,.2,1);transition-delay:var(--reveal-delay,0ms)}.detail-reveal.in-view{opacity:1;transform:translateY(0)}.role{transition:border-color .5s}.role:hover{border-color:#c7afd970}.role-meta h3,.education h3{transition:color .4s}.role:hover h3,.education article:hover h3{color:var(--accent)}.work-grid article{transition:transform .6s,background .6s}.contact a,.top-links a,nav a{position:relative}.contact-links a:after,.top-links a:after{content:'';height:1px;position:absolute;left:0;right:0;bottom:-4px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .45s}.contact-links a:hover:after,.top-links a:hover:after{transform:scaleX(1)}.button{transition:background .35s,transform .45s,box-shadow .45s}.button:hover{box-shadow:0 8px 35px #b89cc025}.about-photo{object-fit:cover;object-position:50% 35%;height:520px;mask-image:linear-gradient(#000 88%,transparent)}.motion-off .hero-story{height:auto!important}.motion-off .hero-stage{position:relative!important;min-height:100svh;height:auto}.motion-off .portrait-stage{left:72%!important;transform:translate(-50%,-50%)!important;opacity:1!important}.motion-off .hero-copy{visibility:visible!important;opacity:1!important;transform:translateY(-50%)!important}.motion-off .hero-copy>*{opacity:1!important;transform:none!important}.motion-off .scroll-cue,.motion-off .story-caption{display:none}.motion-off header nav{opacity:1;pointer-events:auto}.motion-off .detail-reveal{opacity:1;transform:none}.motion-off .portrait-float img{animation:none}.motion-off .portrait-float{transform:none}.motion-off{scroll-behavior:auto}
@keyframes portraitBreath{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-7px) scale(1.012)}}@keyframes scrollPulse{0%,100%{transform:scaleY(.45);opacity:.4}50%{transform:scaleY(1);opacity:1}}
@media(max-width:1000px){header nav{position:fixed;top:0;left:0;transform:none;padding:12px 5vw}.has-story.show-nav header nav{box-shadow:0 10px 40px #0003}.hero-copy{left:6vw;width:43vw}.hero-copy h1{font-size:clamp(65px,10vw,105px)}.portrait-stage{width:43vw}.hero-copy .button{padding:13px 17px;font-size:14px}.hero-copy .hero-actions{gap:14px}.hero-copy .text-link{font-size:12px}.story-caption span:last-child{display:none}}
@media(max-width:600px){header{padding:20px 6vw}.brand{font-size:14px}.top-links{font-size:12px}.motion-toggle{font-size:10px}.hero-stage{min-height:950px}.portrait-stage{width:min(86vw,430px);height:66svh;left:50%;top:37%}.hero-copy{top:auto;bottom:40px;left:6vw;width:88vw;transform:none;max-width:none}.hero-copy h1{font-size:clamp(60px,16vw,85px);line-height:.92}.hero-copy .eyebrow{font-size:11px;margin-bottom:14px}.hero-intro{font-size:16px;margin:18px 0;line-height:1.55}.hero-actions{margin-top:20px}.hero-copy .button{font-size:13px;padding:12px 16px}.hero-copy .text-link{font-size:12px}.has-story .portrait-stage{top:45%;height:66svh}.has-story .hero-copy{top:48%;bottom:auto;transform:translateY(28px)}.has-story .hero-story{height:310svh}.scroll-cue{bottom:28px;font-size:9px}.story-caption{bottom:20px;font-size:9px}.story-caption span:first-child{display:none}.about-photo{height:460px}.motion-off .hero-stage{height:1000px}.motion-off .portrait-stage{left:50%!important;top:29%!important;height:470px!important}.motion-off .hero-copy{top:auto!important;bottom:50px;transform:none!important}.motion-off header nav{position:absolute;top:70px}.hero-copy .hero-actions{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.has-story .hero-story{height:auto}.detail-reveal{opacity:1;transform:none}.scroll-cue i,.portrait-float img{animation:none!important}}
/* Text-led opening */
.hero-stage{min-height:90svh;display:flex;align-items:center;padding:140px 12vw 100px 7vw}
.hero-copy{position:relative;left:auto;top:auto;bottom:auto;transform:none;width:100%;max-width:1000px}
.hero-copy h1{font-size:clamp(85px,13vw,180px)}
.hero-intro{max-width:570px}
.story-caption{display:none}
.about{grid-template-columns:1fr;gap:0}
.about>div:last-child{max-width:850px}
@media(max-width:600px){.hero-stage{min-height:90svh;padding:170px 6vw 80px}.hero-copy{top:auto;bottom:auto;left:auto;transform:none;width:100%}.hero-copy h1{font-size:clamp(70px,19vw,105px)}header nav{top:75px}.hero-intro{font-size:18px}}
.motion-off .hero-copy{transform:none!important;top:auto!important;bottom:auto!important}.motion-off .hero-stage{height:auto;min-height:90svh}
