/* =========================================================
   SOPRA COLLECTION — Neo-Brutalist (v3 polished, restored)
   ========================================================= */

:root{
  --bg:#ffe500;
  --bg-2:#fff4a8;
  --ink:#0a0a0a;
  --paper:#ffffff;
  --red:#ff3b3b;
  --blue:#2e6bff;
  --lime:#c3ff00;
  --pink:#ff74c4;
  --cream:#fbf7ed;
  --shadow-sm:3px 3px 0 var(--ink);
  --shadow:6px 6px 0 var(--ink);
  --shadow-lg:10px 10px 0 var(--ink);
  --shadow-xl:14px 14px 0 var(--ink);
  --font-head:'Archivo Black',sans-serif;
  --font-body:'Space Grotesk',sans-serif;
  --font-mono:'IBM Plex Mono',monospace;
  --font-serif:'Instrument Serif',serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;padding:0;background:var(--bg);color:var(--ink);
  font-family:var(--font-body);font-size:16px;line-height:1.55;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
  background-image:
    linear-gradient(rgba(0,0,0,.05) 2px,transparent 2px),
    linear-gradient(90deg,rgba(0,0,0,.05) 2px,transparent 2px);
  background-size:80px 80px;
}
img,video{max-width:100%;height:auto;display:block}
img[width][height],video[width][height]{height:auto}
/* Avatars stay cropped (round photo) — everything else shows the FULL asset
   with object-fit:contain so nothing is cut off. Backgrounds fill the
   letterboxed area so the layout still looks intentional. */
