/* Motion and conversion layer (2026-10-29): photo-to-felt story, photo preview, card hover photos,
   shop strip, compact mobile purchase bar, cross-sell and small brand moments.
   Loaded after home.css. Every effect has a still fallback under prefers-reduced-motion. */

/* ---------- 01 How it works: scroll story ---------- */
.how-story{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:clamp(24px,4vw,64px);align-items:start}
.how-story .how-steps{grid-template-columns:1fr;gap:0}
.how-story .how-steps li{min-height:min(56vh,460px);justify-content:center;border:0;background:transparent;padding:0 0 0 4px;gap:10px;opacity:.38;transition:opacity .4s ease,transform .5s var(--ease)}
.how-story .how-steps li.is-on{opacity:1;transform:translateX(6px)}
.how-story .how-steps b{font-size:clamp(22px,2.4vw,30px)}
.how-story .how-steps p{font-size:17px;max-width:40ch}
.how-story .how-n{transition:background .3s,transform .4s var(--ease)}
.how-story li.is-on .how-n{background:var(--pink);color:var(--white);transform:scale(1.12) rotate(-6deg)}
.how-stage{position:sticky;top:calc(var(--hh) + 28px);aspect-ratio:4/5;max-height:calc(100vh - var(--hh) - 56px);width:100%;justify-self:center;margin-block:clamp(20px,6vh,60px)}
.how-shot{position:absolute;inset:0;margin:0;border:2px solid var(--ink);border-radius:24px;overflow:hidden;background:#FEFEFE;box-shadow:8px 8px 0 var(--ink);opacity:0;transform:translateY(18px) rotate(1.5deg) scale(.97);transition:opacity .5s ease,transform .7s var(--ease)}
.how-shot.is-on{opacity:1;transform:none}
.how-shot img{width:100%;height:100%;object-fit:cover;display:block}
.how-shot[data-step="0"] img{object-fit:contain}
.how-shot figcaption{position:absolute;left:14px;bottom:14px;background:var(--ink);color:var(--paper);font:700 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;padding:8px 12px;border-radius:999px}
.how-marks{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.how-marks ellipse{fill:none;stroke:var(--pink);stroke-width:.9;stroke-dasharray:3 2;stroke-dashoffset:0;opacity:0;transition:opacity .4s ease .35s}
.how-shot.is-on .how-marks ellipse{opacity:1;animation:how-dash 6s linear infinite}
@keyframes how-dash{to{stroke-dashoffset:-50}}
.how-tag{position:absolute;background:var(--white);color:var(--ink);border:2px solid var(--ink);border-radius:999px;font:700 11px/1 var(--mono);padding:6px 10px;opacity:0;transform:scale(.8);transition:opacity .3s ease,transform .4s var(--ease)}
.how-shot.is-on .how-tag{opacity:1;transform:none}
.how-shot.is-on .how-tag:nth-of-type(1){transition-delay:.5s}
.how-shot.is-on .how-tag:nth-of-type(2){transition-delay:.7s}
.how-shot.is-on .how-tag:nth-of-type(3){transition-delay:.9s}
.how-sticker{position:absolute;z-index:2;display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:var(--yolk);border:2px solid var(--ink);animation:how-float 5s ease-in-out infinite}
.how-sticker svg{width:26px;height:26px;fill:var(--ink)}
.how-sticker-a{top:-20px;right:-18px}
.how-sticker-b{bottom:22%;left:-24px;background:var(--pink);animation-delay:-2.4s}
.how-sticker-b svg{fill:var(--white)}
@keyframes how-float{0%,100%{transform:translateY(0) rotate(-8deg)}50%{transform:translateY(-10px) rotate(8deg)}}

/* Proof pairs under the story. */
.how-proof{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr);gap:clamp(20px,3vw,48px);align-items:center;margin-top:clamp(28px,4vw,56px);padding:clamp(18px,2.4vw,28px);border:2px solid var(--ink);border-radius:24px;background:var(--paper);box-shadow:6px 6px 0 var(--pink)}
.how-proof-head{display:grid;gap:12px;justify-items:start}
.how-proof-head h3{font-family:var(--display);font-weight:400;font-size:clamp(28px,3vw,40px);line-height:1.02;color:var(--blue)}
.how-proof-head p{margin:0;font-size:15px;line-height:1.5;color:var(--ink-soft)}
.how-proof-head .btn{min-height:48px;font-size:15px;padding:0 20px}
.how-proof-head .btn svg{width:18px;height:18px}
.how-pairs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.how-pair{position:relative;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:8px;background:var(--white);border:2px solid var(--ink);border-radius:18px}
.how-pair img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:11px;display:block}
.how-pair-arrow{position:absolute;left:50%;top:calc(50% - 14px);transform:translate(-50%,-50%);display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--yolk);border:2px solid var(--ink)}
.how-pair-arrow svg{width:16px;height:16px;color:var(--ink)}
.how-pair figcaption{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;font:700 10.5px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);text-align:center;padding-top:2px}

