/* Forest Tall: generated photography and Vellum-inspired drawing motion. */
html{overflow:visible;scroll-behavior:smooth;}
.photo-figure{margin:0;position:relative;}
.editorial-image{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;background:#edf3ef;}
.photo-figure figcaption{font:10px var(--font-mono);padding:10px 0;color:var(--ink-soft);}
.service>.editorial-image{aspect-ratio:4/3;margin-bottom:12px;}
.project-card>.editorial-image{aspect-ratio:8/5;border-bottom:1px solid var(--line);}
.material-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-bottom:32px;}
.material-gallery figure{margin:0;}
.material-gallery figcaption{padding:12px 0;font-weight:600;font-size:.88rem;}
.material-gallery img{aspect-ratio:1;}
.scroll-story{height:260svh;min-height:1600px;padding:0;position:relative;background:#112e21;}
.story-pin{position:sticky;top:67px;height:calc(100svh - 67px);min-height:650px;overflow:hidden;}
.story-visual,.story-image,.story-shade{position:absolute;inset:0;width:100%;height:100%;}
.story-image{object-fit:cover;object-position:center;opacity:0;transition:opacity .8s ease;transform:scale(1.035);}
.story-image.is-active{opacity:1;}
.story-shade{background:linear-gradient(90deg,rgba(8,31,21,.95),rgba(8,31,21,.7) 39%,rgba(8,31,21,.12) 78%),linear-gradient(0deg,rgba(8,31,21,.8),transparent 30%);}
.story-content{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;justify-content:center;padding-top:52px;padding-bottom:22px;}
.story-content>.eyebrow{color:#b3d3bf;font-size:.68rem;margin-bottom:28px;}
.story-copy{display:grid;max-width:680px;}
.story-beat{grid-area:1/1;visibility:hidden;opacity:0;transition:opacity .55s,transform .55s;transform:translateY(12px);pointer-events:none;}
.story-beat.is-active{visibility:visible;opacity:1;transform:none;pointer-events:auto;}
.story-beat h1,.story-beat h2{font-size:clamp(2.5rem,4.6vw,4.1rem);line-height:1.06;color:#fff;letter-spacing:-.04em;}
.story-beat h1 span,.story-beat h2 span{color:#b4d8bf;}
.story-beat p{font-size:1.04rem;line-height:1.65;max-width:43ch;color:#e0eae3;margin-top:24px;}
.story-content .btn-primary{background:#fff;color:#1b4332;}
.story-content .btn-primary:hover{background:#d9e9de;}
.story-content .btn-ghost{border-color:#90ac9b;color:#fff;}
.story-controls{display:flex;gap:26px;margin-top:44px;max-width:630px;}
.story-controls button{flex:1;text-align:left;background:none;border:0;border-top:2px solid #6b8777;padding:15px 0;color:#bdcfc4;font:11px var(--font-mono);cursor:pointer;transition:color .3s,border-color .3s;}
.story-controls button.is-active{color:white;border-color:#d8efdf;}
.story-bottom{display:flex;align-items:center;gap:18px;justify-content:space-between;margin-top:30px;padding-top:15px;border-top:1px solid #ffffff25;color:#b8cbbf;font:9px var(--font-mono);letter-spacing:.05em;}
.motion-toggle{background:transparent;border:1px solid #829e8d;color:#d8e9df;border-radius:2px;padding:6px 10px;font:10px var(--font-mono);cursor:pointer;}
.toolpath{position:absolute;right:0;top:0;width:100%;height:100%;color:#b5dbbd;opacity:.6;pointer-events:none;}
.toolpath path{stroke:currentColor;stroke-width:1.4;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--story-progress,0));}
.toolpath circle{stroke:currentColor;stroke-width:1;}
.section-head::after{content:"";display:block;width:76px;height:2px;background:var(--forest-lt);margin-top:24px;transform-origin:left;}
.step-bar{background:linear-gradient(90deg,var(--forest-lt) var(--line-progress,100%),var(--line-soft) 0);}
@media(max-width:1100px){.nav nav.links.nav-mobile-hide{display:none;}}
@media(prefers-reduced-motion:no-preference){
 .story-image.is-active{animation:camera-drift 14s ease-in-out infinite alternate;}
 .draw-in svg path,.draw-in svg circle,.draw-in svg rect{stroke-dasharray:140;animation:ink-in 2s ease both;}
 .draw-in.section-head::after{animation:rule-in 1.1s ease both;}
 .draw-in.editorial-image{animation:photo-in 1s ease both;}
 .draw-in.step{animation:photo-in .8s ease both;}
 .draw-in .step-bar{animation:rule-in 1.5s ease both;transform-origin:left;}
}
@keyframes camera-drift{from{transform:scale(1.035) translateX(0);}to{transform:scale(1.09) translateX(-1%);}}
@keyframes ink-in{from{stroke-dashoffset:140;}to{stroke-dashoffset:0;}}
@keyframes rule-in{from{transform:scaleX(0);}to{transform:scaleX(1);}}
@keyframes photo-in{from{transform:translateY(16px);opacity:.7;}to{transform:none;opacity:1;}}
html.motion-paused *,html.motion-paused *::after{animation-play-state:paused!important;transition:none!important;}
@media(max-width:900px){
 .story-pin{top:66px;min-height:620px;}
 .story-content{padding-top:35px;}
 .story-copy{max-width:590px;}
 .story-shade{background:linear-gradient(90deg,rgba(8,31,21,.92),rgba(8,31,21,.4)),linear-gradient(0deg,rgba(8,31,21,.8),transparent);}
 .material-gallery{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:560px){
 .nav{gap:12px;padding:12px 16px;}.nav>.btn{padding:10px;font-size:.72rem;}.brand-word{font-size:1rem;}.brand svg{width:29px;height:29px;}
 .scroll-story{height:220svh;min-height:1400px;}.story-pin{top:60px;min-height:610px;height:calc(100svh - 60px);}
 .story-beat h1,.story-beat h2{font-size:2.65rem;}.story-beat p{font-size:.93rem;}
 .story-content>.eyebrow{font-size:.58rem;margin-bottom:20px;}.story-controls{gap:12px;margin-top:26px;}.story-controls button{font-size:9px;}
 .story-bottom{font-size:8px;gap:8px;margin-top:20px;}.story-bottom>span:first-child{display:none;}.story-content .hero-ctas{gap:10px;margin-top:22px;}.story-content .btn{font-size:.75rem;padding:11px 14px;}
 .material-gallery{gap:14px;}.service{padding:22px;}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto;}.scroll-story{height:auto;min-height:0;}.story-pin{position:relative;top:0;height:auto;min-height:690px;}.story-content{min-height:690px;}.story-image{transform:none;}.story-image,.story-beat{transition:none;}.story-bottom>span:first-child{display:none;}.toolpath path{stroke-dashoffset:0;}.motion-toggle{display:none;}
 *,*::before,*::after{animation:none!important;scroll-behavior:auto!important;}
}
