.ambient-scene{position:absolute;inset:0;transform-origin:60% 55%;animation:courtyard-breathe 28s ease-in-out infinite alternate;animation-play-state:paused;will-change:transform}
.ambient-hero[data-motion=playing] .ambient-scene,.ambient-hero[data-motion=playing] .ambient-light{animation-play-state:running}
.ambient-scene .winter-hero-photo{object-position:50% center}
#courtyard-motion{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.ambient-light{position:absolute;inset:0;background:radial-gradient(ellipse at 88% 70%,#e8ad5222,transparent 55%);opacity:.35;animation:light-breathe 13s ease-in-out infinite alternate;animation-play-state:paused;pointer-events:none}
@keyframes courtyard-breathe{from{transform:scale(1.005) translateX(0)}to{transform:scale(1.045) translateX(-.35%)}}
@keyframes light-breathe{from{opacity:.25}to{opacity:.6}}
.ambient-hero .winter-hero-shade{background:linear-gradient(180deg,#1822213d,#14201c3d 45%,#0e191b4d)}
.ambient-hero .winter-hero-copy{padding-bottom:75px}
.ambient-hero h1{font-size:clamp(36px,3.7vw,57px);line-height:1.7;letter-spacing:.12em;margin:20px 0 12px}
.ambient-hero .winter-hero-en{font-size:21px}
.ambient-hero .winter-hero-lead{margin:23px 0 28px;font-size:12px;line-height:2.4}
.ambient-hero-links{display:flex;gap:28px;align-items:center}.ambient-tech-link{font-size:11px;border-bottom:1px solid #fff9;padding:12px 0;display:flex;gap:25px}.ambient-hero .winter-hero-cta{min-width:192px;gap:55px}
.motion-toggle,.film-motion-toggle{position:absolute;bottom:73px;right:5%;z-index:3;display:flex;gap:10px;align-items:center;color:white;background:#17221c30;backdrop-filter:blur(5px);border:1px solid #ffffff80;padding:10px 15px;min-height:44px;font-size:10px;letter-spacing:.07em}.motion-icon{font-size:12px;width:12px;text-align:center}.motion-toggle:hover,.film-motion-toggle:hover{background:#14211780}
.infrared-story{display:grid;grid-template-columns:1fr 1fr;gap:10%;max-width:1390px;margin:auto;padding:0 7% 100px}.infrared-heading{padding-top:30px}.infrared-heading .eyebrow{font-size:9px;color:#8c725e;letter-spacing:.2em}.infrared-heading h2{font-family:var(--serif);font-size:32px;line-height:1.9;margin:21px 0;letter-spacing:.06em}.infrared-heading>p:not(.eyebrow){font-size:12px;line-height:2.5;color:var(--muted)}.infrared-heading .winter-link{margin-top:23px}.infrared-facts article{border-top:1px solid var(--line);padding:25px 0}.infrared-facts article:last-child{padding-bottom:0}.infrared-facts span{font-size:9px;letter-spacing:.16em;color:#8c725e}.infrared-facts h3{font-family:var(--serif);font-size:20px;font-weight:400;margin:12px 0}.infrared-facts p{font-size:12px;line-height:2.3;color:var(--muted)}
.winter-film>.ambient-film-preview{width:100%;height:100%;object-fit:cover;filter:brightness(.57);object-position:center 45%}.winter-film>.film-motion-toggle{inset:auto 5% 25px auto;z-index:2;font-size:10px}.winter-film>div{pointer-events:none}.winter-film>div button{pointer-events:auto}
@media(max-width:1000px){.infrared-story{gap:7%;padding-left:6%;padding-right:6%}.infrared-heading h2{font-size:28px}}
@media(max-width:720px){.ambient-scene{transform-origin:78% 60%}.ambient-scene .winter-hero-photo{object-position:78% center}.ambient-hero .winter-hero-copy{padding:20px 18px 105px}.ambient-hero h1{font-size:29px;line-height:1.9;letter-spacing:.045em;margin:20px 0 10px}.ambient-hero .winter-hero-en{font-size:18px}.ambient-hero .winter-hero-lead{font-size:10px;letter-spacing:.025em;margin:22px 0 24px}.ambient-hero-links{flex-direction:column;gap:12px}.ambient-hero .winter-hero-cta{min-width:215px;font-size:11px;padding:13px 22px}.ambient-tech-link{font-size:10px;min-height:40px;padding:9px 0}.ambient-hero .winter-hero-copy>.eyebrow{font-size:8px;letter-spacing:.13em}.motion-toggle{bottom:68px;right:7%;font-size:9px;padding:8px 12px}.ambient-season{font-size:8px}.infrared-story{grid-template-columns:1fr;padding:0 7% 65px;gap:35px}.infrared-heading{padding:0 5px}.infrared-heading h2{font-size:27px}.infrared-heading>p:not(.eyebrow){font-size:11px}.infrared-facts article{padding:22px 0}.infrared-facts h3{font-size:20px}.infrared-facts p{font-size:11px}.winter-film>.ambient-film-preview{object-position:61% center}.winter-film>.film-motion-toggle{font-size:9px;right:7%;bottom:20px}}
@media(max-width:360px){.ambient-hero h1{font-size:clamp(21px,6.6vw,24px)}.ambient-hero .winter-hero-lead{font-size:9px}.ambient-hero .winter-hero-copy{padding-bottom:90px}.ambient-hero{min-height:650px}}
.first-visual .winter-hero-copy{padding:30px 20px 60px}
.first-visual h1{font-size:clamp(38px,4.6vw,72px);letter-spacing:.16em;line-height:1.6;margin:25px 0 7px}
.first-visual .winter-hero-en{font-size:22px}
.first-visual .winter-hero-lead{margin:28px 0 27px;line-height:2.35;letter-spacing:.12em}
.first-visual .winter-hero-shade{background:linear-gradient(180deg,#101a1c19,#15202014 38%,#12181769),linear-gradient(90deg,#131c1e18,#10181922 50%,transparent)}
.first-visual .winter-hero-cta{min-width:210px;gap:70px;padding:13px 23px}
@media(max-width:720px){.first-visual .ambient-scene{transform-origin:70% 60%}.first-visual .winter-hero-photo{object-position:70% center}.first-visual .winter-hero-copy{padding:30px 20px 75px}.first-visual h1{font-size:34px;letter-spacing:.07em;margin:23px 0 8px}.first-visual .winter-hero-en{font-size:19px}.first-visual .winter-hero-lead{font-size:11px;letter-spacing:.04em;margin:28px 0}.first-visual .winter-hero-cta{min-width:220px;padding:14px 23px}}
@media(max-width:360px){.first-visual h1{font-size:29px}.first-visual .winter-hero-lead{font-size:10px}}
/* Full-bleed framing: preserve the lower product area as the viewport changes. */
.first-visual{--hero-header-height:130px;--scene-position-x:50%;--scene-position-y:100%;height:calc(100svh - var(--hero-header-height));height:calc(100dvh - var(--hero-header-height));min-height:0;max-height:none;display:block;background:#242725}
.first-visual .ambient-scene{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;transform-origin:var(--scene-position-x) bottom;animation-name:courtyard-responsive}
.first-visual .winter-hero-photo{object-fit:cover;object-position:var(--scene-position-x) var(--scene-position-y)}
@keyframes courtyard-responsive{from{transform:scale(1)}to{transform:scale(1.012)}}
.first-visual .winter-hero-copy{position:absolute;inset:0 0 auto;height:var(--hero-copy-height,65%);padding:12px 24px 0}
.first-visual h1{font-size:clamp(32px,4vw,64px);margin:15px 0 5px}
.first-visual .winter-hero-lead{margin:18px 0}
.first-visual .winter-hero-shade{display:block;background:linear-gradient(180deg,#101a1c30,transparent 65%,#12181724)}
.first-visual .motion-toggle{bottom:18px;right:3%;background:#17221c70}
.first-visual .winter-hero-bottom{position:absolute;bottom:20px;left:3%;right:20%;margin:0;padding:0;min-height:0}
.first-visual .ambient-season{display:none}
@media(min-width:721px) and (max-height:760px){
 .first-visual h1{font-size:clamp(28px,3.3vw,44px);line-height:1.4;margin:8px 0 3px}
 .first-visual .winter-hero-en{font-size:18px}
 .first-visual .winter-hero-lead{font-size:11px;line-height:1.9;margin:10px 0}
 .first-visual .winter-hero-cta{padding:10px 20px;min-height:44px}
}
@media(min-width:721px) and (max-width:1000px){.first-visual{--hero-header-height:120px}}
@media(max-width:720px){
 .first-visual{--hero-header-height:108px;--scene-position-x:44%}
 .first-visual .winter-hero-copy{padding:10px 18px 0}
 .first-visual h1{font-size:clamp(26px,7vw,34px);line-height:1.5;margin:12px 0 5px;letter-spacing:.06em}
 .first-visual .winter-hero-en{font-size:17px}
 .first-visual .winter-hero-lead{font-size:10px;line-height:2;margin:16px 0}
 .first-visual .winter-hero-cta{min-width:200px;min-height:44px;padding:10px 20px}
 .first-visual .winter-hero-shade{background:linear-gradient(180deg,#14201c6b,transparent 70%,#1218171a)}
 .first-visual .winter-hero-bottom{bottom:18px;left:20px;right:auto}
 .first-visual .winter-hero-bottom a{order:0}
 .first-visual .motion-toggle{bottom:14px;right:20px;min-height:40px;padding:8px 10px}
}
@media(max-height:600px){
 .first-visual .winter-hero-copy{padding-top:6px}
 .first-visual .winter-hero-copy>.eyebrow{font-size:8px}
 .first-visual h1{font-size:28px;line-height:1.3;margin:8px 0 4px}
 .first-visual .winter-hero-en{font-size:16px}
 .first-visual .winter-hero-lead{display:none}
 .first-visual .ambient-hero-links{margin-top:15px}
 .first-visual .winter-hero-cta{min-height:44px;padding:8px 20px}
}
/* Automatic playback also has a calm mode: no camera zoom, gentler snowfall. */
@media(prefers-reduced-motion:reduce){.ambient-hero .ambient-scene{animation:none!important;transform:none!important}.ambient-hero .ambient-light{animation:light-breathe 20s ease-in-out infinite alternate!important;animation-play-state:paused!important}.ambient-hero[data-motion=playing] .ambient-light{animation-play-state:running!important}}


/* The camera wrapper moves the image and registered visual effects together. */
.first-visual .scene-perspective{position:absolute;inset:0;transform-origin:50% 65%;will-change:transform;pointer-events:none}
.first-visual{touch-action:pan-y pinch-zoom}
.first-visual .winter-hero-copy,.first-visual .winter-hero-shade{pointer-events:none}
.first-visual .winter-hero-copy a{pointer-events:auto}
.view-toggle{position:absolute;z-index:3;right:calc(3% + 144px);bottom:18px;min-height:44px;padding:10px 15px;border:1px solid #ffffff80;background:#17221c70;backdrop-filter:blur(5px);color:#fff;font-size:10px;letter-spacing:.07em}
.view-toggle:hover,.view-toggle[aria-pressed=true]{background:#3b413bb3;border-color:#e8d3a9}
.view-status{position:absolute;z-index:3;bottom:70px;right:3%;max-width:280px;margin:0;color:#fff;font-size:10px;line-height:1.8;text-align:right;text-shadow:0 1px 8px #18201c;pointer-events:none}
.view-status:empty{display:none}
.first-visual .winter-hero-bottom{right:32%}
.view-toggle:focus-visible,.motion-toggle:focus-visible{outline:2px solid #fff;outline-offset:4px}
@media(max-width:720px){
 .view-toggle{left:20px;right:auto;bottom:14px;font-size:9px;padding:8px 10px;min-height:44px}
 .first-visual .motion-toggle{min-height:44px}
 .first-visual .winter-hero-bottom{display:none}
 .view-status{bottom:65px;left:20px;right:20px;max-width:none;text-align:center;font-size:9px}
}

/* Optional heat-field study; the accepted soft-light scene remains the default. */
.heat-control{position:absolute;z-index:3;top:24px;right:3%;text-align:right;color:#fff}
.heat-toggle{display:flex;align-items:center;gap:11px;margin-left:auto;padding:9px 15px;min-height:44px;border:1px solid #ffffff60;background:#17221c60;backdrop-filter:blur(9px);color:inherit;font-size:10px;letter-spacing:.08em}
.heat-toggle svg{width:24px;height:24px;fill:none;stroke:#eac99a;stroke-width:1}
.heat-toggle[aria-pressed=true]{border-color:#dcb887a6;background:#34271e70}
.heat-toggle:focus-visible{outline:2px solid white;outline-offset:4px}
.heat-caption{display:none;font-size:8px;letter-spacing:.03em;margin-top:7px;text-shadow:0 1px 6px #111}
[data-heat=volume] .heat-caption{display:block}
@media(max-width:720px){.heat-control{top:15px;right:20px}.heat-toggle{font-size:9px;padding:7px 10px;gap:8px}.heat-caption{font-size:7px}}

/* Scroll narrative: retained living room -> unobstructed mat -> broad heat field. */
.mat-reveal-photo{opacity:var(--table-reveal,0)}
.has-heat-story{--story-header:130px;--story-preview:30px}
.has-heat-story .preview{position:sticky;top:0;z-index:22}
.has-heat-story .header{position:sticky;top:var(--story-preview);z-index:21}
.heat-story.reveal-ready{height:calc(230svh - var(--story-header));position:relative}
.reveal-ready .first-visual{position:sticky;top:var(--story-header);height:calc(100dvh - var(--story-header))}
.reveal-ready .winter-hero-copy{opacity:var(--intro-opacity,1)}
.reveal-copy{position:absolute;top:17%;left:8%;color:#fff;opacity:var(--reveal-copy-opacity,0);pointer-events:none;text-shadow:0 2px 22px #17222070}
.reveal-copy .eyebrow{color:#fff;font-size:9px;letter-spacing:.2em}
.reveal-copy h2{font-family:var(--serif);font-size:clamp(28px,3vw,46px);line-height:1.8;letter-spacing:.09em;margin:18px 0}
.reveal-copy>p:last-child{font-size:12px}
.heat-scroll-link{position:absolute;z-index:3;bottom:24px;left:50%;transform:translateX(-50%);margin:0;border:0;background:transparent;color:white;font-size:10px;letter-spacing:.09em;white-space:nowrap;text-shadow:0 1px 8px #18201c;pointer-events:none}
.heat-scroll-link span{margin-left:14px;display:inline-block}
.reveal-ready .winter-hero-bottom a{display:none}
.story-progress{position:absolute;bottom:0;left:0;right:0;height:2px;pointer-events:none}
.story-progress i{display:block;height:100%;background:#e5bb88;transform:scaleX(var(--story-progress,0));transform-origin:left}
@media(max-width:1000px){.has-heat-story{--story-header:120px}.heat-scroll-link{font-size:9px;left:43%}}
@media(max-width:720px){
 .has-heat-story{--story-header:108px}
 .heat-story.reveal-ready{height:calc(240svh - var(--story-header))}
 .reveal-copy{top:23%;left:24px;right:24px;text-align:center}
 .reveal-copy h2{font-size:27px;line-height:1.8;margin:15px 0}.reveal-copy>p:last-child{font-size:10px}
 .heat-scroll-link{left:50%;bottom:71px;font-size:8px;opacity:var(--intro-opacity,1)}
 .view-status{bottom:92px}
}
@media(max-height:600px){.reveal-copy{top:15%}.reveal-copy h2{font-size:24px;line-height:1.5;margin:10px 0}.reveal-copy>p:last-child{display:none}}
.heat-toggle[hidden],.heat-scroll-link[hidden]{display:none!important}
/* 2026-11-08 final: on phones the hero keeps the small-viewport height, so collapsing the address bar never re-lays out the
   scene (that relayout was the hitch at the start of the scroll); the strip under the pinned hero shares its ground.
   The reveal photo sits on its own layer, so the crossfade is composited instead of repainted. */
@media(max-width:760px){
 .first-visual{height:calc(100svh - var(--hero-header-height))}
 .reveal-ready .first-visual{height:calc(100svh - var(--story-header))}
 .heat-story{background:#242725}
}
.mat-reveal-photo{will-change:opacity}
.first-visual .winter-hero-photo{transform:translateZ(0)}