.hero-art{background:#f4ede1}
/* .card-media background defined later (line ~580 with var(--bg-2)) — don't duplicate */
.gallery-grid a,.gallery-grid li,.gallery-grid div{background:#f4ede1}
.video-wrap{background:#000}
.hero-art>img,.hero-art>video,
.card-media img,.card-media video,
.gallery-grid img,.gallery-grid video,
.video-wrap video{width:100%!important;height:100%!important;object-fit:contain!important;object-position:center!important}
.avatar img,.test-who .avatar img{width:100%!important;height:100%!important;object-fit:cover!important}
.story-art{background:#f4ede1}
.story-art img,.story-art video{width:100%!important;height:100%!important;object-fit:contain!important;object-position:center!important}
button{font-family:inherit;cursor:pointer}
a{color:inherit;text-decoration:none}

/* ==== GRAIN ==== */
body::before{
  content:'';position:fixed;inset:0;pointer-events:none;z-index:200;
  opacity:.09;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='300' height='300'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}

/* ==== CUSTOM CURSOR ==== */
.cursor-dot,.cursor-ring{
  position:fixed;top:0;left:0;pointer-events:none;z-index:9999;
  transform:translate(-100px,-100px);mix-blend-mode:multiply;
}
.cursor-dot{width:10px;height:10px;background:var(--ink);border-radius:50%;transition:transform .05s linear}
.cursor-ring{
  width:38px;height:38px;border:2px solid var(--ink);border-radius:50%;
  transition:width .2s,height .2s;
  margin:-19px 0 0 -19px;
}
body.cursor-hover .cursor-ring{width:60px;height:60px;margin:-30px 0 0 -30px;background:var(--red);border-color:var(--red);mix-blend-mode:difference}
@media (hover:none){.cursor-dot,.cursor-ring{display:none}}

/* ==== REVEAL ==== */
.reveal{opacity:0;transform:translateY(40px);transition:opacity .7s cubic-bezier(.22,.61,.36,1),transform .7s cubic-bezier(.22,.61,.36,1)}
.reveal.in{opacity:1;transform:none}
.reveal-delay-1{transition-delay:.08s}
.reveal-delay-2{transition-delay:.16s}
.reveal-delay-3{transition-delay:.24s}

/* ==== ANNOUNCE ==== */
.announce{
  background:var(--ink);color:var(--lime);
  border-bottom:4px solid var(--ink);
  padding:10px 0;overflow:hidden;white-space:nowrap;
  font-family:var(--font-mono);font-size:12px;font-weight:600;
  text-transform:uppercase;letter-spacing:.12em;
  position:relative;z-index:51;
}
.announce-track{display:inline-block;animation:marquee 30s linear infinite}
.announce-track span{margin:0 28px}
.announce-track em{font-style:normal;color:var(--red);margin:0 14px}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ==== TOPBAR ==== */
.topbar{
  position:sticky;top:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 44px;gap:24px;
  background:var(--bg);border-bottom:4px solid var(--ink);
}
.brand{
  display:flex;align-items:center;gap:12px;
  font-family:var(--font-head);font-size:22px;
  text-transform:uppercase;letter-spacing:-.01em;
}
.brand .logo{
  display:inline-flex;align-items:center;justify-content:center;
  width:40px;height:40px;background:var(--red);color:var(--paper);
  border:3px solid var(--ink);box-shadow:3px 3px 0 var(--ink);
  font-family:var(--font-head);font-size:20px;transform:rotate(-3deg);
}
.nav{display:flex;gap:2px;align-items:center}
.nav a{
  padding:10px 14px;font-weight:600;font-size:14px;text-transform:uppercase;
  border:2px solid transparent;transition:all .15s;
}
.nav a:hover,.nav a.active{background:var(--ink);color:var(--bg)}
.tools{display:flex;gap:10px;align-items:center}
.lang-wrap{display:flex;align-items:center;gap:10px}
.lang-label{
  display:flex;flex-direction:column;line-height:1.15;
  font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink);text-align:right;
  animation:langNudge 2.4s ease-in-out infinite;
}
.lang-label span:first-child{color:var(--red);font-weight:600}
.lang-label span:last-child{color:var(--ink);opacity:.75}
@keyframes langNudge{
  0%,100%{transform:translateX(0)}
  50%{transform:translateX(4px)}
}
.btn-chip{
  background:var(--paper);color:var(--ink);border:3px solid var(--ink);
  padding:10px 16px;font-family:var(--font-mono);font-weight:600;font-size:12px;
  box-shadow:3px 3px 0 var(--ink);transition:transform .15s,box-shadow .15s;
  text-transform:uppercase;
}
.btn-chip:hover{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}
.btn-chip.red{background:var(--red);color:var(--paper)}
.btn-chip.blue{background:var(--blue);color:var(--paper)}
.btn-chip.lime{background:var(--lime);color:var(--ink)}

.menu-btn{display:none;background:var(--paper);border:3px solid var(--ink);width:46px;height:46px;flex-direction:column;gap:5px;align-items:center;justify-content:center;box-shadow:3px 3px 0 var(--ink)}
.menu-btn span{display:block;width:22px;height:3px;background:var(--ink);transition:.3s}
.menu-btn.open span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.menu-btn.open span:nth-child(2){opacity:0}
.menu-btn.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

/* ==== HERO ==== */
.hero{
  display:grid;grid-template-columns:1.15fr .85fr;gap:60px;
  padding:80px 50px 80px;max-width:1440px;margin:0 auto;align-items:center;
  position:relative;
}
.hero::after{
  content:'';position:absolute;right:42%;top:12%;
  width:120px;height:120px;background:var(--lime);border:4px solid var(--ink);
  border-radius:50%;box-shadow:6px 6px 0 var(--ink);
  animation:float 6s ease-in-out infinite;z-index:0;opacity:.4;
}
.hero-inner{position:relative;z-index:1}
.hero .badge{
  display:inline-block;background:var(--ink);color:var(--lime);
  padding:10px 18px;font-family:var(--font-mono);font-size:12px;
  margin-bottom:28px;letter-spacing:.15em;text-transform:uppercase;
  transform:rotate(-1.5deg);box-shadow:4px 4px 0 var(--red);
}
.hero-title{
  font-family:var(--font-head);font-weight:900;
  font-size:clamp(56px,9vw,150px);line-height:.9;
  letter-spacing:-.035em;margin:0 0 28px;text-transform:uppercase;
}
.rotator{
  display:inline-block;position:relative;
  height:1.4em;overflow:hidden;vertical-align:middle;line-height:1.4;
  padding:0 .1em;
}
.rotator-inner{display:block;animation:rotWords 6s infinite}
.rotator-inner em{
  display:flex;align-items:center;justify-content:center;
  height:1.4em;font-style:normal;line-height:1;
  background:var(--red);color:var(--paper);
  padding:.08em .18em;box-shadow:6px 6px 0 var(--ink);
  border:4px solid var(--ink);
  white-space:nowrap;
}
.rotator-inner em:nth-child(2){background:var(--blue);box-shadow:6px 6px 0 var(--ink)}
.rotator-inner em:nth-child(3){background:var(--lime);color:var(--ink);box-shadow:6px 6px 0 var(--ink)}
@keyframes rotWords{
  0%,28%{transform:translateY(0)}
  33%,61%{transform:translateY(-1.4em)}
  66%,94%{transform:translateY(-2.8em)}
  100%{transform:translateY(-4.2em)}
}
body[data-lang="ne"] .rotator{height:1.55em;line-height:1.55}
body[data-lang="ne"] .rotator-inner em{height:1.55em}
body[data-lang="ne"] .rotator-inner{animation:rotWordsNe 6s infinite}
@keyframes rotWordsNe{
  0%,28%{transform:translateY(0)}
  33%,61%{transform:translateY(-1.55em)}
  66%,94%{transform:translateY(-3.1em)}
  100%{transform:translateY(-4.65em)}
}

/* Nepali (Devanagari) needs extra line-height so matras above
   and below the baseline aren't clipped by tight h1/h2 styles. */
body[data-lang="ne"] .hero-title,
body[data-lang="ne"] .section-title,
body[data-lang="ne"] .story-text h2,
body[data-lang="ne"] .lookbook-text h2,
body[data-lang="ne"] .news-card h2,
body[data-lang="ne"] .reel-info h2,
body[data-lang="ne"] .card-title,
body[data-lang="ne"] .faq-q,
body[data-lang="ne"] .foot-brand h4,
body[data-lang="ne"] .trust-item h3{
  line-height:1.2;
}
body[data-lang="ne"] .hero-title{line-height:1.15}
body[data-lang="ne"] .marquee-track span,
body[data-lang="ne"] .announce-track span{line-height:1.3}

/* =========================================================
   GUIDANCE ANIMATIONS (help customers, reduce confusion)
   ========================================================= */

/* Smooth initial page fade-in */
body{animation:pageIn .5s ease-out both}
@keyframes pageIn{from{opacity:0}to{opacity:1}}

/* Scroll-down hint at bottom of hero */
.scroll-hint{
  position:absolute;left:50%;bottom:24px;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:10px;
  font-family:var(--font-mono);font-size:10px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--ink);pointer-events:none;z-index:3;
  animation:hintFade 1.2s ease-out .8s both;
}
.scroll-hint .dot{
  width:36px;height:36px;border:3px solid var(--ink);border-radius:50%;
  background:var(--paper);display:flex;align-items:center;justify-content:center;
  font-size:16px;font-weight:700;box-shadow:3px 3px 0 var(--ink);
  animation:scrollBounce 2s ease-in-out infinite;
}
@keyframes scrollBounce{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(10px)}
}
@keyframes hintFade{from{opacity:0;transform:translate(-50%,20px)}to{opacity:1;transform:translate(-50%,0)}}

/* Primary CTA pulse halo (only on hero button) */
.hero-cta .btn-primary{position:relative;z-index:1}
.hero-cta .btn-primary::before{
  content:'';position:absolute;inset:-4px;z-index:-1;
  background:var(--red);border:4px solid var(--ink);
  animation:ctaPulse 2.4s ease-out infinite;
}
@keyframes ctaPulse{
  0%{opacity:.55;transform:scale(1)}
  80%,100%{opacity:0;transform:scale(1.12)}
}

/* Card stagger entrance (products + best sellers) */
.grid > .grid-item,
.best-scroll > .grid-item{
  animation:cardIn .55s cubic-bezier(.22,.61,.36,1) both;
}
.grid > .grid-item:nth-child(1){animation-delay:.03s}
.grid > .grid-item:nth-child(2){animation-delay:.09s}
.grid > .grid-item:nth-child(3){animation-delay:.15s}
.grid > .grid-item:nth-child(4){animation-delay:.21s}
.grid > .grid-item:nth-child(5){animation-delay:.27s}
.grid > .grid-item:nth-child(6){animation-delay:.33s}
.grid > .grid-item:nth-child(7){animation-delay:.39s}
.grid > .grid-item:nth-child(8){animation-delay:.45s}
.grid > .grid-item:nth-child(n+9){animation-delay:.5s}
@keyframes cardIn{
  from{opacity:0;transform:translateY(40px) scale(.97)}
  to{opacity:1;transform:none}
}

/* "Swipe" indicator chip in Best Sellers head */
.swipe-chip{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--font-mono);font-size:11px;
  padding:8px 14px;background:var(--paper);border:3px solid var(--ink);
  box-shadow:3px 3px 0 var(--red);text-transform:uppercase;letter-spacing:.08em;
  animation:swipeNudge 2.2s ease-in-out infinite;
}
.swipe-chip .arrow{display:inline-block;animation:arrowSlide 1.4s ease-in-out infinite}
@keyframes swipeNudge{
  0%,100%{transform:translateX(0)}
  50%{transform:translateX(5px)}
}
@keyframes arrowSlide{
  0%,100%{transform:translateX(0)}
  50%{transform:translateX(4px)}
}

