/* VAEL home — editorial. Clean sans on real imagery (dark sections), white shop below. */
body.ed { background: #0b0d0c; }
body.ed.is-loading { overflow: hidden; }
.ed main { position: relative; }

/* loader */
.ld { position: fixed; inset: 0; z-index: 140; background: #0b0d0c; color: #e9ebe6; display: grid; place-content: center; justify-items: center; gap: 22px; transition: opacity 1s var(--ease), visibility 1s; }
.ld.out { opacity: 0; visibility: hidden; }
.ld-tee { width: 150px; height: auto; fill: none; stroke: rgba(233, 235, 230, 0.75); stroke-width: 1.2; }
.ld-tee path, .ld-tee rect { stroke-dasharray: 1; stroke-dashoffset: 1; animation: draw 2.2s var(--ease) forwards; }
.ld-tee rect { animation-delay: 0.9s; }
@keyframes draw { to { stroke-dashoffset: 0; } }
.ld-k { color: rgba(233, 235, 230, 0.55); }
.ld-bar { width: 120px; height: 1px; background: rgba(233, 235, 230, 0.15); }
.ld-bar i { display: block; height: 100%; width: 0; background: #e9ebe6; }

/* header */
.ed .eh { position: fixed; left: 0; right: 0; top: 0; z-index: 60; display: flex; justify-content: space-between; align-items: center; padding: 22px clamp(18px, 2.6vw, 38px); background: transparent; border: 0; backdrop-filter: none; color: #fff; transition: color 0.4s; }
.ed .eh.on-light { color: #0b0b0b; }
.eh-logo { font-family: var(--sans); font-weight: 800; font-size: 24px; letter-spacing: -0.035em; text-decoration: none; }
.eh-right { display: flex; align-items: center; gap: 12px; }
.eh-pill { display: inline-flex; align-items: center; gap: 10px; height: 40px; padding: 0 18px; border-radius: 999px; background: rgba(255, 255, 255, 0.16); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); color: inherit; text-decoration: none; font-family: var(--sans); font-size: 14px; font-weight: 500; transition: background 0.3s; }
.eh-pill:hover { background: rgba(255, 255, 255, 0.28); }
.eh.on-light .eh-pill { background: #0b0b0b; color: #fff; }
.eh-pill.solid { background: #fff; color: #0b0b0b; }
[data-theme='light'] .eh-pill.solid, .ed-story .eh-pill.solid { background: #0b0b0b; color: #fff; }
.ed .eh-menu { display: inline-grid; gap: 6px; width: 40px; height: 40px; place-content: center; border-radius: 50%; background: rgba(255, 255, 255, 0.16); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.eh-menu i { display: block; width: 16px; height: 1.5px; background: currentColor; }
.eh.on-light .eh-menu { background: rgba(11, 11, 11, 0.08); }

/* hero */
.hero { position: relative; height: 100svh; min-height: 640px; overflow: hidden; color: #fff; }
.hero-film { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform-origin: 50% 40%; will-change: transform; }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0, 0, 0, 0.42), rgba(0, 0, 0, 0.04) 40%, rgba(0, 0, 0, 0.1) 65%, rgba(0, 0, 0, 0.55)); }
.hero-title { position: absolute; left: clamp(18px, 2.6vw, 38px); top: 112px; z-index: 2; font-family: var(--sans); font-weight: 500; font-size: clamp(64px, 8.6vw, 136px); letter-spacing: -0.05em; line-height: 0.96; }
.hero-title span { display: block; animation: hin 1.6s var(--ease) both; animation-delay: 0.5s; }
.hero-title span + span { animation-delay: 0.62s; }
@keyframes hin { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: none; } }
.ed.is-loading .hero-title span { animation-play-state: paused; }
.hero-side { position: absolute; right: clamp(18px, 7vw, 120px); bottom: clamp(48px, 11vh, 120px); z-index: 2; width: min(520px, calc(100vw - 36px)); display: grid; gap: 22px; justify-items: start; font-size: clamp(18px, 1.7vw, 26px); line-height: 1.3; font-weight: 400; }

/* specs */
.specs { position: relative; height: 380vh; color: #fff; }
.specs-stage { position: sticky; top: 0; height: 100svh; overflow: hidden; }
.specs-bg { position: absolute; inset: -4%; background: url('/img/shop/field-2.jpg') center / cover; filter: blur(14px) brightness(0.42) saturate(0.7); will-change: transform; }
.specs-stage::before { content: ''; position: absolute; inset: 0; z-index: 1; background: radial-gradient(ellipse 34% 46% at 50% 52%, rgba(214, 220, 206, 0.32), rgba(214, 220, 206, 0) 70%); pointer-events: none; }
.specs-gl { position: absolute; z-index: 2; inset: 0; width: 100%; height: 100%; }
.specs-k { position: absolute; left: 50%; top: 28px; transform: translateX(-50%); color: rgba(255, 255, 255, 0.85); z-index: 3; }
.spec { position: absolute; z-index: 3; height: auto; width: min(360px, 28vw); opacity: 0; transform: translateY(18px); transition: opacity 0.9s var(--ease), transform 1.1s var(--ease); }
.spec.on { opacity: 1; transform: none; }
.spec h3 { font-family: var(--sans); font-weight: 500; font-size: clamp(24px, 2.2vw, 34px); letter-spacing: -0.03em; line-height: 1.05; margin-bottom: 10px; }
.spec p { color: rgba(255, 255, 255, 0.78); font-size: 16px; line-height: 1.5; }
.spec::before { content: ''; display: block; width: 100%; height: 1px; background: rgba(255, 255, 255, 0.35); margin-bottom: 16px; }
.s1 { left: clamp(18px, 6vw, 110px); top: 24vh; }
.s2 { right: clamp(18px, 6vw, 110px); top: 18vh; }
.s3 { left: clamp(18px, 6vw, 110px); top: 58vh; }
.s4 { right: clamp(18px, 6vw, 110px); top: 54vh; }

/* the 54 */
.edition { position: relative; height: 280vh; color: #fff; }
.ed-stage { position: sticky; top: 0; height: 100svh; overflow: hidden; background: #2c3328; }
.ed-field { position: absolute; inset: -6%; background: url('/img/field/ground.jpg') center / 380px; filter: saturate(0.55) brightness(0.62); transform-origin: 60% 50%; will-change: transform; }
.piece { position: absolute; width: clamp(64px, 7.4vw, 120px); transform: translate(-50%, -50%) rotate(var(--r)); filter: drop-shadow(0 10px 14px rgba(0, 0, 0, 0.45)); transition: opacity 1.2s, filter 1.2s; }
.piece.gone { opacity: 0.08; filter: grayscale(1); }
.ed-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10, 12, 10, 0.86) 0%, rgba(10, 12, 10, 0.55) 34%, rgba(10, 12, 10, 0) 62%); }
.ed .ed-live { position: absolute; left: clamp(18px, 6vw, 110px); top: 50%; transform: translateY(-50%); display: grid; justify-items: start; gap: 0; min-height: 0; background: none; border: 0; grid-template-columns: none; width: min(460px, calc(100vw - 36px)); }
.ed-k { color: rgba(255, 255, 255, 0.6); margin-bottom: 14px; }
.ed-title { font-family: var(--sans); font-weight: 500; font-size: clamp(30px, 3vw, 46px); letter-spacing: -0.035em; line-height: 1.05; margin-bottom: 28px; }
.ed .ed-live .live-tag { color: #fff; }
.ed .ed-live .dot { background: #4ade80; }
.ed .ed-live .count { margin: 10px 0 0; }
.ed .ed-live .count-num { color: #fff; font-weight: 600; font-size: clamp(96px, 10vw, 168px); letter-spacing: -0.06em; line-height: 0.85; }
.ed .ed-live .count-num small { color: rgba(255, 255, 255, 0.55); }
.ed .ed-live .count-label { color: rgba(255, 255, 255, 0.6); }
.ed .ed-live .size-bars { width: min(340px, 100%); margin: 22px 0 26px; }
.ed .ed-live .size-bars li span, .ed .ed-live .size-bars li b { color: rgba(255, 255, 255, 0.75); }
.ed .ed-live .size-bars i { background: rgba(255, 255, 255, 0.2); }
.ed .ed-live .size-bars u { background: #fff; }
.ed .ed-live .feed { color: rgba(255, 255, 255, 0.6); margin-top: 18px; }
.ed .ed-live .feed b { color: #fff; }

/* campaign track */
.ed-look { position: relative; color: #fff; background: #0b0d0c; }
.ed-look-stage { position: sticky; top: 0; height: 100svh; overflow: hidden; display: grid; align-content: center; }
.ed-look-k { position: absolute; left: clamp(18px, 2.6vw, 38px); top: 96px; color: rgba(255, 255, 255, 0.7); }
.ed-track { display: flex; gap: 18px; padding: 0 clamp(18px, 2.6vw, 38px); will-change: transform; }
.ed-track figure { flex: 0 0 auto; height: 64vh; aspect-ratio: 4 / 5; position: relative; overflow: hidden; background: #1a1d1b; }
.ed-track figure.wide { aspect-ratio: 16 / 10; }
.ed-track img { width: 100%; height: 100%; object-fit: cover; }
.ed-track figcaption { position: absolute; left: 14px; bottom: 12px; color: #fff; text-shadow: 0 1px 10px rgba(0, 0, 0, 0.5); }

/* story */
.ed-story { position: relative; z-index: 2; background: #fff; color: #0b0b0b; display: grid; justify-items: start; gap: 22px; padding: clamp(100px, 16vh, 180px) clamp(18px, 2.6vw, 38px); }
.ed-story-k { color: rgba(11, 11, 11, 0.55); }
.ed-story-title { font-family: var(--sans); font-weight: 500; font-size: clamp(44px, 6.4vw, 104px); letter-spacing: -0.05em; line-height: 0.98; max-width: 14ch; }
.ed-story-line { font-size: 20px; color: rgba(11, 11, 11, 0.65); max-width: 46ch; line-height: 1.5; }
.ed .drop { border-top: 1px solid var(--line); }
.ed .drop, .ed .shop, .ed .site-foot { position: relative; z-index: 2; background: #fff; }

@media (max-width: 860px) {
  .hero-title { top: 96px; }
  .hero-side { left: 18px; right: 18px; width: auto; bottom: 40px; }
  .spec { width: auto; left: 18px !important; right: 18px !important; }
  .s1 { top: 14vh; } .s2 { top: 30vh; } .s3 { top: 62vh; } .s4 { top: 78vh; }
  .spec p { font-size: 14px; }
  .ed-shade { background: linear-gradient(180deg, rgba(10, 12, 10, 0.2), rgba(10, 12, 10, 0.88) 55%); }
  .ed .ed-live { top: auto; bottom: 36px; transform: none; }
  .ed .ed-live .size-bars, .ed .ed-live .feed { display: none; }
  .ed-title { font-size: 26px; margin-bottom: 14px; }
  .ed-track figure { height: 56vh; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-title span, .ld-tee path, .ld-tee rect { animation: none; stroke-dashoffset: 0; }
  .spec { opacity: 1; transform: none; }
}
@media (max-width: 860px) {
  .specs-k { display: none; }
  .spec { top: auto !important; bottom: 48px; opacity: 0 !important; background: rgba(10, 12, 10, 0.55); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); padding: 18px; }
  .spec.cur { opacity: 1 !important; transform: none; }
  .spec::before { display: none; }
}
