/* Full-bleed photographic journey. Uses canonical site palette; image colors stay natural. */
.image-journey{--progress:0;--door-open:0;--server-power:0;position:relative;background:var(--im-bg);height:auto}
.image-journey .journey-hero{position:relative;isolation:isolate;overflow:hidden;background:var(--im-bg);min-height:600px}
.image-journey.journey-enabled{height:750svh}
.journey-enabled .journey-hero{position:sticky;top:var(--im-header-height);height:calc(100svh - var(--im-header-height));min-height:0}
.journey-art,.journey-scene,.journey-shade{position:absolute;inset:0;pointer-events:none}
.journey-art{z-index:0;overflow:hidden}
.journey-scene{opacity:0;overflow:hidden}
.journey-scene:first-child{opacity:1}
.journey-plane{position:absolute;width:100%;height:100%;will-change:transform}
.journey-plane>img,.door-window,.door-leaf,.server-leds{position:absolute;inset:0;width:100%;height:100%;max-width:none}
.journey-plane img{object-fit:fill;display:block}
.journey-shade{z-index:1;background:linear-gradient(90deg,#101111de 0%,#101111ad 21%,#10111145 44%,transparent 68%),linear-gradient(0deg,#101111dd,transparent 24%)}
.journey-narrative{position:relative;z-index:2;padding:90px max(6vw,24px) 110px}
.journey-copy{max-width:520px;margin:30px 0 70px}
.journey-copy h1,.journey-copy h2{font-size:clamp(42px,4.8vw,76px);line-height:1.04;letter-spacing:-.06em}
.journey-copy em{color:var(--im-accent-soft)}
.journey-copy .eyebrow{font-size:9px;letter-spacing:.16em;margin-bottom:22px;color:var(--im-text)}
.journey-copy .hero-intro{max-width:380px;font-size:14px;line-height:1.75;margin:24px 0 0;color:var(--im-text)}
.journey-copy .tech-labels{margin:22px 0;max-width:430px}
.journey-copy .button{font-size:13px;padding:14px 19px;gap:20px}
.journey-enabled .journey-narrative{position:absolute;inset:80px auto 125px max(6vw,24px);padding:0;display:grid;align-items:center;width:min(39vw,520px)}
.journey-enabled .journey-copy{grid-area:1/1;margin:0;max-height:100%;overflow:auto;scrollbar-width:thin;scrollbar-color:var(--im-border) transparent}
.journey-enabled .journey-copy:not(:first-child){opacity:0;visibility:hidden}
.journey-pause,.journey-skip{position:absolute;top:24px;z-index:4;color:var(--im-text);font:inherit;font-size:10px;border:1px solid #ffffff45;border-radius:var(--im-radius-control);background:#101111a6;padding:10px 14px;cursor:pointer;backdrop-filter:blur(8px)}
.journey-pause{left:max(6vw,24px)}
.journey-pause[hidden]{display:none}
.journey-skip{right:max(4vw,24px)}
.journey-skip span{margin-left:20px}
.journey-pause:focus-visible,.journey-stops button:focus-visible{outline:2px solid var(--im-accent);outline-offset:5px}
.journey-bottom{position:absolute;left:max(6vw,24px);right:max(4vw,24px);bottom:32px;z-index:4;display:flex;align-items:flex-end;justify-content:space-between;gap:24px}
.journey-stops{display:flex;gap:28px}
.journey-stops button{background:transparent;color:var(--im-text-muted);border:0;border-top:1px solid #ffffff55;padding:13px 0 0;text-align:left;font:inherit;font-size:12px;min-width:110px;cursor:pointer}
.journey-stops button>span{display:block;font-size:9px;letter-spacing:.1em;margin-bottom:7px}
.journey-stops button[aria-current]{border-color:var(--im-accent-soft);color:var(--im-accent-soft)}
.journey-position{display:flex;flex-direction:column;gap:8px;text-align:right;font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:var(--im-text-muted)}
.journey-scene-label{color:var(--im-text);font-size:10px}
.journey-progress{position:absolute;bottom:0;left:0;right:0;height:2px;background:#ffffff20;z-index:4}
.journey-progress>span{display:block;height:100%;background:var(--im-accent-soft);transform-origin:left;transform:scaleX(var(--progress))}
/* Door panels are exact crops from the same facade photograph, not replacement frames. */
.door-frame{clip-path:polygon(evenodd,0 0,100% 0,100% 100%,0 100%,0 0,57.2% 41.5%,77.1% 41.5%,77.1% 73.5%,57.2% 73.5%,57.2% 41.5%)}
.door-window{clip-path:inset(41.5% 22.9% 26.5% 57.2%);overflow:hidden}
.door-leaf-left{clip-path:inset(41.5% 33.35% 26.5% 57.2%);transform:translateX(calc(var(--door-open) * -9.55%))}
.door-leaf-right{clip-path:inset(41.5% 22.9% 26.5% 66.65%);transform:translateX(calc(var(--door-open) * 10.55%))}
.server-leds{pointer-events:none}
.server-led{position:absolute;display:block;width:.36%;aspect-ratio:1;border-radius:50%;background:#8dfcab;box-shadow:0 0 3px #adffbf,0 0 9px #38e966,0 0 20px #38e96680;transform:translate(-50%,-50%);opacity:0}
/* No-JS / reduced-motion: readable narrative, still house, no frozen inaccessible slides. */
.image-journey:not(.journey-enabled) .journey-copy{opacity:1!important;visibility:visible!important;transform:none!important}
.image-journey:not(.journey-enabled) .journey-scene:not(:first-child){display:none}
.image-journey:not(.journey-enabled) .journey-plane{inset:0!important;width:100%!important;height:100%!important;transform:none!important}
.image-journey:not(.journey-enabled) .journey-plane img{object-fit:cover;object-position:70% center}
.image-journey:not(.journey-enabled) .journey-shade{background:#101111b8}
.image-journey:not(.journey-enabled) .journey-bottom,.image-journey:not(.journey-enabled) .journey-progress{display:none}
@media(max-width:800px){
 .image-journey.journey-enabled{height:680svh}
 .journey-enabled .journey-narrative{inset:76px 24px 122px;width:auto;align-items:start}
 .journey-copy{max-width:380px}
 .journey-copy h1,.journey-copy h2{font-size:clamp(34px,8.5vw,56px)}
 .journey-copy .hero-intro{font-size:12px;line-height:1.65;max-width:290px;margin-top:17px}
 .journey-copy .eyebrow{font-size:7px;margin-bottom:16px}
 .journey-copy .tech-labels{margin:16px 0}
 .journey-copy .tech-labels li{font-size:7px}
 .journey-copy .button{padding:11px 14px;font-size:11px}
 .journey-shade{background:linear-gradient(180deg,#101111a6 0%,#10111169 30%,transparent 67%,#101111e8 100%),linear-gradient(90deg,#10111180,transparent 85%)}
 .journey-bottom{left:24px;right:24px;bottom:22px;display:block}
 .journey-stops{gap:16px}
 .journey-stops button{min-width:0;flex:1;font-size:10px}
 .journey-position{margin-top:16px;flex-direction:row;justify-content:space-between;gap:12px;text-align:left;font-size:6px}
 .journey-scene-label{font-size:7px;max-width:55%}
 .journey-pause,.journey-skip{top:18px;font-size:9px;padding:8px 10px}
 .journey-narrative{padding-inline:24px}
}
@media(max-height:650px){
 .journey-enabled .journey-narrative{top:62px;bottom:105px}
 .journey-copy h1,.journey-copy h2{font-size:clamp(30px,6svh,48px)}
 .journey-copy .hero-intro{font-size:12px;line-height:1.5;margin-top:12px}
 .journey-copy .eyebrow{margin-bottom:12px}
 .journey-bottom{bottom:18px}
}

/* Exterior scales past the viewer; the clear interior remains sharp behind it. */
.door-shell,.door-shell>.door-frame{position:absolute;inset:0;width:100%;height:100%;max-width:none}
.door-shell{transform-origin:67.15% 57.5%;will-change:transform}
