/* Keep the collection image-led, with no editorial labels or numbering. */
.site-registration { padding: 16px 16px max(12px, env(safe-area-inset-bottom)); text-align: center; font-size: 12px; font-weight: 400; line-height: 1.5; letter-spacing: 0; color: #707070; }
.site-registration a { display: inline-block; padding: 4px 2px; text-decoration: none; }
.site-registration a:hover { color: #333; }
.site-registration a:focus-visible { outline: 1px solid currentColor; outline-offset: 3px; }
.at-cover .site-registration { position: fixed; bottom: 0; left: 0; width: 100%; z-index: 21; pointer-events: none; }
.at-cover .site-registration a { pointer-events: auto; }
body:has(dialog[open]) { overflow: hidden; }
#purchase-dialog { width: min(520px, calc(100% - 32px)); max-height: calc(100dvh - 32px); }
#purchase-dialog h2 { font-family: inherit; font-size: 32px; letter-spacing: -.04em; margin: 0 0 16px; }
#purchase-dialog .preview-product { border: 0; padding: 0; margin: 0 0 28px; font-size: 14px; line-height: 1.5; }
#enquiry-form { display: flex; flex-direction: column; gap: 9px; }
#enquiry-form > label { font-size: 12px; margin-top: 10px; }
#enquiry-form label span { color: #777; }
#enquiry-form > input { width: 100%; min-height: 43px; border: 0; border-bottom: 1px solid #aaa; border-radius: 0; background: #fff; padding: 8px 0; font: inherit; font-size: 16px; }
#enquiry-form input:focus-visible { outline: 2px solid #555; outline-offset: 3px; }
#enquiry-form .contact-consent { display: flex; align-items: flex-start; gap: 10px; line-height: 1.6; margin-top: 20px; }
.contact-consent input { width: 16px; height: 16px; flex-shrink: 0; accent-color: #111; }
.privacy-note { color: #666; font-size: 11px; line-height: 1.6; margin: 4px 0 18px; }
.privacy-note summary { cursor: pointer; }
#purchase-dialog .privacy-note p { font-size: 11px; line-height: 1.7; }
.privacy-note a { text-decoration: underline; }
.form-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.black-button:disabled { opacity: .5; cursor: wait; }
#enquiry-status:empty { display: none; }
.collection { padding-top: 114px; padding-bottom: 40px; }
.header { border-bottom-color: transparent; }
.look-caption { justify-content: flex-start; text-align: left; padding-top: 18px; }
.series-intro { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; padding: 56px 3px 72px; }
.series-intro h1 { font-size: clamp(26px, 2.7vw, 44px); line-height: 1.15; letter-spacing: -.04em; font-weight: 400; }
.series-intro p { margin: 0; font-size: 14px; line-height: 1.7; color: #666; flex-shrink: 0; }
.product-series { margin: 0 0 22px; font-size: 14px; line-height: 1.6; color: #666; }
@media (max-width: 1000px) {
  .series-intro { flex-direction: column; align-items: flex-start; gap: 18px; }
}
.look-caption h2 { font-size: 14px; }
.product-materials { margin-top: 36px; border: 0; padding: 0; gap: 8px 20px; color: #666; }
.product-copy { margin-top: 24px; }
.product-materials { gap: 8px; }
.product-materials span:not(:last-child)::after { content: ' &'; margin-left: 8px; }
.black-button { justify-content: center; }
.back-icon { display: grid; place-items: center; width: 44px; height: 44px; font-size: 24px; }
.detail-top { padding-left: 20px; }
@media (max-width: 600px) {
  .collection { padding-top: 84px; padding-bottom: 24px; }
  .look-caption { padding-top: 12px; }
  .look-caption h2 { font-size: 13px; }
  .product-materials { margin-top: 26px; }
  .detail-top { padding-left: 8px; }
  .series-intro { padding: 38px 3px 48px; }
  .series-intro p { flex-shrink: 1; }
  .product-series { margin-bottom: 18px; }
}

/* Editorial film cover. */
@font-face{font-family:Montserrat;src:url('/shop-assets/assets/montserrat-semibold.ttf') format('truetype');font-style:normal;font-weight:600;font-display:swap}
.at-cover .header,.at-cover .site-registration{visibility:hidden;pointer-events:none}
.cover{background:#fff}
.cover-film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:0;transition:opacity .65s ease;background:#fff}
.cover[data-frame="true"] .cover-film{opacity:1}
.cover::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;background:linear-gradient(180deg,rgba(0,0,0,.18),transparent 22%,transparent 50%,rgba(0,0,0,.12) 70%,rgba(0,0,0,.42));transition:opacity .65s ease}
.cover[data-revealed="true"]::after{opacity:1}
.film-loader{position:absolute;inset:0;display:grid;place-items:center;background:white;transition:opacity .5s ease,visibility .5s;z-index:3}
.loading-logo{display:block;width:clamp(150px,18vw,250px);aspect-ratio:624/216;background:linear-gradient(90deg,#a5a5a5 0%,#dedede 35%,#f4f4f4 50%,#dedede 65%,#a5a5a5 100%);background-size:200% 100%;background-repeat:repeat-x;mask:url('/shop-assets/assets/logo.svg') center/contain no-repeat;-webkit-mask:url('/shop-assets/assets/logo.svg') center/contain no-repeat;animation:logo-sweep 2s linear infinite}
/* A 200%-wide tile moves exactly one tile per loop. Matching edge colours
   and linear timing keep the reset visually identical to the last frame. */
@keyframes logo-sweep{from{background-position:0% 50%}to{background-position:200% 50%}}
.cover[data-frame="true"] .film-loader,.cover[data-phase="error"] .film-loader{opacity:0;visibility:hidden;pointer-events:none}
.cover[data-intro="loading"] .film-loader{opacity:1;visibility:visible;pointer-events:auto}
.cover[data-intro] .cover-film{opacity:1;background:#000}
.cover[data-intro="ready"]{background:#000}
.cover[data-intro="ready"] .film-loader{opacity:0;visibility:hidden;pointer-events:none}
.cover[data-intro="ready"]>.film-recovery{inset:0;pointer-events:none;background:transparent;padding:0}
.cover[data-intro="ready"] .film-retry{pointer-events:auto;display:grid;place-items:center;width:64px;height:64px;min-height:0;padding:0;border:0;border-radius:50%;color:white;background:#0006;backdrop-filter:blur(6px)}
.cover[data-intro="ready"] .film-retry::before{content:"";display:block;width:0;height:0;margin-left:5px;border-top:12px solid transparent;border-bottom:12px solid transparent;border-left:19px solid white}
.cover[data-intro="ready"] .film-message,.cover[data-intro="ready"] .film-skip{display:none}
.cover-reveal{position:absolute;inset:0;z-index:2;color:#fff;pointer-events:none;--edge:clamp(24px,4vw,72px)}
.cover-reveal>*{opacity:0;transform:translateY(10px);transition:opacity .85s ease,transform 1s var(--ease)}
.reveal-logo{position:absolute;top:max(32px,env(safe-area-inset-top));left:var(--edge);width:clamp(130px,12vw,185px);height:auto;filter:none}
.reveal-title{position:absolute;left:var(--edge);right:var(--edge);bottom:clamp(128px,15vh,180px);font-family:Montserrat,Arial,sans-serif;font-weight:600;letter-spacing:-.065em;line-height:.98;text-align:left;margin:0;text-shadow:0 2px 24px #0002}
.title-main{display:block;font-size:clamp(46px,9.3vw,155px);white-space:nowrap}
.title-sub{display:block;margin-top:18px;padding-right:7vw;text-align:right;font-size:clamp(28px,4.6vw,76px);letter-spacing:-.045em;line-height:1.1}
.cover-explore{position:absolute;right:var(--edge);bottom:max(40px,env(safe-area-inset-bottom));display:inline-flex;align-items:center;justify-content:center;border:1px solid #ffffffa6;background:transparent;color:#fff;min-width:176px;min-height:52px;padding:15px 30px;font-family:Montserrat,Arial,sans-serif;font-weight:600;font-size:13px;letter-spacing:.15em}
.cover-explore:hover{background:white;color:black}
.cover[data-revealed="true"] .cover-reveal{pointer-events:auto}
.cover[data-revealed="true"] .cover-reveal>*{opacity:1;transform:translateY(0)}
.cover[data-revealed="true"] .reveal-title{transition-delay:.12s}
.cover[data-revealed="true"] .cover-explore{transition-delay:.24s}
.film-recovery{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:32px;text-align:center;background:white}
.cover>.film-recovery{inset:auto 0 0;gap:12px;padding:24px 20px max(28px,env(safe-area-inset-bottom));background:linear-gradient(transparent,#fffffff2 24%)}
.film-message{font-size:16px;line-height:1.5;margin:0;color:#777}
.film-retry{padding:16px 32px;min-height:48px;border:1px solid #000;background:white;letter-spacing:.12em;font-size:14px}
.film-skip{font-size:14px;line-height:1.5;text-decoration:underline;text-underline-offset:5px}
/* Fade typography and the film to white, then reveal the collection. */
/* Override the mobile ready-state black backing during the white exit fade. */
.cover.leaving{z-index:30;background:#fff;transform:none;opacity:0;transition:opacity .65s ease .65s}
.cover.leaving .cover-editorial,.cover.leaving .reveal-logo,.cover.leaving .cover-film,.cover.leaving::after{opacity:0;transition:opacity .32s ease;transition-delay:0s}
.cover.leaving .cover-reveal{pointer-events:none}
@media(max-width:600px){
  .cover-reveal{--edge:24px}
  .reveal-logo{top:max(28px,env(safe-area-inset-top));width:132px}
  .reveal-title{bottom:156px;letter-spacing:-.06em}
  .title-main{font-size:clamp(30px,8.9vw,52px)}
  .title-sub{font-size:clamp(25px,7.3vw,42px);padding-right:0;margin-top:14px}
  .cover-explore{min-width:148px;min-height:48px;bottom:max(48px,env(safe-area-inset-bottom));padding:14px 24px;font-size:12px}
}
@media(max-height:500px) and (min-width:601px){.reveal-logo{top:20px;width:120px}.reveal-title{bottom:100px}.title-main{font-size:clamp(44px,7vw,80px)}.title-sub{font-size:30px;margin-top:8px}.cover-explore{bottom:22px;min-height:44px}.cover-explore{padding:12px 24px}}

/* One anchored editorial group, with a shared left edge for both title lines. */
.cover-editorial{position:absolute;left:var(--edge);right:var(--edge);bottom:max(48px,env(safe-area-inset-bottom));display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:40px}
.cover-editorial .reveal-title{position:static;min-width:0;letter-spacing:-.055em;line-height:1.05}
.cover-editorial .title-main{font-size:clamp(42px,7.2vw,116px)}
.cover-editorial .title-sub{text-align:left;padding:0;margin-top:16px;font-size:clamp(24px,2.8vw,44px);letter-spacing:-.035em;line-height:1.2}
.cover-editorial .cover-explore{position:static;margin-bottom:4px;min-width:160px}
.cover[data-revealed="true"] .cover-editorial{transition-delay:.12s}
.cover.leaving .cover-editorial{opacity:0;transition:opacity .32s ease;transition-delay:0s}
@media(max-width:800px){
 .cover-editorial{grid-template-columns:1fr;justify-items:start;gap:28px;bottom:max(40px,env(safe-area-inset-bottom))}
 .cover-editorial .title-main{font-size:clamp(30px,8.3vw,60px)}
 .cover-editorial .title-sub{font-size:clamp(22px,5.6vw,32px);margin-top:12px}
 .cover-editorial .cover-explore{min-width:148px;min-height:48px;margin:0}
}
@media(max-height:500px) and (min-width:601px){.cover-editorial{bottom:24px;grid-template-columns:minmax(0,1fr) auto;gap:24px}.cover-editorial .title-main{font-size:clamp(32px,6vw,72px)}.cover-editorial .title-sub{font-size:24px;margin-top:8px}}

/* The collection logo is already at its final size when the cover fades. */
.brand{transition:none}

@font-face{font-family:Montserrat;src:url('/shop-assets/assets/montserrat-regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
body{font-family:Montserrat,Arial,sans-serif;font-weight:400}
input,textarea,select,button{font-family:inherit}
.series-intro h1{min-width:0}
.series-intro p{flex-shrink:1;max-width:32em}
.look-image,.product-image{background:#f5f5f5}
.look-image img,.product-image img{mix-blend-mode:normal}

/* Private, opt-in portrait preview. */
.product-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.try-outline{display:flex;align-items:center;justify-content:center;min-height:56px;padding:15px 16px;border:1px solid #111;background:transparent;color:#111;font-size:12px;letter-spacing:.08em;cursor:pointer;text-align:center;text-decoration:none}
.try-outline:hover{background:#f5f5f5}.try-outline:disabled{opacity:.45;cursor:wait}
#try-on-dialog{width:min(440px,calc(100% - 32px));max-height:calc(100dvh - 32px);padding:44px 36px 28px;overflow-y:auto;text-align:center}
#try-on-dialog h2{font-family:inherit;font-size:16px;letter-spacing:.16em;margin:0 0 28px;font-weight:400}
#try-on-title:focus{outline:none}
.try-close{position:absolute;right:12px;top:10px;border:0;background:none;width:44px;height:44px;font-size:30px;cursor:pointer}
.try-stage{position:relative;display:grid;place-items:center;margin:0 auto;width:100%;height:160px}
.try-stage[data-state="camera-opening"],.try-stage[data-state="camera"],.try-stage[data-state="loading"],.try-stage[data-state="result"]{width:min(252px,100%,max(135px,calc((100dvh - 250px)*.5625)));height:auto;aspect-ratio:9/16;background:#f5f5f5;overflow:hidden}
.try-stage[data-state="camera-opening"] .try-camera{visibility:hidden}
.try-selfie-icon{width:60px;height:75px;color:#222}
.try-stage .try-camera,.try-final-image{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.try-stage .try-camera{object-fit:cover;transform:scaleX(-1)}
.try-camera-guide{display:none;position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.try-camera-outline{stroke:rgba(255,255,255,.95);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.try-stage[data-state="camera"] .try-camera-guide{display:block}
.try-loading-dots{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
/* Decorative elapsed-time indicator, not measured provider progress.
   30 seconds to 90%, then another 180 seconds to 99%; never claims completion. */
.try-loading-progress{position:absolute;z-index:2;inset:auto 0 0;height:3px;background:#ddd;overflow:hidden;pointer-events:none}
.try-loading-progress>span{display:block;width:100%;height:100%;background:#000 linear-gradient(90deg,transparent 0%,#181818 12%,#444 27%,#888 40%,#c8c8c8 50%,#aaa 60%,#666 73%,#262626 88%,transparent 100%) 200% 0/75% 100% no-repeat;clip-path:inset(0 100% 0 0);animation:try-loading-progress var(--progress-seconds,30s) linear forwards,try-loading-tail 180s ease-out var(--progress-seconds,30s) forwards,try-progress-shimmer 3.2s linear infinite}
/* The broad sheen is sized against the whole track, not the progress amount,
   so it keeps its soft shape even when only a small fill is visible. */
@keyframes try-progress-shimmer{from{background-position:-300% 0}to{background-position:400% 0}}
@keyframes try-loading-progress{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 10% 0 0)}}
@keyframes try-loading-tail{from{clip-path:inset(0 10% 0 0)}to{clip-path:inset(0 1% 0 0)}}
@media(prefers-reduced-motion:reduce){.try-loading-progress>span{animation:none;clip-path:inset(0 10% 0 0);background:#000}}
.try-loading-logo{position:relative;z-index:1;display:block;width:96px;max-width:55%;aspect-ratio:624/216;pointer-events:none}
.try-loading-logo img{display:block;width:100%;height:auto;filter:brightness(0);opacity:.53}
.try-loading-logo::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,#a8a8a8 35%,#b7b7b7 50%,#a8a8a8 65%,transparent 100%);background-size:200% 100%;background-repeat:repeat-x;mask:url('/shop-assets/assets/logo.svg') center/contain no-repeat;-webkit-mask:url('/shop-assets/assets/logo.svg') center/contain no-repeat;animation:logo-sweep 1.7s linear infinite}
@media(prefers-reduced-motion:reduce){.loading-logo{animation:none}.try-loading-logo::after{animation:none;display:none}}
#try-status{font-size:16px!important;line-height:1.65!important;margin:24px 0;white-space:pre-line;color:#555!important}#try-status:empty{display:none}
#try-on-dialog .black-button{font-size:13px;min-height:50px;text-decoration:none}
.try-text-button{display:block;margin:14px auto 0;padding:8px;border:0;background:none;color:#666;font-size:13px;text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.try-text-button:disabled{opacity:.5;cursor:wait}
#try-on-dialog .try-permission{margin:22px auto 0;max-width:310px;color:#777}
#try-on-dialog .try-permission p{font-size:12px;line-height:1.65;margin:0;color:#777}
.try-privacy{font-size:12px;line-height:1.65;margin:10px 0 0}.try-privacy summary{cursor:pointer;list-style:none;text-decoration:underline;text-underline-offset:3px}.try-privacy summary::-webkit-details-marker{display:none}
#try-on-dialog .try-privacy p{margin-top:12px;text-align:left}
#try-on-dialog[data-step="loading"] #try-status{margin-bottom:4px}
#try-on-dialog [hidden]{display:none!important}
@media(max-width:600px){#try-on-dialog{padding:40px 24px 24px}.product-actions .black-button,.product-actions .try-outline{font-size:12px;padding:14px 10px}.try-stage[data-state="intro"]{height:140px}}
.try-outline:disabled{color:#999;border-color:#ddd;background:#f2f2f2;cursor:not-allowed;pointer-events:none}
.try-limit-note{font-size:12px;line-height:1.6;color:#888;margin:12px 0 0}
