/* DFG / architectural material study. One type family; no ornamental dashboard chrome. */
@font-face{font-family:'Golos Text';font-style:normal;font-weight:400 900;font-display:swap;src:url('../public/assets/fonts/golos-text.ttf') format('truetype')}
:root{--sans:'Golos Text',Arial,sans-serif;--mono:var(--sans);--paper:#f4f3ef;--paper-soft:#fff;--ink:#202321;--ink-soft:#525752;--muted:#626761;--line:#d6d8d1;--accent:#eec246;--pad:clamp(20px,4vw,64px)}
body{font-size:17px;line-height:1.6;font-synthesis:none}
h1,h2,h3,h4{font-family:var(--sans);font-weight:500;letter-spacing:-.045em;line-height:1.08;text-wrap:balance}
h1{font-size:clamp(48px,5.7vw,88px);font-weight:600;letter-spacing:-.055em}
h2{font-size:clamp(34px,4.3vw,64px)}
h3{letter-spacing:-.025em;line-height:1.2}
.mono,.num{font-family:var(--sans);font-size:13px;letter-spacing:0;text-transform:none;font-weight:400;font-variant-numeric:tabular-nums}
.wrap{max-width:1560px}
.site-header{background:rgba(244,243,239,.96);backdrop-filter:blur(8px)}
.brand span{font-family:var(--sans);letter-spacing:0;text-transform:none;font-size:13px}
.site-nav a{font-size:14px;font-weight:500}
.btn{min-height:52px;padding-inline:24px;font-size:14px;font-weight:500;border-radius:2px}
.btn--ghost{border-color:#9b9f97}
.hero-grid{gap:clamp(24px,5vw,80px)}
.hero h1{margin:22px 0 24px;max-width:12ch}
.hero .lead{font-size:17px;max-width:36ch;line-height:1.6}
.hero-actions{gap:10px;margin-top:30px}
.hero-figure{border:0;overflow:hidden;background:#e5e4df}
.hero-figure img{height:clamp(390px,57svh,720px);filter:none;object-position:54% center}
.hero-figure figcaption{left:auto;right:12px;bottom:12px;background:#f4f3ef;color:#414640;border:0;padding:7px 10px;font-size:11px}
.hero-facts{margin-top:36px;border:0;border-top:1px solid var(--line);background:none;gap:36px}
.hero-facts div{padding:18px 0;background:none}
.hero-facts dt{font-family:var(--sans);font-size:13px;letter-spacing:0;text-transform:uppercase;margin-bottom:8px}
.hero-facts dd{font-size:14px;color:var(--ink-soft);max-width:38ch}
.section-head{align-items:start;border:0;margin-bottom:40px}
.section-head .mono{font-size:13px;margin-bottom:22px}
.section-head>p{font-size:16px;max-width:38ch;padding-top:36px}
.work summary{font-size:clamp(20px,2.3vw,30px);font-weight:400;padding:26px 0;letter-spacing:-.025em}
.work summary .num{min-width:44px}
.work-body{padding-left:60px;gap:40px;font-size:16px}
.process{background:none;border:0;border-top:1px solid var(--line);gap:32px}
.process article{padding:28px 0;background:none;gap:18px}
.process .num{font-size:44px;font-weight:400;color:#747971;letter-spacing:-.04em;line-height:1}
.process h3{font-size:24px;font-weight:500}
.process p{font-size:16px;line-height:1.6}
.cta{border:0;background:#e9eae3;padding:clamp(28px,5vw,72px);gap:56px}
.cta .mono{display:block;margin-bottom:22px}.cta h2{max-width:11ch}.cta .lead{font-size:17px}
.site-footer .note{font-size:13px;max-width:62ch}
/* Main assembly is the exhibit, not a boxed dashboard. */
.mount-section{background:#e9ebe5;color:var(--ink);--mount-text:#555c54;--stage-height:clamp(300px,calc(100svh - 320px),720px);border-block:1px solid var(--line)}
.mount-pin{gap:24px;padding-block:28px}
.mount-head{align-items:end}.mount-head h2{font-size:clamp(36px,4vw,60px);letter-spacing:-.045em}
.mount-head .mono{font-size:13px;margin-bottom:16px}.mount-head p{font-size:15px;line-height:1.6;max-width:29ch}
.scene{grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr);gap:clamp(32px,5vw,80px)}
.stage-panel{background:#f3f4ef;border:0}
.stage-top,.stage-caption{color:var(--mount-text);padding:12px 20px;font-size:12px;letter-spacing:0}
.stage-top span:last-child{color:var(--ink);font-size:14px}
.stage-caption{border:0;min-height:40px}.stage-caption .mono{font-size:12px}
.stage{max-width:100%;height:100%;aspect-ratio:1}
.stage img{transform:translate3d(calc(var(--x,3)*1%),calc(var(--y,-1)*1%),0) scale(.94)}
.stage .layer-wall{z-index:1}.stage .layer-brackets{z-index:2}.stage .layer-insulation{z-index:3}.stage .layer-bracket-tips{z-index:4;--o:0}.stage .layer-rails{z-index:5}.stage .layer-cladding{z-index:6}
.assembly-meter{background:#d6dad0;height:2px}.assembly-meter span{background:#69755c}
.mount-copy{gap:28px}
.steps{gap:12px;border:0}
.step-btn{border:0;border-bottom:2px solid #c3c8bd;border-radius:0;min-height:50px;background:none;padding:10px 0;align-content:center;color:#646d60}
.step-btn .num{font-size:23px;line-height:1.2;font-weight:400}
.step-btn>span:last-child{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.step-btn[aria-selected="true"]{background:none;border-color:#283824;color:#202b1c}
.step-btn[aria-selected="true"] .num{color:inherit;font-weight:600}
.card-kicker{font-size:12px;color:#55634a}
.mount-card h3{font-size:clamp(28px,2.8vw,42px);font-weight:500;line-height:1.12;letter-spacing:-.035em;margin:14px 0 20px;max-width:14ch;text-wrap:balance}
.mount-card p{font-size:16px;line-height:1.65;max-width:37ch}
.card-detail{border-color:#cdd2c6;margin-top:24px;padding-top:18px;gap:6px;font-size:13px}.card-detail .mono{color:#535c4d;font-size:12px}
.icon-btn{border-color:#a7afa0;color:#263022;border-radius:50%;background:transparent}
.controls input[type="range"]{accent-color:#4a5b3b}.progress-value{color:#4b5644;font-size:13px}
.scroll-link{font-size:12px;color:#56604f}.scroll-link::before{color:#536347}.scroll-link[aria-pressed="false"]{color:#283824;text-decoration:underline;text-underline-offset:4px}
.mount-disclaimer{font-size:11px;line-height:1.5;max-width:none;color:#626a5b}
.mount-section :where(button,input,[tabindex]):focus-visible{outline-color:#34452a}
.stage-skeleton i{border-color:#c2c9ba;background:#e0e5d8;transform:skewY(10deg)}
.stage-skeleton i:nth-child(2){transform:translate(-14%,5%) skewY(10deg)}.stage-skeleton i:nth-child(3){transform:translate(-28%,10%) skewY(10deg)}
.stage-skeleton i::after{background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent)}
@media(hover:hover) and (pointer:fine){.step-btn:hover{border-color:#536347;color:#263022}.icon-btn:hover{border-color:#536347;background:#dce1d4}.scroll-link:hover{color:#202b1c}}
@media(min-width:900px){.hero-grid{grid-template-columns:.95fr 1.15fr}}
@media(min-width:900px) and (max-height:850px){
 .hero-figure img{height:48svh;min-height:360px}.hero h1{font-size:clamp(48px,5vw,70px);margin:16px 0}.hero .lead{font-size:16px}.hero-actions{margin-top:22px}.hero-facts{margin-top:24px}
 .mount-pin{gap:18px;padding-block:20px}.mount-head h2{font-size:42px}.mount-head .mono{margin-bottom:10px}.mount-copy{gap:20px}.mount-card h3{font-size:34px;margin:12px 0 16px}.card-detail{margin-top:16px;padding-top:12px}
}
@media(max-width:1100px) and (min-width:900px){.scene{grid-template-columns:minmax(0,1.35fr) minmax(300px,1fr);gap:28px}.hero-actions .btn{padding-inline:16px}}
@media(max-width:899px){
 h1{font-size:clamp(48px,8vw,76px)}.hero h1{max-width:none}.hero .lead{max-width:50ch}.hero-figure img{height:44svh;min-height:280px}.hero-facts{gap:20px}
 .mount-section{--stage-height:clamp(220px,31svh,390px)}.mount-pin{gap:14px;padding-block:18px;justify-content:center}.mount-head h2{font-size:36px}.mount-head .mono{font-size:12px;margin-bottom:8px}
 .scene{grid-template-columns:1fr;gap:12px}.mount-head p{font-size:13px}.stage-top{padding:8px 14px;font-size:11px}.stage-caption{min-height:30px;padding:5px 14px;font-size:11px}.stage-caption .mono{font-size:11px}
 .mount-copy{gap:14px}.step-btn{min-height:44px}.step-btn .num{font-size:20px}.mount-card h3{font-size:29px;margin:0 0 8px;max-width:none}.mount-card p{font-size:15px;line-height:1.55;max-width:none}.card-kicker,.card-detail{display:none}.mount-disclaimer{font-size:11px}
 .mount-transport{grid-template-columns:1fr auto;gap:14px}.scroll-link{font-size:11px}.section-head>p{padding-top:0}
}
@media(max-width:600px){
 :root{--pad:20px}h1{font-size:clamp(44px,11vw,64px)}h2{font-size:36px}.hero-grid{gap:28px}.hero h1{margin:18px 0 22px}.hero .lead{font-size:16px}.hero-actions{display:grid;grid-template-columns:1fr}.hero-facts{gap:0;margin-top:22px}.hero-facts div{border-bottom:1px solid var(--line);padding:16px 0}.hero-facts dd{max-width:none}
 .brand span{font-size:12px}.brand img{height:24px}.hero-figure img{height:36svh}.hero-figure figcaption{font-size:10px}
 .mount-head h2{font-size:31px;max-width:12ch}.mount-head .mono{font-size:12px}.mount-head p{display:none}.mount-pin{padding-block:16px;gap:12px}.mount-section{--stage-height:clamp(210px,29svh,300px)}
 .mount-card h3{font-size:27px}.mount-card p{font-size:14px;line-height:1.5}.mount-copy{gap:12px}.mount-transport{grid-template-columns:1fr;gap:0}.scroll-link{min-height:44px}.mount-disclaimer{font-size:10px;line-height:1.45}
 .stage-top{font-size:10px}.stage-top span:last-child{font-size:12px}.stage-caption,.stage-caption .mono{font-size:10px}.step-btn .num{font-size:20px}
 .work summary{font-size:21px;gap:12px}.work summary .num{min-width:22px}.work-body{padding-left:0;gap:18px}.process{gap:0}.process article{border-bottom:1px solid var(--line);padding-block:24px}.cta{gap:28px;padding:28px 22px}.cta h2{font-size:38px}.section-head{margin-bottom:24px}
}
@media(max-width:600px) and (max-height:800px){.mount-section{--stage-height:190px}.mount-pin{gap:10px;padding-block:10px}.mount-head h2{font-size:29px;max-width:none}.mount-head .mono{margin-bottom:6px}.mount-copy{gap:10px}.mount-card h3{font-size:25px}}
@media(prefers-reduced-motion:reduce){.stage-skeleton i::after{animation:none}}

/* Final editorial pass: less repeated labeling, stronger type, quiet controls. */
.hero h1{font-size:clamp(56px,7vw,108px);font-weight:600;line-height:1.01;letter-spacing:-.06em;margin-block:24px 30px}
.hero-figure figcaption{position:static;padding:10px 0;background:var(--paper);font-size:11px;color:var(--muted)}
.hero-figure{overflow:visible;background:none}
.hero-facts dt{text-transform:none}
.mount-section{--stage-height:clamp(280px,calc(100svh - 352px),690px)}
.stage-caption #stage-state{font-size:12px}.stage-top{font-size:11px}
.card-kicker{display:none}.mount-card h3{margin-top:0}
.controls input[type="range"]{appearance:none;-webkit-appearance:none;background:transparent;touch-action:pan-y}
.controls input[type="range"]::-webkit-slider-runnable-track{height:2px;background:linear-gradient(to right,#34432e calc(var(--assembly,0)*100%),#bac1b3 0);border-radius:0}
.controls input[type="range"]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:14px;height:14px;margin-top:-6px;border:0;border-radius:50%;background:#34432e}
.controls input[type="range"]::-moz-range-track{height:2px;background:#bac1b3;border:0}
.controls input[type="range"]::-moz-range-progress{height:2px;background:#34432e}
.controls input[type="range"]::-moz-range-thumb{width:14px;height:14px;border:0;border-radius:50%;background:#34432e}
.process{display:block;border-top:1px solid var(--line)}
.process article{display:grid;grid-template-columns:70px minmax(180px,1fr) minmax(240px,1fr);align-items:center;gap:32px;padding-block:26px;border-bottom:1px solid var(--line)}
.process .num{font-size:24px;letter-spacing:0}.process h3{font-size:28px}.process p{max-width:42ch}
.cta{background:transparent;padding:0;border-top:1px solid var(--line);padding-top:48px}.cta h2{font-size:clamp(40px,5vw,72px);max-width:12ch}
@media(min-width:900px) and (max-height:850px){.hero h1{font-size:clamp(60px,6.3vw,90px);margin-block:18px 24px}}
@media(max-width:899px){.mount-section{--stage-height:clamp(220px,31svh,390px)}.hero h1{font-size:clamp(60px,10vw,94px)}.process article{grid-template-columns:44px 1fr 1fr;gap:20px}.process h3{font-size:23px}}
@media(max-width:600px){.hero h1{font-size:clamp(50px,13vw,76px);margin-block:20px 24px}.mount-section{--stage-height:clamp(210px,29svh,300px)}.process article{grid-template-columns:32px 1fr;gap:10px 18px;align-items:baseline}.process p{grid-column:2}.process h3{font-size:23px}.process .num{font-size:15px}.cta{padding-top:32px}.cta h2{font-size:42px}.hero-figure figcaption{font-size:10px}}
@media(max-width:600px) and (max-height:800px){.mount-section{--stage-height:190px}}

/* Fit the complete stage, not only its picture, inside the available viewport. */
@media(min-width:900px){.mount-section{--stage-height:clamp(260px,calc(100svh - 392px),660px)}}
@media(max-width:600px){.mount-section{--stage-height:220px}.mount-pin{gap:10px;padding-block:12px}.mount-copy{gap:10px}.mount-head h2{max-width:none;font-size:29px}}
@media(max-width:600px) and (max-height:800px){.mount-section{--stage-height:172px}.mount-pin{padding-block:8px}}
.step-btn,.step-btn .num{color:#4e5649}
.work summary:active{transform:none}
@supports (interpolate-size:allow-keywords){
 .work{interpolate-size:allow-keywords}
 .work::details-content{block-size:0;overflow:clip;transition-property:block-size,content-visibility;transition-duration:320ms;transition-timing-function:var(--ease-out-quint);transition-behavior:allow-discrete}
 .work[open]::details-content{block-size:auto}
}
@media(prefers-reduced-motion:reduce){.work::details-content{transition-duration:0s}}

/* Client reference: architectural image fills the first screen; content stays above it. */
main>section.hero{position:relative;isolation:isolate;width:100%;max-width:none;margin:0;min-height:calc(100svh - var(--header-height));padding:clamp(36px,6svh,80px) var(--pad) 42px;background:#242925;color:#fff;justify-content:space-between;gap:48px}
.hero .hero-grid{display:block;position:static}.hero-grid>div:first-child{position:relative;z-index:1}
.hero .hero-figure{position:absolute;inset:0;z-index:0;width:100%;height:100%;border:0;margin:0;overflow:hidden;opacity:1;transform:none;filter:none;transition-property:none;background:#242925}
.hero .hero-figure img{width:100%;height:100%;min-height:0;max-height:none;object-fit:cover;object-position:center 48%;filter:none}
.hero .hero-figure .hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 48%;opacity:0;transition:opacity 900ms ease}
.hero .hero-figure .hero-video.is-playing{opacity:1}
@media(max-width:899px){.hero .hero-figure .hero-video{object-position:62% center}}
@media(prefers-reduced-motion:reduce){.hero .hero-figure .hero-video{display:none}}
.hero .hero-figure::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(10,18,18,.74),rgba(10,18,18,.24) 75%),linear-gradient(0deg,rgba(10,18,18,.8),transparent 58%)}
.hero .hero-figure figcaption{position:absolute;z-index:1;bottom:9px;left:auto;right:var(--pad);padding:0;border:0;background:none;color:#c6cbc7;font-size:10px;letter-spacing:0}
.hero .hero-figure[data-load="loading"]{background:#242925}.hero .hero-figure[data-load="error"]::before{inset:auto 20px 20px;z-index:1;display:block;color:#c6cbc7;font-size:11px;padding:0}
.hero h1{font-size:clamp(64px,7.6vw,118px);line-height:.99;letter-spacing:-.055em;margin-block:22px 26px;max-width:12ch;font-weight:600}
.hero .mono{color:#e3e7e2}.hero .lead{font-size:17px;line-height:1.55;color:#e3e7e2;max-width:39ch}
.hero-actions{display:flex;align-items:center;gap:28px;margin-top:30px}.hero-actions .btn--ghost{border:0;background:none;color:#fff;padding-inline:0;min-height:52px;text-decoration:underline;text-underline-offset:5px}
.hero :where(a,button):focus-visible{outline-color:#fff}
.hero .hero-facts{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:0;border-top:1px solid #ffffff40;gap:32px;margin:0;padding-top:26px;background:none}
.hero .hero-facts div{background:none;border:0;padding:0}.hero .hero-facts dt{font-size:clamp(20px,2vw,30px);font-weight:500;line-height:1.2;letter-spacing:-.025em;color:#fff;margin-bottom:10px}
.hero .hero-facts dd{font-size:14px;line-height:1.5;color:#dce1db;max-width:25ch}
@media(min-width:900px) and (max-height:800px){main>section.hero{padding-top:32px;gap:28px}.hero h1{font-size:clamp(64px,6.7vw,98px);margin-block:18px 20px}.hero .lead{font-size:16px}.hero-actions{margin-top:24px}.hero .hero-facts{padding-top:22px}}
@media(max-width:899px){main>section.hero{padding-top:48px;gap:40px}.hero h1{font-size:clamp(64px,10vw,90px)}.hero .hero-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 32px}.hero .hero-facts dt{font-size:24px}.hero .hero-figure img{object-position:62% center}}
@media(max-width:600px){main>section.hero{padding:32px 20px 36px;gap:32px}.hero h1{font-size:clamp(48px,13vw,76px);margin-block:20px 24px}.hero .lead{font-size:15px;max-width:34ch}.hero .hero-grid{gap:0}.hero .hero-grid .mono{font-size:11px}.hero-actions{gap:18px;flex-wrap:wrap;margin-top:24px}.hero-actions .btn{font-size:13px;padding-inline:18px}.hero-actions .btn--ghost{padding-inline:0;font-size:12px}.hero .hero-facts{padding-top:22px;gap:22px 18px}.hero .hero-facts dt{font-size:20px;margin-bottom:8px}.hero .hero-facts dd{font-size:12px;line-height:1.5}.hero .hero-figure::after{background:linear-gradient(90deg,rgba(10,18,18,.78),rgba(10,18,18,.38)),linear-gradient(0deg,rgba(10,18,18,.85),transparent 65%)}.hero .hero-figure figcaption{font-size:9px;bottom:8px;right:20px}}

main#top{scroll-margin-top:var(--header-height)}

/* Brand: the cube mark carries the identity; the wordmark is set live so it stays legible at any size
   (the previous 24px lockup rendered "DYNAMIC FACADE GROUP" at ~4px). */
.brand{gap:11px;color:var(--ink)}
.brand img{height:30px;width:auto;mix-blend-mode:normal;flex:none}
.brand .brand-text{display:grid;gap:1px;line-height:1.1;font-family:var(--sans);letter-spacing:0;text-transform:none}
.brand .brand-text b{font-size:13px;font-weight:600;letter-spacing:.06em;color:var(--ink)}
.brand .brand-text span{font-size:11.5px;font-weight:400;color:var(--ink-soft)}
.site-footer img{height:40px;width:auto;mix-blend-mode:normal}
@media(max-width:600px){.brand img{height:26px}.brand .brand-text b{font-size:12px}.brand .brand-text span{font-size:11px}.site-footer img{height:34px}}
@media(max-width:360px){.brand .brand-text span{display:none}}

/* Одинаковый crop постера и облёта, без покадрового перемещения. */
.hero .hero-figure img,.hero .hero-figure .hero-video{object-position:65% center}
.hero .hero-figure .hero-video{transition:none}
@media(min-width:900px){.hero .hero-figure img,.hero .hero-figure .hero-video{object-position:center center}}
