/* The home page is a photographic editorial spread. All content is visible before JS. */
.home-stage { --scene-x:0; --scene-y:0; padding:0; position:relative; background:#eee8f4; isolation:isolate; overflow:clip; }
.home-stage-inner { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:30px; min-height:650px; padding-block:38px 34px; }
.home-stage .hero-copy { position:relative; z-index:2; text-align:left; padding:0 0 14px; animation:none!important; }
.home-stage .hero-copy .eyebrow { font-size:10px; letter-spacing:.13em; margin-bottom:26px; color:#513862; }
.home-stage h1 { font-family:'Archivo Variable',var(--body); font-size:clamp(60px,5.7vw,82px); line-height:1.015; font-weight:760; font-stretch:95%; letter-spacing:-.045em; word-spacing:.07em; }
.home-stage h1>span { color:#744b93; margin-top:3px; }
.home-stage .hero-copy>p { max-width:430px; font-size:16px; line-height:1.8; color:#5a5063; margin:28px 0 27px; }
.home-stage .hero-actions { justify-content:flex-start; gap:27px; }
.home-stage .hero-actions .button { min-height:56px; border-radius:4px; font-size:13px; gap:28px; padding:15px 23px; background:#70428f; }
.home-stage .hero-actions .button { --button-fill:#512f71; }
.home-stage .hero-secondary { font-size:12px; }
.home-stage .hero-secondary>span { margin-left:8px; }
.home-stage .hero-copy>.home-stage-caption { margin-top:46px; margin-bottom:0; font-size:11px; letter-spacing:.025em; color:#71617e; }
.home-stage-caption>span { display:inline-block; font-size:23px; margin-right:12px; vertical-align:-2px; color:#73499a; }
.home-stage-art { position:relative; height:574px; min-width:0; }
.home-stage-product { position:absolute; display:block; overflow:hidden; background:#d5b9a1; z-index:2; transition:filter .3s; }
.home-stage-product:hover { filter:brightness(1.04); }
.home-stage-product:focus-visible { outline:3px solid #512f71; outline-offset:6px; }
.home-stage-product img { width:100%; height:100%; object-fit:cover; }
.home-stage-product-1 { width:61%; height:82%; left:24%; top:2%; border-radius:180px 180px 5px 5px; transform:translate(calc(var(--scene-x)*-8px),calc(var(--scene-y)*-6px)); }
.home-stage-product-1 img { object-position:48% 52%; }
.home-stage-product-2 { width:43%; aspect-ratio:1; left:0; bottom:0; border:7px solid #eee8f4; border-radius:7px; z-index:3; transform:translate(calc(var(--scene-x)*11px),calc(var(--scene-y)*8px)); }
.home-stage-product-label { position:absolute; inset:auto 16px 15px; display:flex; align-items:center; justify-content:space-between; gap:9px; font-size:12px; line-height:1.4; font-weight:800; background:#fff8ee; color:#352b37; padding:9px 13px; border-radius:2px; }
.home-stage-product-label>span:first-child { min-width:0; overflow-wrap:anywhere; }
.home-stage-product-label>span:last-child { flex-shrink:0; font-size:21px; line-height:1; }
.home-stage-product-1 .home-stage-product-label { inset:28px auto auto 50%; transform:translateX(-50%); min-width:105px; max-width:70%; border-radius:30px; }
.home-stage-product-2 .home-stage-product-label { inset:auto 10px 10px; font-size:11px; padding:8px 10px; }
.home-stage-loop { position:absolute; right:-3%; top:17%; width:45%; height:58%; border:42px solid #47a8ba; border-radius:160px 160px 130px 130px; transform:rotate(24deg) translate(calc(var(--scene-x)*7px),calc(var(--scene-y)*7px)); }
.home-stage-dot { position:absolute; width:108px; height:108px; left:6%; top:9%; background:#d2b4e4; border-radius:50%; }
.home-stage-specimen { position:absolute; z-index:4; right:1%; bottom:6%; width:174px; aspect-ratio:.94; padding:21px; background:#ffcbb0; border-radius:3px; color:#533953; transform:translate(calc(var(--scene-x)*13px),calc(var(--scene-y)*-7px)) rotate(7deg); }
.home-stage-specimen>span { display:block; font-size:7px; font-weight:800; letter-spacing:.065em; }
.home-stage-specimen strong { display:block; font:650 87px/1.3 'Archivo Variable',var(--body); letter-spacing:-.07em; }
.home-stage-specimen>span:last-child { font-size:8px; font-weight:600; letter-spacing:0; }
.home-stage-edition { position:absolute; right:0; top:3%; writing-mode:vertical-rl; font-size:8px; letter-spacing:.16em; color:#786083; }
.home-stage-art[data-product-count="1"] .home-stage-product-1 { left:14%; width:70%; height:91%; }
.home-stage-art[data-product-count="1"] .home-stage-specimen { bottom:1%; }
.home-stage-empty { position:absolute; inset:7% 15% 8% 7%; background:#dcc9ea; border-radius:180px 180px 4px 4px; padding:100px 45px 45px; }
.home-stage-empty>span { font-size:9px; font-weight:750; letter-spacing:.09em; }
.home-stage-empty strong { display:block; margin-top:35px; font:700 clamp(45px,5vw,70px)/1.02 'Archivo Variable',var(--body); letter-spacing:-.06em; }
.home-stage-bottom { position:relative; display:flex; align-items:center; min-height:69px; background:#e1d5ea; border-top:1px solid #d5c4e0; overflow:hidden; }
.home-service-ribbon { flex:1; min-width:0; overflow:hidden; }
.home-service-track { display:flex; width:max-content; }
.home-service-set { display:flex; align-items:center; justify-content:space-around; min-width:100vw; gap:44px; padding-inline:32px; white-space:nowrap; font:600 22px/1.25 'Archivo Variable',var(--body); color:#654777; letter-spacing:-.025em; }
.home-service-set i { color:#9162ab; font:normal 31px/1 var(--body); }
.home-explorer-section { padding-block:35px 92px; }
.home-explorer-section>.section-heading { margin-bottom:34px; }
.home-explorer-section .product-explorer { margin-top:0; animation:none!important; }
.home-explorer-section .explorer-heading { font-size:9px; }
.home-explorer-section .explorer-photo { min-height:445px; }
.home-explorer-section .explorer-photo img { object-position:center 58%; }
.home-explorer-section .explorer-info h2 { font-family:'Archivo Variable',var(--body); font-weight:650; }
.home-stage~.categories-section { padding-block:78px 50px; }
/* A single, generous color chapter replaces the repeated lower photo mosaic. */
.home-campaign { padding:0; background:#173e40; overflow:clip; }
.home-campaign .campaign-band { width:min(1320px,calc(100% - 96px)); margin:0 auto; padding:75px 36px 86px; min-height:570px; overflow:visible; border-radius:0; background:transparent; gap:70px; }
.home-campaign .campaign-band-copy { max-width:490px; }
.home-campaign .campaign-band .eyebrow { color:#b4d4d1; margin-bottom:25px; }
.home-campaign .campaign-band h2 { font-size:clamp(42px,4.2vw,62px); font-weight:650; line-height:1.045; }
.home-campaign .campaign-band h2 span { color:#d9c1ed; }
.home-campaign .campaign-band-copy>p:not(.eyebrow) { color:#c7dbd9; font-size:14px; max-width:350px; }
.home-campaign .campaign-band .button { background:#f9c9ad; color:#243c3d; min-height:51px; border-radius:3px; margin-top:29px; }
.home-campaign .campaign-band .button { --button-fill:#fcd9c4; }
.home-campaign .campaign-band-scene { min-height:390px; }
.home-campaign .campaign-band-orbit { width:69%; height:86%; aspect-ratio:auto; border:0; background:#d4b7e8; border-radius:50% 50% 5px 5px; top:-1%; left:24%; transform:rotate(12deg); }
.home-campaign .campaign-band-orbit:after { inset:10% -12%; border-color:#afd3cc45; transform:rotate(-22deg); }
.home-campaign .campaign-product { padding:0; box-shadow:none; overflow:hidden; }
.home-campaign .campaign-product img { border-radius:0; }
.home-campaign .campaign-band-product-1 { width:60%; aspect-ratio:1; top:2%; left:0; border-radius:4px; transform:translate(calc(var(--scene-x)*-9px),calc(var(--scene-y)*-6px)) rotate(-5deg); }
.home-campaign .campaign-band-product-2 { width:43%; aspect-ratio:1; right:0; bottom:0; border-radius:50% 50% 3px 3px; transform:translate(calc(var(--scene-x)*12px),calc(var(--scene-y)*8px)) rotate(6deg); }
.home-campaign .campaign-product-label { inset:auto 12px 12px; padding:10px; font-size:12px; }
.home-campaign .campaign-band-signature { bottom:-16px; left:3%; color:#f7caaf; font-size:43px; transform:rotate(-5deg); }
.home-campaign+.process-section { padding-bottom:100px; }
@keyframes home-specimen-drift { 0%,100% { translate:0 0; } 50% { translate:0 -13px; } }
@keyframes home-brand-turn { 0%,100% { rotate:-3deg; } 50% { rotate:5deg; } }
@keyframes home-service-scroll { to { transform:translateX(-50%); } }
.motion-ready:not(.motion-paused) .home-stage.motion-playing .home-stage-specimen { animation:home-specimen-drift 7s ease-in-out infinite; }
.motion-ready:not(.motion-paused) .home-stage.motion-playing .home-stage-loop { animation:home-brand-turn 12s ease-in-out infinite; }
.motion-ready:not(.motion-paused) .home-stage.motion-playing .home-service-track { animation:home-service-scroll 30s linear infinite; }
.motion-paused .home-stage :is(.home-stage-specimen,.home-stage-loop,.home-service-track) { animation:none!important; }
@media(max-width:1150px) {
 .home-stage-inner { min-height:600px; gap:25px; }
 .home-stage h1 { font-size:clamp(54px,6vw,70px); }
 .home-stage .hero-copy>p { font-size:14px; max-width:370px; }
 .home-stage-art { height:510px; }
 .home-stage-specimen { width:150px; padding:17px; }
 .home-stage-specimen strong { font-size:75px; }
 .home-stage-loop { border-width:34px; }
 .home-stage-dot { width:85px; height:85px; }
 .home-stage .hero-actions { gap:20px; }
 .home-stage .hero-actions .button { padding-inline:18px; gap:20px; }
 .home-campaign .campaign-band { width:calc(100% - 64px); gap:45px; padding-inline:0; }
 .home-campaign .campaign-band-scene { min-height:345px; }
 .home-campaign .campaign-band-signature { font-size:36px; }
}
@media(max-width:900px) and (min-width:701px) {
 .home-stage-inner { grid-template-columns:1.03fr 1fr; gap:10px; min-height:555px; padding-block:28px; }
 .home-stage h1 { font-size:53px; }
 .home-stage .hero-copy .eyebrow { font-size:8px; margin-bottom:22px; }
 .home-stage .hero-copy>p { font-size:13px; margin-block:23px; }
 .home-stage .hero-actions { gap:16px; flex-wrap:wrap; }
 .home-stage .hero-actions .button { font-size:13px; min-height:48px; gap:14px; padding:11px 16px; border-radius:6px; }
 .home-stage .hero-secondary { font-size:13px; font-weight:650; min-height:44px; padding:10px 0; line-height:1.3; display:inline-flex; align-items:center; gap:10px; }
 .home-stage .hero-secondary>span { margin-left:0; }
 .home-stage .hero-copy>.home-stage-caption { margin-top:23px; font-size:9px; }
 .home-stage-art { height:430px; }
 .home-stage-specimen { width:124px; padding:13px; }
 .home-stage-specimen strong { font-size:62px; }
 .home-stage-specimen>span { font-size:5.5px; }
 .home-stage-specimen>span:last-child { font-size:7px; }
 .home-stage-product-1 { left:19%; width:66%; }
 .home-stage-product-label { inset:auto 10px 10px; padding:8px 9px; font-size:12px; }
 .home-stage-product-2 { width:46%; border-width:5px; }
 .home-stage-product-2 .home-stage-product-label { inset:auto 6px 6px; padding:6px; font-size:11px; }
 .home-stage-loop { right:-2%; border-width:25px; }
 .home-stage-dot { width:65px; height:65px; left:1%; }
}
@media(max-width:800px) {
 .home-campaign .campaign-band .button { min-height:48px; }
 .home-campaign .campaign-band { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:35px; min-height:485px; padding-block:55px 70px; }
 .home-campaign .campaign-band h2 { font-size:39px; }
 .home-campaign .campaign-band-scene { min-height:285px; width:100%; }
 .home-campaign .campaign-band-signature { font-size:29px; }
 .home-campaign .campaign-band-copy>p:not(.eyebrow) { font-size:12px; }
 .home-campaign .campaign-product-label { font-size:12px; padding:7px; inset:auto 7px 7px; gap:6px; }
 .home-campaign .campaign-product-label>span:last-child { font-size:15px; }
}
@media(max-width:700px) {
 .home-stage-inner { grid-template-columns:minmax(0,1fr); gap:16px; padding-block:35px 24px; min-height:0; width:calc(100% - 40px); }
 .home-stage .hero-copy { padding:0; }
 .home-stage h1 { font-size:clamp(43px,10.5vw,67px); line-height:1.015; letter-spacing:-.045em; font-stretch:95%; }
 .home-stage .hero-copy .eyebrow { font-size:8px; margin-bottom:17px; }
 .home-stage .hero-copy>p { font-size:13px; line-height:1.75; max-width:420px; margin:19px 0 21px; }
 .home-stage .hero-actions { gap:12px 20px; flex-wrap:wrap; }
 .home-stage .hero-actions .button { min-height:48px; padding:11px 16px; font-size:13px; gap:14px; border-radius:6px; }
 .home-stage .hero-secondary { font-size:13px; font-weight:650; min-height:44px; padding:10px 0; line-height:1.3; display:inline-flex; align-items:center; gap:10px; }
 .home-stage .hero-secondary>span { margin-left:0; }
 .home-stage .hero-copy>.home-stage-caption { display:none; }
 .home-stage-art { width:min(440px,100%); height:auto; aspect-ratio:1.09; margin:3px auto 0; }
 .home-stage-product-1 { width:58%; left:27%; height:91%; top:0; }
 .home-stage-product-2 { width:45%; left:0; bottom:0; border-width:5px; }
 .home-stage-product-label { inset:auto 12px 12px; padding:8px 10px; font-size:12px; }
 .home-stage-product-2 .home-stage-product-label { inset:auto 7px 7px; padding:6px 8px; font-size:11px; gap:6px; }
 .home-stage-product-label>span:last-child { font-size:17px; }
 .home-stage-specimen { width:30%; padding:12px; bottom:0; right:0; }
 .home-stage-specimen strong { font-size:clamp(47px,13.5vw,62px); line-height:1.2; }
 .home-stage-specimen>span { font-size:5px; }
 .home-stage-specimen>span:last-child { font-size:6px; }
 .home-stage-loop { top:11%; height:64%; border-width:26px; right:0; width:43%; }
 .home-stage-dot { width:65px; height:65px; left:6%; top:5%; }
 .home-stage-edition { right:0; top:1%; font-size:6px; }
 .home-stage-empty { padding:64px 27px 25px; }
 .home-stage-empty>span { font-size:7px; }
 .home-stage-empty strong { margin-top:23px; font-size:43px; }
 .home-stage-bottom { min-height:58px; }
 .home-service-set { font-size:17px; gap:24px; padding-right:24px; }
 .home-service-set i { font-size:22px; }
 .home-stage~.categories-section { padding-block:52px 35px; }
 .home-explorer-section { padding-block:15px 55px; }
 .home-explorer-section>.section-heading { margin-bottom:24px; }
 .home-explorer-section .explorer-photo { min-height:0; }
 .home-explorer-section .explorer-heading { font-size:8px; }
 .home-campaign .campaign-band { width:calc(100% - 40px); grid-template-columns:minmax(0,1fr); padding:43px 5px 64px; gap:34px; }
 .home-campaign .campaign-band-copy { max-width:460px; }
 .home-campaign .campaign-band h2 { font-size:clamp(38px,9vw,54px); }
 .home-campaign .campaign-band .eyebrow { margin-bottom:17px; }
 .home-campaign .campaign-band-copy>p:not(.eyebrow) { font-size:13px; max-width:320px; margin-top:19px; }
 .home-campaign .campaign-band .button { margin-top:22px; min-height:48px; padding:11px 16px; font-size:13px; gap:14px; border-radius:6px; }
 .home-campaign .campaign-band-scene { width:min(440px,100%); min-height:0; height:auto; aspect-ratio:1.22; }
 .home-campaign .campaign-band-product-1 { top:0; width:62%; }
 .home-campaign .campaign-band-product-2 { width:48%; bottom:0; }
 .home-campaign .campaign-band-signature { font-size:32px; bottom:-14px; }
 .home-campaign .campaign-product-label { font-size:12px; }
 .home-campaign+.process-section { padding-bottom:55px; }
}
@media(max-width:360px) {
 .home-stage-inner { width:calc(100% - 32px); padding-top:28px; }
 .home-stage h1 { font-size:39px; }
 .home-stage .hero-copy>p { font-size:12px; }
 .home-stage .hero-actions { gap:8px 12px; }
 .home-stage .hero-actions .button { padding-inline:13px; gap:10px; }
 .home-stage-art { aspect-ratio:1.03; }
 .home-stage-specimen { padding:10px; }
 .home-stage-specimen strong { font-size:45px; }
 .home-stage-specimen>span { font-size:4.5px; }
 .home-stage-specimen>span:last-child { font-size:5px; }
 .home-stage-loop { border-width:22px; }
 .home-stage-dot { width:52px; height:52px; }
 .home-service-set { font-size:15px; gap:20px; padding-right:20px; }
 .home-campaign .campaign-band h2 { font-size:35px; }
 .home-campaign .campaign-product-label { font-size:11px; }
}
/* A still ribbon must expose every service, including when motion is unavailable. */
:is(html:not(.motion-ready),html.motion-paused) .home-service-track { width:100%; transform:none; }
:is(html:not(.motion-ready),html.motion-paused) .home-service-set { width:100%; min-width:0; flex-wrap:wrap; justify-content:center; gap:10px 30px; padding:14px 24px; }
:is(html:not(.motion-ready),html.motion-paused) .home-service-set>span { white-space:nowrap; }
:is(html:not(.motion-ready),html.motion-paused) .home-service-set[aria-hidden="true"],
:is(html:not(.motion-ready),html.motion-paused) .home-service-set i { display:none; }
@media(max-width:700px) {
 :is(html:not(.motion-ready),html.motion-paused) .home-service-set { font-size:14px; gap:8px 22px; padding:12px 15px; }
}
@media(prefers-reduced-motion:reduce) {
 .home-stage { --scene-x:0!important; --scene-y:0!important; }
 .home-stage *,.home-campaign * { animation:none!important; transition:none!important; }
}