/* WhatsApp order button — arrow nudges right on hover */
.wa-btn::after{
  content:'→';display:inline-block;margin-left:2px;
  transition:transform .25s cubic-bezier(.3,1.4,.5,1);
}
.wa-btn:hover::after{transform:translateX(6px)}

/* Nav link underline slide-in on hover (already has transform, enhance) */
.nav a::after{
  content:'';position:absolute;left:14px;right:14px;bottom:4px;
  height:2px;background:var(--ink);transform:scaleX(0);transform-origin:left;
  transition:transform .3s cubic-bezier(.22,.61,.36,1);
}
.nav a{position:relative}
.nav a:hover::after{transform:scaleX(1)}
.nav a:hover{background:transparent;color:var(--ink)}
.nav a:hover::after{background:var(--red);height:3px}

/* Hero stats — number container subtle highlight when counting */
.hero-stats .stat .num{transition:color .3s}
.hero-stats.counting .stat .num{color:var(--red)}

/* Loading skeleton (brief flash while products load) */
.grid:empty::before{
  content:'Loading…';display:block;grid-column:1/-1;
  font-family:var(--font-mono);font-size:12px;color:#666;
  padding:60px 0;text-align:center;letter-spacing:.1em;text-transform:uppercase;
  animation:skeleton 1.4s ease-in-out infinite;
}
@keyframes skeleton{
  0%,100%{opacity:.4}
  50%{opacity:.9}
}

/* =========================================================
   WHATSAPP + GRAVITY icon animations
   ========================================================= */

/* Floating WhatsApp — the icon "rings" periodically like a phone */
.wa-float svg{
  transform-origin:center center;
  animation:waRing 3.6s ease-in-out infinite;
}
@keyframes waRing{
  0%,82%,100%{transform:rotate(0)}
  84%{transform:rotate(-16deg)}
  86%{transform:rotate(14deg)}
  88%{transform:rotate(-12deg)}
  90%{transform:rotate(10deg)}
  92%{transform:rotate(-6deg)}
  94%{transform:rotate(4deg)}
  96%{transform:rotate(-2deg)}
  98%{transform:rotate(0)}
}

/* Notification badge on the floating button */
.wa-float{overflow:visible}
.wa-float::after{
  content:'1';
  position:absolute;top:-6px;right:-6px;
  width:22px;height:22px;border-radius:50%;
  background:var(--red);color:#fff;border:3px solid var(--ink);
  font-family:var(--font-head);font-size:10px;
  display:flex;align-items:center;justify-content:center;
  box-shadow:2px 2px 0 var(--ink);
  animation:notifBop 1.8s ease-in-out infinite;
  z-index:2;
}
@keyframes notifBop{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.2) rotate(-8deg)}
}

/* Card WA button — icon wobbles on hover, steady pulse otherwise */
.wa-btn svg{
  transform-origin:center center;
  animation:waIdle 2.6s ease-in-out infinite;
  transition:transform .2s;
}
@keyframes waIdle{
  0%,90%,100%{transform:scale(1)}
  50%{transform:scale(1.1)}
}
.wa-btn:hover svg{
  animation:waShake .6s ease-in-out;
}
@keyframes waShake{
  0%{transform:rotate(0) scale(1)}
  15%{transform:rotate(-18deg) scale(1.15)}
  30%{transform:rotate(14deg) scale(1.15)}
  45%{transform:rotate(-10deg) scale(1.1)}
  60%{transform:rotate(6deg) scale(1.05)}
  80%{transform:rotate(-3deg) scale(1.02)}
  100%{transform:rotate(0) scale(1)}
}

/* Gravity button — the 🌀 icon spins continuously, faster on hover */
.grav-icon{
  display:inline-block;transform-origin:center center;
  animation:gravSpin 5s linear infinite;
}
.btn-chip:hover .grav-icon,
.gravity-btn:hover .grav-icon{
  animation:gravSpinFast .7s linear infinite;
}
@keyframes gravSpin{to{transform:rotate(360deg)}}
@keyframes gravSpinFast{to{transform:rotate(360deg)}}

/* Reduce motion for users who prefer it */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
}

.hero-sub{
  font-family:var(--font-mono);font-size:15px;color:#222;
  max-width:500px;margin:0 0 34px;line-height:1.75;
}
.hero-cta{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:40px}
.btn{
  padding:18px 30px;font-family:var(--font-head);font-weight:700;
  font-size:15px;text-transform:uppercase;letter-spacing:.02em;
  border:4px solid var(--ink);display:inline-flex;align-items:center;gap:10px;
  transition:transform .15s,box-shadow .15s;
}
.btn-primary{background:var(--red);color:var(--paper);box-shadow:var(--shadow-lg)}
.btn-primary:hover{transform:translate(4px,4px);box-shadow:var(--shadow)}
.btn-ghost{background:var(--paper);color:var(--ink);box-shadow:var(--shadow-lg)}
.btn-ghost:hover{transform:translate(4px,4px);box-shadow:var(--shadow)}

