:root{--surface-primary:#f5f2eb;--surface-secondary:#eae5dc;--surface-dark:#232722;--text-primary:#242721;--text-secondary:#626359;--text-inverse:#f5f2eb;--button-brand:#b8c68b;--button-brand-hover:#cfdaa9;--button-brand-active:#a4b576;--button-disabled:#d4d5cb;--focus-ring:#657a37;--border-subtle:#d8d4ca;--wood-accent:#795c40;--font-body:16px;--font-small:12px;--font-heading:48px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:96px}body{margin:0;background:var(--surface-primary);color:var(--text-primary);font-family:Arial,Helvetica,sans-serif;font-size:var(--font-body);line-height:1.5}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}img{display:block;max-width:100%}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid var(--focus-ring);outline-offset:4px}button:disabled{background:var(--button-disabled);cursor:not-allowed;color:var(--text-secondary)}::selection{background:var(--button-brand);color:var(--text-primary)}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--surface-primary)}::-webkit-scrollbar-thumb{background:var(--wood-accent);border-radius:8px}.skip-link{position:fixed;top:8px;left:8px;z-index:100;background:var(--surface-primary);padding:16px;transform:translateY(-160%)}.skip-link:focus{transform:none}
.header{display:flex;align-items:center;justify-content:space-between;gap:32px;padding:24px 4%;border-bottom:1px solid var(--border-subtle);background:var(--surface-primary)}.brand{display:flex;align-items:center;gap:12px;font-size:14px;font-weight:700;letter-spacing:1px}.brand img{object-fit:contain;border-radius:50%}.brand-name{font-size:18px}.brand small{display:block;font-size:10px;line-height:16px;letter-spacing:2px;margin-top:4px;font-weight:400}nav{display:flex;gap:24px;font-size:14px}nav a,.header-phone{transition:color .2s}nav a:hover,.header-phone:hover{color:var(--wood-accent)}.header-phone{font-size:16px;font-weight:700}.header-phone span{display:block;font-size:12px;font-weight:400;color:var(--text-secondary)}.menu-toggle{display:none}.hero{display:grid;grid-template-columns:1fr 1.15fr;min-height:680px}.hero-copy{padding:64px 8% 32px;display:flex;flex-direction:column;align-items:flex-start}.eyebrow{font-size:12px;line-height:20px;letter-spacing:2px;font-weight:600;margin:0 0 32px}.dot{display:inline-block;width:8px;height:8px;background:var(--wood-accent);border-radius:50%;margin-right:8px}h1,h2,h3,p{overflow-wrap:anywhere}h1{font-size:55.8px;line-height:1.05;font-weight:400;letter-spacing:-3px;margin:0 0 32px}em{font-family:Georgia,'Times New Roman',serif;font-weight:400;color:var(--wood-accent)}.hero-description{color:var(--text-secondary);line-height:24px;margin:0 0 32px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:40px;padding:16px 24px;min-height:56px;font-size:14px;font-weight:600;border-radius:4px;transition:background .2s,transform .2s}.button-brand{background:var(--button-brand);color:var(--text-primary)}.button-brand:hover{background:var(--button-brand-hover);transform:translateY(-2px)}.button-brand:active{background:var(--button-brand-active);transform:none}.button span{font-size:24px;line-height:24px}.hero-bottom{display:flex;justify-content:space-between;gap:24px;width:100%;margin-top:auto;padding-top:48px;font-size:12px;color:var(--text-secondary)}.hero-bottom a{display:flex;gap:16px;align-items:center}.hero-bottom a span{font-size:24px}.hero-visual{position:relative;overflow:hidden;background:var(--surface-dark)}.hero-visual>img{width:100%;height:100%;object-fit:cover;animation:hero-enter 1.2s ease-out both}.photo-label{position:absolute;top:32px;left:32px;font-size:10px;letter-spacing:2px;background:var(--surface-primary);padding:8px 16px;border-radius:4px}.guarantee{position:absolute;bottom:32px;right:32px;background:var(--surface-primary);display:flex;align-items:center;gap:16px;padding:24px 32px;border-radius:4px}.guarantee strong{font-size:64px;font-weight:400;line-height:64px}.guarantee>span{font-size:14px;line-height:20px}.guarantee .guarantee-mark{font-size:32px;margin-left:16px;color:var(--wood-accent)}.intro-strip{display:flex;justify-content:space-around;flex-wrap:wrap;gap:24px;padding:24px 4%;background:var(--surface-dark);color:var(--text-inverse);font-size:12px;letter-spacing:1px}.intro-strip span:before{content:'✦';color:var(--button-brand);margin-right:16px}
.section{padding:96px 6%;scroll-margin-top:24px}.section-heading{display:grid;grid-template-columns:1fr 2fr;gap:32px;margin-bottom:48px}.section-heading>.eyebrow{padding-top:8px}h2{font-size:clamp(32px,4vw,56px);line-height:1.12;font-weight:400;letter-spacing:-2px;margin:0 0 24px}.section-heading p:not(.eyebrow){color:var(--text-secondary);margin:0;line-height:24px}.directions-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}.direction-card{min-width:0}.card-image{position:relative;overflow:hidden;border-radius:4px}.card-image img{width:100%;height:320px;object-fit:cover;transition:transform .6s}.direction-card:hover img{transform:scale(1.025)}.image-tag{position:absolute;left:16px;bottom:16px;padding:8px 16px;background:var(--surface-primary);font-size:10px;letter-spacing:1px;border-radius:4px}.card-copy{position:relative;padding:24px 0;border-bottom:1px solid var(--border-subtle)}.card-number{position:absolute;right:0;top:24px;color:var(--text-secondary);font-size:12px}h3{font-size:24px;line-height:32px;font-weight:400;margin:0 0 16px}.card-copy p{max-width:400px;color:var(--text-secondary);margin:0 0 24px;line-height:24px}.text-link{display:inline-flex;gap:32px;align-items:center;font-size:14px;border-bottom:1px solid var(--wood-accent);padding-bottom:8px;transition:color .2s}.text-link:hover{color:var(--wood-accent)}.text-link span{font-size:24px}.projects-section{background:var(--surface-secondary)}.gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.gallery-item{padding:0;border:0;background:var(--surface-primary);color:var(--text-primary);text-align:left;overflow:hidden;border-radius:4px;display:flex;flex-direction:column}.gallery-main{grid-column:auto;grid-row:auto}.gallery-item img{width:100%;height:clamp(240px,28vw,420px);object-fit:cover;transition:transform .5s}.gallery-main img{height:clamp(240px,28vw,420px);min-height:0}.gallery-item:hover img{transform:scale(1.025)}.gallery-item>span{display:flex;justify-content:space-between;padding:16px 24px;font-size:12px;width:100%;background:var(--surface-primary);z-index:1}.gallery-item b{font-size:20px;font-weight:400}.approach-section{background:var(--surface-dark);color:var(--text-inverse)}.approach-section em,.contacts-section em{color:#d0b28e}.approach-section .section-heading p:not(.eyebrow){color:#c5c8bd}.benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}.benefits article{border-top:1px solid #65685e;padding-top:24px}.benefits article>span{font-size:10px;letter-spacing:1px;color:#c5c8bd}.benefits h3{font-size:32px;line-height:40px;margin-top:32px}.benefits p{color:#c5c8bd;font-size:14px;line-height:24px;max-width:280px}.plan-section{display:grid;grid-template-columns:1fr 1.3fr;gap:64px;align-items:center}.plan-copy h2{font-size:55px}.plan-copy p:not(.eyebrow){max-width:360px;margin-bottom:24px;font-size:18px;line-height:28px}.muted{color:var(--text-secondary);font-size:12px;line-height:20px}.plan-image{border:1px solid var(--border-subtle);padding:24px;background:white;border-radius:4px;min-width:0}.plan-image img{width:100%;height:auto}.plan-image>span{display:flex;justify-content:space-between;align-items:center;text-align:left;font-size:10px;letter-spacing:1px;margin-top:16px}.plan-image b{font-size:24px}.process-section{border-top:1px solid var(--border-subtle)}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;list-style:none;padding:0;margin:0}.steps li{border-top:1px solid var(--border-subtle);padding-top:24px}.steps li>span{font-size:40px;line-height:48px;font-family:Georgia,serif;color:var(--wood-accent)}.steps h3{margin-top:24px}.steps p{font-size:14px;color:var(--text-secondary);max-width:280px}.contacts-section{display:grid;grid-template-columns:1.5fr 1fr;gap:64px;align-items:center;background:var(--surface-dark);color:var(--text-inverse)}.contact-phone{display:block;font-size:clamp(20px,2.5vw,32px);line-height:40px;margin:32px 0 24px;transition:color .2s}.contact-phone:hover{color:var(--button-brand)}.contact-copy>p:not(.eyebrow){color:#c5c8bd;line-height:24px;margin-bottom:32px}.max-card{padding:32px;background:var(--surface-primary);color:var(--text-primary);border-radius:4px;text-align:center;display:flex;flex-direction:column;align-items:center}.max-card .eyebrow{font-size:10px;margin-bottom:16px}.max-card h3{font-size:32px;line-height:40px;margin-bottom:8px}.max-card p:not(.eyebrow){font-size:14px;color:var(--text-secondary);line-height:24px;margin:0 0 16px}.qr-button{border:0;padding:0;background:transparent;border-radius:8px;overflow:hidden;max-width:216px;margin-bottom:16px}.qr-button img{width:100%;height:auto}footer{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:32px 6%;font-size:12px;color:var(--text-secondary)}.footer-brand{font-size:16px;font-weight:600;color:var(--text-primary)}.mobile-call{display:none}
dialog{padding:24px;max-width:min(960px,94vw);max-height:94dvh;border:0;border-radius:8px;background:var(--surface-primary);color:var(--text-primary)}dialog::backdrop{background:rgba(15,18,15,.86);backdrop-filter:blur(8px)}.viewer-toolbar{display:flex;gap:8px;justify-content:flex-end;margin-bottom:16px}.viewer-toolbar button{padding:8px 16px;border:1px solid var(--border-subtle);background:var(--surface-primary);color:var(--text-primary);border-radius:4px;min-height:44px}.viewer-toolbar button:hover{background:var(--surface-secondary)}#viewer-image{max-height:70dvh;width:auto;max-width:100%;object-fit:contain;margin:auto}#viewer-caption{text-align:center;font-size:14px;margin:16px 0 0}.js .reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}.js .reveal.visible{opacity:1;transform:none}@keyframes hero-enter{from{opacity:.6;transform:scale(1.04)}to{opacity:1;transform:scale(1)}}
@media(min-width:1600px){body{max-width:1800px;margin:auto}.hero{min-height:800px}}
@media(max-width:1000px){.header{gap:16px}.header-phone{display:none}nav{gap:16px}.hero{min-height:600px;grid-template-columns:1fr 1fr}.hero-copy{padding:48px 8% 32px}h1{font-size:56px}.section{padding:64px 5%}.plan-section,.contacts-section{gap:32px}.card-image img{height:280px}.guarantee{padding:16px;right:16px;bottom:16px}.guarantee strong{font-size:48px}.section-heading{grid-template-columns:1fr 2fr}.benefits{gap:24px}}
@media(max-width:700px){html{scroll-padding-top:24px}.header{flex-wrap:wrap;padding:16px 5%;gap:16px}.brand{font-size:12px}.brand img{width:40px;height:40px}.menu-toggle{display:flex;align-items:center;gap:8px;min-height:44px;border:1px solid var(--border-subtle);background:transparent;color:var(--text-primary);padding:8px 12px;border-radius:4px;font-size:12px}.menu-toggle:hover{background:var(--surface-secondary)}nav{width:100%;display:flex;flex-wrap:wrap;gap:16px;padding:16px 0 8px}.js nav:not(.open){display:none}.hero{grid-template-columns:1fr;min-height:0}.hero-copy{padding:40px 6% 32px}h1{font-size:56px;letter-spacing:-2px}.hero-description{font-size:14px}.hero-bottom{padding-top:32px}.hero-visual{height:400px}.photo-label{left:16px;top:16px;font-size:9px;letter-spacing:1px}.intro-strip{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:24px 6%;font-size:10px;letter-spacing:0}.intro-strip span:before{margin-right:8px}.section{padding:56px 6%}.section-heading{grid-template-columns:1fr;gap:8px;margin-bottom:32px}.section-heading>.eyebrow{margin-bottom:16px}.eyebrow{font-size:10px;letter-spacing:1px;margin-bottom:24px}h2{font-size:40px;letter-spacing:-1px}.section-heading p:not(.eyebrow){font-size:14px}.directions-grid,.benefits,.plan-section,.steps,.contacts-section{grid-template-columns:1fr;gap:32px}.card-image img{height:280px}.gallery{grid-template-columns:1fr;gap:24px}.gallery-main{grid-row:auto}.gallery-main img,.gallery-item img{height:280px;min-height:0}.benefits h3{margin-top:16px}.benefits p{max-width:none}.plan-image{padding:16px}.steps h3{margin-top:16px}.steps p{max-width:none}.max-card{padding:24px}.contact-phone{font-size:24px}footer{flex-wrap:wrap;padding:24px 6% 96px;gap:16px}footer>span{width:100%;order:3}.mobile-call{display:block;position:fixed;bottom:16px;left:16px;right:16px;z-index:10;background:var(--button-brand);color:var(--text-primary);text-align:center;padding:16px;border-radius:4px;font-size:14px;font-weight:600;box-shadow:0 4px 24px #0003}.mobile-call:hover{background:var(--button-brand-hover)}dialog{padding:16px}.viewer-toolbar button{padding:8px 12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.js .reveal{opacity:1;transform:none}}

/* Client refinements */
.brand img{width:300px;height:300px;flex-shrink:0}.qr-button{max-width:216px;background:transparent}.qr-button img{border:0;border-radius:0}.gallery-item>span{display:none}.image-tag{display:none}
/* Client refinements */
.brand img{width:300px;height:300px;flex-shrink:0}
.gallery-item>span,.image-tag{display:none}
.qr-button{max-width:216px;background:transparent;border:0;padding:0}
.qr-button img{border:0;border-radius:0}
.map-section{background:var(--surface-secondary);padding:72px 6% 96px}.map-heading{display:grid;grid-template-columns:1fr 2fr;gap:32px;margin-bottom:40px}.map-heading h2{margin-bottom:16px}.map-heading p:not(.eyebrow){color:var(--text-secondary);line-height:24px}.map-frame{height:420px;overflow:hidden;border-radius:4px;border:1px solid var(--border-subtle);box-shadow:0 16px 40px #23272218}.map-frame iframe{width:100%;height:100%;border:0;display:block}.viewer-toolbar button{font-size:12px;letter-spacing:.04em}.viewer-toolbar button:first-child,.viewer-toolbar button:nth-child(2){display:none}dialog{background:var(--surface-secondary);box-shadow:0 24px 80px #0008;border:1px solid #ffffff22}dialog #viewer-image{background:var(--surface-primary);padding:24px;border-radius:4px}dialog #viewer-caption{color:var(--text-secondary);font-size:12px}@media(max-width:700px){.map-section{padding:56px 6% 72px}.map-heading{grid-template-columns:1fr;gap:8px}.map-frame{height:340px}}
.photo-label{display:none}
dialog{width:min(1100px,92vw);padding:20px;background:#f5f2eb;border:1px solid #ffffff33;border-radius:8px;box-shadow:0 32px 100px #0009}
.viewer-toolbar{display:flex;align-items:center;justify-content:space-between;margin:0 0 16px;padding:0 4px;color:var(--text-secondary)}
.viewer-counter{font-size:11px;letter-spacing:2px;font-weight:600}.viewer-actions{display:flex;gap:8px}
.viewer-actions button{width:44px;height:44px;padding:0;border:1px solid var(--border-subtle);border-radius:50%;background:var(--surface-primary);color:var(--text-primary);font-size:22px;line-height:1;transition:background .2s,transform .2s}.viewer-actions button:hover{background:var(--button-brand);transform:translateY(-2px)}
.viewer-actions button:last-child{font-size:26px}.viewer-stage{display:flex;align-items:center;justify-content:center;padding:16px;background:#ebe6dd;border-radius:4px}.viewer-stage img{max-height:72vh;width:auto;max-width:100%;object-fit:contain;border-radius:2px;box-shadow:0 12px 28px #23272222}
@media(max-width:700px){dialog{width:94vw;padding:12px}.viewer-stage{padding:8px}.viewer-stage img{max-height:76vh}.viewer-actions button{width:40px;height:40px}}
/* Gallery navigation */
.viewer-actions button:first-child,.viewer-actions button:nth-child(2){display:inline-flex}
.viewer-actions button{align-items:center;justify-content:center}
.guarantee .guarantee-mark{display:none}
.card-note{padding:16px;background:var(--surface-secondary);border-left:3px solid var(--wood-accent);font-size:14px!important;line-height:22px!important}.card-note strong{color:var(--wood-accent)}.plan-copy p:not(.eyebrow){margin-bottom:20px;font-size:18px;line-height:28px}.benefits{grid-template-columns:repeat(4,1fr)}@media(max-width:1000px){.benefits{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.benefits{grid-template-columns:1fr}}
.example-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.example-gallery img{height:240px;object-fit:contain;background:var(--surface-secondary)}@media(max-width:700px){.example-gallery{grid-template-columns:1fr}}
.direction-examples{margin-top:32px}
/* Larger image preview: use viewport space instead of nested frames. */
#viewer{width:96vw;max-width:96vw;max-height:96dvh;padding:12px}
#viewer .viewer-toolbar{margin-bottom:8px}
#viewer .viewer-stage{padding:0;background:transparent}
#viewer #viewer-image{padding:0;width:auto;max-width:100%;max-height:calc(96dvh - 88px);border-radius:4px}
@media(max-width:700px){#viewer{width:98vw;max-width:98vw;padding:8px}#viewer #viewer-image{max-height:calc(96dvh - 72px)}}
/* Full-viewport gallery with upscaled images and preserved proportions. */
#viewer{position:fixed;inset:0;margin:0;width:100vw;height:100dvh;max-width:100vw;max-height:100dvh;padding:16px;border:0;border-radius:0;background:var(--surface-dark)}
#viewer[open]{display:flex;flex-direction:column}
#viewer .viewer-toolbar{flex-shrink:0;margin:0 0 8px;color:var(--text-inverse)}
#viewer .viewer-stage{flex:1;min-height:0;width:100%;padding:0;background:transparent;overflow:hidden}
#viewer #viewer-image{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;padding:0;border-radius:0;background:transparent;box-shadow:none}
@media(max-width:700px){#viewer{padding:8px}}

/* Keep the larger brand mark compact on mobile headers. */
@media(max-width:700px){.brand img{width:300px;height:300px}.plan-copy h2{font-size:40px}.plan-copy p:not(.eyebrow){font-size:18px;line-height:28px}h1{font-size:56px}}


.plan-gallery{display:grid;grid-template-columns:1fr 1fr;gap:24px;min-width:0}.plan-gallery .plan-image{min-width:0;width:100%}
@media(max-width:700px){.plan-gallery{grid-template-columns:1fr;gap:16px}}

@media(max-width:1000px){.gallery{grid-template-columns:1fr 1fr}.gallery-main{grid-column:auto;grid-row:auto}.gallery-main img{min-height:0;height:320px}}
@media(max-width:700px){.gallery{grid-template-columns:1fr}.gallery-main{grid-column:auto}.gallery-main img{height:280px}}

/* Explicit desktop brand mark size */
.header .brand img{width:300px!important;height:300px!important;max-width:none!important;flex:0 0 300px}
@media(max-width:700px){.header .brand img{width:300px!important;height:300px!important;max-width:none!important;flex-basis:300px}}

/* Annotation refinements */
.plan-copy h2{font-size:55px!important;line-height:1.12}
.plan-copy p:not(.eyebrow){font-size:18px!important;line-height:28px!important}

/* Header alignment: preserve the requested logo size while keeping the text and navigation balanced. */
.header{align-items:center;min-height:348px}.brand{flex:0 1 auto;min-width:0}.brand-name{white-space:nowrap}.header nav{margin-left:auto;flex:0 0 auto}.header-phone{flex:0 0 auto;margin-left:24px}
@media(max-width:1000px){.header{min-height:0}.header nav{margin-left:0}.header-phone{margin-left:0}}

@media(max-width:700px){.header{padding:16px 8px;justify-content:center}.header .brand{width:100%;flex-direction:column;gap:16px;text-align:center}.header .brand img{width:300px!important;height:300px!important;flex:0 0 300px}.header nav{justify-content:center}}

/* Client layout: compact header, large brand mark inside the hero. */
.header{min-height:0;align-items:center}.header .brand{display:none}.hero-copy{display:flex;flex-direction:row;align-items:flex-start;gap:32px}.hero-brand{display:flex;flex-direction:column;align-items:flex-start;gap:16px;flex:0 0 300px;width:300px;color:inherit}.hero-brand img{width:300px;height:300px;max-width:none;object-fit:contain;border-radius:50%}.hero-brand .brand-name{font-size:18px;line-height:24px}.hero-brand small{display:block;font-size:10px;line-height:16px;letter-spacing:2px;margin-top:4px;font-weight:400}.hero-content{display:flex;flex-direction:column;align-items:flex-start;min-width:0;flex:1;height:100%}.hero-content .hero-bottom{margin-top:auto}.hero h1{font-size:55.8px}
@media(max-width:1000px){.hero-copy{gap:24px}.hero-brand{flex-basis:220px;width:220px}.hero-brand img{width:220px;height:220px}}
@media(max-width:700px){.header{padding:16px 5%}.hero-copy{flex-direction:column;gap:24px}.hero-brand{width:300px;flex-basis:300px;align-self:flex-start}.hero-brand img{width:300px;height:300px}.hero-content{width:100%}.hero h1{font-size:56px}}
/* Final layout corrections */
.header{min-height:0!important;align-items:center!important}
.header .brand{display:flex!important;flex-direction:row!important;width:auto!important;gap:12px!important}
.header .brand img{width:95px!important;height:95px!important;flex:0 0 95px!important;max-width:95px!important}
.hero-copy{display:flex;flex-direction:column;gap:0}
.hero-content{display:flex;flex-direction:column;align-items:flex-start;min-width:0;flex:1;height:100%}
.hero-copy>.hero-content .hero-bottom{margin-top:auto}
.direction-card .card-copy>p{margin-bottom:20px}
.example-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}
.gallery-video{position:relative;background:var(--surface-dark);min-height:240px;overflow:hidden}
.gallery-video video{width:100%;height:240px;object-fit:cover;display:block}
.video-badge{position:absolute;left:16px;bottom:16px;background:var(--surface-primary);padding:8px 12px;font-size:11px;letter-spacing:1px}
@media(max-width:700px){.header .brand img{width:72px!important;height:72px!important;flex-basis:72px!important}.header .brand{width:auto!important;flex-direction:row!important}.example-gallery{grid-template-columns:1fr}.gallery-video video{height:280px}}
#viewer-video{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;background:#000}
/* Brand arrangement: text remains in the top header, logo returns to the hero. */
.header .brand{display:flex!important;align-items:center!important}
.header .brand small{display:block!important}
.hero-copy{display:flex;flex-direction:row;align-items:flex-start;gap:32px}
.hero-logo{display:block;flex:0 0 234px;width:234px;height:234px;margin-top:0}
.hero-logo img{width:180px;height:180px;object-fit:contain;border-radius:50%}
.hero-content{flex:1;min-width:0}
@media(max-width:1000px){.hero-copy{gap:24px}.hero-logo{flex-basis:182px;width:182px;height:182px}.hero-logo img{width:140px;height:140px}}
@media(max-width:700px){.hero-copy{flex-direction:column;gap:24px}.hero-logo{width:195px;height:195px;flex-basis:195px;align-self:center}.hero-logo img{width:150px;height:150px}.hero-content{width:100%}}
/* Circular hero logo: clip the asset to a true circle. */
.hero-logo{border-radius:50%;overflow:hidden;aspect-ratio:1;background:#fff}
.hero-logo img{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover}
/* Center portrait videos inside the fullscreen viewer. */
#viewer .viewer-stage:has(#viewer-video){display:flex;align-items:center;justify-content:center}
#viewer #viewer-video{width:auto;max-width:100%;height:auto;max-height:100%;aspect-ratio:auto;object-fit:contain;margin:0 auto}
/* Keep the portrait video centered in the entire viewer, not stretched into a side column. */
#viewer .viewer-stage{display:flex!important;align-items:center!important;justify-content:center!important}
#viewer #viewer-video{display:block!important;width:auto!important;height:auto!important;max-width:92vw!important;max-height:calc(100dvh - 96px)!important;margin:0 auto!important;object-fit:contain!important;flex:0 0 auto!important}
/* Hidden media must not occupy the flex stage alongside the active item. */
#viewer #viewer-image[hidden],#viewer #viewer-video[hidden]{display:none!important}
/* Portrait video spans two photo rows in the real-work gallery. */
#projects .gallery{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:clamp(240px,28vw,420px);gap:24px}
#projects .gallery-video{grid-column:1;grid-row:span 2;min-height:0;display:flex;align-items:center;justify-content:center}
#projects .gallery-video video{width:100%;height:100%;min-height:0;object-fit:contain;flex:1;background:var(--surface-dark)}
#projects .gallery-item:not(.gallery-video) img{height:100%;min-height:0;object-fit:cover}
@media(max-width:700px){#projects .gallery{grid-template-columns:1fr;grid-auto-rows:auto}#projects .gallery-video{grid-column:auto;grid-row:auto;aspect-ratio:9/16}#projects .gallery-item:not(.gallery-video) img{height:280px}}
/* Keep hero words intact, including on narrow mobile screens. */
.hero h1{overflow-wrap:normal;word-break:normal;hyphens:none}
@media(max-width:700px){.hero h1{font-size:clamp(24px,8.5vw,48px);line-height:1.125;letter-spacing:-1px}}

/* Dynamic media loading */
.media-frame{position:relative;background:linear-gradient(135deg,var(--surface-secondary),var(--surface-primary));overflow:hidden}
.media-frame::before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 25%,rgba(255,255,255,.38) 45%,transparent 65%);transform:translateX(-100%);animation:media-shimmer 1.5s infinite;z-index:0}
.media-frame::after{content:"";position:absolute;top:50%;left:50%;width:32px;height:32px;margin:-16px;border:2px solid var(--border-subtle);border-top-color:var(--wood-accent);border-radius:50%;animation:media-spin .8s linear infinite;z-index:1}
.media-frame.media-loaded::before,.media-frame.media-loaded::after{display:none}
.media-frame.media-error::after{content:"Не удалось загрузить";width:auto;height:auto;margin:0;top:50%;left:50%;transform:translate(-50%,-50%);border:0;border-radius:0;animation:none;color:var(--text-secondary);font-size:12px;white-space:nowrap}
.media-lazy{position:relative;z-index:1;opacity:1;transition:opacity .35s ease}
.media-loaded .media-lazy{opacity:1}
@keyframes media-shimmer{to{transform:translateX(100%)}}
@keyframes media-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.media-frame::before,.media-frame::after{animation:none}.media-lazy{transition:none}}
.media-frame.media-error::before{display:none}
.media-frame.media-error .media-lazy{opacity:0}
.plan-image img.media-lazy,.qr-button img.media-lazy{aspect-ratio:attr(width type(<number>)) / attr(height type(<number>))}
