/* Editorial controls: a photographic contact strip and a single print panel.
   Existing Manrope / blue / paper palette, native elements and GSAP retained. */
.surface-print{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.surface-print[hidden],.journey-mark[hidden]{display:none}
.product-view-photo{filter:url(#support-tint)}
.composition{padding-top:64px}
.button{position:relative;border-radius:3px;padding:17px 23px;min-height:56px;gap:44px;overflow:hidden;isolation:isolate;transition:color 200ms,background-color 200ms,transform 160ms var(--ease-out)}
.button>span{background:none;font-size:25px;font-weight:400;transition:transform 200ms var(--ease-out)}
.button:active{transform:scale(.97)}
.masthead .nav-cta{margin:0;padding:8px 0;min-height:44px;gap:24px}
.text-link{transition:color 180ms,border-color 180ms}
.text-link:active{opacity:.65}
.footer-preferences{gap:20px;padding:0;border:0;align-items:center}
.motion-toggle,.theme-toggle{border:0;border-bottom:1px solid var(--line);border-radius:0;padding:10px 0;background:none;min-height:44px;transition:color 180ms,border-color 180ms}
.piece-caption small{display:block;margin-top:7px;font-size:10px;letter-spacing:0;color:var(--muted)}
/* The photographs themselves are the choices. No individual card containers. */
.product-choices{position:relative;isolation:isolate;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.product-choices:before{content:'';position:absolute;left:0;top:0;width:var(--choice-w,80px);height:2px;background:var(--accent);transform:translate(var(--choice-x,0px),calc(var(--choice-y,0px) + var(--choice-h,80px)));transition:transform 250ms var(--ease-out);pointer-events:none}
.product-choices button,.is-directed .product-choices button{border:0;border-radius:0;background:none!important;padding:8px 1px;position:relative;min-height:64px;gap:0}
.product-choices button>span{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}
.product-choices img,.is-directed .product-choices img{width:100%;height:100%;max-height:none;object-fit:contain;opacity:.55;transform:scale(.86);transition:transform 250ms var(--ease-out),opacity 200ms}
.product-choices button[aria-pressed=true] img{opacity:1;transform:translateY(-7px) scale(1.05)}
.product-choices button:active img{transform:scale(.96)}
.product-picker[data-input=keyboard] .product-choices:before{transition:none}
.product-picker[aria-busy=true] .product-choices{opacity:1}
.is-directed .product-picker{left:5%;top:auto;bottom:16%;width:43%;max-width:640px;transform:none}
.is-directed .product-picker legend{text-align:left;font-size:12px;margin-bottom:16px;color:var(--muted)}
.is-directed .product-choices{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.is-directed .product-choices button{height:clamp(70px,7.5vw,115px);min-height:0}
.is-directed .scene-idea p{top:57%}
/* One alignment grid for all settings, including direct face selection. */
.placement-control{border-top:1px solid var(--line);padding:16px 0 0;max-width:420px}
.placement-control legend{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.control-label{color:var(--muted);font-size:11px;flex:none;width:75px}
.face-row{display:flex;align-items:center;gap:14px}
.face-row .view-caption,#view-instructions{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);margin:0}
.placement-control .view-controls,.is-directed .placement-control .view-controls,.is-directed.is-compact .placement-control .view-controls{position:static;display:flex;flex:1;justify-content:flex-start;max-width:none;gap:18px;background:none;padding:0;border:0;border-radius:0;box-shadow:none}
.placement-control .view-controls button,.is-directed.is-compact .placement-control .view-controls button{position:relative;width:auto;min-width:0;height:44px;padding:0;border:0;background:none;border-radius:0;white-space:nowrap;font-size:11px;color:var(--muted);transition:color 180ms}
.view-controls button:after,.placement-presets button:after{content:'';position:absolute;left:0;right:0;bottom:3px;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform 200ms var(--ease-out)}
.placement-control .view-controls button[aria-pressed=true],.placement-presets button[aria-pressed=true]{color:var(--ink)}
.view-controls button[aria-pressed=true]:after,.placement-presets button[aria-pressed=true]:after{transform:scaleX(1)}
.support-colors{display:flex;align-items:center;gap:10px;margin:8px 0;flex-wrap:nowrap;min-height:44px}
.support-colors .control-label{margin-right:4px}
.support-colors button{width:32px;height:38px;padding:5px;border:0;border-radius:0;position:relative;background:none;transition:transform 160ms}
.support-colors button span{width:22px;height:22px;border-radius:50%;box-shadow:0 0 0 1px var(--line);transition:transform 160ms}
.support-colors button[aria-pressed=true] span{outline:1px solid var(--ink);outline-offset:4px}
.support-colors button[data-color=auto]{width:auto;min-width:34px;padding:0;margin-right:5px;color:var(--muted);font-size:11px}
.support-colors button[data-color=auto][aria-pressed=true]{color:var(--ink);text-decoration:underline;text-underline-offset:6px}
.support-colors button:active{transform:scale(.9)}
.color-caption{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.placement-presets{display:flex;align-items:center;gap:22px;width:100%;padding:0;border:0;border-radius:0;background:none}
.placement-presets .control-label{margin-right:-8px}
.placement-presets button,.is-directed.is-compact .placement-presets button{position:relative;min-height:44px;padding:0;border:0;border-radius:0;background:none!important;color:var(--muted);font-size:11px;transition:color 180ms}
.position-control{display:grid;grid-template-columns:75px 1fr;gap:14px;align-items:center;margin-top:10px}
.placement-control .position-control label{margin:0;color:var(--muted);font-size:11px;line-height:1.5}
.position-control label span{display:none}
.placement-control input{appearance:none;-webkit-appearance:none;width:100%;height:44px;background:transparent;margin:0}
.placement-control input::-webkit-slider-runnable-track{height:2px;background:var(--line)}
.placement-control input::-webkit-slider-thumb{appearance:none;width:12px;height:12px;margin-top:-5px;border-radius:50%;background:var(--ink);box-shadow:0 0 0 4px var(--paper);transition:transform 160ms}
.placement-control input::-moz-range-track{height:2px;background:var(--line)}
.placement-control input::-moz-range-thumb{width:12px;height:12px;border:0;border-radius:50%;background:var(--ink)}
.placement-control input:active::-webkit-slider-thumb{transform:scale(1.3)}
.placement-control small{font-size:10px;line-height:1.6;max-width:370px;margin:15px 0 0;color:var(--muted)}
.is-directed .placement-control{left:57%;top:55%;width:36%;max-width:480px}
.is-directed .scene-mark h3{top:14%;font-size:6.6vw}
.is-directed .scene-mark>p{top:42%}
.journey-nav a{border:0;position:relative;padding:12px 0}
.journey-nav a:after{content:'';position:absolute;bottom:5px;left:0;right:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform 200ms var(--ease-out)}
.journey-nav a[aria-current=step]:after{transform:scaleX(1)}
@media(hover:hover) and (pointer:fine){
 .button:hover{background:var(--accent);color:#fff}
 .button:hover>span{transform:translate(4px,-4px)}
 .text-link:hover,.motion-toggle:hover,.theme-toggle:hover{color:var(--accent);border-color:var(--accent)}
 .product-choices button:not([aria-pressed=true]):hover img{opacity:1;transform:translateY(-5px) scale(1)}
 .placement-control .view-controls button:hover,.placement-presets button:hover{color:var(--ink)}
 .view-controls button:hover:after,.placement-presets button:hover:after{transform:scaleX(1)}
 .support-colors button:hover span{transform:scale(1.12)}
 .journey-nav a:hover:after{transform:scaleX(1)}
 .faq summary:hover{color:var(--accent)}
}
@media(min-width:1024px) and (max-height:740px){
 .is-directed .placement-control{top:51%;padding-top:7px}
 .is-directed .scene-mark>p{top:39%}
 .placement-control small{margin-top:5px}
 .support-colors{margin:3px 0}
 .position-control{margin-top:2px}
 .is-directed .scene-idea p{top:54%}
 .is-directed .product-picker{bottom:15%}
}
@media(max-width:1023px){
 .is-directed.is-compact .product-picker{left:6%;top:auto;bottom:14%;width:88%;max-width:none;transform:none}
 .is-directed.is-compact .product-picker legend{position:static;width:auto;height:auto;clip-path:none;margin:0 0 6px;font-size:10px}
 .is-directed.is-compact .product-choices{grid-template-columns:repeat(6,minmax(0,1fr));gap:7px}
 .is-directed.is-compact .product-choices button{height:clamp(48px,12vw,80px);min-height:44px;padding:3px}
 .is-directed.is-compact .product-choices img{width:100%;height:100%;max-height:none}
 .is-directed.is-compact .piece-caption{left:6%;right:auto;top:35%;bottom:auto;text-align:left;font-size:17px}
 .is-directed.is-compact .piece-caption small{max-width:85px;line-height:1.5;font-size:9px}
 .is-directed.is-compact .placement-control{display:block;left:6%;width:88%;max-width:none;top:62%;padding-top:4px}
 .is-directed.is-compact .scene-mark h3{top:9%;font-size:clamp(32px,9vw,62px)}
 .is-directed.is-compact .scene-mark>p{top:19%}
 .is-directed.is-compact .placement-control .view-controls{gap:16px}
 .is-directed.is-compact .placement-control .view-controls button{height:44px;font-size:11px}
 .is-directed.is-compact .control-label{width:63px;font-size:11px}
 .is-directed.is-compact .support-colors{gap:9px;margin:1px 0;min-height:36px}
 .is-directed.is-compact .support-colors button{height:32px;width:28px;padding:3px}
 .is-directed.is-compact .support-colors button[data-color=auto]{width:34px}
 .is-directed.is-compact .placement-presets{gap:22px}
 .is-directed.is-compact .placement-presets button{min-height:44px;font-size:11px}
 .is-directed.is-compact .position-control{grid-template-columns:63px 1fr;margin:0;gap:14px}
 .is-directed.is-compact .position-control input{height:32px}
 .is-directed.is-compact .placement-control small{margin-top:5px;line-height:1.4;font-size:9px}
}
@media(max-width:767px){
 .footer-preferences{gap:4px}
 .button,.campaign .button{font-size:11px;padding:14px 19px;min-height:50px;gap:28px}
 .composition{padding-top:65px}
}
@media(max-width:1023px) and (max-height:619px){
 .is-directed.is-compact .placement-control{top:55%;padding-top:0}
 .is-directed.is-compact .scene-mark h3{top:8%;font-size:clamp(30px,8vw,48px)}
 .is-directed.is-compact .placement-control small{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .is-directed.is-compact .scene-mark>p{display:none}
 .is-directed.is-compact .piece-caption{top:32%}
 .is-directed.is-compact .product-picker{bottom:14%}
 .is-directed.is-compact .journey-object{width:min(60vw,40svh)}
 .is-directed.is-compact .placement-control .view-controls button{height:36px}
 .is-directed.is-compact .placement-presets button{min-height:36px}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* Selection is a single contact sheet, with one moving selection well. */
.picker-selection{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:18px;gap:12px}
.picker-name{font-size:24px;letter-spacing:-.04em}
.picker-action{font-size:11px;color:var(--muted)}
.is-directed .product-picker legend{margin-bottom:7px;font-size:11px}
.product-choices{border-top:1px solid var(--line);padding-top:12px}
.product-choices:before{height:var(--choice-h,80px);border-radius:3px;background:color-mix(in srgb,var(--ink) 7%,transparent);box-shadow:inset 0 -2px var(--accent);transform:translate(var(--choice-x,0px),var(--choice-y,0px));z-index:-1}
.product-choices img,.is-directed .product-choices img{opacity:.72;transform:scale(.92)}
.product-choices button[aria-pressed=true] img{transform:translateY(-4px) scale(1.08)}
.product-choices button[data-pending] img{opacity:1;transform:translateY(2px) scale(.94)}
.product-choices button:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.product-picker[aria-busy=true] .picker-action{font-size:0}
.product-picker[aria-busy=true] .picker-action:after{content:'Préparation…';font-size:11px}
.is-directed .product-picker{bottom:14%;width:43%;max-width:720px}
.is-directed .product-choices{gap:8px}
.is-directed .product-choices button{height:clamp(78px,8vw,128px);padding:6px}
/* Flow, not independently positioned text: this also works on wide, short PCs. */
.is-directed .idea-copy{position:absolute;left:5%;top:16%;width:44%;display:grid;gap:clamp(16px,3svh,28px)}
.is-directed .scene-idea .idea-copy h2,.is-directed .scene-idea .idea-copy p{position:static;margin:0;width:auto;transform:none}
.is-directed .scene-idea .idea-copy h2{font-size:min(8.2vw,14svh,140px);line-height:1.02}
.is-directed .scene-idea .idea-copy p{font-size:clamp(14px,2svh,20px);line-height:1.5}
.is-directed .scene-mark h3{font-size:min(6.6vw,11svh)}
.product-press{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:2;opacity:0;isolation:isolate}
.press-platen{position:absolute;left:0;right:0;height:50.2%;background:#30353b;box-sizing:border-box;backface-visibility:hidden}
.press-upper{top:0;transform:translateY(-104%);border-bottom:5px solid #697078;box-shadow:inset 0 -1px #afb6bd}
.press-upper:after{content:'';position:absolute;left:0;right:0;bottom:12px;height:1px;background:#555c64}
.press-upper span{position:absolute;left:7%;bottom:28px;color:#cbd0d5;font-size:11px;letter-spacing:.22em}
.press-lower{bottom:0;transform:translateY(104%);background:#24292e;border-top:4px solid #848b92;box-shadow:inset 0 9px #181d22}
.surface-print{transition:opacity 480ms ease}
.surface-print.ink-light{opacity:0}
.journey-mark{filter:brightness(0);opacity:.9}
[data-color=blue] .journey-mark,[data-color=graphite] .journey-mark{filter:brightness(0) invert(1)}
[data-color=blue] .surface-print.ink-dark,[data-color=graphite] .surface-print.ink-dark{opacity:0}
[data-color=blue] .surface-print.ink-light,[data-color=graphite] .surface-print.ink-light{opacity:1}
html[data-motion=reduce] .surface-print,html[data-motion=reduce] .product-choices:before{transition:none}
@media(min-width:1024px) and (max-height:620px){
 .is-directed .idea-copy{top:13%;gap:14px}
 .is-directed .scene-idea .idea-copy h2{font-size:min(7.5vw,14svh)}
 .is-directed .product-picker{bottom:15%}
 .is-directed .product-choices button{height:70px}
 .picker-selection{margin-bottom:9px}
 .picker-name{font-size:20px}
}
@media(max-width:1023px){
 .is-directed.is-compact .idea-copy{left:6%;top:7%;width:88%;gap:14px}
 .is-directed.is-compact .scene-idea .idea-copy h2{font-size:clamp(38px,10vw,68px)}
 .is-directed.is-compact .scene-idea .idea-copy p{font-size:13px}
 .is-directed.is-compact .product-picker legend{font-size:10px;margin-bottom:4px}
 .picker-selection{margin-bottom:8px}
 .picker-name{font-size:19px}
 .picker-action{font-size:10px}
 .product-choices{padding-top:7px}
 .is-directed.is-compact .piece-caption{display:none}
}
@media(max-width:1023px) and (max-height:619px){
 .is-directed.is-compact .idea-copy{gap:8px}
 .is-directed.is-compact .scene-idea .idea-copy h2{font-size:min(9vw,10svh)}
 .is-directed.is-compact .scene-idea .idea-copy p{font-size:11px}
 .picker-selection{margin-bottom:4px}
}

/* Compact vertical press rail: images are the controls, not a second catalogue. */
.product-picker{width:68px}
.product-picker .picker-selection{display:none}
.product-picker .product-choices{grid-template-columns:1fr;gap:6px;padding:0;border:0;border-left:1px solid var(--line)}
.product-picker .product-choices:before{left:-1px;top:0;width:2px;height:var(--choice-h,58px);border-radius:0;background:var(--accent);box-shadow:none;transform:translateY(var(--choice-y,0px));z-index:1}
.product-picker .product-choices button{height:58px;min-height:44px;padding:4px 6px;overflow:hidden;border-radius:0}
.product-picker .product-choices img{width:52px;height:52px;opacity:.62;transform:scale(.92)}
.product-picker .product-choices button[aria-pressed=true] img{opacity:1;transform:scale(1.04)}
.product-picker .product-choices button[data-pending] img{opacity:1;transform:translateY(2px) scale(.94)}
.imprint-journey.is-directed .product-picker{left:5%;top:50%;bottom:auto;width:68px;max-width:none;transform:translateY(-50%)}
.imprint-journey.is-directed .product-picker legend{font-size:10px;margin-bottom:15px;text-align:center;width:100%}
.imprint-journey.is-directed .idea-copy{left:17%;top:25%;width:35%;gap:22px}
.imprint-journey.is-directed .scene-idea .idea-copy h2{font-size:min(6.8vw,13.8svh,124px)}
.choice-platen{position:absolute;left:0;right:0;height:50.5%;opacity:0;pointer-events:none;z-index:2;background:#3b4249;box-sizing:border-box;will-change:transform}
.choice-upper{top:0;transform:translateY(-108%);border-bottom:2px solid #aab1b7}
.choice-lower{bottom:0;transform:translateY(108%);border-top:2px solid #737c85;background:#252b31}
.finished-product-photo{position:absolute;inset:0;background-size:200% 200%;background-repeat:no-repeat;filter:url(#printed-support-tint);pointer-events:none}
.finished-product-photo[hidden],.finished-print-note[hidden],.retry-finished-print[hidden]{display:none}
[data-finished-view=true] .placement-presets,[data-finished-view=true] .position-control,[data-finished-view=true] .front-print-note{display:none}
.finished-print-note{margin-top:22px;display:grid;gap:9px}
.finished-print-status{font-size:11px;color:var(--muted)}
.finished-studio-link{font-size:12px;width:fit-content;display:inline-flex;gap:24px;align-items:center;min-height:44px;margin:0}
.retry-finished-print{border:0;background:none;color:var(--ink);text-decoration:underline;text-underline-offset:5px;text-align:left;padding:10px 0;font:inherit;font-size:12px;cursor:pointer}
@media(hover:hover) and (pointer:fine){
 .product-picker .product-choices button:not([aria-pressed=true]):hover img{opacity:1;transform:translateY(-2px) scale(1.04)}
}
@media(min-width:1024px) and (max-height:620px){
 .product-picker .product-choices{gap:4px}
 .product-picker .product-choices button{height:48px}
 .product-picker .product-choices img{width:44px;height:44px}
 .imprint-journey.is-directed .product-picker{width:62px}
 .imprint-journey.is-directed .idea-copy{top:24%;gap:16px}
}
@media(max-width:1023px){
 .imprint-journey.is-directed.is-compact .product-picker{left:6%;top:56%;bottom:auto;width:52px;transform:translateY(-50%)}
 .imprint-journey.is-directed.is-compact .product-picker legend{font-size:9px;margin-bottom:10px}
 .imprint-journey.is-directed.is-compact .product-choices{grid-template-columns:1fr;gap:4px}
 .imprint-journey.is-directed.is-compact .product-choices button{height:48px;padding:2px 5px}
 .imprint-journey.is-directed.is-compact .product-choices img{width:44px;height:44px}
 .imprint-journey.is-directed.is-compact .idea-copy{left:6%;top:7%;width:88%;gap:14px}
 .imprint-journey.is-directed.is-compact .scene-idea .idea-copy h2{font-size:clamp(38px,10vw,68px)}
 .imprint-journey.is-directed.is-compact .piece-caption{display:block;left:32%;right:6%;top:31%;font-size:16px;text-align:center}
 .imprint-journey.is-directed.is-compact .piece-caption small{max-width:none;margin-top:5px}
 .finished-print-note{margin-top:14px}
}
@media(max-width:1023px) and (max-height:619px){
 .imprint-journey.is-directed.is-compact .product-picker{top:57%;width:48px}
 .imprint-journey.is-directed.is-compact .product-choices{gap:2px}
 .imprint-journey.is-directed.is-compact .product-choices button{height:44px}
 .imprint-journey.is-directed.is-compact .product-choices img{width:38px;height:38px}
 .imprint-journey.is-directed.is-compact .scene-idea .idea-copy h2{font-size:min(9vw,10svh)}
 .imprint-journey.is-directed.is-compact .idea-copy{gap:8px}
 .imprint-journey.is-directed.is-compact .piece-caption{top:26%}
}
