/* HORSECHAMP photographic layer: shared motion primitives and photo components. Loaded last. */
:root{--ph-ease:cubic-bezier(.16,1,.3,1);--ph-swap:cubic-bezier(.65,0,.35,1)}

/* Mask reveal: the frame opens from a narrow band while the image settles from a gentle zoom. */
[data-reveal]{clip-path:inset(14% 8% 14% 8%);transition:clip-path 1.3s var(--ph-ease)}
[data-reveal] img{transform:scale(1.12);transition:transform 1.8s var(--ph-ease)}
[data-reveal].is-in{clip-path:inset(0 0 0 0)}
[data-reveal].is-in img{transform:scale(1)}
[data-reveal="side"]{clip-path:none;background:transparent}[data-reveal="side"] img{clip-path:inset(0 100% 0 0);transform:scale(1.08);transition:clip-path 1.5s var(--ph-ease),transform 2s var(--ph-ease)}
[data-reveal="side"].is-in img{clip-path:inset(0 0 0 0);transform:scale(1)}
/* Text lines rise one after another. */
[data-reveal-text]>*{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ph-ease),transform 1.1s var(--ph-ease)}
[data-reveal-text].is-in>*{opacity:1;transform:none}
[data-reveal-text].is-in>*:nth-child(2){transition-delay:.1s}
[data-reveal-text].is-in>*:nth-child(3){transition-delay:.2s}
[data-reveal-text].is-in>*:nth-child(4){transition-delay:.3s}
[data-reveal-text].is-in>*:nth-child(5){transition-delay:.4s}
/* Parallax frames keep their image slightly oversized; JS drives translate. */
[data-parallax]{overflow:hidden}
[data-parallax] img{will-change:transform}
/* Scroll crossfade between two frames of the same scene (--swap 0..1). */
[data-swap]{position:relative;overflow:hidden;--swap:0}
[data-swap] .ph-swap-b{position:absolute;inset:0;opacity:var(--swap)}
[data-swap] .ph-swap-b img{transform:scale(calc(1.04 - var(--swap)*.04))}

/* Photo components */
.ph{position:relative;overflow:hidden;margin:0;background:#2b2a24}
.ph img{display:block;width:100%;height:100%;object-fit:cover}
.ph-cap{position:absolute;left:16px;bottom:14px;z-index:2;font:500 11px/1.4 'DM Sans',Arial,sans-serif;letter-spacing:.06em;color:rgba(255,255,255,.86);text-shadow:0 1px 8px rgba(0,0,0,.45)}
.ph-shade::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(14,18,14,.08) 0%,rgba(14,18,14,0) 35%,rgba(14,18,14,.55) 100%)}
.ph-left::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(12,16,12,.78) 0%,rgba(12,16,12,.42) 42%,rgba(12,16,12,0) 72%)}

@media(prefers-reduced-motion:reduce){[data-reveal],[data-reveal] img,[data-reveal="side"] img,[data-reveal-text]>*{clip-path:none!important;transform:none!important;opacity:1!important;transition:none!important}[data-swap] .ph-swap-b{transition:none}}

[data-reveal]{transition-delay:var(--d,0ms)}

