/* A clear photographic stage with space for the complete mechanism. */
.hero-image,.sequence-video{top:40px;bottom:90px;left:0;right:0;width:100%;height:calc(100% - 130px);max-height:none;min-height:0;transform:translate3d(calc(18vw * (1 - var(--inspection,0))),0,0) scale(calc(.75 + var(--inspection,0)*.25));transform-origin:center;}
.hero-end{top:72px;bottom:auto;display:flex;justify-content:space-between;align-items:flex-start;gap:45px;}
.hero-end p{font-size:clamp(25px,2.2vw,34px);line-height:1.16;letter-spacing:-.04em;max-width:430px;}
.render-gallery-panel{transition:filter .25s;}
.render-gallery-panel:hover{filter:brightness(1.1);}
.render-gallery-panel:focus-visible{outline-offset:12px;border-radius:3px;}
.image-viewport{position:relative;flex:1 1 0;min-height:0;width:100%;padding:0 16px;overflow:hidden;outline-offset:-4px;overscroll-behavior:contain;}
.image-viewport>img{display:block;width:100%;height:100%;max-width:none;max-height:none;object-fit:contain;user-select:none;-webkit-user-drag:none;}
.image-viewport.is-zoomed{padding:0;overflow:auto;cursor:grab;scrollbar-color:#657486 #111720;scrollbar-width:thin;}
.image-viewport.is-zoomed>img{width:var(--native-width);height:auto;object-fit:initial;margin-inline:auto;}
.image-viewport.is-dragging{cursor:grabbing;}
.image-viewport.is-zoomed:focus-visible{outline:2px solid #91b2dc;}
.dialog-toolbar #dialog-zoom{font-size:12px;min-height:44px;padding:9px 14px;border:1px solid #354454;background:#111c27;border-radius:5px;color:#cfdae5;white-space:nowrap;}
.dialog-toolbar #dialog-zoom:hover,.dialog-toolbar #dialog-zoom[aria-pressed=true]{border-color:#8ca9c4;color:white;background:#1c2e3e;}
.dialog-toolbar #dialog-zoom:disabled{opacity:.45;cursor:default;}
.image-view-hint{flex:none;padding:10px 18px 12px;font-size:11px;line-height:1.5;color:#8fa2b5;letter-spacing:.015em;text-align:center;}
@media(max-width:1150px) and (min-width:801px){.hero-image,.sequence-video{width:100%;}}
@media(max-width:800px){
 .hero-image,.sequence-video{top:calc(300px - var(--inspection,0)*80px);bottom:130px;height:calc(100% - 430px + var(--inspection,0)*80px);width:100%;min-height:160px;max-height:none;transform:none;}
 .hero-end{top:82px;display:block;}
 .hero-end p{font-size:27px;line-height:1.13;max-width:360px;}
 .dialog-toolbar{flex-wrap:wrap;gap:8px 16px;padding:12px 14px;}
 .dialog-toolbar>p{flex-basis:100%;font-size:12px;line-height:1.5;}
 .dialog-toolbar>a{margin-right:auto;min-height:44px;display:flex;align-items:center;}
 .image-viewport{padding:0 8px;}
 .image-view-hint{font-size:10px;padding:8px 12px;}
}
@media(max-height:560px) and (min-width:701px){
 .hero-end{top:38px;}.hero-end p{font-size:25px;}
 .hero-image,.sequence-video{top:80px;bottom:90px;height:calc(100% - 170px);}
}
.reduced-motion .hero-image{transform:translate3d(18vw,0,0) scale(.75)!important;}
@media(max-width:800px){.reduced-motion .hero-image{transform:none!important;top:300px;height:calc(100% - 430px);}}

/* Short windows keep the whole story operable without a pinned overflow. */
.hero.compact-hero{height:100svh;min-height:360px;}
.compact-hero .hero-pin{position:relative;height:100svh;min-height:360px;}
.compact-hero .hero-copy{padding-top:108px;max-width:35%;margin-left:22px;}
.compact-hero .hero-copy .eyebrow{font-size:8px;line-height:1.4;}
.compact-hero .hero-copy h1{font-size:clamp(30px,4.7vw,44px);margin-top:17px;}
.compact-hero .hero-bottom{display:none;}
.compact-hero .hero-image,.compact-hero .sequence-video{top:82px;bottom:68px;left:auto;right:0;width:67%;height:calc(100% - 150px);min-height:0;max-height:none;transform:none;}
.compact-hero .hero-end{top:104px;left:22px;width:31%;margin:0;display:block;}
.compact-hero .hero-end p{font-size:23px;}
.compact-hero .scene-chapters{left:22px;right:auto;bottom:12px;gap:20px;}
.compact-hero .scene-controls{display:none;}
.compact-hero .hero-foot{display:none;}
.compact-hero .hero-project-caption{top:99px;width:30%;left:22px;margin:0;}
.compact-hero .hero-project-caption h2{font-size:25px;}
.compact-hero .hero-project-caption .eyebrow{font-size:8px;}
.compact-hero .render-gallery{inset:95px 22px 72px 36%;display:flex;gap:13px;align-items:center;}
.compact-hero .render-gallery-panel{display:block;}
.compact-hero .render-gallery-media{height:110px;max-height:110px;}
.compact-hero .render-gallery-title{font-size:11px;text-align:center;padding-top:9px;}
.compact-hero .render-gallery-title>small,.compact-hero .render-gallery-title>span{display:none;}

.reduced-motion .compact-hero .hero-image{transform:none!important;}

.reduced-motion .hero-end{display:none!important;}

.render-load-status{display:none;position:absolute;z-index:7;pointer-events:none;color:#9caec1;font-size:10px;line-height:1.5;letter-spacing:.015em;}
@media(max-width:480px){.render-load-status{display:block;bottom:45px;left:22px;right:22px;text-align:center;}}
.compact-hero .render-load-status{display:block;left:22px;right:auto;bottom:70px;width:31%;font-size:10px;text-align:left;}

/* Keep the complete story and controls inside a small portrait viewport. */
@media(max-width:480px) and (min-height:560px) and (max-height:640px){
 .hero:not(.compact-hero) .hero-pin{height:100svh;min-height:0;}
 .hero:not(.compact-hero) .hero-copy .eyebrow{display:none;}
 .hero:not(.compact-hero) h1{margin-top:0;font-size:clamp(36px,10.5vw,47px);}
 html:not(.reduced-motion) .hero:not(.compact-hero) .hero-image,
 html:not(.reduced-motion) .hero:not(.compact-hero) .sequence-video{top:calc(260px - var(--inspection,0)*40px);bottom:130px;height:calc(100% - 390px + var(--inspection,0)*40px);min-height:0;}
 .hero:not(.compact-hero) .render-load-status{bottom:56px;}
 .reduced-motion .hero:not(.compact-hero) .hero-image{top:250px;bottom:150px;height:calc(100% - 400px);min-height:0;}
}

.skills-section{margin-top:85px;border-top:1px solid #29313f;padding-top:35px;}
.skills-heading .eyebrow{color:#94a8c6;font-size:11px;}
.skills-heading h3{font-size:clamp(30px,3.5vw,45px);line-height:1.16;letter-spacing:-.045em;margin-top:18px;font-weight:450;}
.skills-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:80px;row-gap:36px;margin-top:45px;}
.skills-grid article{border-top:1px solid #29313f;padding-top:22px;}
.skills-grid article>span{font-size:11px;color:#9fb3d3;letter-spacing:.06em;}
.skills-grid h4{font-size:26px;line-height:1.2;letter-spacing:-.035em;margin:16px 0 14px;font-weight:450;}
.skills-grid p{font-size:16px;line-height:1.8;color:#9ba7ba;max-width:530px;}
.tool-list>span{font-size:12px;}
@media(max-width:800px){.skills-section{margin-top:55px;padding-top:28px;}.skills-grid{column-gap:30px;margin-top:30px;}.skills-grid p{font-size:15px;}.skills-grid h4{font-size:23px;}}
@media(max-width:540px){.skills-grid{grid-template-columns:1fr;gap:28px;}.skills-grid article>span{font-size:10px;}.skills-grid h4{font-size:25px;}}
