/* Candidate overrides: geometry/content remain the same; a single SVG owns the line. */
.warm-home.connection-line .home-about::before{display:none}
.warm-home .connection-terminal{display:block;width:1px;height:48px;flex:none;margin:0 auto 4px;background:var(--ink)}
/* The moving SVG itself becomes the terminal; the marker only reserves its space. */
.warm-home.scroll-scenes .connection-terminal{background:transparent}
.warm-home.connection-line .warm-thread>path{stroke:url(#connection-color);stroke-width:1.05;stroke-dasharray:1 1;stroke-dashoffset:1;vector-effect:non-scaling-stroke}
.warm-home.connection-line .warm-thread>.connection-outline{stroke:rgba(21,61,131,.22);stroke-width:1.9}
.warm-home.connection-line.scroll-scenes .poster-line{visibility:hidden}
@media(prefers-reduced-motion:reduce){.warm-home.connection-line .connection-terminal{background:var(--ink)}.warm-home .experience-nav button>span{transition:none}.warm-home .hero-inside a{transition:none}}

/* Keyboard focus remains visible until focus leaves the control. */
.warm-home.scroll-scenes .hero-meta:focus-within{opacity:1!important}
.warm-home.scroll-scenes .hero-inside:focus-within{opacity:1!important}
.warm-home .hero-inside a:focus-visible{background:var(--ink)}
/* Static reading mode keeps both parts of the belief copy in document order. */
.warm-home:not(.scroll-scenes) .belief-pin{padding:72px 6%;gap:24px;height:auto}
.warm-home:not(.scroll-scenes) .belief-end{display:flex;position:relative;inset:auto;opacity:1;transform:none;color:var(--ink);margin-top:48px}
.warm-home:not(.scroll-scenes) .belief-end>span{color:var(--ink)}
/* Short portrait screens need more room for the unchanged service copy. */
@media(max-width:640px) and (max-height:700px) and (min-height:481px){
 .warm-home.scroll-scenes .experience-image{height:40%}
 .warm-home.scroll-scenes .experience-copy{top:44%}
 .warm-home.scroll-scenes .experience-copy h2{font-size:clamp(26px,8vw,36px);margin-block:8px}
}
/* On short landscape screens the service scene reads in two columns. */
@media(max-height:480px){
 .warm-home.scroll-scenes .experience-pin{min-height:0}
 .warm-home.scroll-scenes .experience-image{left:auto;right:0;top:0;width:48%;height:100%}
 .warm-home.scroll-scenes .experience-copy{left:6%;right:auto;top:42px;max-width:44%;transform:none;translate:none}
 .warm-home.scroll-scenes .experience-copy>span{font-size:8px}
 .warm-home.scroll-scenes .experience-copy h2{font-size:clamp(20px,3.5vw,30px);line-height:1.17;margin:5px 0}
 .warm-home.scroll-scenes .experience-copy p{font-size:11px;line-height:1.45;margin:0;max-width:100%}
 .warm-home.scroll-scenes .experience-copy a{min-height:44px;padding:5px 14px;margin-top:4px;font-size:11px}
 .warm-home.scroll-scenes .experience-heading{top:10px;color:var(--ink);text-shadow:none;font-size:10px}
 .warm-home.scroll-scenes .experience-nav{left:auto;right:4%;bottom:0}
 .warm-home.scroll-scenes .experience-word{display:none}
}

/* Scroll with the page's compositor instead of chasing it with a fixed overlay. */
.warm-home.connection-line .warm-thread{position:absolute;inset:0 auto auto 0;height:100svh;overflow:visible}