/* ===== HORSECHAMP portal ===== */
.hcp{background:#f4efe6;color:#15221c}
.hcp em{font-family:Georgia,'Times New Roman',serif;font-style:italic;font-weight:400}
.hcp-eyebrow{display:block;font:600 11px/1.5 Manrope,'DM Sans',sans-serif;letter-spacing:.2em;text-transform:uppercase;opacity:.85}
.hcp-hero{height:calc(100svh - 104px);min-height:620px}
.hcp-hero picture,.hcp-hero>img{position:absolute;inset:0}
.hcp-hero picture img{width:100%;height:100%;object-fit:cover}
.hcp-hero-copy{position:absolute;z-index:2;left:var(--hc-side);bottom:11svh;width:min(660px,88vw);color:#f7f2ea}
.hcp-hero h1{font:500 clamp(54px,6.2vw,118px)/.94 Manrope,'DM Sans',sans-serif;letter-spacing:-.05em;margin:22px 0 26px}
.hcp-hero h1 em{color:#e7d2b2}
.hcp-hero p{font-size:clamp(16px,1.2vw,19px);line-height:1.65;max-width:46ch;color:rgba(247,242,234,.88);margin:0}
.hcp-cue{margin-top:30px;background:none;border:0;border-bottom:1px solid currentColor;color:#f7f2ea;font:600 13px/1 'DM Sans',sans-serif;padding:10px 0;cursor:pointer;letter-spacing:.04em}
.hcp-doors{display:flex;height:min(88svh,920px);min-height:560px;background:#15221c}
.hcp-door{position:relative;flex:1;overflow:hidden;color:#f7f2ea;text-decoration:none;transition:flex .9s cubic-bezier(.16,1,.3,1)}
.hcp-door img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--p0);transition:object-position 1.1s cubic-bezier(.16,1,.3,1),transform 1.4s cubic-bezier(.16,1,.3,1),filter .8s}
.hcp-door::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,14,10,.25) 0%,rgba(10,14,10,0) 30%,rgba(10,14,10,.78) 100%);pointer-events:none}
.hcp-door+.hcp-door{border-left:1px solid rgba(255,255,255,.18)}
.hcp-door-num{position:absolute;z-index:2;top:26px;left:28px;font:400 14px/1 Georgia,serif;letter-spacing:.1em;opacity:.8}
.hcp-door-copy{position:absolute;z-index:2;left:28px;right:28px;bottom:34px}
.hcp-door-kicker{display:block;font:600 11px/1.4 Manrope,sans-serif;letter-spacing:.18em;text-transform:uppercase;opacity:.8}
.hcp-door-brand{display:block;font:600 13px/1 'DM Sans',sans-serif;letter-spacing:.22em;margin:14px 0 12px}
.hcp-door h2{font:500 clamp(28px,2.4vw,44px)/1.02 Manrope,sans-serif;letter-spacing:-.035em;margin:0;max-width:14ch}
.hcp-door p{max-width:34ch;line-height:1.6;font-size:15px;margin:16px 0 0;opacity:0;transform:translateY(12px);transition:opacity .6s,transform .8s cubic-bezier(.16,1,.3,1);color:rgba(247,242,234,.88)}
.hcp-door-go{display:inline-flex;gap:10px;margin-top:18px;font:600 13px/1 'DM Sans',sans-serif;border-bottom:1px solid currentColor;padding-bottom:6px}
.hcp-door-go i{font-style:normal;transition:transform .5s cubic-bezier(.16,1,.3,1)}
@media(hover:hover){.hcp-doors:hover .hcp-door{flex:.85}.hcp-doors .hcp-door:hover,.hcp-doors .hcp-door:focus-visible{flex:2.1}.hcp-door:hover img,.hcp-door:focus-visible img{object-position:var(--p1);transform:scale(1.04)}.hcp-doors:hover .hcp-door:not(:hover) img{filter:brightness(.7) saturate(.85)}.hcp-door:hover p,.hcp-door:focus-visible p{opacity:1;transform:none;transition-delay:.15s}.hcp-door:hover .hcp-door-go i{transform:translateX(6px)}}
.hcp-door:focus-visible{outline:3px solid #e7d2b2;outline-offset:-6px}
.hcp-eco{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;padding:140px var(--hc-side);align-items:center}
.hcp-eco-copy{grid-column:1/6;grid-row:1}
.hcp-eco-copy h2{font:500 clamp(40px,3.6vw,72px)/1 Manrope,sans-serif;letter-spacing:-.045em;margin:18px 0 24px}
.hcp-eco-copy h2 em{color:#5a3a24}
.hcp-eco-copy p{font-size:clamp(16px,1.15vw,19px);line-height:1.75;max-width:44ch;color:#3d463f}
.hcp-dark{color:#5a3a24}
.hcp-eco-a{grid-column:6/13;grid-row:1/3;aspect-ratio:4/3}
.hcp-eco-b{grid-column:2/6;grid-row:2;aspect-ratio:4/5;margin-top:-40px;box-shadow:0 30px 60px -30px rgba(20,24,20,.45)}
.hcp-final{height:min(92svh,980px);min-height:560px}
.hcp-final>img{position:absolute;inset:0}
.hcp-final::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,14,10,.72) 0%,rgba(12,14,10,.25) 50%,rgba(12,14,10,0) 70%)}
.hcp-final-copy{position:absolute;z-index:2;left:var(--hc-side);top:50%;transform:translateY(-50%);color:#f7f2ea}
.hcp-final h2{font:500 clamp(40px,4.4vw,84px)/.98 Manrope,sans-serif;letter-spacing:-.045em;margin:0 0 36px}
.hcp-final h2 em{color:#e7d2b2}
.hcp-final-links{display:grid;gap:4px;min-width:min(420px,80vw)}
.hcp-final-links a{display:flex;align-items:baseline;gap:18px;color:#f7f2ea;text-decoration:none;font:500 clamp(20px,1.6vw,28px)/1 Manrope,sans-serif;letter-spacing:-.01em;padding:16px 0;border-bottom:1px solid rgba(247,242,234,.3);transition:padding .5s cubic-bezier(.16,1,.3,1)}
.hcp-final-links a span{font:400 13px/1 Georgia,serif;opacity:.7}
.hcp-final-links a i{margin-left:auto;font-style:normal}
.hcp-final-links a:hover{padding-left:12px}
@media(max-width:760px){.hcp-hero{height:auto;min-height:88svh}.hcp-hero-copy{bottom:7svh}.hcp-hero h1{font-size:clamp(46px,13vw,64px)}
.hcp-doors{flex-direction:column;height:auto}.hcp-door{flex:none;height:78svh;min-height:480px}.hcp-door+.hcp-door{border-left:0;border-top:1px solid rgba(255,255,255,.18)}.hcp-door p{opacity:1;transform:none}
.hcp-eco{grid-template-columns:1fr;padding:80px 20px;gap:28px}.hcp-eco-copy,.hcp-eco-a,.hcp-eco-b{grid-column:1/-1;grid-row:auto}.hcp-eco-b{margin:0 0 0 22%;aspect-ratio:4/5}
.hcp-final{height:84svh}.hcp-final::after{background:linear-gradient(180deg,rgba(12,14,10,.2),rgba(12,14,10,.75))}.hcp-final-copy{top:auto;bottom:8svh;transform:none}.hcp-final>img{object-position:72% 45%!important}}

/* ===== Editorial pages with photography ===== */
.edx-hero{height:min(86svh,900px);min-height:560px;color:#f7f2ea}
.edx-hero>img{position:absolute;inset:0}
.edx-hero-copy{position:absolute;z-index:2;left:0;right:0;bottom:9svh}
.edx-photo .edx-hero .edx-back{color:#f7f2ea;opacity:.85}
.edx-photo .edx-hero .eyebrow{color:#f2e3c9;display:block;margin:22px 0 14px}
.edx-photo .edx-hero h1{font-size:clamp(46px,5.2vw,100px);line-height:.96;letter-spacing:-.045em;max-width:15ch;margin:0 0 22px;color:#f7f2ea}
.edx-photo .edx-hero p{max-width:52ch;font-size:clamp(16px,1.15vw,19px);line-height:1.7;color:rgba(247,242,234,.9)}
.edx-axis-row{padding-top:56px}
.edx-pair{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:20px;margin:70px 0 90px}
.edx-pair-a{grid-column:1/8;aspect-ratio:16/11}
.edx-pair-b{grid-column:8/13;aspect-ratio:4/5;margin-top:90px}
.edx-quote{height:min(82svh,860px);min-height:480px;margin:40px 0 0}
.edx-quote>img{position:absolute;inset:0}
.edx-quote::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,14,10,.7) 0%,rgba(12,14,10,.2) 55%,rgba(12,14,10,0) 80%)}
.edx-quote blockquote{position:absolute;z-index:2;left:0;right:0;top:50%;transform:translateY(-50%);margin:0}
.edx-quote blockquote p{font:italic 400 clamp(32px,3.8vw,68px)/1.12 Georgia,serif;letter-spacing:-.02em;color:#f7f2ea;max-width:17ch;margin:0}
@media(max-width:760px){.edx-hero{height:84svh}.edx-pair{grid-template-columns:1fr;gap:14px;margin:40px 0 50px}.edx-pair-a,.edx-pair-b{grid-column:1/-1;margin:0}.edx-pair-b{width:72%;margin-left:auto;margin-top:-30px}.edx-quote{height:72svh}.edx-quote::after{background:linear-gradient(180deg,rgba(12,14,10,.15),rgba(12,14,10,.72))}.edx-quote blockquote{top:auto;bottom:8svh;transform:none}}

/* ---------- TECHNOHORSE: photo-led ---------- */
.thh-hero{position:relative;height:calc(100svh - 104px);min-height:640px;color:#f4f1e8;background:#1d2a21}
.thh-hero picture{position:absolute;inset:0}.thh-hero picture img{width:100%;height:100%;object-fit:cover}
.thh-hero::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(270deg,rgba(16,24,18,.82) 0%,rgba(16,24,18,.5) 34%,rgba(16,24,18,0) 62%)}
.thh-hero-copy{position:absolute;z-index:2;right:var(--hc-side);bottom:12svh;width:min(560px,88vw)}
.thh-hero .thx-eyebrow,.thh-final .thx-eyebrow,.thh-story .thx-eyebrow,.thw-scrolly .thx-eyebrow{color:#d9e3c3}
.thh-hero h1{font:500 clamp(42px,4.4vw,86px)/.98 Manrope,'DM Sans',sans-serif;letter-spacing:-.045em;margin:0 0 24px}
.thh-hero h1 em,.thh-final h2 em,.thh-story h2 em,.thp-hero h1 em,.thw-scrolly h2 em,.thw-ph .thw-variants h2 em,.thw-ph .thw-site h2 em{font-family:Georgia,'Times New Roman',serif;font-style:italic;font-weight:400}
.thh-hero h1 em,.thh-final h2 em,.thh-story h2 em,.thw-scrolly h2 em{color:#d9e3c3}
.thh-hero p{font-size:clamp(16px,1.15vw,19px);line-height:1.7;color:rgba(244,241,232,.9);max-width:44ch;margin:0 0 30px}
.thh-hero .thx-button,.thh-final .thx-button,.thh-story .thx-button{background:#f1efe4;color:#1d3326;border-color:#f1efe4}
.thh-hero .thx-outline,.thh-final .thx-outline{background:transparent;color:#f4f1e8;border-color:rgba(244,241,232,.65)}
.thh-hero .ph-cap{left:var(--hc-side);bottom:22px}
/* horizontal photo story: native swipe by default, pinned scrub on desktop (app.js adds .is-pinned) */
.thh-story{position:relative;background:#1d2a21;color:#f1efe4}
.thh-track{position:relative;display:flex;align-items:flex-end;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;padding:90px var(--hc-side) 70px;scrollbar-width:none}
.thh-track::-webkit-scrollbar{display:none}
.thh-track>*{scroll-snap-align:start;flex:none}
.thh-intro{width:min(440px,82vw);align-self:center;padding-right:2vw}
.thh-intro h2{font:500 clamp(38px,3.6vw,68px)/1 Manrope,'DM Sans',sans-serif;letter-spacing:-.045em;margin:0 0 24px}
.thh-intro p{font-size:17px;line-height:1.7;color:rgba(241,239,228,.82);max-width:36ch}
.thh-hint{display:inline-block;margin-top:26px;font:600 12px/1 'DM Sans',sans-serif;letter-spacing:.14em;text-transform:uppercase;opacity:.65}
.thh-frame{margin:0;width:min(78vw,420px)}
.thh-frame .ph{aspect-ratio:4/5}
.thh-frame.is-wide{width:min(90vw,860px)}.thh-frame.is-wide .ph{aspect-ratio:16/10}
.thh-frame figcaption{display:grid;grid-template-columns:auto 1fr;gap:4px 16px;padding-top:18px;max-width:46ch}
.thh-frame figcaption span{grid-row:1/3;font:400 15px/1.3 Georgia,serif;color:#d9e3c3}
.thh-frame figcaption b{font:600 19px/1.3 Manrope,'DM Sans',sans-serif;letter-spacing:-.01em}
.thh-frame figcaption p{margin:0;font-size:15px;line-height:1.6;color:rgba(241,239,228,.78)}
.thh-outro{width:min(380px,80vw);align-self:center}
.thh-outro p{font-size:17px;line-height:1.7;color:rgba(241,239,228,.85);margin:0 0 26px}
.thh-progress{display:none}
.thh-story.is-pinned .thh-sticky{position:sticky;top:0;height:100vh;overflow:hidden;display:flex;align-items:center}
.thh-story.is-pinned .thh-track{overflow:visible;scroll-snap-type:none;padding:0 var(--hc-side);gap:5vw;align-items:center;will-change:transform}
.thh-story.is-pinned .thh-frame{width:auto}
.thh-story.is-pinned .thh-frame .ph{height:62vh;width:49.6vh;aspect-ratio:auto}
.thh-story.is-pinned .thh-frame.is-wide .ph{width:min(99vh,62vw)}
.thh-story.is-pinned .thh-frame:nth-of-type(even){transform:translateY(5vh)}
.thh-story.is-pinned .thh-frame:nth-of-type(odd){transform:translateY(-4vh)}
.thh-story.is-pinned .thh-progress{display:block;position:absolute;left:var(--hc-side);right:var(--hc-side);bottom:5vh;height:1px;background:rgba(241,239,228,.18)}
.thh-progress i{display:block;height:100%;background:#d9e3c3;transform-origin:0 50%;transform:scaleX(0)}
.thh-band{height:min(78svh,820px);min-height:420px}
.thh-band img{height:100%}
.thh-band .ph-cap{left:var(--hc-side);bottom:20px}
.thh-final{position:relative;display:flex;align-items:center;min-height:min(88svh,900px);padding:90px var(--hc-side);color:#f4f1e8;background:#1d2a21;overflow:hidden}
.thh-final>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.thh-final::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(16,24,18,.8) 0%,rgba(16,24,18,.45) 45%,rgba(16,24,18,.05) 75%)}
.thh-final-copy{position:relative;z-index:2;max-width:640px}
.thh-final h2{font:500 clamp(40px,4.4vw,84px)/.98 Manrope,'DM Sans',sans-serif;letter-spacing:-.045em;margin:0 0 26px;color:#f4f1e8}
.thh-final p{font-size:17px;line-height:1.7;color:rgba(244,241,232,.88);max-width:46ch;margin:0 0 30px}
.thh-final .thx-partner,.thh-final .thx-partner a{color:#f4f1e8}
/* asymmetric photo catalogue */
.product-visual.ph{display:block;height:auto;min-height:0;aspect-ratio:4/5;background:#2b2a24;border:0;border-radius:2px}
.products .product-card:nth-child(1) .product-visual.ph{aspect-ratio:16/11}
.product-visual.ph img{transition:transform 1.2s var(--ph-ease),filter .6s}
.product-card:hover .product-visual.ph img,.product-card:focus-visible .product-visual.ph img{transform:scale(1.045)}
.product-visual.ph .tag{z-index:2;font-size:10px;color:#f4f1e8;background:rgba(20,28,22,.55);padding:6px 10px;backdrop-filter:blur(6px);top:14px;left:14px}
/* product page hero: copy + portrait photo */
.thp-hero{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);min-height:calc(100svh - 104px);background:#f2f2e8;color:#1f3326}
.thp-hero-copy{align-self:center;padding:70px var(--hc-side)}
.thp-hero h1{font:500 clamp(46px,5vw,94px)/.96 Manrope,'DM Sans',sans-serif;letter-spacing:-.05em;margin:0 0 26px}
.thp-hero h1 em{color:#5d6f3f}
.thp-product .product-lead{font-size:clamp(19px,1.5vw,24px);line-height:1.45;max-width:30ch}
.thp-product .thp-hero-copy>p{max-width:52ch;line-height:1.7}
.thp-product .breadcrumbs{margin-bottom:26px}
.thp-hero-ph{min-height:620px}
.thp-hero-ph img{position:absolute;inset:0}
/* water treadmill: sticky photo frames with an upward wipe */
.thw-scrolly{background:#1d2a21;color:#f1efe4;padding:120px 0 90px}
.thw-scrolly h2{font:500 clamp(40px,4vw,76px)/.98 Manrope,'DM Sans',sans-serif;letter-spacing:-.045em;margin:0}
.thw-scrolly .thw-head p{max-width:44ch;line-height:1.7;color:rgba(241,239,228,.8)}
.thw-scrolly-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:6vw;margin-top:60px}
.thw-scrolly-frame{position:sticky;top:8vh;height:84vh;overflow:hidden;border-radius:2px;background:#11180f}
.thw-frame{position:absolute;inset:0;margin:0;clip-path:inset(100% 0 0 0);transition:clip-path 1.25s var(--ph-swap)}
.thw-frame img{transform:scale(1.14);transition:transform 1.9s var(--ph-ease)}
.thw-frame.is-on{z-index:2;clip-path:inset(0 0 0 0)}
.thw-frame.is-on img{transform:scale(1)}
.thw-frame-count{position:absolute;z-index:3;left:22px;bottom:20px;font:400 14px/1 Georgia,serif;color:#f4f1e8;letter-spacing:.08em}
.thw-frame-count b{font-weight:400;font-size:34px}
.thw-step{min-height:84vh;display:flex;flex-direction:column;justify-content:center;opacity:.32;transition:opacity .7s}
.thw-step.is-active{opacity:1}
.thw-step h3{font:500 clamp(28px,2.6vw,46px)/1.04 Manrope,'DM Sans',sans-serif;letter-spacing:-.035em;margin:16px 0 18px}
.thw-step>p{font-size:17px;line-height:1.7;color:rgba(241,239,228,.85);max-width:42ch}
.thw-step .thw-operator{border-left-color:#d9e3c3;max-width:42ch}
.thw-step-ph{display:none}
.thw-scrolly .thw-note{margin-top:40px;font-size:12px;opacity:.6}
.thw-ph .thw-var-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:5vw}
.thw-var-ph{aspect-ratio:4/5}
.thw-ph .thw-table-wrap{grid-column:auto}
.thw-ph .thw-site{padding:110px 0}
.thw-ph .thw-site-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:5vw;align-items:center}
.thw-site-ph{aspect-ratio:4/5}
.thw-ph .thw-site .thw-req{grid-column:auto;margin:28px 0}.thw-ph .thw-site .thw-site-grid>*,.thw-ph .thw-variants .thw-var-grid>*{grid-column:auto}.thw-ph .thw-site .thw-site-grid p{max-width:52ch}
.thw-ph .thw-site h2,.thw-ph .thw-variants h2{font:500 clamp(38px,3.6vw,68px)/1 Manrope,'DM Sans',sans-serif;letter-spacing:-.045em;margin:0 0 22px}
.footer-bottom{flex-wrap:wrap}.footer-photo-note{flex-basis:100%;opacity:.75}
@media(max-width:760px){
.thh-hero{height:auto;min-height:88svh}.thh-hero::after{background:linear-gradient(180deg,rgba(16,24,18,.05) 20%,rgba(16,24,18,.82) 78%)}
.thh-hero-copy{left:20px;right:20px;width:auto;bottom:56px}.thh-hero h1{font-size:clamp(38px,11vw,54px)}
.thh-track{padding:70px 20px 56px}
.thh-band{height:62svh}
.thh-final{min-height:84svh;align-items:flex-end}.thh-final::after{background:linear-gradient(180deg,rgba(16,24,18,.15),rgba(16,24,18,.85))}
.product-visual.ph .tag{font-size:8px;padding:5px 7px}
.thp-hero{grid-template-columns:1fr;min-height:0}.thp-hero-ph{order:-1;min-height:0;height:64svh}.thp-hero-copy{padding:44px 20px 56px}
.thw-scrolly{padding:80px 0 60px}.thw-scrolly-grid{grid-template-columns:1fr;margin-top:30px}.thw-scrolly-media{display:none}
.thw-step{min-height:0;opacity:1;padding:28px 0 36px}.thw-step-ph{display:block;aspect-ratio:4/5;margin:0 0 6px}
.thw-ph .thw-var-grid,.thw-ph .thw-site-grid{grid-template-columns:1fr}.thw-ph .thw-site{padding:70px 0}}
@media(prefers-reduced-motion:reduce){.thw-frame{transition:none}.thw-frame img{transform:none;transition:none}.thw-step{transition:none}}.thh-split{justify-content:flex-end}
.thh-split>img{width:58%;right:auto}
.thh-split::after{display:none}
.thh-split .thh-final-copy{width:min(520px,34vw)}
.thh-split h2{font-size:clamp(38px,3.6vw,68px)}
@media(max-width:760px){.thh-split{display:block;padding:0 0 64px;min-height:0}.thh-split>img{position:relative;width:100%;height:62svh}.thh-split .thh-final-copy{width:auto;padding:40px 20px 0}}
/* ---------- ZOVII: photo-led ---------- */
.zvp-hero{position:relative;height:240vh;--swap:0;overflow:visible}
.zvp-hero-pin{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;overflow:hidden}
.zvp-hero-band{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:5vw;align-items:end;padding:5vh 0 4vh}
.zvp-hero h1{font-size:clamp(46px,5.4vw,104px);margin-top:18px}
.zvp-hero h1 span{display:block}
.zvp-hero h1 em{display:block;opacity:calc(.12 + var(--swap)*.88);transform:translateY(calc((1 - var(--swap))*14px));transition:opacity .2s linear}
.zvp-hero-side .zv-lead{max-width:40ch;margin-bottom:24px}
.zvp-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 26px}
.zvp-hero-photo{flex:1;min-height:0;margin:0 max(20px,2.4vw) max(20px,2.4vw);border-radius:3px}
.zvp-hero-photo>img,.zvp-hero-photo .ph-swap-b img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.zvp-hero-photo .ph-swap-b{z-index:1}
.zvp-cue{position:absolute;z-index:3;right:22px;bottom:18px;font:600 11px/1 Manrope,'DM Sans',sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#f6efe4;opacity:calc(1 - var(--swap));text-shadow:0 1px 10px rgba(0,0,0,.4)}
.zvp-hero-photo .ph-cap{z-index:3}
.zvp-inside{padding:140px 0 120px}
.zvp-inside-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6vw;align-items:start}
.zvp-frames{position:sticky;top:6vh;height:86vh;border-radius:3px;overflow:hidden;background:#2c201b}
.zvp-frame{position:absolute;inset:0;margin:0;clip-path:inset(0 0 0 100%);transition:clip-path 1.1s var(--ph-swap)}
.zvp-frame img{transform:scale(1.12);transition:transform 1.8s var(--ph-ease)}
.zvp-frame.is-on{z-index:2;clip-path:inset(0 0 0 0)}
.zvp-frame.is-on img{transform:scale(1)}
.zvp-inside h2,.zvp-size h2,.zvp-finish h2,.zvp-detail h2,.zvp-story h2{font-size:clamp(40px,3.9vw,74px);margin:18px 0 22px}
.zvp-parts{list-style:none;margin:42px 0 24px;padding:0;border-top:1px solid var(--line)}
.zvp-parts li{border-bottom:1px solid var(--line)}
.zvp-parts button{display:grid;grid-template-columns:44px 1fr;gap:4px 10px;width:100%;padding:20px 0;background:none;border:0;text-align:left}
.zvp-num{grid-row:1/3;font:400 14px/1.6 Georgia,serif;color:var(--accent-ink)}
.zvp-parts b{font:500 clamp(20px,1.6vw,26px)/1.25 Georgia,serif;letter-spacing:-.01em;transition:transform .5s var(--ease)}
.zvp-part-text{display:grid;grid-template-rows:0fr;overflow:hidden;font-size:15px;line-height:1.65;color:var(--muted);max-width:44ch;opacity:0;transition:opacity .4s,margin .4s}
.zvp-parts button.is-active .zvp-part-text{opacity:1;margin-top:6px}
.zvp-parts button:not(.is-active) .zvp-part-text{height:0}
.zvp-parts button:hover b,.zvp-parts button.is-active b{transform:translateX(8px)}
.zvp-parts button.is-active b{color:var(--accent-ink)}
.zvp-size{background:#2c201b;color:#f1ebe2;padding:120px 0}
.zvp-size .zv-kicker,.zvp-size .zv-body{color:rgba(241,235,226,.75)}
.zvp-size h2 em{color:#d8b48f}
.zvp-size-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6vw;align-items:center}
.zvp-size-ph{aspect-ratio:4/5;border-radius:3px}
.zvp-size .zv-toggle{color:#f1ebe2}
.zvp-size .zv-toggle button.is-active{background:#f1ebe2;color:#2c201b}
.zvp-height{display:flex;align-items:baseline;gap:14px;margin:10px 0 8px}
.zvp-height b{font:400 clamp(72px,8vw,150px)/1 Georgia,serif;letter-spacing:-.05em;font-variant-numeric:tabular-nums}
.zvp-height span{font-size:14px;letter-spacing:.08em;opacity:.7}
.zvp-size [data-zv-size-desc]{margin-bottom:28px;min-height:3.5em}
.zvp-finish{padding:140px 0}
.zvp-finish-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6vw;align-items:center}
.zvp-finish .zv-btn{margin-top:26px}
.zvp-sample{display:grid;justify-items:center;gap:22px}
.zvp-sample-card{position:relative;width:min(380px,80%);aspect-ratio:3/4;background:var(--body);border-radius:4px;box-shadow:0 40px 70px -40px rgba(44,32,27,.55),inset 0 0 0 10px color-mix(in srgb,var(--body) 80%,#000);transition:background .7s var(--ease)}
.zvp-sample-card::after{content:'';position:absolute;inset:0;border-radius:4px;background:linear-gradient(135deg,rgba(255,255,255,.12),rgba(255,255,255,0) 40%,rgba(0,0,0,.16));pointer-events:none}
.zvp-s-strap{position:absolute;left:50%;top:38%;width:18%;height:22%;transform:translateX(-50%);background:var(--leather);border-radius:3px;box-shadow:inset 0 0 0 2px rgba(0,0,0,.12),0 6px 12px -6px rgba(0,0,0,.4);transition:background .7s var(--ease)}
.zvp-s-corner{position:absolute;width:14%;aspect-ratio:1;background:var(--leather);transition:background .7s var(--ease)}
.zvp-s-corner.a{top:0;left:0;border-radius:4px 0 100% 0}.zvp-s-corner.b{top:0;right:0;border-radius:0 4px 0 100%}.zvp-s-corner.c{bottom:0;left:0;border-radius:0 100% 0 4px}.zvp-s-corner.d{bottom:0;right:0;border-radius:100% 0 4px 0}
.zvp-sample.is-pulse .zvp-sample-card{animation:zvp-pulse .7s var(--ease)}
@keyframes zvp-pulse{40%{transform:translateY(-8px) rotate(-1deg)}}
.zvp-sample-label{display:grid;justify-items:center;gap:4px;font-size:14px;color:var(--muted)}
.zvp-sample-label b{font:400 22px/1.2 Georgia,serif;color:var(--ink)}
.zvp-detail{padding:20px 0 140px}
.zvp-pair{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:22px;align-items:start;margin-top:50px}
.zvp-pair figure{margin:0}
.zvp-pair-a{grid-column:1/8}.zvp-pair-a .ph{aspect-ratio:4/5}
.zvp-pair-b{grid-column:8/13;margin-top:140px!important}.zvp-pair-b .ph{aspect-ratio:4/5}
.zvp-pair figcaption{display:grid;gap:6px;padding-top:16px;max-width:44ch}
.zvp-pair figcaption b{font:400 22px/1.25 Georgia,serif}
.zvp-pair figcaption span{font-size:14px;line-height:1.65;color:var(--muted)}
.zvp-story{position:relative;background:#2c201b;color:#f1ebe2}
.zvp-story-ph{height:min(88svh,920px)}
.zvp-story-ph img{height:100%}
.zvp-story-copy{position:relative;z-index:2;margin-top:-26vh;padding:60px 0 120px;max-width:none}
.zvp-story-copy>*{max-width:620px}
.zvp-story-copy::before{content:'';position:absolute;inset:0 -100vw;z-index:-1;background:linear-gradient(180deg,rgba(44,32,27,0) 0,#2c201b 34%)}
.zvp-story .zv-kicker,.zvp-story .zv-body{color:rgba(241,235,226,.78)}.zvp-story .zv-lead{color:#f1ebe2;margin-bottom:16px}
.zvp-story h2 em{color:#d8b48f}.zvp-story .zv-link{color:#f1ebe2;margin-top:22px}
.zvp-final{position:relative;display:flex;align-items:center;min-height:min(90svh,940px);padding:90px var(--hc-side);color:#f6efe4;overflow:hidden;background:#2c201b}
.zvp-final>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.zvp-final::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(32,22,18,.82) 0%,rgba(32,22,18,.5) 38%,rgba(32,22,18,0) 66%)}
.zvp-final-copy{position:relative;z-index:2;max-width:560px}
.zvp-final h2{font-size:clamp(40px,4.2vw,80px);margin:16px 0 22px;color:#f6efe4}.zvp-final h2 em{color:#e3c29f}
.zvp-final .zv-kicker,.zvp-final .zv-body,.zvp-final .zv-fine{color:rgba(246,239,228,.82)}
.zvp-final .zv-btn{margin:28px 0 16px}
.zvp-paka-hero{background:var(--paper);color:var(--ink)}
.zvp-paka-hero h1{font-size:clamp(46px,5vw,94px);margin:18px 0 24px}
.zvp-paka-hero .zv-lead{max-width:40ch;margin-bottom:28px}
.zvp-spec{padding:130px 0 40px}
.zvp-spec-head{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:5vw;align-items:end;margin-bottom:50px}
.zvp-spec-head h2{font-size:clamp(40px,3.9vw,74px)}
.zvp-spec-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}
.zvp-spec-group h3{font:600 11px/1.6 Manrope,'DM Sans',sans-serif;letter-spacing:.2em;text-transform:uppercase;color:var(--accent-ink);padding-bottom:14px;border-bottom:1px solid var(--ink)}
.zvp-spec-group ul{list-style:none;margin:0;padding:0}
.zvp-spec-group li{display:grid;gap:4px;padding:16px 0;border-bottom:1px solid var(--line)}
.zvp-spec-group b{font:400 19px/1.3 Georgia,serif}.zvp-spec-group small{font:600 10px/1 'DM Sans',sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-ink);margin-left:6px}
.zvp-spec-group span{font-size:14px;line-height:1.6;color:var(--muted)}
.zvp-pair-paka{margin:60px auto 130px}
.zv-paka .zv-compare{padding-bottom:60px}
@media(max-width:760px){
.zvp-hero{height:210svh}.zvp-hero-band{grid-template-columns:1fr;gap:14px;padding:22px 0 16px}.zvp-hero h1{font-size:clamp(38px,11vw,52px);margin-top:10px}.zvp-hero-side .zv-lead{font-size:15px;margin-bottom:14px}.zvp-hero-side .zvp-actions .zv-link{display:none}
.zvp-hero-photo{margin:0 12px 12px}.zvp-hero-photo img{object-position:74% 40%!important}
.zvp-inside{padding:80px 0}.zvp-inside-grid{grid-template-columns:1fr;gap:28px}.zvp-inside-media{order:-1;position:sticky;top:0;z-index:2;margin:0 -20px}.zvp-frames{position:relative;top:0;height:46svh;border-radius:0}
.zvp-inside-copy .zvp-parts{margin-top:28px}
.zvp-size,.zvp-finish{padding:80px 0}.zvp-size-grid,.zvp-finish-grid{grid-template-columns:1fr;gap:36px}.zvp-size-ph{aspect-ratio:4/4.4}
.zvp-pair{grid-template-columns:1fr;gap:28px}.zvp-pair-a,.zvp-pair-b{grid-column:1/-1}.zvp-pair-b{margin-top:0!important;width:78%;margin-left:auto!important}
.zvp-detail{padding:10px 0 80px}
.zvp-story-ph{height:62svh}.zvp-story-copy{margin-top:-12vh;padding:40px 0 80px}
.zvp-final{min-height:86svh;align-items:flex-end;padding:0 20px 60px}.zvp-final::after{background:linear-gradient(180deg,rgba(32,22,18,.1) 25%,rgba(32,22,18,.88) 72%)}
.zvp-spec{padding:80px 0 20px}.zvp-spec-head,.zvp-spec-grid{grid-template-columns:1fr;gap:26px}.zvp-pair-paka{margin:40px auto 80px}}
@media(prefers-reduced-motion:reduce){.zvp-hero{height:auto}.zvp-hero-pin{position:relative;height:auto;min-height:100vh}.zvp-frame,.zvp-frame img{transition:none}.zvp-sample-card{transition:none}.zvp-sample.is-pulse .zvp-sample-card{animation:none}}.zvp-sample{position:relative;display:block;padding-bottom:40px}
.zvp-sample-ph{width:72%;margin-left:auto;aspect-ratio:4/5;border-radius:3px}
.zvp-sample-card{position:absolute;left:0;bottom:90px;width:44%;background-color:var(--body);background-image:radial-gradient(rgba(255,255,255,.05) 1px,transparent 1.4px),radial-gradient(rgba(0,0,0,.07) 1px,transparent 1.4px);background-size:5px 5px,7px 7px;z-index:3}
.zvp-s-strap,.zvp-s-corner{background-image:linear-gradient(160deg,rgba(255,255,255,.14),rgba(0,0,0,.18))}
.zvp-s-strap::after{content:'';position:absolute;inset:5px;border:1px dashed rgba(255,255,255,.4);border-radius:2px}
.zvp-sample-label{position:absolute;left:0;bottom:0;width:44%;justify-items:start}
@media(max-width:760px){.zvp-sample-ph{width:82%}.zvp-sample-card{width:52%;bottom:70px}.zvp-sample-label{width:auto}}.zvp-sample{padding-bottom:110px}.zvp-sample-card{bottom:70px}
.zvp-final-copy{max-width:470px}.zvp-final h2{font-size:clamp(38px,3.6vw,70px)}.zvp-paka-hero h1{font:400 clamp(46px,5vw,94px)/.94 Georgia,'Times New Roman',serif;letter-spacing:-.045em}
.zvp-paka-hero h1 em{color:var(--accent-ink)}
.zvp-actions button.zv-link{background:none;border:0;border-bottom:1px solid currentColor;padding:0;border-radius:0}
/* ---------- HORSECHAMP EMG: photo-led ---------- */
.emgx-hero>picture{position:absolute;inset:0;z-index:-3}
.emgx-hero>picture img{width:100%;height:100%;object-fit:cover}
.emgs-stage{position:relative;aspect-ratio:16/12.5;border-radius:3px;background:#0b2224;color:#e6efe9}
.emgs-stage>img{position:absolute;inset:0;transform-origin:42% 22%;transition:transform 1.6s var(--ph-ease),filter 1.1s ease}
.emgs-stage[data-emgs-stage="2"]>img{transform:scale(1.28)}
.emgs-stage[data-emgs-stage="3"]>img,.emgs-stage[data-emgs-stage="4"]>img,.emgs-stage[data-emgs-stage="5"]>img,.emgs-stage[data-emgs-stage="6"]>img{filter:brightness(.34) saturate(.6);transform:scale(1.06)}
/* Per-stage photos (stage 1 movement, stage 2 location) cross-fade over the base session photo. */
.emgs-stage>img.emgs-alt{opacity:0;transform:none!important;filter:none!important;transition:opacity .8s ease}
.emgs-stage[data-emgs-stage="1"]>.emgs-alt-1,.emgs-stage[data-emgs-stage="2"]>.emgs-alt-2{opacity:1}
.emgs-stage::after{content:'';position:absolute;inset:38% 0 0;pointer-events:none;background:linear-gradient(180deg,rgba(5,23,26,0),rgba(5,23,26,.82));opacity:0;transition:opacity 1s}
.emgs-stage[data-emgs-stage="3"]::after,.emgs-stage[data-emgs-stage="4"]::after,.emgs-stage[data-emgs-stage="5"]::after,.emgs-stage[data-emgs-stage="6"]::after{opacity:1}
.emgs .emgs-stage .emgs-drawing{position:absolute;z-index:2;left:0;right:0;bottom:0;border:0;background:none;padding:clamp(12px,2vw,26px)}
.emgs-stage .hes{color:#e6efe9}
.emgs-stage .hes .hes-sig-b,.emgs-stage .hes .hes-env,.emgs-stage .hes .hes-lead{stroke:#a9d4be}
.emgs-figure .emgs-sheet{border-top:1px solid rgba(127,160,150,.3)}
.emgx-boundary-ph{height:min(70svh,700px);margin:0 0 80px;border-radius:3px}
.emgx-boundary-ph img{height:100%}
@media(max-width:760px){.emgs-stage{aspect-ratio:4/3.6}.emgx-boundary-ph{height:52svh;margin-bottom:48px}}
@media(prefers-reduced-motion:reduce){.emgs-stage>img{transition:none}}
/* ---------- quality-critic fixes ---------- */
.thh-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.thh-story.is-pinned .thh-sticky{overflow:clip}
.thh-track:focus-visible{outline:2px solid #d9e3c3;outline-offset:-6px}
.thw-step{opacity:.55}
.zvp-hero h1 em{opacity:calc(.35 + var(--swap)*.65)}
.product-visual.ph .tag{backdrop-filter:none;background:#1f2a22;color:#f4f1e8}
.zvp-frames .ph-cap{z-index:4}
@media(hover:none){.hcp-door p{opacity:1;transform:none}}
@media(max-width:760px){
.thh-hero>img{object-position:24% 50%!important}
.product-visual.ph .tag{font-size:11px}
.zvp-hero-photo img{object-position:58% 40%!important}
.zvp-hero-side .zvp-actions .zv-link{display:inline-flex}
.zvp-frames{height:34svh}}

/* ---------- HORSECHAMP start page: brand choice only ---------- */
.hcp-start{position:relative;display:flex;flex-direction:column;height:calc(100svh - 104px);min-height:600px;background:#15221c}
.hcp-start-head{position:absolute;z-index:3;left:0;right:0;top:0;display:flex;justify-content:space-between;align-items:baseline;gap:24px;padding:34px max(20px,4vw) 60px;color:#f7f2ea;background:linear-gradient(180deg,rgba(10,14,10,.62),rgba(10,14,10,0));pointer-events:none}
.hcp-start-head h1{margin:0;font:500 clamp(30px,3vw,54px)/1 Manrope,'DM Sans',sans-serif;letter-spacing:-.04em}
.hcp-start-head h1 em{color:#e7d2b2}
.hcp-start-head p{margin:0;font-size:15px;color:rgba(247,242,234,.85)}
.hcp-start .hcp-doors{flex:1;height:auto;min-height:0}
.hcp-start-cap{position:absolute;z-index:3;right:16px;bottom:12px;font:500 11px/1.4 'DM Sans',Arial,sans-serif;letter-spacing:.06em;color:rgba(255,255,255,.75)}
@media(max-width:760px){.hcp-start{height:auto;min-height:0}.hcp-start-head{position:relative;flex-direction:column;gap:8px;padding:28px 20px 22px;background:#15221c}.hcp-start .hcp-door{height:62svh;min-height:400px}}
/* ZOVII: photo door-opening section under the drawing hero */
.zvp-door-photo h2{font-size:clamp(40px,4.6vw,88px);margin-top:18px}
.zvp-door-photo h2 span{display:block}
.zvp-door-photo h2 em{display:block;opacity:calc(.35 + var(--swap)*.65);transform:translateY(calc((1 - var(--swap))*14px))}
@media(max-width:760px){.zvp-door-photo h2{font-size:clamp(34px,9.5vw,46px);margin-top:10px}}

/* ---------- HORSECHAMP EMG v4 journey (home: hero → what → scene → two screens → status → FAQ) ---------- */
.emgx-hero-status{text-decoration:none;color:inherit}
.emgx-hero-status:hover{border-color:var(--ex-accent)}
.emgx-cue{background:none;border:0;color:inherit;font:600 11px/1 'DM Sans',sans-serif;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;padding:8px 0;border-bottom:1px solid currentColor}
.emgw-head{max-width:760px}
.emgw-head h2{margin:18px 0 0}
.emgw-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px;margin-top:50px;background:var(--ex-line)}
.emgw-col{background:var(--ex-bg);padding:34px 34px 30px}
.emgw-col h3{font:600 11px/1.5 Manrope,'DM Sans',sans-serif;letter-spacing:.18em;text-transform:uppercase;margin:0 0 18px;color:var(--ex-accent)}
.emgw-col.is-no h3{color:#e6bb85}
.emgw-col ul{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.emgw-col li{font-size:clamp(17px,1.4vw,22px);line-height:1.4;padding-left:30px;position:relative}
.emgw-col li::before{content:'●';position:absolute;left:0;top:.15em;font-size:.7em;color:var(--ex-accent)}
.emgw-col.is-no li::before{content:'-';color:#e6bb85;font-size:1em;top:0}
.emgw-foot{margin:34px 0 0;max-width:62ch;font:italic 400 clamp(19px,1.6vw,26px)/1.45 Georgia,serif;color:var(--ex-muted)}
.emgsc{background:#0f2a2b}
.emgsc-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr);gap:5vw;align-items:end}
.emgsc-head h2{margin:18px 0 0}
.emgsc-head p{color:var(--ex-muted);font-size:17px;line-height:1.7;margin:0}
.emgsc-grid.emgs-roles{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:50px}
.emgsc-card{display:flex;flex-direction:column;gap:14px;padding:30px;border:1px solid var(--ex-line);color:inherit;text-decoration:none;background:rgba(234,241,233,.03);transition:border-color .3s,transform .5s var(--ph-ease)}
.emgsc-card:hover,.emgsc-card:focus-visible{border-color:var(--ex-accent);transform:translateY(-4px)}
.emgsc-card h3{font-size:clamp(24px,2vw,32px);font-weight:400;letter-spacing:-.03em;margin:6px 0 0}
.emgsc-card p{color:var(--ex-muted);line-height:1.65;margin:0}
.emgsc-card b{margin-top:auto;font-size:13px;color:var(--ex-accent)}
.emgsc-screen{display:grid;gap:1px;background:var(--ex-line);border:1px solid var(--ex-line);font-size:13px}
.emgsc-screen div{display:flex;justify-content:space-between;gap:16px;padding:12px 14px;background:#0b2224}
.emgsc-screen span{color:var(--ex-muted)}
.emgsc-screen b{font-weight:600;color:var(--ex-ink)}
.emgsc-card.is-pro .emgsc-screen div{background:#102f30}
.emgsc-link{display:inline-block;margin-top:28px}
.emgst{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:5vw;align-items:center}
.emgst-ph{aspect-ratio:4/3.3;border-radius:3px}
.emgst-copy h2{margin:18px 0 22px}
.emgst-rows{margin:26px 0;display:grid;gap:0;border-top:1px solid var(--ex-line)}
.emgst-rows div{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:20px;padding:16px 0;border-bottom:1px solid var(--ex-line)}
.emgst-rows dt{font-weight:600}
.emgst-rows dd{margin:0;color:var(--ex-muted);line-height:1.6}
.emgfq-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:5vw;align-items:start}
.emgfq-cta h2{margin:0 0 30px}
.emgx-report-hero .emgx-hero-content{max-width:760px}
.emgx-report-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-3}
.emgrl-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:5vw}
.emgrl-grid h2{margin:18px 0 0}
.emgrl-grid p{color:var(--ex-muted);line-height:1.75;font-size:17px;margin:0 0 18px}
.emgrl-note{font-size:14px!important;border-left:2px solid var(--ex-accent);padding-left:14px}
@media(max-width:760px){
.emgx-hero>picture img{object-position:60% 40%!important}
.emgw-grid,.emgsc-head,.emgsc-grid.emgs-roles,.emgst,.emgfq-grid,.emgrl-grid{grid-template-columns:1fr}
.emgw-col{padding:24px 20px}.emgst-rows div{grid-template-columns:1fr;gap:4px}}.emgsc-head{display:block;max-width:820px}
.emgsc-head p{margin-top:18px;max-width:58ch}
.emgsc-card .emgs-num{font:600 11px/1.4 Manrope,'DM Sans',sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--ex-accent)}
/* ---------- TECHNOHORSE v4 journey ---------- */
.thh-hero.thh-left::after{background:linear-gradient(90deg,rgba(16,24,18,.82) 0%,rgba(16,24,18,.5) 36%,rgba(16,24,18,0) 64%)}
.thh-hero.thh-left .thh-hero-copy{right:auto;left:var(--hc-side)}
.thh-hero.thh-left .ph-cap{left:auto;right:max(20px,4vw)}
.thh-hero .thw-crumbs,.thh-hero .thw-crumbs a{color:rgba(244,241,232,.75)}
.thh-hero .thw-fine{color:rgba(244,241,232,.7)}
.thx-helper{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 30px;width:min(var(--hc-max),calc(100% - 2*var(--hc-side)));margin:-30px auto 90px;padding:22px 26px;border:1px solid #cbd2c1;background:#e5e9db;color:#243b2d}
.thx-helper span{font-size:17px}
.thx-helper button{background:none;border:0;border-bottom:1px solid currentColor;padding:6px 0;font:600 13px/1 'DM Sans',sans-serif;color:inherit;cursor:pointer}
.thx-proof-facts{list-style:none;margin:26px 0;padding:0;display:flex;gap:34px;flex-wrap:wrap}
.thx-proof-facts li{display:grid;gap:4px;max-width:18ch;font-size:13px;line-height:1.4;color:#5d6656}
.thx-proof-facts b{font:400 clamp(36px,3.4vw,56px)/1 Georgia,serif;color:#243b2d}
.thh-steps{position:absolute;left:0;right:0;top:12px;display:flex;justify-content:space-between;list-style:none;margin:0;padding:0;font:600 10px/1 Manrope,'DM Sans',sans-serif;letter-spacing:.16em;text-transform:uppercase;color:rgba(241,239,228,.55)}
.thh-story-cap{position:absolute;right:var(--hc-side);top:24px;z-index:3}
.thh-story:not(.is-pinned) .thh-story-cap{display:none}
.thx-context.thx-context-merged{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:40px;padding:0;margin:10px 0 50px;background:none;min-height:0}
.thx-context-merged .thx-segments{display:grid;gap:8px;align-content:start}
.thx-context-merged .thx-segment-copy{padding:26px 28px;border:1px solid #cbd2c1;background:#f8f8f1}
.thx-context-merged .thx-segment-copy h3{font-size:clamp(24px,2vw,32px)}
.thw-photo-hero .thh-hero-copy{width:min(600px,88vw)}
.thw-var-photo{aspect-ratio:4/5;border-radius:3px}
.thw-var-photo img{height:100%}
.thw-toggle-sm{margin:0}
.thw-toggle-sm button{min-height:38px;padding:0 14px;font-size:12px}
.thw-cycle .thw-toggle-sm{border-color:rgba(233,239,224,.5)}
.thw-cycle .thw-toggle-sm button{color:#e9efe0}
.thw-cycle .thw-toggle-sm button.is-active{background:#e9efe0;color:#1a3025}
.thw-site-links{display:grid;gap:10px;margin-top:22px;justify-items:start}
@media(max-width:760px){
.thh-hero.thh-left picture img{object-position:55% 22%!important}
.thh-hero.thh-left::after{background:linear-gradient(180deg,rgba(16,24,18,.05) 20%,rgba(16,24,18,.85) 76%)}
.thh-hero.thh-left .thh-hero-copy{left:20px;right:20px}
.thw-photo-hero picture img{object-position:40% 30%!important}
.thx-helper{margin:-20px 20px 60px;width:auto}
.thx-context.thx-context-merged{grid-template-columns:1fr}
.thh-steps{display:none}}
/* ---------- TECHNOHORSE device card v4 ---------- */
.thp-full .thp-crumbs{font-size:13px;color:rgba(244,241,232,.75);margin-bottom:22px}
.thp-full .thp-crumbs a{color:inherit}
.thp-full .thh-hero-copy{width:min(620px,88vw)}
.thp-use-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:60px;align-items:center}
.thp-use-grid h2{margin:16px 0 18px}
.thp-use-grid p{line-height:1.7;max-width:56ch}
.thp-specs-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px}
.thp-specs-grid .spec-list{margin-top:18px}
.thp-links{display:grid;gap:10px;margin-top:22px;justify-items:start}
@media(max-width:760px){.thp-use-grid,.thp-specs-grid{grid-template-columns:1fr;gap:34px}.thp-full picture img{object-position:50% 30%!important}}
/* ---------- ZOVII v4 journey ---------- */
.zvh-hero{position:relative;height:calc(100svh - 104px);min-height:640px;color:#f6efe4;background:#2c201b}
.zvh-hero picture{position:absolute;inset:0}.zvh-hero picture img{width:100%;height:100%;object-fit:cover}
.zvh-hero::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(32,22,18,.8) 0%,rgba(32,22,18,.45) 38%,rgba(32,22,18,0) 64%),linear-gradient(0deg,rgba(32,22,18,.55),rgba(32,22,18,0) 35%)}
.zvh-copy{position:absolute;z-index:2;left:var(--hc-side);bottom:12svh;width:min(620px,88vw)}
.zvh-hero .zv-kicker{color:rgba(246,239,228,.8)}
.zvh-hero h1{font-size:clamp(48px,5.6vw,104px);margin:18px 0 22px;color:#f6efe4}
.zvh-hero h1 em{color:#e3c29f}
.zvh-hero .zv-lead{color:rgba(246,239,228,.9);max-width:40ch;margin-bottom:28px}
.zvh-hero .zv-crumbs,.zvh-hero .zv-crumbs a{color:rgba(246,239,228,.75)}
.zvh-look{background:none;border:0;border-bottom:1px solid currentColor;color:#f6efe4;padding:0;border-radius:0;cursor:pointer}
.zvh-foot{position:absolute;z-index:2;left:var(--hc-side);right:max(20px,4vw);bottom:22px;display:flex;justify-content:space-between;gap:20px;font:600 10px/1.4 Manrope,'DM Sans',sans-serif;letter-spacing:.16em;text-transform:uppercase;color:rgba(246,239,228,.7)}
.zvh-chip{display:inline-block;margin:0 0 26px;padding:7px 12px;border:1px solid rgba(246,239,228,.5);font-size:12px;letter-spacing:.06em}
.zv-route{background:#2c201b;color:#f1ebe2}
.zv-route .zv-kicker{color:#d8b48f}
.zv-route h2{font-size:clamp(40px,3.8vw,70px)}
.zv-route h2 em{color:#e3c29f}
.zv-route-num{font:inherit;font-variant-numeric:tabular-nums}
.zv-chip{margin:6px 0 0;display:inline-block;padding:5px 10px;border:1px solid rgba(241,235,226,.35);font-size:13px;color:#f1ebe2}
.zv-route .thh-frame figcaption span{color:#d8b48f}
.zv-route .thh-progress i{background:#d8b48f}
.zv-route .thh-outro small{display:block;margin-top:18px;font-size:11px;opacity:.6}
.zv-studio{padding:130px 0}
.zv-studio-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:6vw;align-items:start}
.zv-studio-figure{position:sticky;top:6vh}
.zv-studio h2{font-size:clamp(40px,3.9vw,74px);margin:18px 0 18px}
.zv-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:30px 0 22px;border-bottom:1px solid var(--line)}
.zv-tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:12px 14px 12px 0;margin-bottom:-1px;font:600 14px/1 'DM Sans',sans-serif;color:var(--muted);display:inline-flex;gap:8px;align-items:baseline}
.zv-tabs button span{font:400 12px/1 Georgia,serif;color:var(--accent-ink)}
.zv-tabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--ink)}
.zv-panel{min-height:200px}
.zv-panel .zv-parts{list-style:none;margin:0;padding:0}
.zv-panel .zvp-height{color:var(--ink)}
.zv-studio-cta{margin-top:28px}
.zv-finale .zv-steps{list-style:none;margin:40px 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.zv-finale .zv-steps li{border-top:1px solid rgba(241,235,226,.3);padding-top:18px}
.zv-finale .zv-steps span{font:400 14px/1 Georgia,serif;color:#d8b48f}
.zv-finale .zv-steps b{display:block;font:400 22px/1.25 Georgia,serif;margin:10px 0 8px}
.zv-finale .zv-steps p{margin:0;opacity:.8;line-height:1.6}
.zv-paka .zv-compare{padding-top:110px}
.zv-spec-kicker{display:block;margin-bottom:20px}
.zv-paka-detail{padding:100px 0 40px}
.zv-paka-detail h2,.zv-paka-wheels h2{font-size:clamp(40px,3.6vw,68px);margin:16px 0 0}
.zv-paka-wheels{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6vw;align-items:center;padding:80px 0 110px}
.zv-paka-wheels-ph{aspect-ratio:4/5;border-radius:3px}
.zv-wheel-rows{list-style:none;margin:28px 0 18px;padding:0;border-top:1px solid var(--line)}
.zv-wheel-rows li{display:grid;grid-template-columns:120px 1fr;gap:16px;align-items:baseline;padding:14px 0;border-bottom:1px solid var(--line)}
.zv-wheel-rows b{font:400 26px/1 Georgia,serif;color:var(--accent-ink)}
@media(max-width:760px){
.zvh-hero{height:auto;min-height:88svh}.zvh-hero::after{background:linear-gradient(180deg,rgba(32,22,18,.05) 25%,rgba(32,22,18,.88) 75%)}
.zvh-hero picture img{object-position:62% 45%!important}
.zvh-copy{left:20px;right:20px;width:auto;bottom:64px}.zvh-hero h1{font-size:clamp(40px,11vw,54px)}
.zvh-foot{flex-direction:column;gap:4px}
.zv-studio{padding:80px 0}.zv-studio-grid,.zv-paka-wheels{grid-template-columns:1fr}
.zv-studio-figure{position:sticky;top:0;z-index:2;background:var(--paper);padding:8px 0}
.zv-finale .zv-steps{grid-template-columns:1fr}}
/* ---------- quality-critic v4 fixes ---------- */
@media(max-width:760px){
.zv-studio-figure{position:relative;top:auto}
.zv-studio-figure .zv-drawing svg{max-height:46svh;width:auto;max-width:100%;margin:0 auto;display:block}
.thh-hero,.zvh-hero{display:flex;flex-direction:column;justify-content:flex-end;padding:110px 0 70px}
.thh-hero .thh-hero-copy,.zvh-copy{position:relative;left:auto;right:auto;bottom:auto;width:auto;margin:0 20px;z-index:2}
.zvh-foot{bottom:16px}}
@media(max-width:760px){.thh-story .thh-intro{padding-left:var(--hc-side);padding-right:var(--hc-side);box-sizing:border-box}.thh-final-copy{padding-left:var(--hc-side)!important;padding-right:var(--hc-side)!important}.zvc-open-head{padding-left:var(--hc-side);padding-right:var(--hc-side)}}

@media(max-width:760px){.zvc-open-head{padding-left:calc(var(--hc-side) - 20px);padding-right:calc(var(--hc-side) - 20px)}}

/* ===== Preview map v2 (.hmap): four columns, photo card per site, grouped links ===== */
.hmap-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(18px,2vw,32px);align-items:start}
.hmap-card{position:relative;display:block;overflow:hidden;border-radius:4px;color:#f3f4ec;text-decoration:none;isolation:isolate;aspect-ratio:4/5;margin-bottom:26px}
.hmap-card figure{position:absolute;inset:0;margin:0;z-index:-2}
.hmap-card img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.hmap-card::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(6,12,9,.35) 0%,rgba(6,12,9,0) 30%,rgba(6,12,9,.85) 100%)}
.hmap-card:hover img{transform:scale(1.05)}
.hmap-card:focus-visible{outline:2px solid #c6d6a8;outline-offset:4px}
.hmap-count{position:absolute;left:18px;top:16px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#e7ecdc}
.hmap-card b{position:absolute;left:18px;right:18px;bottom:44px;font-size:clamp(18px,1.5vw,24px);font-weight:600;letter-spacing:.02em}
.hmap-desc{position:absolute;left:18px;right:18px;bottom:18px;font-size:13px;line-height:1.4;color:#d3d9cf}
.hmap-group{margin-bottom:24px}
.hmap-group>span{display:block;margin-bottom:8px;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#9fae99}
.hmap-group ul{list-style:none;margin:0;padding:0;border-top:1px solid #ffffff1f}
.hmap-group li{margin:0;border-bottom:1px solid #ffffff1f}
.hmap-group a{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 0;font-size:15px;color:#eef1e6;text-decoration:none;transition:color .2s,padding .3s}
.hmap-group a::after{content:'↗';font-size:13px;opacity:0;transition:opacity .2s}
.hmap-group a:hover{color:#c6d6a8;padding-left:6px}.hmap-group a:hover::after{opacity:1}
.hmap-note{margin-top:20px;font-size:11px;color:#9fae99}
@media (max-width:1100px){.hmap-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.hmap-grid{grid-template-columns:1fr}.hmap-card{aspect-ratio:16/10}}