html:has(.portfolio){scroll-behavior:smooth}.portfolio{--muted:color-mix(in srgb, var(--foreground) 58%, var(--background));--rule:color-mix(in srgb, var(--foreground) 16%, var(--background));--ease-out:cubic-bezier(.22, 1, .36, 1);overflow:clip}.portfolio ::selection{color:var(--background);background:var(--foreground)}.portfolio a{-webkit-tap-highlight-color:transparent}.portfolio :is(a,button):focus-visible{outline:1px solid var(--foreground);outline-offset:7px}.portfolio-arrow{width:22px;height:22px;transition:transform .4s var(--ease-out);flex-shrink:0}.intro{min-height:min(850px, calc(100svh - var(--site-header-height)));flex-direction:column;display:flex}.intro[hidden]{display:none}.intro-main{flex:1;grid-template-columns:1.12fr 1fr;align-items:center;gap:clamp(24px,6vw,100px);padding-block:clamp(32px,4.5vw,72px) clamp(56px,6vw,96px);display:grid}.intro-copy{z-index:1;min-width:0;position:relative}.intro-title{letter-spacing:-.015em;margin:0 0 27px;padding-inline:.06em;font-size:clamp(56px,6.5vw,94px);font-weight:400;line-height:.98}.intro-line{white-space:nowrap;margin:-.075em -.08em -.13em;padding:.075em .08em .13em;display:block;overflow:visible}.intro-line--name{font-size:.72em}.intro-line>span{animation:intro-rise 1.25s var(--ease-out) both;display:block}.intro-line:nth-child(2)>span{animation-delay:.1s}.intro-line:nth-child(3)>span{animation-delay:.2s}.intro-title em{font-weight:350}.typing-cursor{vertical-align:-.06em;background:currentColor;width:.055em;height:.82em;margin-left:.08em;animation:.75s step-end infinite typing-cursor-blink;display:inline-block}.intro-description{max-width:32ch;color:var(--muted);animation:intro-fade 1s .35s var(--ease-out) both;margin:32px 0 0;font-size:16px;line-height:1.7}.intro-actions{animation:intro-fade 1s .45s var(--ease-out) both;flex-wrap:wrap;align-items:center;gap:18px 28px;margin-top:28px;display:flex}.portfolio-button{border:1px solid var(--foreground);background:var(--foreground);min-height:54px;color:var(--background);border-radius:2px;justify-content:center;align-items:center;gap:26px;padding:15px 22px;font-size:13px;line-height:1.5;text-decoration:none;transition:background .25s,color .25s;display:inline-flex}.portfolio-text-link{min-height:44px;color:var(--foreground);align-items:center;gap:14px;font-size:13px;line-height:1.5;text-decoration:none;display:inline-flex;position:relative}.portfolio-text-link:after{content:"";transform-origin:100%;height:1px;transition:transform .4s var(--ease-out);background:currentColor;position:absolute;bottom:7px;left:0;right:36px;transform:scaleX(0)}.intro-art{width:118%;min-width:0;animation:portrait-arrive 1.8s .15s var(--ease-out) both;place-self:center end;padding-top:22px}.portrait-figure{margin:0;position:relative}.portrait-stage{aspect-ratio:2172/2560;isolation:isolate;width:100%;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(#000 65%,#000000bf 80%,#0000 100%);mask-image:linear-gradient(#000 65%,#000000bf 80%,#0000 100%)}.portrait-image,.portrait-image img{width:100%;height:100%;display:block}.portrait-image{filter:grayscale()}.portrait-image img{object-fit:contain}.portfolio-section{border-top:1px solid var(--rule);scroll-margin-top:calc(var(--site-header-height) + 16px);padding-block:clamp(80px,10vw,144px)}.section-title{letter-spacing:-.01em;margin:0;font-size:clamp(44px,4.8vw,68px);font-weight:400;line-height:1.1}.work-heading{margin-bottom:52px}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:32px;display:grid}.project{min-width:0}.project-artwork{aspect-ratio:1.1;isolation:isolate;background:color-mix(in srgb, var(--foreground) 6%, var(--background));width:100%;position:relative;overflow:hidden}.project-image{object-fit:cover;width:100%;height:100%;display:block}.project-artwork-blur{z-index:1;pointer-events:none;background:linear-gradient(#0000 54%,#00000057 77%,#000000b8);position:absolute;inset:0;overflow:hidden}.project-artwork-blur-layer{pointer-events:none;-webkit-mask-image:linear-gradient(to top, #000 0%, #000 var(--mask-end), transparent var(--mask-fade));-webkit-mask-image:linear-gradient(to top, #000 0%, #000 var(--mask-end), transparent var(--mask-fade));mask-image:linear-gradient(to top, #000 0%, #000 var(--mask-end), transparent var(--mask-fade));-webkit-backdrop-filter:blur(var(--blur));backdrop-filter:blur(var(--blur));display:block;position:absolute;inset:0}.project-artwork-blur-layer--soft{--blur:2px;--mask-end:48%;--mask-fade:62%}.project-artwork-blur-layer--medium{--blur:6px;--mask-end:40%;--mask-fade:54%}.project-artwork-blur-layer--strong{--blur:14px;--mask-end:30%;--mask-fade:45%}.project-artwork-blur-layer--strongest{--blur:28px;--mask-end:20%;--mask-fade:36%}.project-info{z-index:2;color:#fff;text-shadow:0 1px 18px #0000003d;position:absolute;bottom:clamp(20px,3vw,32px);left:clamp(20px,3vw,34px);right:clamp(20px,3vw,34px)}.project-info h3{letter-spacing:-.025em;margin:0;font-size:clamp(26px,2.6vw,36px);font-weight:400;line-height:1.15}.project-title-link{color:inherit;text-decoration:none}.project-title-link:hover{text-underline-offset:5px;text-decoration:underline}.project-info p{color:#fffc;margin:7px 0 0;font-size:14px;line-height:1.5}.contact{padding-bottom:96px}.contact-row h2{letter-spacing:-.01em;margin:0;padding-inline:.06em;font-size:clamp(60px,8.8vw,126px);font-weight:400;line-height:1.03}.contact-row{justify-content:space-between;align-items:baseline;gap:32px;display:flex}.contact-email{border-bottom:1px solid var(--rule);min-height:48px;color:var(--foreground);font-family:var(--font-source-serif), Georgia, serif;letter-spacing:0;align-items:center;gap:36px;padding-bottom:7px;font-size:clamp(26px,3vw,38px);line-height:1.2;text-decoration:none;transition:border-color .3s;display:inline-flex}.portfolio [data-reveal]{transition:opacity .9s var(--ease-out), transform .9s var(--ease-out)}.portfolio [data-reveal-state=waiting]{opacity:0;transform:translateY(28px)}.portfolio [data-reveal-state=waiting]:focus-within{opacity:1;transform:none}@media (hover:hover) and (pointer:fine){.portfolio-button:hover{color:var(--foreground);background:var(--background)}.portfolio-button:hover .portfolio-arrow{transform:translate(4px)}.portfolio-text-link:hover:after{transform-origin:0;transform:scaleX(1)}.portfolio-text-link:hover .portfolio-arrow,.contact-email:hover .portfolio-arrow{transform:translate(3px,-3px)}.contact-email:hover{border-color:var(--foreground)}}@keyframes intro-rise{0%{opacity:0;transform:translateY(105%)rotate(3deg)}to{opacity:1;transform:translateY(0)rotate(0)}}@keyframes intro-fade{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes typing-cursor-blink{0%,45%{opacity:1}46%,to{opacity:0}}@keyframes portrait-arrive{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media (max-width:1000px){.intro-title{font-size:clamp(56px,7.2vw,78px)}.intro-main{gap:28px}.intro-art{width:110%}.project-grid{gap:24px}}@media (max-width:760px){.intro{min-height:auto}.intro-main{grid-template-columns:minmax(0,1fr);gap:24px;padding-block:40px}.intro-copy{display:contents}.intro-title{order:1}.intro-actions{order:3}.intro-title{font-size:clamp(52px,12vw,82px)}.intro-description{margin-top:26px;font-size:15px}.intro-actions{gap:12px 24px;margin-top:24px}.portfolio-button{gap:20px;min-height:50px;padding:13px 18px;font-size:12px}.portfolio-text-link{gap:10px;font-size:12px}.intro-art{order:2;justify-self:center;width:min(100%,460px);margin-top:4px;padding-top:0}.portfolio-section{padding-block:72px}.section-title{font-size:clamp(38px,8vw,56px)}.work-heading{margin-bottom:36px}.project-grid{grid-template-columns:minmax(0,1fr);gap:40px}.project-artwork{aspect-ratio:1.08}.project-info h3{font-size:30px}.project-info p{font-size:13px}.contact-row h2{font-size:clamp(22px,5.7vw,42px)}.contact-row{gap:16px}.contact-email{gap:10px;font-size:clamp(16px,3.5vw,26px)}.contact-email .portfolio-arrow{width:16px;height:16px}}@media (max-width:380px){.intro-title{font-size:50px}.intro-actions{gap:12px 18px}.portfolio-button{gap:12px;padding-inline:14px}.intro-actions .portfolio-text-link{gap:6px}}.portfolio[data-motion=paused] *,.portfolio[data-motion=paused] :before,.portfolio[data-motion=paused] :after{transition-duration:0s!important;transition-delay:0s!important;animation-play-state:paused!important}html:has(.portfolio[data-motion=paused]){scroll-behavior:auto}.portfolio[data-motion=paused] [data-reveal]{opacity:1;transform:none}.portfolio[data-motion=paused] :is(.intro-line>span,.intro-description,.intro-actions,.intro-art){animation:none}@media (prefers-reduced-motion:reduce){html:has(.portfolio){scroll-behavior:auto}.portfolio *,.portfolio :before,.portfolio :after{transition:none!important;animation:none!important}.portfolio [data-reveal-state=waiting]{opacity:1;transform:none}}