.btn.btn-wa,a.btn-wa{
  background:#25D366 !important;color:#ffffff !important;
  box-shadow:var(--shadow-lg);
  position:relative;overflow:hidden;
  animation:waBtnPulse 1.8s ease-in-out infinite;
  text-decoration:none;
}
.btn.btn-wa:hover,a.btn-wa:hover{transform:translate(4px,4px);box-shadow:var(--shadow);animation-play-state:paused}
.btn-wa .wa-txt{color:#ffffff;position:relative;z-index:2}
.btn-wa .wa-ic{
  width:24px;height:24px;display:inline-block;flex:0 0 24px;
  position:relative;z-index:2;
  animation:waIcWobble 1.6s ease-in-out infinite;
  transform-origin:50% 50%;
}
.btn-wa .wa-ic path{fill:#ffffff}
.btn-wa::before{
  content:"";position:absolute;top:0;left:0;width:60%;height:100%;
  background:linear-gradient(120deg,transparent 0,rgba(255,255,255,.55) 50%,transparent 100%);
  transform:translateX(-200%) skewX(-20deg);
  animation:waBtnShine 2.6s ease-in-out infinite;
  pointer-events:none;will-change:transform;
}
@keyframes waBtnPulse{
  0%,100%{box-shadow:var(--shadow-lg),0 0 0 0 rgba(37,211,102,.55)}
  50%{box-shadow:var(--shadow-lg),0 0 0 14px rgba(37,211,102,0)}
}
@keyframes waIcWobble{
  0%,100%{transform:rotate(0) scale(1)}
  20%{transform:rotate(-12deg) scale(1.08)}
  40%{transform:rotate(10deg) scale(1.08)}
  60%{transform:rotate(-6deg) scale(1.04)}
  80%{transform:rotate(4deg) scale(1.02)}
}
@keyframes waBtnShine{
  0%{transform:translateX(-200%) skewX(-20deg)}
  60%,100%{transform:translateX(250%) skewX(-20deg)}
}
@media (prefers-reduced-motion: reduce){
  .btn-wa,.btn-wa .wa-ic,.btn-wa::before{animation:none}
}

.hero-stats{
  display:flex;gap:0;border:4px solid var(--ink);
  background:var(--paper);box-shadow:var(--shadow);max-width:560px;
}
.hero-stats .stat{flex:1;padding:18px 20px;border-right:3px solid var(--ink)}
.hero-stats .stat:last-child{border-right:none}
.hero-stats .num{display:block;font-family:var(--font-head);font-size:28px;line-height:1}
.hero-stats .lbl{font-family:var(--font-mono);font-size:10px;color:#555;text-transform:uppercase;margin-top:6px;display:block;letter-spacing:.08em}

.hero-art{
  position:relative;aspect-ratio:4/5;
  border:4px solid var(--ink);background:var(--paper);
  box-shadow:14px 14px 0 var(--red);overflow:visible;
}
.hero-art>img,.hero-art>video{width:100%;height:100%;object-fit:cover;display:block}
.hero-art .sticker,.hero-art .tag-chip,.hero-art .price-stick{z-index:3}
.hero-art .sticker{
  position:absolute;top:-28px;right:-28px;
  width:120px;height:120px;border-radius:50%;background:var(--lime);
  border:4px solid var(--ink);box-shadow:5px 5px 0 var(--ink);
  display:flex;align-items:center;justify-content:center;text-align:center;
  font-family:var(--font-head);font-size:13px;
  text-transform:uppercase;transform:rotate(12deg);
  animation:spin 12s linear infinite;line-height:1.1;
}
@keyframes spin{to{transform:rotate(372deg)}}
.hero-art .tag-chip{
  position:absolute;bottom:-26px;left:-26px;
  background:var(--blue);color:var(--paper);border:4px solid var(--ink);
  padding:12px 20px;box-shadow:4px 4px 0 var(--ink);
  font-family:var(--font-mono);font-size:12px;text-transform:uppercase;
  letter-spacing:.08em;transform:rotate(-3deg);
}
.hero-art .price-stick{
  position:absolute;top:40%;left:-40px;
  background:var(--paper);border:4px solid var(--ink);
  padding:10px 14px;box-shadow:4px 4px 0 var(--red);
  font-family:var(--font-mono);font-size:12px;
}
.hero-art .price-stick strong{display:block;font-family:var(--font-head);font-size:22px;color:var(--red)}

@keyframes float{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-16px) rotate(8deg)}}

/* ==== TRUST BAR ==== */
.trust{
  max-width:1440px;margin:0 auto;padding:20px 50px 40px;
  display:grid;grid-template-columns:repeat(4,1fr);gap:20px;
}
.trust-item{
  background:var(--paper);border:4px solid var(--ink);
  padding:22px;box-shadow:var(--shadow);
  display:flex;gap:14px;align-items:center;
  transition:transform .15s,box-shadow .15s;
}
.trust-item:hover{transform:translate(-3px,-3px);box-shadow:var(--shadow-lg)}
.trust-item:nth-child(1){background:var(--red);color:var(--paper)}
.trust-item:nth-child(3){background:var(--blue);color:var(--paper)}
.trust-item .ico{
  flex-shrink:0;width:52px;height:52px;
  display:flex;align-items:center;justify-content:center;
  background:var(--paper);color:var(--ink);border:3px solid var(--ink);
  box-shadow:3px 3px 0 var(--ink);font-size:26px;
}
.trust-item h3{margin:0 0 4px;font-family:var(--font-head);font-size:17px;text-transform:uppercase;letter-spacing:-.01em}
.trust-item p{margin:0;font-family:var(--font-mono);font-size:12px;line-height:1.5}

/* ==== SECTION HEAD ==== */
.section-head{
  display:flex;align-items:flex-end;justify-content:space-between;
  margin-bottom:50px;gap:20px;flex-wrap:wrap;
  border-bottom:4px solid var(--ink);padding-bottom:26px;
}
.section-title{
  font-family:var(--font-head);font-weight:900;text-transform:uppercase;
  font-size:clamp(44px,6.5vw,96px);line-height:.92;margin:0;letter-spacing:-.03em;
}
.section-title em{font-style:italic;font-family:var(--font-serif);color:var(--red);font-weight:400}
.section-title .chip{
  display:inline-block;background:var(--ink);color:var(--lime);
  font-family:var(--font-mono);font-size:14px;
  padding:6px 12px;vertical-align:middle;margin-left:10px;
  transform:rotate(-3deg);box-shadow:3px 3px 0 var(--red);
}
.section-head .meta{font-family:var(--font-mono);font-size:13px;color:#333;max-width:340px;line-height:1.7}

/* ==== SHOP ==== */
.shop{padding:100px 50px 60px;max-width:1440px;margin:0 auto}

.filter-bar{
  display:flex;gap:10px;flex-wrap:wrap;margin-bottom:40px;
  padding:18px;background:var(--paper);border:4px solid var(--ink);box-shadow:var(--shadow);
}
.filter-bar button{
  background:transparent;border:3px solid var(--ink);
  padding:11px 20px;font-family:var(--font-mono);font-weight:600;font-size:12px;
  text-transform:uppercase;letter-spacing:.05em;
  transition:all .15s;
}
.filter-bar button:hover{background:var(--bg-2)}
.filter-bar button.active{background:var(--ink);color:var(--lime);box-shadow:3px 3px 0 var(--red)}
.filter-count{
  margin-left:auto;font-family:var(--font-mono);font-size:12px;
  padding:11px 14px;background:var(--bg);border:3px solid var(--ink);
  text-transform:uppercase;
}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:28px}
.grid-item{animation:fadeIn .4s ease-out both}
@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* ==== CARDS ==== */
.card{
  background:var(--paper);border:4px solid var(--ink);
  overflow:hidden;display:flex;flex-direction:column;
  box-shadow:var(--shadow);position:relative;
  transition:transform .2s,box-shadow .2s;
}
.card:hover{transform:translate(-5px,-5px);box-shadow:var(--shadow-xl)}
.card-media{position:relative;aspect-ratio:4/5;overflow:hidden;border-bottom:4px solid var(--ink);background:var(--bg-2)}
.card-media img,
.card-media video{
  position:absolute;inset:0;
  width:100%;height:100%;object-fit:cover;
  transition:opacity .5s,transform .8s cubic-bezier(.2,0,.2,1);
}
.card-media .img-b{opacity:0}
.card:hover .img-a{opacity:0;transform:scale(1.05)}
.card:hover .img-b{opacity:1;transform:scale(1.05)}
.card-media .tag{
  position:absolute;top:12px;left:12px;
  background:var(--red);color:var(--paper);
  border:3px solid var(--ink);box-shadow:3px 3px 0 var(--ink);
  padding:5px 10px;font-family:var(--font-mono);font-size:11px;
  text-transform:uppercase;letter-spacing:.05em;z-index:2;
}
.card-media .tag.new{background:var(--lime);color:var(--ink)}
.card-media .tag.hot{background:var(--red)}
.card-media .tag.sale{background:var(--blue);color:var(--paper)}
.card-media .vid-badge{
  position:absolute;top:12px;right:12px;
  background:var(--ink);color:var(--lime);border:2px solid var(--ink);
  padding:5px 9px;font-family:var(--font-mono);font-size:11px;z-index:2;
}
.card-fav{
  position:absolute;bottom:12px;right:12px;
  width:44px;height:44px;background:var(--paper);border:3px solid var(--ink);
  box-shadow:3px 3px 0 var(--ink);display:flex;align-items:center;justify-content:center;
  font-size:18px;z-index:2;transition:transform .15s,background .15s;
}
.card-fav:hover{background:var(--red);color:var(--paper);transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--ink)}
.card-fav.active{background:var(--red);color:var(--paper)}
.card-body{padding:20px;display:flex;flex-direction:column;gap:12px;flex:1}
.card-title{
  margin:0;font-family:var(--font-head);font-size:16px;
  text-transform:uppercase;letter-spacing:-.01em;line-height:1.1;
}
.card-desc{margin:0;font-family:var(--font-mono);font-size:12px;color:#555;line-height:1.55}
.swatches{display:flex;gap:6px}
.swatches span{
  width:18px;height:18px;border:2px solid var(--ink);cursor:pointer;
  transition:transform .15s;border-radius:50%;
}
.swatches span:hover{transform:scale(1.15)}
.sizes{display:flex;gap:5px;flex-wrap:wrap}
.sizes span{
  font-family:var(--font-mono);font-size:10px;
  padding:3px 7px;border:2px solid var(--ink);background:var(--bg-2);
  letter-spacing:.05em;font-weight:600;
}
.card-price{display:flex;align-items:baseline;gap:10px;margin-top:auto;padding-top:6px}
.price{font-family:var(--font-head);font-size:24px}
.price-old{font-family:var(--font-mono);text-decoration:line-through;font-size:13px;color:#888}
.price-save{
  margin-left:auto;font-family:var(--font-mono);font-size:10px;
  background:var(--lime);color:var(--ink);padding:3px 8px;border:2px solid var(--ink);
  text-transform:uppercase;letter-spacing:.05em;
}
.wa-btn{
  display:flex;align-items:center;justify-content:center;gap:8px;
  background:#25d366;color:var(--paper);
  padding:14px;font-family:var(--font-head);font-size:13px;
  text-transform:uppercase;letter-spacing:.03em;
  border:3px solid var(--ink);
  transition:transform .15s,box-shadow .15s;margin-top:4px;
  position:relative;overflow:hidden;isolation:isolate;
  animation:waBtnGlow 2.6s ease-in-out infinite;
}
.wa-btn > *{position:relative;z-index:2}
.wa-btn::before{
  content:'';position:absolute;top:-20%;left:-120%;
  width:70%;height:140%;
  background:linear-gradient(115deg,transparent 40%,rgba(255,255,255,.65) 50%,transparent 60%);
  transform:skewX(-18deg);
  animation:waShine 3.2s ease-in-out infinite;
  pointer-events:none;z-index:1;
}
.wa-btn:hover{transform:translate(2px,2px);animation:none}
@keyframes waBtnGlow{
  0%,100%{box-shadow:4px 4px 0 var(--ink),0 0 0 rgba(37,211,102,0)}
  50%{box-shadow:4px 4px 0 var(--ink),0 0 22px 2px rgba(37,211,102,.85)}
}
@keyframes waShine{
  0%,55%{left:-120%}
  78%,100%{left:140%}
}

/* ==== BEST SELLERS ==== */
.best{padding:60px 50px;max-width:1440px;margin:0 auto}
.best-scroll-wrap{position:relative}
.best-scroll{
  display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;
  padding:8px 4px 24px;scroll-behavior:smooth;
}
.best-scroll::-webkit-scrollbar{height:6px}
.best-scroll::-webkit-scrollbar-thumb{background:var(--ink)}
.best-scroll .card{scroll-snap-align:start;flex:0 0 280px}
.best-arrows{display:flex;gap:10px;margin-left:auto}
.best-arrows button{
  width:52px;height:52px;background:var(--paper);border:4px solid var(--ink);
  font-size:24px;box-shadow:var(--shadow);
  transition:transform .15s,box-shadow .15s;
}
.best-arrows button:hover{transform:translate(-3px,-3px);box-shadow:var(--shadow-lg);background:var(--red);color:var(--paper)}

/* ==== STORY ==== */
.story{
  padding:100px 50px;max-width:1440px;margin:0 auto;
  display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;
}
.story-text h2{
  font-family:var(--font-head);font-size:clamp(44px,7vw,110px);line-height:.9;
  margin:0 0 30px;text-transform:uppercase;letter-spacing:-.03em;
}
.story-text h2 em{font-family:var(--font-serif);color:var(--red);font-style:italic;font-weight:400}
.story-text p{font-family:var(--font-mono);font-size:15px;line-height:1.75;margin:0 0 20px;max-width:520px}
.story-text .signed{font-family:var(--font-serif);font-style:italic;font-size:22px;margin-top:30px;display:block}
.story-art{position:relative;aspect-ratio:1/1}
.story-art img,.story-art video{width:100%;height:100%;object-fit:cover;border:4px solid var(--ink);box-shadow:var(--shadow-xl);display:block}
.story-art .caption{
  position:absolute;bottom:-20px;left:20px;
  background:var(--ink);color:var(--lime);border:4px solid var(--ink);
  padding:10px 16px;font-family:var(--font-mono);font-size:12px;
  text-transform:uppercase;letter-spacing:.1em;
}

/* ==== GALLERY ==== */
.gallery{padding:80px 50px 40px;max-width:1440px;margin:0 auto}
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.gallery-grid a{
  position:relative;display:block;aspect-ratio:1/1;
  border:4px solid var(--ink);box-shadow:var(--shadow);
  overflow:hidden;transition:transform .2s,box-shadow .2s;
}
.gallery-grid a:hover{transform:translate(-4px,-4px);box-shadow:var(--shadow-xl)}
.gallery-grid img,.gallery-grid video{width:100%;height:100%;object-fit:cover;transition:transform .7s;display:block}
.gallery-grid a:hover img,.gallery-grid a:hover video{transform:scale(1.1)}
.gallery-grid a::after{
  content:'@sopracollection';
  position:absolute;inset:0;display:flex;align-items:flex-end;padding:12px;
  background:linear-gradient(to top,rgba(0,0,0,.8),transparent 50%);
  color:#fff;font-family:var(--font-mono);font-size:11px;
  opacity:0;transition:opacity .3s;
}
.gallery-grid a:hover::after{opacity:1}

/* ==== TESTIMONIALS ==== */
.testimonials{padding:80px 50px;max-width:1440px;margin:0 auto}
.test-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.test-card{
  background:var(--paper);border:4px solid var(--ink);
  padding:30px;box-shadow:var(--shadow);position:relative;
  transition:transform .15s,box-shadow .15s;
}
.test-card:hover{transform:translate(-4px,-4px);box-shadow:var(--shadow-xl)}
.test-card:nth-child(2){background:var(--bg-2);transform:rotate(-.8deg)}
.test-card:nth-child(2):hover{transform:rotate(-.8deg) translate(-4px,-4px)}
.test-card::before{
  content:'"';position:absolute;top:-40px;left:20px;
  font-family:var(--font-serif);font-size:130px;line-height:.8;color:var(--red);
}
.test-stars{color:var(--red);font-size:18px;letter-spacing:2px;margin-bottom:14px}
.test-card p{font-family:var(--font-mono);font-size:13px;line-height:1.7;margin:0 0 22px;color:#333}
.test-who{display:flex;align-items:center;gap:12px;padding-top:18px;border-top:2px dashed var(--ink)}
.test-who .avatar{
  width:46px;height:46px;border:3px solid var(--ink);background:var(--bg);
  box-shadow:3px 3px 0 var(--ink);overflow:hidden;
}
.test-who .avatar img{width:100%;height:100%;object-fit:cover}
.test-who strong{font-family:var(--font-head);font-size:14px;text-transform:uppercase;display:block;line-height:1.1}
.test-who span{font-family:var(--font-mono);font-size:11px;color:#666;margin-top:2px;display:block}

/* ==== FAQ ==== */
.faq{padding:80px 50px;max-width:1000px;margin:0 auto}
.faq-list{display:flex;flex-direction:column;gap:16px}
.faq-item{
  background:var(--paper);border:4px solid var(--ink);
  box-shadow:var(--shadow);overflow:hidden;
  transition:transform .15s,box-shadow .15s;
}
.faq-item.open{box-shadow:var(--shadow-lg);background:var(--bg-2)}
.faq-q{
  width:100%;text-align:left;background:transparent;border:none;
  padding:22px 26px;font-family:var(--font-head);font-size:17px;
  text-transform:uppercase;letter-spacing:-.01em;
  display:flex;justify-content:space-between;align-items:center;gap:20px;
}
.faq-q::after{
  content:'+';font-size:32px;font-family:var(--font-head);
  transition:transform .3s;flex-shrink:0;color:var(--red);
}
.faq-item.open .faq-q::after{transform:rotate(45deg)}
.faq-a{
  max-height:0;overflow:hidden;transition:max-height .4s ease;
  padding:0 26px;
}
.faq-item.open .faq-a{max-height:240px;padding:0 26px 22px}
.faq-a p{font-family:var(--font-mono);font-size:13px;line-height:1.75;margin:0;color:#333}

/* ==== LOOKBOOK ==== */
.lookbook{padding:80px 50px 60px;max-width:1440px;margin:0 auto}
.lookbook-wrap{
  display:grid;grid-template-columns:1fr 380px;gap:60px;align-items:center;
}
.lookbook-text{max-width:520px}
.lookbook-text h2{
  font-family:var(--font-head);font-size:clamp(40px,5vw,74px);
  line-height:.9;margin:0 0 20px;text-transform:uppercase;letter-spacing:-.03em;
}
.lookbook-text h2 em{font-family:var(--font-serif);color:var(--red);font-style:italic;font-weight:400}
.lookbook-text p{font-family:var(--font-mono);font-size:14px;line-height:1.75;margin:0 0 28px}
.phone-frame{
  position:relative;margin:0 auto;
  width:100%;max-width:340px;aspect-ratio:9/16;
  background:var(--ink);padding:10px;
  border:4px solid var(--ink);
  box-shadow:12px 12px 0 var(--red);
}
.phone-notch{
  position:absolute;top:12px;left:50%;transform:translateX(-50%);
  width:100px;height:18px;background:#000;border-radius:0 0 10px 10px;z-index:3;
}
.video-wrap{position:relative;width:100%;height:100%;overflow:hidden;background:#000}
.video-wrap video{width:100%;height:100%;object-fit:cover}
.reel-overlay{
  position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(to top,rgba(0,0,0,.65) 0%,transparent 40%);
}
.reel-actions{position:absolute;right:10px;bottom:90px;display:flex;flex-direction:column;gap:14px;pointer-events:auto}
.reel-actions button{
  width:42px;height:42px;border:3px solid var(--ink);
  background:var(--paper);font-size:18px;box-shadow:3px 3px 0 var(--ink);
}
.reel-actions button:hover{background:var(--red);color:var(--paper)}
.reel-caption{
  position:absolute;left:14px;right:70px;bottom:18px;
  color:#fff;font-family:var(--font-mono);font-size:12px;
  text-shadow:0 1px 4px rgba(0,0,0,.8);
}
.reel-caption strong{display:block;font-family:var(--font-head);font-size:13px;margin-bottom:2px;text-transform:uppercase}

/* ==== NEWSLETTER ==== */
.newsletter{max-width:1440px;margin:40px auto 0;padding:0 50px 80px}
.news-card{
  background:var(--red);color:var(--paper);border:4px solid var(--ink);
  box-shadow:var(--shadow-xl);padding:60px;
  display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;
  position:relative;overflow:hidden;
}
.news-card::before{
  content:'★';position:absolute;right:-30px;top:-60px;
  font-size:300px;color:rgba(255,255,255,.12);line-height:1;
}
.news-card h2{
  font-family:var(--font-head);font-size:clamp(30px,4.5vw,58px);
  margin:0;text-transform:uppercase;line-height:.92;position:relative;letter-spacing:-.03em;
}
.news-card h2 em{font-family:var(--font-serif);font-style:italic;font-weight:400;color:var(--lime)}
.news-form{display:flex;gap:12px;flex-wrap:wrap;position:relative}
.news-form input{
  flex:1;min-width:200px;padding:18px 20px;
  font-family:var(--font-mono);font-size:14px;
  border:4px solid var(--ink);background:var(--paper);color:var(--ink);
  box-shadow:4px 4px 0 var(--ink);
}
.news-form input:focus{outline:none;transform:translate(2px,2px);box-shadow:2px 2px 0 var(--ink)}
.news-form button{
  background:var(--ink);color:var(--lime);border:4px solid var(--ink);
  padding:18px 28px;font-family:var(--font-head);
  text-transform:uppercase;font-size:14px;box-shadow:4px 4px 0 var(--paper);
}
.news-form button:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--paper)}

/* ==== FOOTER ==== */
.foot{
  background:var(--ink);color:var(--lime);padding:80px 50px 30px;
  display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;
  border-top:4px solid var(--ink);position:relative;
}
.foot-brand h4{font-family:var(--font-head);font-size:28px;margin:0 0 14px;text-transform:uppercase}
.foot-brand p{font-family:var(--font-mono);font-size:13px;line-height:1.7;margin:0 0 20px;color:var(--lime)}
.socials{display:flex;gap:10px}
.socials a{
  width:42px;height:42px;display:flex;align-items:center;justify-content:center;
  background:var(--lime);color:var(--ink);border:3px solid var(--lime);
  font-weight:800;font-family:var(--font-head);font-size:14px;
  transition:transform .15s;
}
.socials a:hover{transform:translate(-2px,-2px);background:var(--red);color:var(--paper)}
.foot-col h4{font-family:var(--font-head);margin:0 0 18px;font-size:14px;text-transform:uppercase;color:var(--paper)}
.foot-col p,.foot-col a{display:block;font-family:var(--font-mono);font-size:12px;margin:8px 0;color:var(--lime)}
.foot-col a:hover{color:var(--red)}
.pay-badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.pay-badges span{
  background:var(--paper);color:var(--ink);padding:4px 10px;
  font-family:var(--font-head);font-size:10px;text-transform:uppercase;letter-spacing:.05em;
}
.foot-copy{
  grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;
  padding-top:26px;margin-top:30px;border-top:2px dashed var(--lime);
  font-family:var(--font-mono);font-size:11px;text-transform:uppercase;flex-wrap:wrap;gap:10px;
}

/* ==== FLOATING WA + BACK-TOP ==== */
.wa-float,.back-top{
  position:fixed;width:62px;height:62px;
  background:#25d366;border:4px solid var(--ink);box-shadow:6px 6px 0 var(--ink);
  display:flex;align-items:center;justify-content:center;z-index:60;
  transition:transform .15s,box-shadow .15s;
}
.wa-float{bottom:26px;right:26px}
.wa-float:hover{transform:translate(3px,3px);box-shadow:3px 3px 0 var(--ink)}
.back-top{
  bottom:100px;right:26px;background:var(--ink);color:var(--lime);
  font-family:var(--font-head);font-size:18px;opacity:0;pointer-events:none;
}
.back-top.show{opacity:1;pointer-events:auto}
.back-top:hover{transform:translate(3px,3px);box-shadow:3px 3px 0 var(--ink)}

/* ==== GRAVITY ==== */
body.gravity-on{overflow:hidden}
body.gravity-on .announce,
body.gravity-on .topbar,
body.gravity-on .hero,
body.gravity-on .trust,
body.gravity-on .shop,
body.gravity-on .best,
body.gravity-on .story,
body.gravity-on .gallery,
body.gravity-on .testimonials,
body.gravity-on .faq,
body.gravity-on .lookbook,
body.gravity-on .newsletter,
body.gravity-on .foot{visibility:hidden}
.grav-item{position:absolute;margin:0;pointer-events:none}

/* =========================================================
   REELS PAGE
   ========================================================= */
body.reels-page{background:var(--ink);color:var(--paper)}
body.reels-page::before{opacity:.15}
body.reels-page .topbar{background:var(--bg);border-bottom:4px solid var(--ink)}

.reels-feed{
  height:calc(100vh - 78px);
  height:calc(100dvh - 78px); /* iOS Safari: dvh follows address bar height */
  overflow-y:scroll;scroll-snap-type:y mandatory;
  scroll-behavior:smooth;-webkit-overflow-scrolling:touch;
}
.reels-feed::-webkit-scrollbar{width:0}

.reel-slide{
  min-height:calc(100vh - 78px);
  min-height:calc(100dvh - 78px);
  scroll-snap-align:start;scroll-snap-stop:always;
  display:grid;grid-template-columns:1.1fr 1fr;gap:60px;
  align-items:center;justify-content:center;
  padding:40px 50px;max-width:1300px;margin:0 auto;
}
.reel-slide .phone-frame{
  max-width:380px;width:min(380px,90%);margin:0;justify-self:end;
  box-shadow:14px 14px 0 var(--lime);
}
.reel-slide:nth-child(even) .phone-frame{box-shadow:14px 14px 0 var(--red)}
.reel-slide:nth-child(3n) .phone-frame{box-shadow:14px 14px 0 var(--blue)}

.reel-info{color:var(--paper);max-width:460px}
.reel-info .num{
  display:inline-block;background:var(--lime);color:var(--ink);
  padding:6px 12px;font-family:var(--font-mono);font-size:12px;
  border:3px solid var(--paper);margin-bottom:24px;letter-spacing:.1em;
}
.reel-info h2{
  font-family:var(--font-head);font-size:clamp(36px,5vw,76px);line-height:.92;
  margin:0 0 16px;text-transform:uppercase;letter-spacing:-.03em;
}
.reel-info h2 em{font-family:var(--font-serif);color:var(--lime);font-style:italic;font-weight:400}
.reel-info p{font-family:var(--font-mono);font-size:14px;line-height:1.7;margin:0 0 24px;color:#ccc}
.reel-info .price-row{
  display:flex;align-items:baseline;gap:12px;margin-bottom:24px;
  padding-bottom:20px;border-bottom:2px dashed var(--lime);
}
.reel-info .price{font-family:var(--font-head);font-size:38px;color:var(--lime)}
.reel-info .price-old{font-family:var(--font-mono);color:#999;text-decoration:line-through;font-size:15px}
.reel-info .wa-btn{
  background:#25d366;color:#fff;border:4px solid var(--paper);
  box-shadow:6px 6px 0 var(--lime);padding:16px 24px;font-size:14px;
}
.reel-info .wa-btn:hover{box-shadow:3px 3px 0 var(--lime)}

.reel-progress{position:fixed;top:78px;left:0;right:0;height:4px;background:rgba(255,255,255,.1);z-index:40}
.reel-progress-bar{height:100%;background:var(--lime);width:0;transition:width .25s}
.reel-hint{
  position:fixed;left:50%;bottom:28px;transform:translateX(-50%);
  background:var(--paper);color:var(--ink);border:3px solid var(--ink);
  padding:10px 16px;font-family:var(--font-mono);font-size:11px;
  box-shadow:4px 4px 0 var(--lime);z-index:40;
  text-transform:uppercase;letter-spacing:.08em;pointer-events:none;
  animation:bounce 2s infinite;
}
@keyframes bounce{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,-6px)}}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:1200px){
  .hero{padding:60px 30px;gap:40px}
  .trust{grid-template-columns:repeat(2,1fr);padding:20px 30px 30px}
  .shop,.best,.story,.gallery,.testimonials,.faq,.lookbook{padding-left:30px;padding-right:30px}
  .newsletter{padding-left:30px;padding-right:30px}
  .gallery-grid{grid-template-columns:repeat(3,1fr)}
  .test-grid{grid-template-columns:repeat(2,1fr)}
  .foot{grid-template-columns:1fr 1fr;padding:60px 30px 30px}
  .story{grid-template-columns:1fr;gap:40px}
  .news-card{grid-template-columns:1fr;padding:40px}
  .lookbook-wrap{grid-template-columns:1fr;gap:40px}
  .reel-slide{grid-template-columns:1fr;padding:30px 24px;gap:30px}
  .reel-slide .phone-frame{justify-self:center}
  .reel-info{text-align:center;margin:0 auto}
}

@media (max-width:780px){
  .cursor-dot,.cursor-ring{display:none}
  .menu-btn{display:flex}
  .nav{display:none}
  /* Keep tools visible on mobile but only show the lang button;
     gravity stays inside the hamburger drawer. */
  .tools{display:flex;gap:8px;margin-left:auto}
  .tools #gravityBtn{display:none}
  .tools #langBtn{padding:9px 14px;font-size:11px;letter-spacing:.05em}
  .lang-label{font-size:9px}
  .topbar{padding:12px 14px;gap:10px}
  .brand{font-size:17px}
  .brand .logo{width:34px;height:34px;font-size:17px}
  .announce-track span{margin:0 18px}

  .nav.open{
    position:fixed;top:118px;left:0;right:0;bottom:0;
    background:var(--bg);border-top:4px solid var(--ink);
    display:flex;flex-direction:column;align-items:stretch;gap:12px;
    padding:24px;z-index:49;overflow-y:auto;
  }
  .nav.open a{padding:18px;border:3px solid var(--ink);background:var(--paper);text-align:center;font-size:16px;box-shadow:3px 3px 0 var(--ink)}
  .nav.open .mob-tools{display:flex;gap:10px;margin-top:8px;padding-top:16px;border-top:2px dashed var(--ink)}
  .nav.open .mob-tools button{flex:1;padding:16px;font-size:13px}

  .hero{grid-template-columns:1fr;padding:40px 18px 30px;gap:40px;text-align:left}
  .hero::after{display:none}
  .hero-title{font-size:clamp(46px,13vw,72px)}
  .hero-art{max-width:360px;margin:0 auto;aspect-ratio:4/5}
  .hero-art .sticker{width:90px;height:90px;font-size:11px;top:-20px;right:-20px}
  .hero-art .price-stick{display:none}
  .hero-stats{flex-wrap:wrap;max-width:none}
  .hero-stats .stat{flex:1 1 50%;border-right:none;border-bottom:3px solid var(--ink);padding:14px}
  .hero-stats .stat:nth-child(odd){border-right:3px solid var(--ink)}
  .hero-stats .stat:nth-last-child(-n+2){border-bottom:none}
  .hero-stats .num{font-size:22px}

  .trust{grid-template-columns:1fr;padding:20px 18px 30px;gap:14px}
  .section-title{font-size:clamp(34px,10vw,54px) !important}
  .shop,.best,.story,.gallery,.testimonials,.faq,.lookbook{padding-left:18px;padding-right:18px}

  .filter-bar{padding:12px;gap:6px}
  .filter-bar button{padding:9px 14px;font-size:11px}
  .filter-count{margin-left:0;width:100%;text-align:center;margin-top:6px}

  .grid{grid-template-columns:repeat(2,1fr);gap:14px}
  .card{box-shadow:5px 5px 0 var(--ink)}
  .card-body{padding:14px;gap:8px}
  .card-title{font-size:13px}
  .card-desc{font-size:11px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .price{font-size:19px}
  .price-save{font-size:9px}
  .sizes span{font-size:9px;padding:2px 5px}
  .swatches span{width:14px;height:14px}
  .wa-btn{padding:11px;font-size:11px}
  .card-media .tag{font-size:9px;padding:4px 7px;top:10px;left:10px}
  .card-fav{width:36px;height:36px;font-size:14px;bottom:10px;right:10px}

  .best-scroll .card{flex:0 0 220px}
  .best-arrows{display:none}

  .story-text h2{font-size:42px}
  .gallery-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .test-grid{grid-template-columns:1fr}
  .test-card{padding:26px}
  .test-card:nth-child(2){transform:none}

  .faq{padding:50px 18px}
  .faq-q{padding:18px 20px;font-size:14px}
  .faq-q::after{font-size:26px}
  .faq-item.open .faq-a{padding:0 20px 18px}
  .faq-a p{font-size:12px}

  .lookbook{padding:50px 18px 40px}
  .phone-frame{max-width:260px}
  .phone-notch{width:80px;height:16px}

  .newsletter{padding:0 18px 60px}
  .news-card{padding:28px;gap:24px}

  .foot{grid-template-columns:1fr;gap:26px;padding:40px 20px 20px;text-align:left}
  .foot-brand{text-align:center}
  .socials{justify-content:center}
  .foot-copy{flex-direction:column;gap:8px;text-align:center}

  .wa-float,.back-top{width:54px;height:54px}
  .wa-float{bottom:18px;right:18px}
  .back-top{bottom:82px;right:18px}

  .reels-feed{height:calc(100vh - 74px);height:calc(100dvh - 74px)}
  .reel-slide{min-height:calc(100vh - 74px);min-height:calc(100dvh - 74px);padding:20px 18px;gap:18px}
  .reel-slide .phone-frame{max-width:260px}
  .reel-info h2{font-size:30px}
  .reel-info .price{font-size:28px}
}

@media (max-width:480px){
  .lang-label{display:none}
}

@media (max-width:420px){
  .grid{grid-template-columns:1fr;gap:16px}
  .card{max-width:420px;margin:0 auto;width:100%}
  .hero-title{font-size:44px}
  .gallery-grid{grid-template-columns:repeat(2,1fr)}
}
