/* One photographic subject. Layers: word 0, product 3, copy 4, navigation 5,
   selection 6. The rail owns selection; the object's parent owns the journey. */
.imprint-journey{background:var(--paper);position:relative;isolation:isolate;overflow:clip}
.journey-stage{padding:90px 5vw;display:grid;grid-template-columns:1fr 1fr;gap:40px 5vw;align-items:center}
.journey-scenes{display:contents}
.journey-scene h2,.journey-scene h3{font-size:clamp(48px,6.8vw,104px);line-height:1.02;letter-spacing:-.065em}
.journey-scene h3 span{color:var(--accent)}
.journey-scene p{font-size:15px;line-height:1.85;margin-top:28px;max-width:350px}
.scene-idea{grid-column:1;grid-row:2}
.scene-mark{grid-column:1;grid-row:3}
.scene-family{grid-column:1;grid-row:4}
.journey-object{grid-column:2;grid-row:1/5;width:100%;position:relative;z-index:3}
.journey-object-inner{position:relative;isolation:isolate}
.journey-manipulation{position:relative;cursor:grab;touch-action:pan-y;outline-offset:6px}
.journey-manipulation.is-grabbed{cursor:grabbing}
.product-view-photo{position:absolute;inset:0;background-size:200% 200%;background-repeat:no-repeat;opacity:0;pointer-events:none}
.imprint-journey:not([data-color=ivory]) .product-view-photo{filter:url(#support-tint)}
.journey-print{pointer-events:none}
.view-controls{grid-column:1/-1;display:flex;align-items:center;justify-content:end;gap:8px;z-index:6;font-size:10px;color:var(--muted)}
.view-controls button{background:transparent;color:var(--ink);border:1px solid var(--line);width:36px;height:36px;font-size:17px;cursor:pointer}
.view-controls button:active{background:var(--surface)}
.view-controls button:disabled{opacity:.35;cursor:wait}
.view-caption{min-width:58px;text-align:center;color:var(--ink)}
#view-instructions{max-width:180px;line-height:1.5;margin-right:10px}
.is-directed .view-controls{position:absolute;bottom:24px;right:5%;max-width:45%}
.is-directed .journey-nav{pointer-events:none}
.journey-nav a{pointer-events:auto}
.journey-base{width:100%;height:auto;aspect-ratio:1;object-fit:contain;user-select:none}
.journey-print{position:absolute;inset:0;mix-blend-mode:normal}
.product-filter{position:absolute;pointer-events:none}
.campaign.is-cinematic{height:100svh;min-height:0;max-height:none}
@media(max-width:767px){
 .campaign.is-cinematic .campaign-media{inset:0;clip-path:inset(clamp(330px,52svh,460px) 6% 5% 6%)}
 .campaign.is-cinematic .campaign-arrival{display:block;left:6%;bottom:12%}
 .campaign.is-cinematic .campaign-arrival p{font-size:clamp(48px,12vw,82px)}
 .campaign.is-cinematic .campaign-arrival span{font-size:12px;margin-top:18px}
 .campaign.is-cinematic .campaign-content{padding-top:25px}
 .campaign.is-cinematic .eyebrow{margin-bottom:20px}
 .campaign.is-cinematic .hero-copy{margin:20px 0}
}
.journey-mark{position:absolute;left:23%;top:36%;width:36%;transform-origin:50% 50%}
.journey-mark img{width:100%;user-select:none}
.journey-mark>span{display:block;text-align:center;margin-top:6%;font-size:clamp(7px,.75vw,12px);font-weight:600;color:#0a37c8}
.journey-word,.journey-nav,.change-piece,.piece-caption{display:none}

/* The six semantic choices remain available without scroll animation. */
.product-picker{border:0;margin:0;padding:0;grid-column:1;grid-row:1;min-width:0;position:relative;z-index:6}
.product-picker legend{font-size:11px;line-height:1.5;color:var(--muted);padding:0;margin-bottom:14px}
.product-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.product-choices button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;min-height:64px;border:0;border-left:2px solid transparent;background:transparent;color:var(--muted);padding:5px 8px;font-size:11px;cursor:pointer;transition:background-color 160ms ease,color 160ms ease,border-color 160ms ease}
.product-choices img{display:block;width:52px;height:42px;object-fit:contain;opacity:.72;transform:scale(.9);transition:transform 200ms var(--ease-out),opacity 160ms ease;user-select:none}
.product-choices button[aria-pressed=true]{color:var(--ink);border-left-color:var(--accent);background:var(--surface)}
.product-choices button[aria-pressed=true] img{opacity:1;transform:rotate(-7deg) scale(1)}
.product-choices button:focus-visible{outline-offset:3px}
.product-picker[data-input=keyboard] .product-choices button,.product-picker[data-input=keyboard] .product-choices img{transition:none}
.picker-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.product-picker[aria-busy=true] legend{color:var(--accent)}
.product-picker[data-error] .picker-status{top:100%;left:0;width:200px;height:auto;clip-path:none;white-space:normal;font-size:11px;color:var(--ink);background:var(--paper);padding:8px;line-height:1.5}

.placement-control{border:0;padding:0;margin:27px 0 0;max-width:310px;min-width:0}
.placement-control legend{font-size:11px;color:var(--muted);margin-bottom:11px}
.placement-presets{display:flex;gap:8px}
.placement-presets button{font-size:12px;color:var(--ink);background:transparent;border:1px solid var(--line);min-height:42px;padding:9px 16px;transition:background-color 160ms ease,color 160ms ease}
.placement-presets button[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.placement-control label{display:flex;justify-content:space-between;align-items:center;font-size:11px;margin-top:19px}
.placement-control label span{font-size:21px}
.placement-control input{display:block;width:100%;accent-color:var(--accent);height:32px;cursor:ew-resize;margin:0}
.placement-control small{display:block;font-size:10px;line-height:1.6;color:var(--muted);max-width:290px;margin-top:9px}
.support-colors{display:flex;align-items:center;gap:7px;margin-bottom:16px;flex-wrap:wrap}
.support-colors button{display:grid;place-items:center;flex:none;width:34px;height:34px;border:1px solid transparent;padding:5px;background:transparent;color:var(--ink);font-size:10px;cursor:pointer}
.support-colors button[data-color=auto]{width:auto;min-width:43px;padding:5px 8px}
.support-colors button[aria-pressed=true]{border-color:var(--ink)}
.support-colors button span{display:block;width:21px;height:21px;border-radius:50%;box-shadow:inset 0 0 0 1px #0002}
.color-caption{font-size:10px;color:var(--muted);margin-left:5px}

/* Three reserved zones on desktop: editorial copy, vertical rail, main piece. */
.imprint-journey.is-directed .journey-stage{display:block;padding:0;height:100svh;min-height:0;position:relative;overflow:clip}
.is-directed .journey-word{display:block;position:absolute;left:0;top:36%;font-size:22vw;line-height:1;letter-spacing:-.075em;color:var(--ink);opacity:.04;white-space:nowrap;pointer-events:none;z-index:0}
.is-directed .journey-object{position:absolute;left:50%;top:50%;width:min(52vw,92svh);margin:0}
.is-directed .journey-scene{position:absolute;inset:0;padding:0;z-index:4;pointer-events:none}
.is-directed .journey-scene h2,.is-directed .journey-scene h3{position:absolute;margin:0}
.is-directed .scene-idea h2{left:5%;top:24%;font-size:8.2vw}
.is-directed .scene-idea p{position:absolute;left:5%;top:63%;margin:0}
.is-directed .product-picker{position:absolute;left:47%;top:50%;width:86px;transform:translateY(-50%)}
.is-directed .product-picker legend{text-align:center;width:100%;font-size:10px;margin-bottom:12px}
.is-directed .product-choices{grid-template-columns:1fr;gap:5px}
.is-directed .product-choices button{height:64px;min-height:64px;padding:4px 6px;gap:2px;font-size:10px;line-height:1.2}
.is-directed .piece-caption{display:block;position:absolute;left:58%;right:7%;top:24px;text-align:center;font-size:17px;letter-spacing:-.025em;z-index:4;margin:0;pointer-events:none}
.is-directed .change-piece{display:flex;position:absolute;right:5%;top:24px;z-index:6;align-items:center;gap:20px;background:none;color:var(--ink);border:0;border-bottom:1px solid var(--line);padding:8px 0;min-height:44px;font-size:12px;cursor:pointer}
.change-piece>span:last-child{color:var(--muted)}
.is-directed .scene-mark h3{left:57%;top:19%;font-size:7vw}
.is-directed .scene-mark>p{position:absolute;left:57%;top:45%;margin:0;font-size:13px}
.is-directed .placement-control{position:absolute;left:57%;top:57%;margin:0;width:31%;max-width:340px;pointer-events:auto}
.is-directed .scene-family h3{left:5%;top:24%;font-size:5.6vw}
.is-directed .scene-family p{position:absolute;left:5%;bottom:20%;font-size:13px}
.is-directed .scene-family .text-link{position:absolute;left:5%;bottom:12%;pointer-events:auto}
.is-directed .journey-nav{display:flex;position:absolute;left:5%;right:5%;bottom:24px;gap:35px;z-index:5;font-size:11px}
.journey-nav a{padding:10px 0;border-bottom:1px solid transparent;color:var(--muted);transition:color 160ms ease}
.journey-nav a[aria-current=step]{color:var(--ink);border-color:var(--ink)}
.journey-nav a:focus-visible{outline-offset:3px}

/* Existing gallery and other sections: intentionally unchanged. */
.product-story.product-cutout{width:38vw}
.product-cutout .product-image{background:var(--paper)}
.product-cutout .product-image img{object-fit:contain;padding:6%;object-position:center}
.product-story.cap-story{width:40vw}
.product-story.plate-story{width:34vw}
.cap-story .product-image{background:#bcc3cc}
:root[data-theme=dark] .cap-story .product-image{background:#414852}
.own-visual .fan-photo{object-fit:contain;padding:20px;background:var(--surface);border:1px solid var(--line)}
.closing-image img{object-position:center}
.material-section.is-staged .material-finished{display:block}
.material-section.is-staged .material-stage{height:100svh;min-height:0}
.motion-toggle{border:1px solid var(--line);background:transparent;color:var(--ink);font-size:11px;padding:10px 14px;min-height:40px}
.footer-preferences{display:flex;gap:10px;flex-wrap:wrap;justify-content:end}

@media(hover:hover) and (pointer:fine){
 .product-choices button:hover{color:var(--ink);background:var(--surface)}
 .product-choices button:hover img{opacity:1;transform:translateY(-2px) scale(1)}
 .placement-presets button:not([aria-pressed=true]):hover{background:var(--surface)}
 .journey-nav a:hover,.change-piece:hover>span{color:var(--ink)}
}
@media(min-width:1600px){.is-directed .scene-idea h2{font-size:140px}.is-directed .scene-mark h3{font-size:104px}.is-directed .scene-family h3{font-size:88px}}
@media(min-width:1024px) and (max-height:740px){
 .is-directed .product-choices{gap:2px}
 .is-directed .product-choices button{height:54px;min-height:54px}
 .is-directed .product-choices img{height:34px}
 .is-directed .scene-mark h3{font-size:6.4vw}
 .is-directed .scene-mark h3{top:13%;font-size:min(6.4vw,14svh)}
 .is-directed .scene-mark>p{top:43%;font-size:11px}
 .is-directed .placement-control{top:55%}
 .placement-control legend{margin-bottom:6px}
 .support-colors{margin-bottom:8px}
 .placement-control label{margin-top:6px}
 .placement-control small{margin-top:3px}
}
@media(min-width:1024px) and (max-height:619px){
 .is-directed .journey-object{width:min(52vw,72svh)}
 .campaign{min-height:0;height:calc(100svh - 78px);max-height:none}
 .campaign-content{padding-top:24px;padding-bottom:20px}
 .campaign .eyebrow{margin-bottom:18px}
 .campaign h1{font-size:clamp(64px,17svh,110px)}
 .campaign .hero-copy{margin:18px 0;font-size:12px}
 .campaign .button{padding:12px 20px}
 .is-directed .scene-idea h2{font-size:min(8.2vw,20svh)}
 .is-directed .product-choices button{height:49px;min-height:49px}
 .is-directed .product-choices img{height:29px}
 .is-directed .product-picker legend{margin-bottom:6px}
 .is-directed .scene-mark>p{display:none}
 .is-directed .placement-control{top:48%}
 .is-directed .journey-nav{bottom:12px}
 .collection.is-pinned .collection-inner{height:100svh;min-height:0;padding:22px 0 14px}
 .collection.is-pinned .collection-heading{padding-bottom:16px}
 .collection.is-pinned .collection-heading h2{font-size:32px}
 .collection.is-pinned .collection-heading p{margin-top:6px;font-size:11px}
 .collection.is-pinned .product-image{height:calc(100svh - 210px)}
 .collection.is-pinned .product-caption{padding:10px 0 5px}
 .collection.is-pinned .visual-note{padding-top:8px}
}
@media(max-width:1023px){.product-story.product-cutout{width:auto}.product-story.garment{grid-column:auto}}
@media(max-width:767px){
 .journey-stage{grid-template-columns:68px minmax(0,1fr);padding:64px 22px;gap:32px 20px}
 .journey-scene h2,.journey-scene h3{font-size:12vw}
 .journey-scene p{font-size:13px;margin-top:20px}
 .scene-idea{grid-column:1/-1;grid-row:1}
 .product-picker{grid-column:1;grid-row:2}
 .product-picker legend{font-size:10px}
 .product-choices{grid-template-columns:1fr;gap:3px}
 .product-choices button{min-height:48px;padding:3px;font-size:9px}
 .product-choices img{width:42px;height:32px}
 .journey-object{grid-column:2;grid-row:2}
 .scene-mark{grid-column:1/-1;grid-row:3}
 .scene-family{grid-column:1/-1;grid-row:4}
 .placement-control{max-width:100%}
 .footer-preferences{flex-direction:column;align-items:end;gap:8px}
 .motion-toggle{font-size:10px}
}

/* Same hierarchy in the small panel: heading above, rail left, one piece right. */
.imprint-journey.is-directed.is-compact .journey-stage{height:100svh;min-height:0;max-height:none}
.is-directed.is-compact .journey-object{width:min(66vw,52svh)}
.is-directed.is-compact .journey-word{top:45%;font-size:26vw}
.is-directed.is-compact .scene-idea h2{left:6%;top:7%;font-size:clamp(38px,10vw,68px);line-height:1.05}
.is-directed.is-compact .scene-idea p{left:6%;top:24%;font-size:12px;line-height:1.6;max-width:none}
.is-directed.is-compact .scene-idea p br{display:none}
.is-directed.is-compact .product-picker{left:6%;top:50%;width:64px;transform:translateY(-35%)}
.is-directed.is-compact .product-picker legend{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);margin:0}
.is-directed.is-compact .product-choices{gap:3px}
.is-directed.is-compact .product-choices button{height:clamp(44px,6svh,64px);min-height:44px;padding:3px 2px;gap:1px;font-size:9px}
.is-directed.is-compact .product-choices img{width:40px;height:clamp(28px,4svh,40px)}
.is-directed.is-compact .piece-caption{left:32%;right:6%;top:auto;bottom:12%;font-size:17px}
.is-directed.is-compact .change-piece{top:6px;right:6%;gap:12px;font-size:11px;min-height:38px}
.is-directed.is-compact .change-piece{left:6%;right:auto}
.is-directed.is-compact .change-piece .active-piece-name{display:none}
.is-directed.is-compact .view-controls{top:6px;bottom:auto;right:6%;max-width:none;gap:4px;font-size:9px}
.is-directed.is-compact .view-controls button{width:28px;height:28px;font-size:14px}
.is-directed.is-compact .view-caption{min-width:47px}
.is-directed.is-compact #view-instructions{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);margin:0}
.is-directed.is-compact .scene-mark h3{left:6%;top:16%;font-size:clamp(32px,9vw,62px);line-height:1.1}
.is-directed.is-compact .scene-mark h3 br{display:none}
.is-directed.is-compact .scene-mark h3 span{margin-left:.16em}
.is-directed.is-compact .scene-mark>p{left:6%;top:25%;font-size:11px;line-height:1.6}
.is-directed.is-compact .placement-control{left:6%;top:66%;width:88%;max-width:none;margin:0}
.is-directed.is-compact .placement-control legend{font-size:10px;margin-bottom:5px}
.is-directed.is-compact .placement-presets button{min-height:34px;padding:5px 12px;font-size:11px}
.is-directed.is-compact .placement-control label{margin-top:5px;font-size:10px}
.is-directed.is-compact .placement-control input{height:26px}
.is-directed.is-compact .placement-control small{font-size:9px;line-height:1.35;margin-top:2px;max-width:none}
.is-directed.is-compact .placement-control{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;top:65%}
.is-directed.is-compact .support-colors{grid-column:1/-1;margin:0;gap:5px}
.is-directed.is-compact .support-colors button{height:30px;width:30px;padding:4px}
.is-directed.is-compact .support-colors button[data-color=auto]{width:43px}
.is-directed.is-compact .placement-presets{gap:4px;align-items:center}
.is-directed.is-compact .placement-presets button{padding:5px 8px;font-size:10px;white-space:nowrap}
.is-directed.is-compact .position-control label{margin:0;font-size:9px}
.is-directed.is-compact .position-control label span{font-size:14px}
.is-directed.is-compact .position-control input{height:22px}
.is-directed.is-compact .placement-control small{grid-column:1/-1}
.is-directed.is-compact .scene-family h3{left:6%;top:16%;font-size:clamp(34px,9vw,64px)}
.is-directed.is-compact .scene-family p{left:6%;bottom:16%;font-size:11px;line-height:1.5;margin:0}
.is-directed.is-compact .scene-family .text-link{left:6%;bottom:10%;font-size:11px;max-width:88%;margin:0}
.is-directed.is-compact .journey-nav{left:6%;right:6%;bottom:6px;justify-content:space-between;gap:10px;font-size:9px}
@media(min-height:620px){.is-directed.is-compact .piece-caption{top:calc(60% + min(33vw,26svh) + 8px);bottom:auto}}
@media(max-height:619px){
 .is-directed.is-compact .scene-mark>p{display:none}
 .is-directed.is-compact .journey-object{width:min(66vw,50svh)}
 .is-directed.is-compact .scene-idea h2{font-size:clamp(35px,10vw,52px)}
 .is-directed.is-compact .scene-idea p{top:26%;font-size:11px}
 .is-directed.is-compact .placement-control{top:65%}
 .is-directed.is-compact .scene-mark h3{font-size:clamp(30px,8vw,48px)}
}
:root[data-motion=reduce]{scroll-behavior:auto}
:root[data-motion=reduce] *, :root[data-motion=reduce] *:before, :root[data-motion=reduce] *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
:root[data-motion=reduce] .collection-track{display:grid;width:auto;grid-template-columns:repeat(2,minmax(0,1fr))}
:root[data-motion=reduce] .product-story{width:auto}
:root[data-motion=reduce] .product-story.garment{grid-column:auto}
:root[data-motion=reduce] .material-finished{display:none}
@media(prefers-reduced-motion:reduce){.product-choices img{transition:none}}
@media(max-width:767px){:root[data-motion=reduce] .collection-track{display:flex}}