/* ---------- 02 Photo preview inside custom product details ---------- */
.mo-preview{border:2px solid var(--ink);border-radius:18px;background:var(--white);padding:14px;display:grid;gap:12px}
.mo-preview-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
.mo-preview-head b{font-weight:800;font-size:17px}
.mo-preview-head span{font-size:12.5px;color:var(--ink-soft)}
.mo-preview-body{display:grid;grid-template-columns:132px minmax(0,1fr);gap:14px;align-items:center}
.mo-preview-shot{position:relative;aspect-ratio:4/5;border-radius:12px;overflow:hidden;border:2px solid var(--ink);background:var(--paper)}
.mo-preview-shot img,.mo-preview-shot canvas{width:100%;height:100%;object-fit:cover;display:block}
.mo-preview[data-mode="paint"] .mo-preview-shot{border:7px solid var(--white);outline:2px solid var(--ink);box-shadow:5px 6px 0 rgba(22,19,106,.18);border-radius:4px}
.mo-preview-side{display:grid;gap:10px;min-width:0}
.mo-preview-side p{margin:0;font-size:13.5px;line-height:1.45;color:var(--ink-soft)}
.mo-palette{display:flex;gap:6px;flex-wrap:wrap}
.mo-palette i{width:26px;height:26px;border-radius:50%;border:2px solid var(--ink);display:block;transform:scale(0);animation:mo-pop .45s var(--ease) forwards}
.mo-palette i:nth-child(2){animation-delay:.08s}.mo-palette i:nth-child(3){animation-delay:.16s}.mo-palette i:nth-child(4){animation-delay:.24s}.mo-palette i:nth-child(5){animation-delay:.32s}
@keyframes mo-pop{to{transform:scale(1)}}
.mo-checks{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.mo-checks li{font:700 11px/1 var(--mono);border:1.5px solid var(--ink);border-radius:999px;padding:5px 9px;background:var(--paper)}
.mo-upload{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 16px;border:2px dashed var(--ink);border-radius:999px;background:var(--yolk);font-weight:800;font-size:14px;cursor:pointer;width:max-content;max-width:100%}
.mo-upload:hover{border-style:solid}
.mo-upload:focus-within{outline:3px solid var(--blue);outline-offset:2px}
.mo-upload input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.mo-preview small{font-size:11.5px;line-height:1.45;color:var(--ink-soft)}

/* ---------- 03 Product cards: real-life photo on hover, color dots ---------- */
.card-frame{position:relative}
.mo-alt{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.06);transition:opacity .45s ease,transform .9s var(--ease);pointer-events:none;z-index:1;background:#FEFEFE}
.card-frame .qv{z-index:2}
@media (hover:hover){.card:hover .mo-alt,.card:focus-within .mo-alt{opacity:1;transform:none}}
.card.mo-peek .mo-alt{opacity:1;transform:none}
.mo-hint{position:absolute;top:10px;right:10px;z-index:2;font:700 10px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;background:var(--white);border:1.5px solid var(--ink);border-radius:999px;padding:4px 8px;opacity:0;transition:opacity .3s}
.card:hover .mo-hint,.card.mo-peek .mo-hint{opacity:1}
.card.collection-card,.card.wardrobe-card{position:relative}
.mo-dots{position:absolute;right:14px;bottom:20px;z-index:3;display:flex;gap:6px}
.mo-dots button{width:22px;height:22px;padding:0;border-radius:50%;border:2px solid var(--white);box-shadow:0 0 0 1.5px var(--ink);cursor:pointer;transition:transform .2s var(--ease)}
.mo-dots button:hover{transform:scale(1.15)}
.mo-dots button[aria-pressed="true"]{box-shadow:0 0 0 2.5px var(--blue)}
.mo-dots button:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
.card img.photo,.wardrobe-card-image>img{transition:opacity .18s ease}

/* ---------- 04 Shop strip under the TikTok clips ---------- */
.shop-strip{margin-top:26px;overflow:hidden}
.shop-strip-label{color:var(--yolk);font-size:12px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:12px}
.shop-strip-track{display:flex;gap:14px;width:max-content;animation:mo-strip 46s linear infinite;padding:4px 0 8px}
.shop-strip:hover .shop-strip-track,.shop-strip:focus-within .shop-strip-track{animation-play-state:paused}
@keyframes mo-strip{to{transform:translateX(-50%)}}
.shop-chip{display:flex;align-items:center;gap:12px;flex:none;padding:8px 18px 8px 8px;background:var(--white);color:var(--ink);border:2px solid var(--ink);border-radius:999px;box-shadow:3px 3px 0 var(--ink);font:inherit;cursor:pointer;transition:transform .25s var(--ease),box-shadow .25s var(--ease)}
.shop-chip:hover,.shop-chip:focus-visible{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--pink)}
.shop-chip img{width:52px;height:52px;border-radius:50%;object-fit:cover;background:#FEFEFE;border:1.5px solid var(--ink)}
.shop-chip span{display:grid;text-align:left;gap:2px}
.shop-chip b{font-weight:800;font-size:15px;white-space:nowrap}
.shop-chip small{font:700 12px/1 var(--mono);color:var(--ink-soft)}

/* ---------- 05 Purchase bar: slimmer while scrolling on phones; cross-sell ---------- */
@media (max-width:820px){
  .mo-compact .buy .alt,.mo-compact .buy>small,.mo-compact .buy #mBuy,.mo-compact .buy .selection-summary p{display:none!important}
  .mo-compact .buy{grid-template-columns:auto minmax(0,1fr)!important;align-items:center;padding-block:8px calc(8px + env(safe-area-inset-bottom,0px))!important}
  .mo-compact .buy .purchase-actions{display:block}
  .mo-compact .buy .selection-summary{display:block}
}
.mo-pair{order:4;display:grid;gap:10px;border-top:2px dashed color-mix(in srgb,var(--ink) 30%,transparent);padding-top:16px}
.mo-pair-label{font:700 11px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--pink)}
.mo-pair-card{display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:12px;padding:8px 12px 8px 8px;background:var(--white);color:var(--ink);border:2px solid var(--ink);border-radius:16px;font:inherit;text-align:left;cursor:pointer;transition:transform .25s var(--ease),box-shadow .25s var(--ease)}
.mo-pair-card:hover,.mo-pair-card:focus-visible{transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--yolk)}
.mo-pair-card img{width:64px;height:80px;object-fit:cover;border-radius:10px;background:#FEFEFE}
.mo-pair-card span{display:grid;gap:3px;min-width:0}
.mo-pair-card b{font-weight:800;font-size:15px}
.mo-pair-card small{font-size:12.5px;color:var(--ink-soft);line-height:1.35}
.mo-pair-card em{font-style:normal;font-weight:800;white-space:nowrap}

/* ---------- 06 Brand moments ---------- */
.mo-paw{position:fixed;z-index:400;pointer-events:none;width:18px;height:18px;animation:mo-paw .9s cubic-bezier(.2,.7,.3,1) forwards}
.mo-paw svg{width:100%;height:100%}
@keyframes mo-paw{to{transform:translate(var(--dx),var(--dy)) rotate(var(--r)) scale(.5);opacity:0}}
.mo-rise{animation:mo-rise .7s var(--ease) both}
@keyframes mo-rise{from{transform:translateY(16px) rotate(-1.5deg)}to{transform:none}}

@media (max-width:1180px){.how-story .how-steps{grid-template-columns:1fr}}
@media (max-width:900px){
  .how-story{grid-template-columns:1fr;gap:0}
  .how-stage{order:-1;position:sticky;top:calc(var(--hh) + 8px);z-index:2;width:min(54vw,250px);margin:0 auto 6px}
  .how-stage::before{content:"";position:absolute;inset:-14px -50vw -12px;background:var(--white);z-index:-1}
  .how-story .how-steps li{min-height:46vh;padding:0;transform:none}
  .how-story .how-steps li.is-on{transform:none}
  .how-story .how-steps b{font-size:21px}
  .how-story .how-steps p{font-size:15px}
  .how-sticker{width:44px;height:44px}.how-sticker svg{width:20px;height:20px}
  .how-sticker-a{right:-14px;top:-12px}.how-sticker-b{left:-16px}
  .how-tag{font-size:9px;padding:4px 7px}
  .how-proof{grid-template-columns:1fr}
}
@media (max-width:640px){
  .how-story .how-steps li{min-height:42vh;align-content:center}
  .how-pairs{grid-template-columns:1fr}
  .mo-preview-body{grid-template-columns:110px minmax(0,1fr)}
  .shop-chip{padding:6px 14px 6px 6px}.shop-chip img{width:42px;height:42px}.shop-chip b{font-size:14px}
  .mo-dots{bottom:14px;right:10px}.mo-dots button{width:18px;height:18px}
}
@media (prefers-reduced-motion:reduce){
  .how-shot,.how-tag,.how-story .how-steps li,.mo-alt{transition:none}
  .how-sticker,.shop-strip-track,.how-marks ellipse,.mo-rise,.mo-palette i{animation:none!important}
  .mo-palette i{transform:none}
  .shop-strip-track{overflow-x:auto;width:auto;padding-inline:16px}
}
