@import url('https://fonts.googleapis.com/css2?family=Noto+Sans:wght@400;500;600;700;800&family=Noto+Serif+Display:ital,wght@0,400;0,500;0,600;1,400;1,500&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20..48,400,0..1,0');
:root {
  --ink: #f7f1ed;
  --muted: #a9a1a7;
  --night: #07070a;
  --night-soft: #0d0b10;
  --line: rgba(255, 255, 255, 0.12);
  --live-red: #d51317;
  --live-red-hover: #d51317;
  --ember: var(--live-red);
  --ember-hot: var(--live-red);
  --gold: #f6b86d;
  --display: 'Noto Serif Display', 'Noto Serif', Georgia, serif;
  --sans: 'Noto Sans', Arial, sans-serif;
  --text-floor: 14px;
  --chrome-height: 124px;
}

.ff-not-found {
  min-height: 68vh;
  display: grid;
  align-content: center;
  gap: 1.25rem;
  padding: clamp(5rem, 10vw, 10rem) max(6vw, 1.25rem);
  background: radial-gradient(circle at 75% 45%, rgba(224, 20, 27, .18), transparent 34%), #f8f3ee;
}
.ff-not-found > span { color: #df1119; font-weight: 800; letter-spacing: .22em; }
.ff-not-found h1 { max-width: 900px; margin: 0; font-size: clamp(3.4rem, 9vw, 8.5rem); line-height: .92; }
.ff-not-found h1 em { color: transparent; -webkit-text-stroke: 1.4px #1a1416; font-weight: 400; }
.ff-not-found p { max-width: 620px; margin: 0; font-size: 1.05rem; line-height: 1.7; }
.ff-not-found > div { display: flex; align-items: center; flex-wrap: wrap; gap: 1.25rem; }
.ff-not-found > div a { font-weight: 800; letter-spacing: .06em; }
.ff-not-found > div .button { padding: 1rem 1.3rem; background: #df1119; color: #fff; }

* { box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: clip; }
body { margin: 0; background: var(--night); color: var(--ink); font-family: var(--sans); font-kerning: normal; text-rendering: optimizeLegibility; overflow-x: hidden; }
a { color: inherit; text-decoration: none; }
button { color: inherit; font: inherit; }
input, textarea, select { font-family: var(--sans); }
h1, h2, h3, .product-name, .wedding-tag, .collection-editorial-copy h3, .moment-card h3 { font-optical-sizing: auto; }
.site-shell h1, .site-shell h2, .site-shell h3, .site-shell h4, .site-shell h5, .site-shell h6 { color: inherit; }
.material-symbols-rounded { display: inline-block; overflow: hidden; font-family: 'Material Symbols Rounded'; font-size: 24px; font-weight: 400; font-style: normal; line-height: 1; letter-spacing: normal; text-transform: none; white-space: nowrap; word-wrap: normal; direction: ltr; -webkit-font-feature-settings: 'liga'; font-feature-settings: 'liga'; -webkit-font-smoothing: antialiased; font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24; }

.site-shell { min-height: 100vh; background: var(--night); }
.announcement {
  position: relative; z-index: 20; height: 32px; padding: 0 clamp(20px, 4vw, 72px);
  display: grid; grid-template-columns: max-content minmax(160px, 1fr) max-content; align-items: center; gap: clamp(28px, 5vw, 96px);
  color: #d7cdd2; border-bottom: 1px solid rgba(255,255,255,.08); background: #0b090d;
  font-size: 12px; font-weight: 700; letter-spacing: .14em;
}
.announcement > span, .announcement > a { position: relative; z-index: 1; white-space: nowrap; }
.announcement a { justify-self: end; color: #fff; }
.announcement-ticker { --announcement-fade: clamp(34px, 4.5vw, 86px); min-width: 0; width: 100%; overflow: hidden; opacity: .76; -webkit-mask-image: linear-gradient(90deg, transparent, #000 var(--announcement-fade), #000 calc(100% - var(--announcement-fade)), transparent); mask-image: linear-gradient(90deg, transparent, #000 var(--announcement-fade), #000 calc(100% - var(--announcement-fade)), transparent); }
.announcement-track { display: flex; width: max-content; align-items: center; will-change: transform; animation: announcement-marquee 15s linear infinite; }
.announcement-track > span { flex: 0 0 auto; padding-inline: clamp(44px, 5vw, 92px); white-space: nowrap; }
.announcement-ticker:hover .announcement-track { animation-play-state: paused; }
@keyframes announcement-marquee { to { transform: translateX(-50%); } }

.site-header {
  position: relative; z-index: 20; height: 88px; padding: 0 clamp(20px, 4vw, 72px);
  display: grid; grid-template-columns: 210px 1fr auto; align-items: center; gap: clamp(22px, 4vw, 68px);
  border-bottom: 1px solid rgba(255,255,255,.1); background: rgba(6,5,7,.98); box-shadow: 0 12px 42px rgba(0,0,0,.38); backdrop-filter: blur(18px);
}
.brand {
  --brand-red: var(--live-red);
  --brand-warm: #ffb06b;
  --brand-cream: #fff4e7;
  position: relative; display: flex; align-items: center; gap: 12px; width: fit-content; min-width: 178px;
  isolation: isolate;
}
.brand-mark { position: relative; flex: 0 0 47px; width: 47px; height: 51px; display: block; filter: drop-shadow(0 0 8px rgba(213,19,23,.22)); transition: filter .35s ease, transform .45s cubic-bezier(.2,.8,.2,1); }
.brand-mark::after { content: ''; position: absolute; left: 9px; top: 3px; width: 29px; height: 29px; border-radius: 50%; background: radial-gradient(circle, rgba(255,176,107,.18), rgba(213,19,23,.05) 42%, transparent 70%); opacity: .75; animation: brand-halo 5.2s ease-in-out infinite; }
.brand-trails { position: absolute; inset: 0; z-index: 2; }
.brand-trails i { position: absolute; bottom: 3px; display: block; width: 2px; border-radius: 99px; background: linear-gradient(to top, var(--brand-red), #ff7456 48%, var(--brand-cream)); box-shadow: 0 0 7px rgba(213,19,23,.7), 0 0 14px rgba(255,176,107,.2); transform-origin: 50% 100%; animation: brand-trail-glow 3.4s ease-in-out infinite; }
.brand-trails i:nth-child(1) { left: 22px; height: 31px; transform: rotate(-2deg); }
.brand-trails i:nth-child(2) { left: 12px; height: 24px; transform: rotate(-27deg); animation-delay: -.9s; }
.brand-trails i:nth-child(3) { right: 10px; height: 22px; transform: rotate(31deg); animation-delay: -1.7s; }
.brand-burst { position: absolute; z-index: 4; left: 11px; top: -1px; width: 25px; height: 25px; border-radius: 50%; animation: brand-bloom 5.2s cubic-bezier(.2,.75,.2,1) infinite; }
.brand-burst::before { content: ''; position: absolute; z-index: 2; left: 50%; top: 50%; width: 4px; height: 4px; border-radius: 50%; background: #fff; box-shadow: 0 0 5px #fff, 0 0 12px var(--brand-warm), 0 0 24px var(--brand-red); transform: translate(-50%, -50%); }
.brand-burst::after { content: ''; position: absolute; inset: 5px; border: 1px solid rgba(255,188,128,.48); border-radius: 50%; animation: brand-ring 5.2s ease-out infinite; }
.brand-burst i { position: absolute; left: calc(50% - 1px); top: 50%; width: 2px; height: 9px; border-radius: 99px; background: linear-gradient(to bottom, #fff, var(--brand-warm) 38%, var(--brand-red) 100%); box-shadow: 0 0 4px rgba(255,176,107,.85); transform-origin: 50% 0; }
.brand-burst i:nth-child(1) { transform: rotate(0deg) translateY(-2px); }
.brand-burst i:nth-child(2) { transform: rotate(45deg) translateY(-2px); }
.brand-burst i:nth-child(3) { transform: rotate(90deg) translateY(-2px); }
.brand-burst i:nth-child(4) { transform: rotate(135deg) translateY(-2px); }
.brand-burst i:nth-child(5) { transform: rotate(180deg) translateY(-2px); }
.brand-burst i:nth-child(6) { transform: rotate(225deg) translateY(-2px); }
.brand-burst i:nth-child(7) { transform: rotate(270deg) translateY(-2px); }
.brand-burst i:nth-child(8) { transform: rotate(315deg) translateY(-2px); }
.brand-comet { position: absolute; z-index: 5; left: 23px; bottom: 6px; width: 3px; height: 13px; border-radius: 99px; background: linear-gradient(to top, transparent, var(--brand-red) 50%, #fff); box-shadow: 0 -3px 9px var(--brand-warm); opacity: 0; animation: brand-launch 5.2s cubic-bezier(.25,.65,.25,1) infinite; }
.brand-spark { position: absolute; z-index: 5; width: 3px; height: 3px; border-radius: 50%; background: var(--brand-cream); box-shadow: 0 0 7px var(--brand-warm), 0 0 13px var(--brand-red); opacity: .45; animation: brand-spark 5.2s ease-out infinite; }
.brand-spark-one { --spark-x: -5px; --spark-y: 5px; left: 3px; top: 10px; }
.brand-spark-two { --spark-x: 6px; --spark-y: 4px; right: 2px; top: 14px; animation-delay: .08s; }
.brand-spark-three { --spark-x: 4px; --spark-y: -4px; right: 8px; top: 1px; animation-delay: .15s; }
.brand-copy { position: relative; display: grid; line-height: .88; }
.brand-copy::after { content: ''; position: absolute; left: 0; right: 2px; bottom: -7px; height: 1px; background: linear-gradient(90deg, transparent, var(--brand-red) 20%, var(--brand-warm) 56%, transparent); transform: scaleX(.52); transform-origin: left; opacity: .65; transition: transform .45s ease, opacity .35s ease; }
.brand-copy strong { color: transparent; background: linear-gradient(105deg, #fff 0 35%, #ffe1c5 45%, #fff 54% 100%); background-size: 260% 100%; -webkit-background-clip: text; background-clip: text; font-size: 23px; font-weight: 800; letter-spacing: .18em; text-shadow: 0 0 24px rgba(255,255,255,.04); animation: brand-word-shine 7s ease-in-out infinite; }
.brand-copy small { margin-top: 8px; color: var(--brand-red); font-size: 14px; font-weight: 800; letter-spacing: .28em; text-shadow: 0 0 12px rgba(213,19,23,.2); }
.brand:hover .brand-mark { filter: drop-shadow(0 0 12px rgba(213,19,23,.48)); transform: translateY(-1px) scale(1.045); }
.brand:hover .brand-copy::after { transform: scaleX(1); opacity: 1; }
.brand:focus-visible .brand-mark { filter: drop-shadow(0 0 12px rgba(213,19,23,.48)); }

/* A synchronized launch, expanding rays and falling embers; no layout motion. */
.brand { --brand-cycle: 4.6s; }
.brand-mark::after { background: radial-gradient(circle, rgba(255,176,107,.38), rgba(213,19,23,.12) 42%, transparent 70%); }
.brand-mark::after, .brand-burst, .brand-burst::after, .brand-comet, .brand-spark { animation-duration: var(--brand-cycle); }
.brand-burst { animation-timing-function: cubic-bezier(.16,1,.3,1); }
.brand-burst i { height: 8px; animation: brand-ray var(--brand-cycle) cubic-bezier(.16,1,.3,1) infinite; }
.brand-burst i:nth-child(1) { --ray-angle: 0deg; }
.brand-burst i:nth-child(2) { --ray-angle: 45deg; }
.brand-burst i:nth-child(3) { --ray-angle: 90deg; }
.brand-burst i:nth-child(4) { --ray-angle: 135deg; }
.brand-burst i:nth-child(5) { --ray-angle: 180deg; }
.brand-burst i:nth-child(6) { --ray-angle: 225deg; }
.brand-burst i:nth-child(7) { --ray-angle: 270deg; }
.brand-burst i:nth-child(8) { --ray-angle: 315deg; }
.brand-burst i::after { content: ''; position: absolute; top: 0; left: 0; width: 2px; height: 2px; border-radius: 50%; background: var(--brand-cream); box-shadow: 0 0 4px var(--brand-warm); }
.brand-comet { width: 3px; height: 18px; }
.brand-comet::before, .brand-comet::after { content: ''; position: absolute; width: 2px; height: 12px; bottom: -7px; border-radius: 50%; background: linear-gradient(transparent, var(--brand-red), var(--brand-cream)); }
.brand-comet::before { left: -9px; transform: rotate(-27deg); }
.brand-comet::after { right: -9px; transform: rotate(31deg); }
.brand-spark-one { --spark-x: -7px; --spark-y: 18px; }
.brand-spark-two { --spark-x: 7px; --spark-y: 20px; }
.brand-spark-three { --spark-x: 6px; --spark-y: 13px; }
.brand-copy::after { animation: brand-underline var(--brand-cycle) ease-out infinite; }
.brand-copy strong { animation-duration: 9.2s; }
.brand:not(.brand-motion-active) *, .brand:not(.brand-motion-active) *::before, .brand:not(.brand-motion-active) *::after { animation-play-state: paused !important; }

@keyframes brand-trail-glow { 0%, 100% { opacity: .72; filter: brightness(.92); } 50% { opacity: 1; filter: brightness(1.28); } }
@keyframes brand-launch { 0%, 5% { opacity: 0; transform: translateY(8px) scaleY(.35); } 10% { opacity: 1; } 23% { opacity: 1; transform: translateY(-27px) scaleY(1.1); } 28%, 100% { opacity: 0; transform: translateY(-32px) scaleY(.2); } }
@keyframes brand-bloom { 0%, 19%, 100% { opacity: .3; transform: scale(.6); } 28% { opacity: 1; transform: scale(1); } 49% { opacity: .8; transform: scale(1.05); } 72% { opacity: .2; transform: scale(1.08); } }
@keyframes brand-ray { 0%, 20%, 100% { opacity: .35; transform: rotate(var(--ray-angle)) translateY(-2px) scaleY(.45); } 31% { opacity: 1; transform: rotate(var(--ray-angle)) translateY(-14px) scaleY(1); } 52% { opacity: .65; transform: rotate(var(--ray-angle)) translateY(-21px) scaleY(.4); } 72%, 90% { opacity: 0; transform: rotate(var(--ray-angle)) translateY(-23px) scaleY(.15); } }
@keyframes brand-ring { 0%, 23% { opacity: 0; transform: scale(.35); } 31% { opacity: .8; } 51%, 100% { opacity: 0; transform: scale(2.7); } }
@keyframes brand-spark { 0%, 27%, 100% { opacity: 0; transform: translate(0, 0) scale(.3); } 36% { opacity: 1; transform: translate(0, 0) scale(1.2); } 68% { opacity: .3; transform: translate(var(--spark-x), var(--spark-y)) scale(.6); } 78% { opacity: 0; transform: translate(var(--spark-x), var(--spark-y)) scale(.2); } }
@keyframes brand-halo { 0%, 18%, 100% { opacity: .2; transform: scale(.7); } 31% { opacity: 1; transform: scale(1.65); } 56% { opacity: .35; transform: scale(1.2); } }
@keyframes brand-underline { 0%, 20%, 100% { opacity: .45; transform: scaleX(.45); } 36%, 52% { opacity: 1; transform: scaleX(1); } 78% { opacity: .6; transform: scaleX(.65); } }
@keyframes brand-word-shine { 0%, 18%, 100% { background-position: 100% 0; } 42%, 70% { background-position: 0 0; } }

@media (prefers-reduced-motion: reduce) {
  .brand *, .brand *::before, .brand *::after { animation: none !important; transition: none !important; }
  .brand-burst { opacity: .8; transform: scale(.8); }
  .brand-comet, .brand-spark, .brand-burst::after { display: none; }
  .brand:hover .brand-mark { transform: none; }
}

.primary-nav { display: flex; align-items: stretch; justify-content: center; height: 100%; }
.nav-link { position: relative; display: flex; align-items: center; gap: 9px; padding: 0 clamp(11px, 1.2vw, 21px); color: rgba(255,255,255,.84); font-size: 11px; font-weight: 600; white-space: nowrap; transition: color .3s ease, background .3s ease; }
.nav-link::after { content: ''; position: absolute; left: 18px; right: 18px; bottom: -1px; height: 2px; background: linear-gradient(90deg, transparent, var(--live-red), transparent); transform: scaleX(0); transition: transform .35s ease; }
.nav-link:hover, .nav-link.is-active { color: #fff; }
.nav-link:hover::after, .nav-link.is-active::after { transform: scaleX(1); }
.nav-link:focus-visible { outline: 2px solid var(--live-red); outline-offset: -5px; color: #fff; }
.nav-chevron { width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .28s cubic-bezier(.2,.7,.2,1); }
.nav-link.is-active .nav-chevron { transform: translateY(2px) rotate(-135deg); }
.offer-link { color: var(--live-red); font-weight: 700; }

.header-actions { display: flex; align-items: center; gap: 6px; }
.icon-button, .bag-button { border: 0; background: transparent; color: #fff; cursor: pointer; }
.icon-button { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; transition: color .25s, transform .25s, background .25s; }
.icon-button:hover { color: #fff; background: rgba(255,255,255,.14); transform: translateY(-2px); }
.icon-button .material-symbols-rounded { font-size: 23px; }
.bag-button { position: relative; width: 44px; height: 44px; padding: 0; display: grid; place-items: center; border-radius: 50%; transition: color .25s, transform .25s, background .25s; }
.bag-button:hover { background: rgba(255,255,255,.1); transform: translateY(-2px); }
.bag-icon { font-size: 24px; }
.bag-button b { position: absolute; right: -2px; top: -2px; display: grid; place-items: center; width: 21px; height: 21px; border: 2px solid #080709; border-radius: 50%; background: var(--live-red); color: #fff; font-size: 11px; letter-spacing: 0; box-shadow: 0 5px 16px rgba(213,19,23,.4); }

.hero { --hero-accent: var(--ember-hot); position: relative; min-height: calc(100svh - var(--chrome-height)); overflow: hidden; isolation: isolate; display: grid; grid-template-columns: minmax(0, .93fr) minmax(420px, .87fr); }
.hero::before { content: ''; position: absolute; inset: 0; z-index: -5; background: radial-gradient(circle at 74% 58%, rgba(213,19,23,.16), transparent 32%), radial-gradient(circle at 18% 30%, rgba(90,34,62,.12), transparent 30%), linear-gradient(117deg, #09090d, #060608 54%, #0e080c); }
.hero-theme-dumbum { --hero-accent: var(--live-red); }
.hero-theme-dumbum::before { background: radial-gradient(circle at 72% 52%, rgba(213,19,23,.22), transparent 34%), radial-gradient(circle at 14% 24%, rgba(213,19,23,.13), transparent 31%), linear-gradient(117deg, #0b080a, #070607 55%, #120607); }
.hero-theme-wedding { --hero-accent: #f5c778; }
.hero-theme-wedding::before { background: radial-gradient(circle at 72% 58%, rgba(179,118,56,.2), transparent 34%), radial-gradient(circle at 15% 25%, rgba(97,51,74,.15), transparent 31%), linear-gradient(117deg, #0a090c, #070609 55%, #120d0b); }
.hero-theme-daytime { --hero-accent: #f6ca47; }
.hero-theme-daytime::before { background: radial-gradient(circle at 72% 50%, rgba(77,63,185,.2), transparent 35%), radial-gradient(circle at 13% 25%, rgba(193,41,91,.16), transparent 32%), linear-gradient(117deg, #0b0910, #07070b 55%, #0e0a16); }
.hero-grid { position: absolute; inset: 0; z-index: -4; opacity: .13; background-image: linear-gradient(rgba(255,255,255,.09) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.07) 1px, transparent 1px); background-size: 90px 90px; mask-image: linear-gradient(90deg, #000, transparent 74%); }
.aurora { position: absolute; z-index: -3; width: 420px; aspect-ratio: 1; border-radius: 50%; pointer-events: none; }
.aurora::before { content: ''; position: absolute; inset: 0; border-radius: 50%; background: repeating-conic-gradient(from 4deg, rgba(213,19,23,.4) 0 1.2deg, transparent 1.2deg 11deg); -webkit-mask: radial-gradient(circle, transparent 0 23%, #000 24% 26%, transparent 27% 42%, #000 43% 45%, transparent 46%); mask: radial-gradient(circle, transparent 0 23%, #000 24% 26%, transparent 27% 42%, #000 43% 45%, transparent 46%); filter: drop-shadow(0 0 18px rgba(213,19,23,.26)); animation: firework-bloom 7s ease-in-out infinite; }
.aurora::after { content: ''; position: absolute; inset: 46%; border-radius: 50%; background: var(--live-red); box-shadow: 0 0 20px rgba(213,19,23,.65), 0 0 65px rgba(213,19,23,.25); animation: spark-twinkle 2.4s ease-in-out infinite; }
.aurora-one { left: -280px; top: 80px; }
.aurora-two { left: 38%; bottom: -340px; width: 620px; opacity: .42; }

.hero-copy { align-self: center; padding: clamp(70px, 9vh, 120px) 6vw clamp(96px, 12vh, 140px) clamp(26px, 8vw, 145px); animation: copy-in .78s cubic-bezier(.2,.7,.2,1) both; }
.eyebrow { display: flex; align-items: center; gap: 13px; margin: 0 0 25px; color: #c8b9bd; font-size: 9px; font-weight: 700; letter-spacing: .24em; }
.eyebrow span { width: 34px; height: 1px; background: var(--hero-accent); box-shadow: 0 0 8px var(--hero-accent); }
.hero h1 { margin: 0; font-family: var(--display); font-size: clamp(74px, 8vw, 142px); font-weight: 500; letter-spacing: -.045em; line-height: .78; }
.hero h1 > span, .hero h1 > em { display: block; }
.hero h1 em { color: transparent; -webkit-text-stroke: 1.4px rgba(255,255,255,.78); font-weight: 500; text-shadow: 0 0 35px rgba(213,19,23,.13); }
.hero-intro { max-width: 560px; margin: 39px 0 0; color: #aaa2aa; font-size: clamp(13px, 1vw, 15px); line-height: 1.85; }
.hero-cta-row { display: flex; align-items: center; gap: 31px; margin-top: 35px; }
.button { display: inline-flex; align-items: center; justify-content: space-between; min-width: 238px; height: 58px; padding: 0 12px 0 24px; border: 1px solid transparent; font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; transition: transform .3s, box-shadow .3s, background .3s; }
.button span { display: grid; place-items: center; width: 35px; height: 35px; border-radius: 50%; background: rgba(0,0,0,.2); font-size: 15px; }
.button b { font-weight: 700; }
.button-primary { background: var(--live-red); box-shadow: 0 13px 42px rgba(213,19,23,.24); }
.button-primary:hover { transform: translateY(-4px); box-shadow: 0 18px 55px rgba(213,19,23,.4); background: var(--live-red); }
.text-link { display: inline-flex; align-items: center; gap: 11px; color: #ddd3d7; font-size: 10px; font-weight: 600; letter-spacing: .06em; }
.text-link i { display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; color: var(--ember-hot); font-size: 8px; font-style: normal; transition: .3s; }
.text-link:hover i { color: #fff; background: var(--ember); border-color: var(--ember); transform: scale(1.1); }
.hero-stats { display: flex; gap: clamp(27px, 3.3vw, 54px); margin: clamp(45px, 7vh, 78px) 0 0; }
.hero-stats div { position: relative; padding-left: 15px; }
.hero-stats div::before { content: ''; position: absolute; left: 0; top: 2px; bottom: 2px; width: 1px; background: linear-gradient(var(--ember), transparent); }
.hero-stats dt { font-family: var(--display); font-size: 25px; line-height: 1; }
.hero-stats dd { margin: 8px 0 0; color: #7f7980; font-size: 8px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }

.hero-visual { position: relative; min-height: 680px; align-self: stretch; }
.visual-frame { position: absolute; inset: 6.5% clamp(38px, 5vw, 90px) 7% 0; overflow: hidden; clip-path: polygon(11% 0, 100% 0, 100% 100%, 0 100%, 0 12%); box-shadow: -25px 30px 100px rgba(0,0,0,.6); animation: frame-in 1.35s .1s cubic-bezier(.2,.7,.2,1) both; }
.visual-frame::before { content: ''; position: absolute; inset: 0; z-index: 6; border: 1px solid rgba(255,255,255,.14); clip-path: inherit; pointer-events: none; }
.hero-slides { position: absolute; inset: 0; background: #0a080b; }
.hero-slide-image { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.11); transition: opacity .95s cubic-bezier(.2,.7,.2,1), transform 1.4s cubic-bezier(.2,.7,.2,1); will-change: opacity, transform; }
.hero-slide-image.is-active { z-index: 1; opacity: 1; transform: scale(1.04); animation: hero-drift 13s ease-in-out infinite alternate; }
.visual-shade { position: absolute; inset: 0; z-index: 2; pointer-events: none; background: linear-gradient(180deg, rgba(5,5,8,.02) 28%, rgba(7,4,8,.76)), linear-gradient(90deg, rgba(20,5,12,.3), transparent 58%); transition: background .7s ease; }
.visual-theme-dumbum .visual-shade { background: linear-gradient(180deg, rgba(7,3,4,.02) 38%, rgba(12,2,4,.6)), linear-gradient(90deg, rgba(24,2,4,.18), transparent 65%); }
.visual-theme-wedding .visual-shade { background: linear-gradient(180deg, rgba(5,4,6,.01) 42%, rgba(13,7,8,.62)), linear-gradient(90deg, rgba(18,7,11,.2), transparent 62%); }
.visual-theme-daytime .visual-shade { background: linear-gradient(180deg, rgba(8,7,13,0) 46%, rgba(15,8,18,.54)), linear-gradient(90deg, rgba(26,10,24,.12), transparent 65%); }
.visual-label { position: absolute; z-index: 3; left: clamp(28px, 4vw, 65px); bottom: clamp(78px, 9vh, 100px); display: flex; align-items: flex-start; gap: 16px; animation: hero-detail-in .7s .12s cubic-bezier(.2,.7,.2,1) both; }
.visual-label > span { padding-top: 5px; color: var(--hero-accent); font-size: 9px; font-weight: 700; }
.visual-label p { margin: 0; font-family: var(--display); font-size: clamp(27px, 2.7vw, 48px); line-height: .9; letter-spacing: -.03em; }
.visual-label p b { font: inherit; color: inherit; }
.sound-pill { position: absolute; z-index: 3; right: 24px; top: 24px; display: flex; align-items: center; gap: 8px; padding: 9px 12px; border: 1px solid rgba(255,255,255,.18); border-radius: 99px; background: rgba(0,0,0,.32); backdrop-filter: blur(12px); font-size: 7px; font-weight: 700; letter-spacing: .15em; animation: hero-detail-in .65s .18s cubic-bezier(.2,.7,.2,1) both; }
.sound-pill i { width: 5px; height: 5px; border-radius: 50%; background: var(--hero-accent); box-shadow: 0 0 8px var(--hero-accent); animation: pulse 1.4s infinite; }
.hero-slide-nav { position: absolute; right: 22px; bottom: 20px; z-index: 5; min-height: 50px; display: flex; align-items: center; gap: 5px; padding: 5px; border: 1px solid rgba(255,255,255,.16); background: rgba(7,6,9,.56); box-shadow: 0 12px 36px rgba(0,0,0,.28); backdrop-filter: blur(15px); }
.hero-arrow, .hero-slide-dot { border: 0; background: transparent; color: rgba(255,255,255,.72); cursor: pointer; }
.hero-arrow { width: 39px; height: 39px; display: grid; place-items: center; transition: color .25s, background .25s, transform .25s; }
.hero-arrow:hover { color: #fff; background: rgba(255,255,255,.1); transform: scale(1.05); }
.hero-arrow .material-symbols-rounded { font-size: 20px; }
.hero-slide-dots { display: flex; align-items: center; gap: 2px; }
.hero-slide-dot { position: relative; width: 34px; height: 39px; padding: 0; display: grid; place-items: center; font-size: 14px; }
.hero-slide-dot span { font-size: 14px; font-weight: 700; letter-spacing: .04em; opacity: .42; transition: opacity .3s, color .3s, transform .3s; }
.hero-slide-dot i { position: absolute; left: 6px; right: 6px; bottom: 2px; height: 2px; background: var(--hero-accent); transform: scaleX(0); transform-origin: left; transition: transform .35s cubic-bezier(.2,.7,.2,1); }
.hero-slide-dot:hover span, .hero-slide-dot.is-active span { color: #fff; opacity: 1; transform: translateY(-2px); }
.hero-slide-dot.is-active i { transform: scaleX(1); }
.hero-autoplay { position: absolute; left: 0; right: 0; bottom: 0; z-index: 5; height: 3px; background: rgba(255,255,255,.08); overflow: hidden; }
.hero-autoplay i { display: block; width: 100%; height: 100%; background: linear-gradient(90deg, var(--hero-accent), #fff1dc); transform-origin: left; animation: hero-progress var(--hero-interval, 6.5s) linear both; }
.hero:hover .hero-autoplay i, .hero:focus-within .hero-autoplay i { animation-play-state: paused; }
.orbit { position: absolute; z-index: 3; pointer-events: none; border-radius: 50%; }
.orbit::before { content: ''; position: absolute; inset: 0; border-radius: 50%; background: repeating-conic-gradient(from 2deg, rgba(246,184,109,.72) 0 1deg, transparent 1deg 13deg); -webkit-mask: radial-gradient(circle, transparent 0 26%, #000 27% 29%, transparent 30% 48%, #000 49% 51%, transparent 52%); mask: radial-gradient(circle, transparent 0 26%, #000 27% 29%, transparent 30% 48%, #000 49% 51%, transparent 52%); filter: drop-shadow(0 0 8px rgba(246,184,109,.32)); animation: firework-turn 16s linear infinite; }
.orbit::after { content: ''; position: absolute; left: 50%; top: 52%; width: 1px; height: 68%; background: repeating-linear-gradient(to bottom, rgba(213,19,23,.75) 0 5px, transparent 5px 11px); transform: rotate(12deg); transform-origin: top; opacity: .65; }
.orbit-one { width: 160px; height: 160px; right: 2.8%; top: 19%; animation: firework-float 6s ease-in-out infinite; }
.orbit-two { width: 110px; height: 110px; left: -55px; bottom: 18%; animation: firework-float 5s ease-in-out infinite reverse; }
.orbit-two::before { background: repeating-conic-gradient(from 8deg, rgba(213,19,23,.78) 0 1deg, transparent 1deg 12deg); filter: drop-shadow(0 0 9px rgba(213,19,23,.32)); }
.orbit i { position: absolute; width: 4px; height: 4px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 12px var(--gold); animation: spark-twinkle 1.8s ease-in-out infinite; }
.orbit i:nth-child(1) { left: 18%; top: 2%; }.orbit i:nth-child(2) { right: 4%; top: 28%; }.orbit i:nth-child(3) { left: 12%; bottom: 13%; }.orbit i:nth-child(4) { right: 20%; bottom: 3%; }
.vertical-note { position: absolute; right: clamp(6px, 1vw, 18px); top: 50%; margin: 0; color: #6d676e; font-size: 7px; font-weight: 700; letter-spacing: .24em; writing-mode: vertical-rl; transform: translateY(-50%); }
.scroll-cue { position: absolute; left: clamp(26px, 4vw, 72px); bottom: 38px; display: flex; align-items: center; gap: 14px; color: #68636a; font-size: 7px; font-weight: 700; letter-spacing: .2em; }
.scroll-cue i { position: relative; width: 56px; height: 1px; overflow: hidden; background: rgba(255,255,255,.15); }
.scroll-cue i::after { content: ''; position: absolute; width: 40%; inset-block: 0; background: var(--ember); animation: scroll-line 1.8s ease-in-out infinite; }

@keyframes copy-in { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }
@keyframes frame-in { from { opacity: 0; transform: translateX(45px) scale(.98); } to { opacity: 1; transform: none; } }
@keyframes hero-drift { to { transform: scale(1.12) translateY(-2%); } }
@keyframes hero-detail-in { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes hero-progress { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes orbit-spin { to { transform: rotate(360deg); } }
@keyframes firework-turn { to { transform: rotate(360deg); } }
@keyframes firework-bloom { 0%, 100% { opacity: .3; transform: scale(.9) rotate(-2deg); } 50% { opacity: .72; transform: scale(1.04) rotate(2deg); } }
@keyframes firework-float { 50% { transform: translateY(-9px) scale(1.04); } }
@keyframes spark-twinkle { 50% { opacity: .28; transform: scale(.55); } }
@keyframes pulse { 50% { opacity: .25; transform: scale(.65); } }
@keyframes scroll-line { from { transform: translateX(-110%); } to { transform: translateX(310%); } }

@media (max-width: 1180px) {
  .site-header { grid-template-columns: 185px 1fr auto; gap: 12px; }
  .nav-link { padding-inline: 9px; font-size: 9px; }
  .hero-copy { padding-left: 5vw; }
}
@media (max-width: 980px) {
  .announcement { grid-template-columns: 1fr auto; }.announcement p { display: none; }
  .primary-nav { display: none; }
  .site-header { grid-template-columns: 1fr auto; }
  .hero { min-height: auto; grid-template-columns: 1fr; }
  .hero-copy { padding: 75px 7vw 60px; }
  .hero h1 { font-size: clamp(74px, 14vw, 124px); }
  .hero-theme-wedding h1 { font-size: clamp(66px, 12vw, 108px); }
  .hero-visual { min-height: 670px; }
  .visual-frame { left: 7vw; }
  .scroll-cue { display: none; }
}
@media (max-width: 600px) {
  .announcement { padding-inline: 16px; font-size: 7px; letter-spacing: .11em; }
  .site-header { height: 74px; padding-inline: 16px; }
  .header-actions .icon-button { display: none; }
  .brand { min-width: 159px; gap: 8px; }
  .brand-mark { flex-basis: 41px; width: 41px; height: 46px; transform: scale(.9); transform-origin: left center; }
  .brand-copy strong { font-size: 19px; }
  .brand-copy small { letter-spacing: .2em; }
  .hero-copy { padding: 58px 22px 44px; }
  .hero h1 { font-size: clamp(66px, 23vw, 102px); line-height: .76; }
  .hero-theme-wedding h1 { font-size: clamp(55px, 17vw, 78px); line-height: .82; }
  .hero-intro { margin-top: 30px; }
  .hero-cta-row { align-items: flex-start; flex-direction: column; gap: 22px; }
  .button { width: 100%; }
  .hero-stats { justify-content: space-between; gap: 12px; }.hero-stats dd { max-width: 80px; line-height: 1.5; }
  .hero-visual { min-height: 540px; }
  .visual-frame { inset: 0 16px 35px; }
  .visual-label { left: 24px; bottom: 90px; }
  .visual-label p { font-size: clamp(28px, 10vw, 42px); }
  .sound-pill { top: 16px; right: 16px; }
  .hero-slide-nav { left: 18px; right: 18px; bottom: 18px; justify-content: space-between; }
  .hero-slide-dots { flex: 1; justify-content: center; }
  .vertical-note { display: none; }.orbit-one { right: -42px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; }
}

/* --- Full homepage experience --- */
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
.overlay-open { overflow: hidden; }
.scroll-progress { position: fixed; z-index: 120; inset: 0 0 auto; height: 2px; background: linear-gradient(90deg, var(--ember), #ffb36e); transform: scaleX(0); transform-origin: left; box-shadow: 0 0 15px rgba(213,19,23,.75); pointer-events: none; }
.pointer-glow { position: fixed; z-index: 1; left: 0; top: 0; width: 300px; height: 300px; border-radius: 50%; background: radial-gradient(circle, rgba(213,19,23,.07), transparent 67%); pointer-events: none; will-change: transform; }
.site-header { position: sticky; top: 0; transition: height .35s, background .35s, box-shadow .35s; }
.site-header.is-scrolled { height: 72px; background: rgba(6,5,7,.985); box-shadow: 0 18px 52px rgba(0,0,0,.42); }
.nav-link { border: 0; background: none; cursor: pointer; font-family: var(--sans); }
.wishlist-button { text-decoration: none; }
.menu-toggle { display: none; width: 38px; height: 38px; padding: 11px 6px; border: 0; background: none; cursor: pointer; }
.menu-toggle i { display: block; width: 26px; height: 1px; margin: 5px 0; background: #fff; transition: transform .3s; }

.mega-menu { position: absolute; top: 100%; left: 0; right: 0; z-index: 25; min-height: 470px; max-height: calc(100svh - var(--chrome-height)); padding: 0 clamp(24px, 4vw, 72px); border-top: 1px solid rgba(255,255,255,.08); border-bottom: 1px solid rgba(255,255,255,.1); background: rgba(9,8,11,.985); box-shadow: 0 35px 80px rgba(0,0,0,.62); opacity: 0; visibility: hidden; transform: translateY(-12px); transition: opacity .28s, visibility .28s, transform .38s cubic-bezier(.2,.7,.2,1); overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; }
.mega-menu::before { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, transparent, rgba(213,19,23,.12), transparent), linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px); background-size: auto, 100% 74px; pointer-events: none; }
.mega-menu.is-open { opacity: 1; visibility: visible; transform: none; }
.mega-panel { display: none; }
.mega-panel.is-active { display: block; animation: mega-panel-enter .32s ease both; }
@keyframes mega-panel-enter { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.mega-layout { position: relative; z-index: 1; width: min(1440px, 100%); min-height: 470px; margin: 0 auto; display: grid; grid-template-columns: 1.1fr 1.65fr .95fr; gap: clamp(34px, 5vw, 84px); align-items: stretch; padding: 52px 0; }
.mega-fireworks { grid-template-columns: minmax(210px, .8fr) minmax(0, 2.35fr) minmax(230px, .85fr); gap: clamp(26px, 3vw, 52px); }
.mega-kicker { padding-right: 20px; border-right: 1px solid rgba(255,255,255,.1); }
.mega-kicker > span, .mega-link-group > p, .mega-list > p, .mega-catalogue > p { display: block; margin: 0 0 24px; color: #7c747b; font-size: 8px; font-weight: 700; letter-spacing: .22em; }
.mega-kicker > strong { display: block; font-family: var(--display); font-size: clamp(32px, 2.5vw, 48px); font-weight: 500; line-height: .92; letter-spacing: -.035em; }
.mega-kicker > strong em { color: transparent; -webkit-text-stroke: 1.4px rgba(255,255,255,.72); font-weight: 500; }
.mega-kicker > a { display: inline-flex; align-items: center; gap: 9px; margin-top: 35px; color: var(--live-red); font-size: 9px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.mega-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 42px; }
.mega-list { display: flex; flex-direction: column; align-items: stretch; }
.mega-list a { position: relative; padding: 9px 24px 9px 0; color: #d1c8cd; font-size: 11px; line-height: 1.25; overflow-wrap: anywhere; transition: color .25s, transform .25s; }
.mega-list a b { position: absolute; right: 0; opacity: 0; color: var(--ember-hot); font-weight: 400; transition: opacity .25s; }
.mega-list a .menu-arrow { position: absolute; right: 0; opacity: 0; color: var(--ember-hot); font-size: 17px; transition: opacity .25s; }
.mega-list a:hover { color: #fff; transform: translateX(4px); }
.mega-list a:hover b, .mega-list a:focus-visible b, .mega-list a:hover .menu-arrow, .mega-list a:focus-visible .menu-arrow { opacity: 1; }
.mega-list a:focus-visible, .mega-link-group a:focus-visible, .mega-kicker > a:focus-visible, .mega-feature:focus-visible { outline: 2px solid var(--live-red); outline-offset: 4px; color: #fff; }
.shots-list { display: grid; grid-template-columns: 1fr 1fr; column-gap: 25px; align-content: start; }
.shots-list p { grid-column: 1 / -1; }
.shots-list a { font-size: 10px; }
.mega-catalogue { min-width: 0; align-self: start; }
.mega-tree { min-width: 0; columns: 3 180px; column-gap: clamp(22px, 2.4vw, 38px); }
.mega-tree-group { break-inside: avoid; margin: 0 0 19px; }
.mega-tree-parent { position: relative; display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; padding: 4px 0 7px; color: #f7f1f3; font-size: 15px; font-weight: 700; line-height: 1.3; overflow-wrap: anywhere; transition: color .25s, transform .25s; }
.mega-tree-parent::before { content: ''; position: absolute; left: -18px; top: .65em; width: 10px; height: 10px; background: var(--live-red); clip-path: polygon(50% 0, 58% 40%, 100% 50%, 58% 60%, 50% 100%, 42% 60%, 0 50%, 42% 40%); filter: drop-shadow(0 0 4px rgba(213,19,23,.68)); transform: translateY(-50%); transition: filter .25s, transform .25s; }
.mega-tree-parent .menu-arrow { flex: 0 0 auto; margin-top: 1px; color: var(--ember-hot); font-size: 17px; opacity: 0; transition: opacity .25s; }
.mega-tree-children { display: grid; gap: 1px; padding-top: 2px; }
.mega-tree-children a { display: block; padding: 5px 0; color: #aaa0a6; font-size: 14px; line-height: 1.35; overflow-wrap: anywhere; transition: color .25s, transform .25s; }
.mega-tree-parent:hover, .mega-tree-children a:hover { color: #fff; transform: translateX(4px); }
.mega-tree-parent:hover::before, .mega-tree-parent:focus-visible::before { filter: drop-shadow(0 0 7px rgba(213,19,23,.9)); transform: translateY(-50%) scale(1.08); }
.mega-tree-parent:hover .menu-arrow, .mega-tree-parent:focus-visible .menu-arrow { opacity: 1; }
.mega-tree-parent:focus-visible, .mega-tree-children a:focus-visible { outline: 2px solid var(--live-red); outline-offset: 3px; color: #fff; }
.mega-feature { position: relative; min-height: 340px; overflow: hidden; align-self: center; padding: 28px; display: flex; flex-direction: column; justify-content: flex-end; background: #171218; }
.mega-feature::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(5,5,8,.03), rgba(5,4,7,.72)); transition: background .4s; }
.mega-feature img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.mega-feature:hover img { transform: scale(1.08); }
.mega-feature:hover::after { background: linear-gradient(180deg, rgba(5,5,8,0), rgba(5,4,7,.58)); }
.mega-feature span, .mega-feature strong, .mega-feature i { position: relative; z-index: 2; }
.mega-feature span { color: #d6b18a; font-size: 7px; font-weight: 700; letter-spacing: .2em; }
.mega-feature strong { margin-top: 10px; font-family: var(--display); font-size: 34px; font-weight: 500; line-height: .86; }
.mega-feature i { margin-top: 20px; color: #fff; font-size: 8px; font-style: normal; font-weight: 700; letter-spacing: .16em; }
.mega-feature i .material-symbols-rounded, .mega-kicker > a .material-symbols-rounded { font-size: 17px; vertical-align: middle; }
.mega-fire-feature img { object-position: center 60%; }
.mega-wedding .mega-feature img { object-position: 75% center; }
.mega-events .mega-feature img { object-position: 60% center; }
.mega-link-group { display: flex; flex-direction: column; }
.mega-link-group a { display: grid; grid-template-columns: 28px 1fr auto; gap: 10px; align-items: center; padding: 13px 0; border-bottom: 1px solid rgba(255,255,255,.07); color: #ddd4d8; font-size: 12px; transition: color .25s, padding .25s; }
.mega-link-group a span { color: var(--ember-hot); font-size: 8px; }
.mega-link-group a b { opacity: 0; color: var(--ember-hot); font-weight: 400; transition: opacity .25s; }
.mega-link-group a:hover { color: #fff; padding-left: 5px; }
.mega-link-group a:hover b { opacity: 1; }
.mega-link-group .mega-all { display: inline-block; width: fit-content; margin-top: 22px; padding: 0 0 6px; border-bottom: 1px solid var(--ember); color: var(--live-red); font-size: 8px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.mega-event-art { position: relative; min-height: 340px; overflow: hidden; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.09); background: radial-gradient(circle at center, rgba(213,19,23,.2), transparent 55%); }
.mega-event-art::before, .mega-event-art::after { content: ''; position: absolute; width: 280px; height: 280px; border-radius: 50%; background: repeating-conic-gradient(from 3deg, rgba(246,184,109,.76) 0 1deg, transparent 1deg 12deg); -webkit-mask: radial-gradient(circle, transparent 0 20%, #000 21% 23%, transparent 24% 40%, #000 41% 43%, transparent 44%); mask: radial-gradient(circle, transparent 0 20%, #000 21% 23%, transparent 24% 40%, #000 41% 43%, transparent 44%); filter: drop-shadow(0 0 10px rgba(246,184,109,.25)); animation: firework-turn 18s linear infinite; }
.mega-event-art::after { width: 185px; height: 185px; background: repeating-conic-gradient(from 7deg, rgba(213,19,23,.78) 0 1.2deg, transparent 1.2deg 14deg); filter: drop-shadow(0 0 10px rgba(213,19,23,.3)); animation-direction: reverse; animation-duration: 12s; }
.mega-event-art > span { position: relative; z-index: 2; text-align: center; font-family: var(--display); font-size: 42px; line-height: .75; }
.mega-event-art i { position: absolute; z-index: 3; width: 5px; height: 5px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 15px var(--gold); }
.mega-event-art i:nth-child(1) { left: 18%; top: 21%; }.mega-event-art i:nth-child(2) { right: 20%; top: 14%; }.mega-event-art i:nth-child(3) { left: 23%; bottom: 17%; }.mega-event-art i:nth-child(4) { right: 14%; bottom: 26%; }

.section-pad { position: relative; z-index: 2; padding: clamp(100px, 12vw, 190px) clamp(20px, 5.7vw, 110px); }
.section-heading { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(260px, .75fr); gap: 70px; align-items: end; max-width: 1440px; margin: 0 auto clamp(55px, 7vw, 105px); }
.section-heading h2, .wedding-copy h2, .experience-intro h2, .review-title h2, .contact-cta h2 { margin: 0; font-family: var(--display); font-size: clamp(55px, 6.1vw, 105px); font-weight: 500; line-height: .88; letter-spacing: -.035em; }
.section-heading h2 em, .wedding-copy h2 em, .experience-intro h2 em, .review-title h2 em, .contact-cta h2 em { color: transparent; -webkit-text-stroke: 1.4px rgba(255,255,255,.75); font-weight: 500; }
.section-heading > p:last-child { max-width: 440px; margin: 0 0 6px; color: #8c858c; font-size: 13px; line-height: 1.9; }
.section-index { margin: 0 0 24px; color: var(--ember-hot); font-size: 8px; font-weight: 700; letter-spacing: .24em; }
.has-js .reveal { opacity: 0; transform: translateY(34px); transition: opacity .9s ease, transform .9s cubic-bezier(.2,.7,.2,1); }
.has-js .reveal.is-visible { opacity: 1; transform: none; }

.video-stories { position: relative; overflow: hidden; isolation: isolate; padding: clamp(86px, 8vw, 138px) clamp(24px, 4vw, 72px) clamp(96px, 9vw, 150px); background: radial-gradient(circle at 50% -15%, rgba(213,19,23,.13), transparent 33%), #0b090d; }
.video-stories::before { content: 'STORIES'; position: absolute; z-index: -1; top: 2%; right: -2%; color: rgba(255,255,255,.018); font-family: var(--display); font-size: clamp(130px, 18vw, 330px); line-height: .8; pointer-events: none; }
.video-stories-heading { max-width: 1040px; margin: 0 auto clamp(48px, 5vw, 78px); text-align: center; }
.video-stories-heading h2 { margin: 0; font-family: var(--display); font-size: clamp(64px, 6.6vw, 112px); font-weight: 500; line-height: 1.08; letter-spacing: -.045em; }
.video-stories-heading h2 > span, .video-stories-heading h2 > em { display: block; }
.video-stories-heading h2 > em { margin-top: .1em; }
.video-stories-heading h2 em { color: transparent; -webkit-text-stroke: 1.7px rgba(255,255,255,.78); font-weight: 500; }
.video-stories-heading p { margin: 28px auto 0; color: #a79da4; font-size: 15px; line-height: 1.75; }
.video-stories-track { width: min(1640px, 100%); margin: 0 auto; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: clamp(10px, 1vw, 18px); }
.video-story-card { min-width: 0; transition-delay: var(--story-delay, 0ms); }
.video-story-media { position: relative; aspect-ratio: 9 / 16; overflow: hidden; background: #171116; isolation: isolate; }
.video-story-media img { position: absolute; inset: 0; z-index: -3; width: 100%; height: 100%; object-fit: cover; filter: saturate(.94) contrast(1.03); transform: scale(1.015); transition: transform .9s cubic-bezier(.2,.7,.2,1), filter .6s ease; }
.video-story-shade { position: absolute; inset: 0; z-index: -2; background: linear-gradient(180deg, rgba(4,4,7,.04) 22%, rgba(6,4,7,.12) 48%, rgba(6,4,7,.88) 100%), linear-gradient(90deg, rgba(12,4,8,.35), transparent 70%); transition: opacity .45s ease; }
.video-story-hit { position: absolute; inset: 0; z-index: 1; }
.video-story-play { position: absolute; z-index: 4; left: 50%; top: 48%; width: 58px; height: 58px; padding: 0; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.55); border-radius: 50%; background: rgba(7,5,8,.24); color: #fff; box-shadow: 0 12px 40px rgba(0,0,0,.28); backdrop-filter: blur(7px); transform: translate(-50%, -50%); transition: background .3s ease, border-color .3s ease, transform .35s cubic-bezier(.2,.7,.2,1); }
button.video-story-play { cursor: pointer; }
.video-story-play-preview { pointer-events: none; }
.video-story-play .material-symbols-rounded { margin-left: 3px; font-size: 28px; font-variation-settings: 'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 28; }
.video-story-line { display: block; width: 100%; height: 1px; margin-bottom: 16px; background: linear-gradient(90deg, var(--live-red) 0 27%, rgba(255,255,255,.25) 27% 100%); transform-origin: left; transition: background .45s ease; }
.video-story-copy { position: absolute; z-index: 3; left: 24px; right: 22px; bottom: 25px; pointer-events: none; }
.video-story-copy h3 { margin: 0 0 12px; font-family: var(--display); font-size: clamp(19px, 1.55vw, 26px); font-weight: 500; line-height: .98; letter-spacing: -.025em; text-transform: uppercase; }
.video-story-copy h3 a { color: inherit; pointer-events: auto; }
.video-story-copy > a { width: fit-content; display: inline-flex; align-items: center; gap: 7px; color: #f0e8eb; font-size: 14px; font-weight: 700; letter-spacing: .075em; text-transform: uppercase; pointer-events: auto; }
.video-story-copy > a .material-symbols-rounded { color: var(--live-red); font-size: 17px; transition: transform .3s ease; }
.video-story-media:hover img { filter: saturate(1.05) contrast(1.02); transform: scale(1.065); }
.video-story-media:hover .video-story-shade { opacity: .82; }
.video-story-media:hover .video-story-play { border-color: var(--live-red); background: var(--live-red); transform: translate(-50%, -50%) scale(1.08); }
.video-story-media:hover .video-story-line { background: var(--live-red); }
.video-story-copy > a:hover .material-symbols-rounded { transform: translate(3px, -3px); }
.video-story-copy h3 a:focus-visible { outline: 2px solid var(--live-red); outline-offset: 4px; }
.video-story-media:focus-within { outline: 2px solid var(--live-red); outline-offset: -2px; }
.video-story-dialog { width: min(1180px, calc(100vw - 36px)); max-width: none; padding: 0; border: 1px solid rgba(255,255,255,.18); background: #050406; color: #fff; box-shadow: 0 35px 110px rgba(0,0,0,.72); overflow: visible; }
.video-story-dialog::backdrop { background: rgba(3,2,4,.88); backdrop-filter: blur(7px); }
.video-story-dialog video { display: block; width: 100%; max-height: calc(100svh - 80px); background: #000; }
.video-story-close { position: absolute; z-index: 2; top: -16px; right: -16px; width: 46px; height: 46px; padding: 0; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.22); border-radius: 50%; background: var(--live-red); color: #fff; cursor: pointer; box-shadow: 0 10px 35px rgba(213,19,23,.32); }

.marquee { position: relative; z-index: 3; overflow: hidden; border-block: 1px solid rgba(255,255,255,.09); background: #0d0a0e; }
.marquee-track { display: flex; width: max-content; animation: marquee-run 46s linear infinite; }
.marquee-set { display: flex; align-items: center; gap: 38px; padding: 20px 19px; }
.marquee-set span { color: #d7cbd0; font-size: 9px; font-weight: 700; letter-spacing: .17em; white-space: nowrap; }
.marquee-set i { color: var(--ember); font-style: normal; text-shadow: 0 0 10px rgba(213,19,23,.8); }
@keyframes marquee-run { to { transform: translateX(-50%); } }

.collections { overflow: hidden; background: #171217; }
.collections::before { content: 'COLLECTIONS'; position: absolute; top: 4%; right: -3%; color: rgba(255,255,255,.018); font-family: var(--display); font-size: 15vw; line-height: 1; pointer-events: none; }
.category-grid { max-width: 1440px; margin: 0 auto; display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-rows: clamp(320px, 32vw, 500px); gap: 15px; }
.category-card { position: relative; overflow: hidden; min-width: 0; background: #24181d; isolation: isolate; }
.category-1 { grid-column: span 5; }.category-2 { grid-column: span 3; }.category-3 { grid-column: span 4; }
.category-4, .category-5, .category-6 { grid-column: span 4; }.category-7 { grid-column: span 7; }.category-8 { grid-column: span 5; }
.category-card img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; filter: saturate(.94) contrast(1.04) brightness(1.02); transform: scale(1.02); transition: transform 1s cubic-bezier(.2,.7,.2,1), filter .7s; }
.category-card:hover img { transform: scale(1.1); filter: saturate(1.08) contrast(1.02) brightness(1.12); }
.category-overlay { position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(4,4,7,.04) 26%, rgba(5,4,7,.72)), linear-gradient(90deg, rgba(16,5,10,.22), transparent 68%); transition: opacity .5s; }
.category-card:hover .category-overlay { opacity: .68; }
.category-number { position: absolute; top: 25px; left: 27px; color: rgba(255,255,255,.7); font-size: 8px; font-weight: 700; letter-spacing: .16em; }
.category-copy { position: absolute; left: 30px; right: 78px; bottom: 34px; }
.category-copy p { margin: 0 0 4px; color: #c9bfc4; font-size: 8px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.category-copy h3 { margin: 0; font-family: var(--display); font-size: clamp(30px, 2.4vw, 40px); font-weight: 500; line-height: .92; }
.category-arrow { position: absolute; right: 26px; bottom: 29px; width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; font-size: 15px; font-style: normal; transform: translateY(5px); opacity: .6; transition: .35s; }
.category-card:hover .category-arrow { opacity: 1; transform: none; color: #fff; background: var(--ember); border-color: var(--ember); box-shadow: 0 0 25px rgba(213,19,23,.45); }
.category-line { position: absolute; left: 30px; right: 30px; bottom: 18px; height: 1px; background: linear-gradient(90deg, var(--ember), rgba(255,255,255,.09)); transform: scaleX(.18); transform-origin: left; transition: transform .65s; }
.category-card:hover .category-line { transform: scaleX(1); }

.product-section { overflow: hidden; background: #f1ece8; color: #151116; }
.product-section::before { content: ''; position: absolute; width: 720px; height: 720px; top: -360px; right: -250px; border-radius: 50%; background: repeating-conic-gradient(from 4deg, rgba(213,19,23,.16) 0 1deg, transparent 1deg 10deg); -webkit-mask: radial-gradient(circle, transparent 0 18%, #000 19% 20%, transparent 21% 34%, #000 35% 36%, transparent 37% 50%, #000 51% 52%, transparent 53%); mask: radial-gradient(circle, transparent 0 18%, #000 19% 20%, transparent 21% 34%, #000 35% 36%, transparent 37% 50%, #000 51% 52%, transparent 53%); animation: catalog-orbit 22s linear infinite; pointer-events: none; }
.product-section::after { content: 'SHOP\A THE\A DROP'; white-space: pre; position: absolute; left: -1.2vw; top: 26%; color: rgba(213,19,23,.028); font-family: var(--display); font-size: clamp(90px, 14vw, 235px); font-weight: 500; line-height: .65; pointer-events: none; }
.product-section > * { position: relative; z-index: 1; }
.product-section .section-index { color: var(--live-red); }
.product-section .section-heading h2 em { -webkit-text-stroke-color: rgba(21,17,22,.75); }
@keyframes catalog-orbit { to { transform: rotate(360deg); } }
.catalog-signal { max-width: 1600px; margin: 0 auto clamp(58px, 7vw, 105px); padding: 17px 0; display: flex; align-items: center; justify-content: space-between; gap: 28px; border-block: 1px solid rgba(21,17,22,.15); color: #7f767c; font-size: 14px; font-weight: 700; letter-spacing: .09em; }
.catalog-signal p { display: flex; align-items: center; gap: 12px; margin: 0; color: #342c31; }
.catalog-signal i { width: 8px; height: 8px; border-radius: 50%; background: var(--ember); box-shadow: 0 0 0 0 rgba(213,19,23,.4); animation: signal-pulse 2s infinite; }
@keyframes signal-pulse { 70% { box-shadow: 0 0 0 12px rgba(213,19,23,0); } }
.split-heading { align-items: end; }
.product-heading-copy { max-width: 500px; padding-bottom: 4px; }
.product-heading-copy p { margin: 0 0 23px; color: #756d73; font-size: 16px; line-height: 1.8; }
.product-heading-copy a { padding-bottom: 5px; border-bottom: 1px solid var(--live-red); color: var(--live-red); font-size: 14px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.merchandise-hub { max-width: 1600px; margin: 0 auto; }
.product-tabs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border: 1px solid rgba(21,17,22,.16); background: rgba(255,255,255,.22); }
.product-tabs button { position: relative; min-width: 0; min-height: 104px; padding: 19px 20px; display: grid; grid-template-columns: auto 1fr; grid-template-rows: 1fr auto; column-gap: 13px; border: 0; border-right: 1px solid rgba(21,17,22,.14); background: transparent; color: #4a4147; cursor: pointer; text-align: left; overflow: hidden; transition: color .35s, background .35s; }
.product-tabs button:last-child { border-right: 0; }
.product-tabs button::before { content: ''; position: absolute; inset: auto 0 0; height: 4px; background: linear-gradient(90deg, var(--ember), #ff9a5c); transform: scaleX(0); transform-origin: left; transition: transform .45s cubic-bezier(.2,.8,.2,1); }
.product-tabs button::after { content: ''; position: absolute; width: 80px; height: 140%; top: -20%; left: -110px; background: linear-gradient(90deg, transparent, rgba(255,255,255,.25), transparent); transform: skewX(-22deg); transition: left .65s; }
.product-tabs button:hover::after { left: calc(100% + 45px); }
.product-tabs button.is-active { color: #fff; background: #171216; }
.product-tabs button.is-active::before { transform: scaleX(1); }
.product-tabs button > span { grid-row: 1 / 3; color: var(--live-red); font-family: var(--display); font-size: 23px; line-height: 1; }
.product-tabs button strong { align-self: end; min-width: 0; font-family: var(--display); font-size: clamp(16px, 1.1vw, 20px); font-weight: 500; line-height: 1.05; text-wrap: balance; overflow-wrap: anywhere; }
.product-tabs button small { align-self: end; color: #958b91; font-size: 14px; font-weight: 700; letter-spacing: .08em; }
.product-tabs button.is-active > span, .product-tabs button.is-active small { color: var(--live-red); }
.collection-stage { display: grid; grid-template-columns: minmax(320px, .72fr) minmax(0, 1.78fr); gap: 18px; margin-top: 18px; animation: collection-enter .62s cubic-bezier(.2,.75,.2,1) both; }
@keyframes collection-enter { from { opacity: 0; transform: translateY(18px); } }
.collection-editorial { position: relative; min-height: 100%; overflow: hidden; isolation: isolate; container-type: inline-size; background: #171016; color: #fff; }
.collection-editorial > img { position: absolute; z-index: -3; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: saturate(.98) brightness(.94) contrast(1.04); transform: scale(1.035); transition: transform 1.3s cubic-bezier(.2,.7,.2,1), filter .8s; }
.collection-editorial:hover > img { transform: scale(1.105); filter: saturate(1.08) brightness(1.04) contrast(1.02); }
.collection-editorial-shade { position: absolute; z-index: -2; inset: 0; background: linear-gradient(180deg, rgba(6,5,8,.03) 24%, rgba(7,5,8,.74)), linear-gradient(90deg, rgba(213,19,23,.25), transparent 68%); }
.collection-editorial::after { content: ''; position: absolute; z-index: -1; inset: 0; background: radial-gradient(circle at 26% 72%, rgba(213,19,23,.28), transparent 31%); opacity: .6; transition: opacity .6s; }
.collection-editorial:hover::after { opacity: 1; }
.collection-serial { position: absolute; top: 27px; left: 29px; color: rgba(255,255,255,.72); font-size: 14px; font-weight: 700; letter-spacing: .1em; }
.collection-editorial-copy { position: absolute; left: clamp(26px, 3vw, 50px); right: clamp(26px, 3vw, 50px); bottom: clamp(30px, 4vw, 62px); }
.collection-editorial-copy > p { margin: 0 0 16px; color: var(--live-red); font-size: 14px; font-weight: 700; letter-spacing: .11em; }
.collection-editorial-copy h3 { max-width: 510px; margin: 0; font-family: var(--display); font-size: clamp(42px, 14.5cqi, 66px); font-weight: 500; line-height: .94; letter-spacing: -.035em; overflow-wrap: normal; word-break: normal; hyphens: none; }
.collection-editorial-copy > span { display: block; max-width: 470px; margin-top: 26px; color: #c2b8bd; font-size: 16px; line-height: 1.75; }
.collection-editorial-copy > b { width: fit-content; margin-top: 28px; display: flex; align-items: center; gap: 13px; font-size: 14px; letter-spacing: .1em; }
.collection-editorial-copy > b i { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; font-style: normal; transition: transform .35s, background .35s; }
.collection-editorial:hover .collection-editorial-copy > b i { transform: rotate(45deg); background: var(--ember); border-color: var(--ember); }
.editorial-orbit { position: absolute; width: 270px; height: 270px; right: -125px; top: 8%; border-radius: 50%; animation: firework-float 7s ease-in-out infinite; }
.editorial-orbit::before { content: ''; position: absolute; inset: 0; border-radius: 50%; background: repeating-conic-gradient(from 6deg, rgba(255,255,255,.72) 0 1deg, transparent 1deg 13deg); -webkit-mask: radial-gradient(circle, transparent 0 22%, #000 23% 25%, transparent 26% 43%, #000 44% 46%, transparent 47%); mask: radial-gradient(circle, transparent 0 22%, #000 23% 25%, transparent 26% 43%, #000 44% 46%, transparent 47%); animation: firework-turn 17s linear infinite; }
.editorial-orbit::after { content: ''; position: absolute; inset: 47%; border-radius: 50%; background: var(--live-red); box-shadow: 0 0 22px rgba(213,19,23,.65); }
.editorial-orbit i { position: absolute; width: 5px; height: 5px; border-radius: 50%; background: #ffd198; box-shadow: 0 0 13px var(--live-red); }
.editorial-orbit i:nth-child(1) { left: 14%; top: 13%; }.editorial-orbit i:nth-child(2) { right: 0; top: 49%; }.editorial-orbit i:nth-child(3) { left: 28%; bottom: 1%; }
.product-grid { min-width: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); align-content: start; gap: 34px 15px; }
.product-card { --card-i: 0; min-width: 0; display: flex; flex-direction: column; padding: 0 13px 17px; border: 1px solid transparent; background: rgba(255,255,255,.2); animation: product-card-in .48s calc(var(--card-i) * 55ms) both; transition: transform .38s, box-shadow .38s, background .38s, border-color .38s; }
@keyframes product-card-in { from { opacity: 0; transform: translateY(20px); } }
.product-card:hover, .product-card:focus-within { z-index: 2; transform: translateY(-7px); border-color: rgba(213,19,23,.16); background: rgba(255,255,255,.64); box-shadow: 0 24px 55px rgba(61,35,46,.12); }
.product-media { position: relative; aspect-ratio: 1; margin: 0 -13px; overflow: hidden; background: #e4ded9; }
.product-media > a:first-child { display: block; width: 100%; height: 100%; }
.product-media img { position: relative; z-index: 2; width: 100%; height: 100%; object-fit: cover; mix-blend-mode: multiply; transition: transform .7s cubic-bezier(.2,.7,.2,1); }
.product-card:hover .product-media img, .product-card:focus-within .product-media img { transform: scale(1.065) translateY(-5px); }
.product-glow { position: absolute; z-index: 1; width: 72%; height: 28%; left: 14%; bottom: 8%; border-radius: 50%; background: rgba(213,19,23,.14); filter: blur(34px); transition: background .4s, transform .4s; }
.product-card:hover .product-glow { background: rgba(213,19,23,.28); transform: scale(1.15); }
.product-badge { position: absolute; z-index: 4; top: 15px; left: 15px; padding: 8px 10px; background: #1a1519; color: #fff; font-size: 14px; font-weight: 700; letter-spacing: .07em; box-shadow: 0 7px 20px rgba(24,12,18,.13); }
.product-love { position: absolute; z-index: 5; top: 12px; right: 12px; width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid rgba(20,15,20,.13); border-radius: 50%; background: rgba(255,255,255,.8); color: #352d33; cursor: pointer; transition: .3s; }
.product-love .material-symbols-rounded { font-size: 22px; transition: font-variation-settings .25s; }
.product-love.is-liked .material-symbols-rounded { font-variation-settings: 'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 24; }
.product-love:hover, .product-love:focus-visible, .product-love.is-liked { color: #fff; background: var(--ember); border-color: var(--ember); transform: scale(1.07); }
.product-quick-view { position: absolute; z-index: 5; left: 12px; right: 12px; bottom: 12px; min-height: 47px; padding: 0 16px; display: flex; align-items: center; justify-content: space-between; background: rgba(15,11,15,.93); color: #fff; font-size: 14px; font-weight: 700; letter-spacing: .08em; transform: translateY(calc(100% + 16px)); transition: transform .4s cubic-bezier(.2,.75,.2,1), background .3s; }
.product-quick-view:hover { background: var(--live-red); }
.product-card:hover .product-quick-view, .product-card:focus-within .product-quick-view { transform: none; }
.product-meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 13px; margin-top: 18px; color: #8c8389; font-size: 14px; font-weight: 700; letter-spacing: .065em; }
.product-meta span:last-child { color: var(--live-red); }
.product-name { display: -webkit-box; min-height: 3.66em; margin: 11px 0 0; overflow: hidden; font-family: var(--sans); font-size: clamp(16px, 1.15vw, 18px); font-weight: 700; line-height: 1.22; letter-spacing: -.012em; text-wrap: pretty; overflow-wrap: break-word; hyphens: auto; -webkit-box-orient: vertical; -webkit-line-clamp: 3; transition: color .25s; }
.product-name > a { color: inherit; }
.product-card:hover .product-name { color: var(--live-red); }
.product-buy { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; padding-top: 17px; border-top: 1px solid rgba(20,15,20,.14); }
.product-buy p { margin: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 5px 9px; }
.product-buy del { color: #8e858b; font-size: 14px; }
.product-buy strong { font-size: 16px; white-space: nowrap; }
.product-buy button { min-width: 48px; height: 48px; padding: 0 15px; display: flex; align-items: center; justify-content: center; gap: 9px; border: 0; border-radius: 25px; background: #171216; color: #fff; cursor: pointer; font-size: 20px; transition: transform .3s, background .3s, box-shadow .3s; }
.product-buy button span { display: none; font-size: 14px; font-weight: 700; letter-spacing: .06em; }
.product-buy button:hover, .product-buy button:focus-visible { transform: translateY(-2px); background: var(--ember); box-shadow: 0 9px 24px rgba(213,19,23,.28); }
.hub-foot { min-height: 75px; margin-top: 26px; padding-top: 23px; display: flex; align-items: center; justify-content: space-between; gap: 25px; border-top: 1px solid rgba(20,15,20,.15); color: #756c72; font-size: 14px; font-weight: 700; letter-spacing: .08em; }
.hub-foot p { margin: 0; }.hub-foot p span { margin-right: 8px; color: var(--live-red); font-family: var(--display); font-size: 27px; }.hub-foot a { padding-bottom: 4px; border-bottom: 1px solid var(--live-red); color: var(--live-red); }

.moment-section { overflow: hidden; background: #171217; }
.moment-section::before { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 68% 42%, rgba(213,19,23,.11), transparent 30%), linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px); background-size: auto, 120px 120px, 120px 120px; mask-image: linear-gradient(#000, transparent 95%); }
.moment-section > * { position: relative; z-index: 1; }
.moment-section .section-heading > p { color: #918890; }
.moment-grid { max-width: 1600px; margin: 0 auto; display: grid; grid-template-columns: 1.35fr .95fr; grid-template-rows: repeat(2, minmax(290px, 34vh)); gap: 15px; }
.moment-card { position: relative; overflow: hidden; isolation: isolate; min-height: 290px; background: #24181d; }
.moment-feature { grid-row: 1 / 3; }
.moment-card > img { position: absolute; z-index: -3; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: saturate(.92) brightness(.88) contrast(1.06); transform: scale(1.025); transition: transform 1s cubic-bezier(.2,.7,.2,1), filter .7s; }
.moment-card:hover > img { transform: scale(1.09); filter: saturate(1.08) brightness(1) contrast(1.03); }
.moment-shade { position: absolute; z-index: -2; inset: 0; background: linear-gradient(180deg, rgba(5,4,6,.03) 24%, rgba(6,5,8,.74)), linear-gradient(90deg, rgba(213,19,23,.22), transparent 70%); }
.moment-count { position: absolute; top: 27px; left: 29px; color: rgba(255,255,255,.78); font-size: 14px; font-weight: 700; letter-spacing: .1em; }
.moment-card > div:last-of-type { position: absolute; left: clamp(28px, 4vw, 62px); right: 28px; bottom: clamp(30px, 4vw, 58px); }
.moment-card p { margin: 0 0 12px; color: var(--live-red); font-size: 14px; font-weight: 700; letter-spacing: .11em; }
.moment-card h3 { margin: 0; font-family: var(--display); font-size: clamp(38px, 4.2vw, 70px); font-weight: 500; line-height: .88; letter-spacing: -.03em; }
.moment-feature h3 { font-size: clamp(62px, 7vw, 118px); }.moment-card h3 em { color: transparent; -webkit-text-stroke: 1.4px rgba(255,255,255,.8); font-weight: 500; }
.moment-card b { width: fit-content; display: block; margin-top: 24px; padding-bottom: 5px; border-bottom: 1px solid var(--ember); font-size: 14px; letter-spacing: .08em; transition: color .3s; }
.moment-card:hover b { color: var(--live-red); }
.moment-ring { position: absolute; width: 420px; height: 420px; right: -180px; top: -150px; border-radius: 50%; background: repeating-conic-gradient(from 5deg, rgba(255,255,255,.52) 0 1deg, transparent 1deg 11deg); -webkit-mask: radial-gradient(circle, transparent 0 21%, #000 22% 24%, transparent 25% 39%, #000 40% 42%, transparent 43% 55%, #000 56% 58%, transparent 59%); mask: radial-gradient(circle, transparent 0 21%, #000 22% 24%, transparent 25% 39%, #000 40% 42%, transparent 43% 55%, #000 56% 58%, transparent 59%); filter: drop-shadow(0 0 12px rgba(213,19,23,.26)); animation: firework-bloom 6s ease-in-out infinite; }

.wedding-section { position: relative; z-index: 2; min-height: 850px; display: grid; grid-template-columns: 1.12fr .88fr; background: #171217; overflow: hidden; }
.wedding-image { position: relative; min-height: 720px; overflow: hidden; }
.wedding-image img { width: 100%; height: 100%; object-fit: cover; object-position: 75% center; transform: scale(1.08); transition: transform 1.2s; }
.wedding-image.is-visible img { transform: scale(1.02); }
.wedding-filter { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8,6,9,0), rgba(8,6,9,.03) 62%, #171217), linear-gradient(180deg, transparent 68%, rgba(8,6,9,.42)); }
.wedding-tag { position: absolute; left: 40px; bottom: 45px; color: rgba(255,255,255,.84); font-family: var(--display); font-size: clamp(42px, 5vw, 78px); line-height: .72; }
.wedding-copy { align-self: center; max-width: 670px; padding: 90px clamp(35px, 7vw, 125px) 90px clamp(35px, 4vw, 75px); }
.wedding-script { margin: -12px 0 2px; color: var(--live-red); font-family: var(--display); font-size: 22px; font-style: italic; }
.wedding-copy h2 { font-size: clamp(58px, 5.5vw, 96px); }
.wedding-copy > p:not(.section-index):not(.wedding-script) { margin: 34px 0 0; color: #958d94; font-size: 13px; line-height: 1.9; }
.wedding-copy ul { margin: 34px 0; padding: 0; list-style: none; }
.wedding-copy li { display: grid; grid-template-columns: 28px 1fr; gap: 12px; padding: 13px 0; border-bottom: 1px solid rgba(255,255,255,.08); color: #d8ced3; font-size: 11px; }
.wedding-copy li span { color: var(--ember-hot); font-size: 8px; }
.button-outline { border-color: rgba(255,255,255,.24); background: rgba(255,255,255,.02); }
.button-outline:hover { transform: translateY(-3px); border-color: var(--ember); background: rgba(213,19,23,.16); }
.wedding-spark { position: absolute; z-index: 3; width: 5px; height: 5px; border-radius: 50%; background: #fff3c4; box-shadow: 0 0 12px #ffb767, 0 0 35px var(--live-red); animation: spark-float 4s ease-in-out infinite; }
.spark-a { left: 48%; top: 21%; }.spark-b { right: 8%; bottom: 22%; animation-delay: -1.8s; }
@keyframes spark-float { 50% { transform: translateY(-25px) scale(.6); opacity: .35; } }

.experience { display: grid; grid-template-columns: 1fr .8fr 1.2fr; gap: clamp(45px, 6vw, 100px); align-items: center; background: #171217; overflow: hidden; }
.experience::before { content: ''; position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px); background-size: 110px 110px; mask-image: radial-gradient(circle at center, #000, transparent 70%); }
.experience > * { position: relative; z-index: 1; }
.experience-intro h2 { font-size: clamp(58px, 5.4vw, 92px); }
.experience-intro > p:last-of-type { margin: 33px 0 26px; color: #908890; font-size: 13px; line-height: 1.9; }
.experience-intro > a { padding-bottom: 5px; border-bottom: 1px solid var(--ember); color: var(--live-red); font-size: 8px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.experience-orb { position: relative; width: min(32vw, 400px); aspect-ratio: 1; display: grid; place-items: center; justify-self: center; }
.experience-orb::before { content: ''; position: absolute; inset: 2%; border-radius: 50%; background: repeating-conic-gradient(from 5deg, rgba(246,184,109,.78) 0 1.2deg, transparent 1.2deg 12deg); -webkit-mask: radial-gradient(circle, transparent 0 19%, #000 20% 22%, transparent 23% 37%, #000 38% 41%, transparent 42%); mask: radial-gradient(circle, transparent 0 19%, #000 20% 22%, transparent 23% 37%, #000 38% 41%, transparent 42%); filter: drop-shadow(0 0 15px rgba(246,184,109,.28)); animation: firework-bloom 5s ease-in-out infinite; }
.orb-ring { position: absolute; inset: 8%; border-radius: 50%; animation: firework-turn 18s linear infinite; }
.orb-ring::before { content: ''; position: absolute; inset: 0; border-radius: 50%; background: repeating-conic-gradient(from 2deg, rgba(213,19,23,.62) 0 1deg, transparent 1deg 17deg); -webkit-mask: radial-gradient(circle, transparent 0 46%, #000 47% 49%, transparent 50%); mask: radial-gradient(circle, transparent 0 46%, #000 47% 49%, transparent 50%); }
.ring-two { inset: 22%; animation-duration: 11s; animation-direction: reverse; }
.ring-two::before { background: repeating-conic-gradient(from 9deg, rgba(255,255,255,.5) 0 1deg, transparent 1deg 20deg); }
.orb-ring i { position: absolute; width: 5px; height: 5px; border-radius: 50%; background: #ffd18e; box-shadow: 0 0 15px #ff9c5c; }
.orb-ring i:nth-child(1) { left: 18%; top: 5%; }.orb-ring i:nth-child(2) { right: 2%; top: 48%; }.orb-ring i:nth-child(3) { left: 28%; bottom: 3%; }
.experience-orb > span { position: relative; z-index: 3; font-family: var(--display); font-size: clamp(70px, 8vw, 124px); line-height: .55; text-align: center; }
.experience-orb small { font-family: var(--sans); font-size: 7px; font-weight: 700; letter-spacing: .18em; line-height: 1.4; }
@keyframes orb-breathe { 50% { transform: scale(1.09); filter: blur(11px); } }
.trust-list article { display: grid; grid-template-columns: 32px 1fr auto; gap: 18px; align-items: start; padding: 27px 0; border-bottom: 1px solid rgba(255,255,255,.09); transition: padding .3s, border-color .3s; }
.trust-list article:hover { padding-left: 9px; border-color: rgba(213,19,23,.5); }
.trust-list article > span { padding-top: 5px; color: var(--ember-hot); font-size: 8px; }
.trust-list h3 { margin: 0; font-family: var(--display); font-size: 29px; font-weight: 500; }
.trust-list p { margin: 7px 0 0; color: #827b83; font-size: 11px; line-height: 1.65; }
.trust-list article > i { color: #655d65; font-style: normal; transition: color .3s, transform .3s; }
.trust-list article:hover > i { color: var(--gold); transform: rotate(90deg); }

.reviews { display: grid; grid-template-columns: .72fr 1.28fr; gap: clamp(55px, 8vw, 140px); align-items: start; background: #f1ece8; color: #181318; }
.reviews .section-index { color: var(--live-red); }
.review-title h2 em { -webkit-text-stroke-color: rgba(24,19,24,.72); }
.stars { margin-top: 42px; color: var(--live-red); font-size: 12px; letter-spacing: .12em; }
.stars span { display: block; margin-top: 9px; color: #8f878c; font-size: 7px; font-weight: 700; letter-spacing: .17em; }
.review-cards { display: grid; gap: 15px; }
.review-cards blockquote { position: relative; margin: 0; padding: 39px 44px; border: 1px solid rgba(24,19,24,.13); background: rgba(255,255,255,.3); transition: transform .35s, background .35s, box-shadow .35s; }
.review-cards blockquote:hover { transform: translateX(-9px); background: rgba(255,255,255,.7); box-shadow: 0 20px 50px rgba(51,30,40,.08); }
.review-cards blockquote > span { position: absolute; top: 20px; right: 28px; color: rgba(213,19,23,.25); font-family: var(--display); font-size: 62px; }
.review-cards blockquote p { max-width: 670px; margin: 0; font-family: var(--display); font-size: clamp(22px, 2vw, 31px); line-height: 1.18; }
.review-cards blockquote footer { margin-top: 24px; color: #a29a9f; font-size: 7px; font-weight: 700; letter-spacing: .16em; }

.contact-cta { position: relative; z-index: 2; min-height: 680px; padding: 110px 25px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; overflow: hidden; background: radial-gradient(circle at center, rgba(213,19,23,.34), transparent 37%), #09070a; }
.contact-cta::before { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, transparent 49.8%, rgba(255,255,255,.05) 50%, transparent 50.2%); }
.contact-cta > p { position: relative; margin: 0 0 27px; color: #d1c4c9; font-size: 8px; font-weight: 700; letter-spacing: .22em; }
.contact-cta h2 { position: relative; font-size: clamp(65px, 8vw, 136px); }
.contact-actions { position: relative; display: flex; gap: 70px; margin-top: 55px; }
.contact-actions a { display: flex; flex-direction: column; gap: 8px; font-family: var(--display); font-size: 27px; transition: color .3s; }
.contact-actions a:hover { color: var(--live-red); }
.contact-actions span { color: #8c838b; font-family: var(--sans); font-size: 7px; font-weight: 700; letter-spacing: .16em; }
.cta-firework { position: absolute; width: 520px; height: 520px; opacity: .36; }
.cta-firework i { --i: 0; position: absolute; left: 50%; top: 50%; width: 1px; height: 190px; background: linear-gradient(to top, rgba(255,171,104,.85), transparent 85%); transform-origin: 50% 0; transform: rotate(calc(var(--i) * 20deg)) translateY(30px); animation: ray-pulse 3.2s calc(var(--i) * -.09s) ease-in-out infinite; }
@keyframes ray-pulse { 50% { opacity: .2; height: 235px; } }

.site-footer { position: relative; z-index: 2; isolation: isolate; overflow: hidden; padding: 90px clamp(20px, 5.7vw, 110px) 24px; border-top: 0; background: #060507; }
.site-footer::before { content: ''; position: absolute; z-index: -2; inset: 0 0 0 auto; width: min(74%, 1180px); background: url('/image/catalog/fireworks/home/gen-category-aerial.webp') 58% 18% / cover no-repeat; filter: saturate(1.04) brightness(.93) contrast(1.08); opacity: .9; -webkit-mask-image: radial-gradient(ellipse 94% 100% at 100% 100%, #000 0 36%, rgba(0,0,0,.94) 54%, rgba(0,0,0,.46) 74%, transparent 100%); mask-image: radial-gradient(ellipse 94% 100% at 100% 100%, #000 0 36%, rgba(0,0,0,.94) 54%, rgba(0,0,0,.46) 74%, transparent 100%); }
.site-footer::after { content: ''; position: absolute; z-index: -1; inset: 0; background: linear-gradient(180deg, #060507 0%, rgba(6,5,7,.93) 11%, rgba(6,5,7,.48) 46%, rgba(6,5,7,.1) 100%), linear-gradient(90deg, #060507 0%, rgba(6,5,7,.96) 36%, rgba(6,5,7,.54) 70%, rgba(6,5,7,.08) 100%); }
.site-footer > * { position: relative; z-index: 1; }
.footer-top { max-width: 1440px; margin: 0 auto; display: grid; grid-template-columns: 1.4fr .8fr .7fr 1fr; gap: 60px; }
.footer-brand > p { max-width: 285px; margin: 27px 0; color: #aaa0a6; font-size: 11px; line-height: 1.8; }
.footer-store-contact { display: flex; flex-direction: column; align-items: flex-start; gap: 7px; margin: -9px 0 22px; }
.footer-store-contact a, .footer-store-contact address { margin: 0; color: #d0c7cc; font-size: 10px; line-height: 1.55; font-style: normal; transition: color .25s, transform .25s; }
.footer-store-contact a:hover { color: #fff; transform: translateX(3px); }
.socials { display: flex; gap: 8px; }
.socials a { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.13); border-radius: 50%; color: #b4aab0; font-size: 7px; font-weight: 700; transition: .3s; }
.socials a:hover { color: #fff; background: var(--ember); border-color: var(--ember); transform: translateY(-3px); }
.footer-links, .footer-contact { display: flex; flex-direction: column; align-items: flex-start; gap: 13px; }
.footer-links > p, .footer-contact > p { margin: 4px 0 15px; color: #a39aa0; font-size: 8px; font-weight: 700; letter-spacing: .2em; }
.footer-links a, .footer-contact a, .footer-contact address { color: #d0c7cc; font-size: 10px; line-height: 1.5; font-style: normal; text-shadow: 0 1px 16px rgba(0,0,0,.6); transition: color .25s, transform .25s; }
.footer-links a:hover, .footer-contact a:hover { color: #fff; transform: translateX(3px); }
.footer-contact .map-link { margin-top: 8px; padding-bottom: 4px; border-bottom: 1px solid var(--ember); color: var(--live-red); font-size: 7px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.newsletter { max-width: 1440px; margin: 80px auto 0; padding: 36px 0; display: grid; grid-template-columns: 1fr 1fr; gap: 70px; align-items: center; border-block: 1px solid rgba(255,255,255,.09); }
.newsletter span { color: var(--ember-hot); font-size: 7px; font-weight: 700; letter-spacing: .19em; }
.newsletter h3 { margin: 8px 0 0; font-family: var(--display); font-size: 33px; font-weight: 500; }
.newsletter form { display: grid; grid-template-columns: 1fr auto; border-bottom: 1px solid rgba(255,255,255,.28); }
.newsletter input { min-width: 0; padding: 16px 0; border: 0; outline: 0; background: none; color: #fff; font: 13px var(--sans); }
.newsletter input::placeholder { color: #6e656c; }
.newsletter button { border: 0; background: none; color: var(--live-red); cursor: pointer; font-size: 8px; font-weight: 700; letter-spacing: .13em; }
.footer-bottom { max-width: 1440px; margin: 24px auto 0; display: flex; justify-content: space-between; gap: 25px; color: #8b8288; font-size: 7px; font-weight: 700; letter-spacing: .14em; }
.footer-bottom a { color: #bbb1b7; }
.back-to-top { position: fixed; z-index: 84; right: clamp(18px, 2.4vw, 38px); bottom: clamp(18px, 2.4vw, 38px); width: 58px; height: 58px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; background: var(--live-red); box-shadow: 0 12px 34px rgba(213,19,23,.34), 0 0 0 0 rgba(213,19,23,.22); color: #fff; opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(24px) scale(.86); transition: opacity .28s ease, visibility .4s ease, transform .45s cubic-bezier(.2,.75,.2,1), box-shadow .28s ease; }
.back-to-top::before { content: ''; position: absolute; inset: 5px; border: 1px solid rgba(255,255,255,.18); border-radius: inherit; }
.back-to-top .material-symbols-rounded { position: relative; z-index: 1; font-size: 25px; transition: transform .28s ease; }
.back-to-top.is-visible { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0) scale(1); }
.back-to-top:hover, .back-to-top:focus-visible { box-shadow: 0 16px 42px rgba(213,19,23,.48), 0 0 0 7px rgba(213,19,23,.14); outline: 0; }
.back-to-top:hover .material-symbols-rounded, .back-to-top:focus-visible .material-symbols-rounded { transform: translateY(-3px); }

.overlay-scrim { position: fixed; z-index: 90; inset: 0; border: 0; background: rgba(0,0,0,.72); backdrop-filter: blur(5px); opacity: 0; visibility: hidden; transition: .35s; cursor: default; }
.overlay-scrim.is-open { opacity: 1; visibility: visible; }
.mobile-drawer, .cart-drawer { position: fixed; z-index: 100; top: 0; bottom: 0; right: 0; width: min(480px, 94vw); background: #0b090c; box-shadow: -30px 0 80px rgba(0,0,0,.5); transform: translateX(105%); visibility: hidden; transition: transform .5s cubic-bezier(.2,.7,.2,1), visibility .5s; }
.mobile-drawer { display: flex; flex-direction: column; overflow: hidden; }
.mobile-drawer.is-open, .cart-drawer.is-open { transform: none; visibility: visible; }
.drawer-head { height: 91px; flex: 0 0 91px; padding: 0 25px 0 30px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(255,255,255,.1); }
.drawer-head > button, .overlay-close { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.15); border-radius: 50%; background: none; color: #fff; cursor: pointer; font-size: 24px; font-weight: 300; }
.mobile-drawer nav { min-height: 0; flex: 1 1 auto; overflow-y: auto; overscroll-behavior: contain; padding: 17px 30px 28px; }
.mobile-drawer nav > a, .mobile-drawer summary { position: relative; display: flex; align-items: center; justify-content: space-between; padding: 17px 0; border-bottom: 1px solid rgba(255,255,255,.08); color: #d7cdd2; cursor: pointer; font-family: var(--display); font-size: 21px; line-height: 1.1; list-style: none; }
.mobile-drawer nav > a::before, .mobile-drawer summary::before { content: ''; position: absolute; left: -18px; top: calc(17px + .55em); width: 10px; height: 10px; background: var(--live-red); clip-path: polygon(50% 0, 58% 40%, 100% 50%, 58% 60%, 50% 100%, 42% 60%, 0 50%, 42% 40%); filter: drop-shadow(0 0 4px rgba(213,19,23,.68)); transform: translateY(-50%); }
.mobile-drawer summary::-webkit-details-marker { display: none; }
.mobile-drawer nav > a .material-symbols-rounded { flex: 0 0 auto; margin-left: 18px; color: var(--ember-hot); font-family: 'Material Symbols Rounded'; font-size: 20px; font-weight: 400; line-height: 1; letter-spacing: normal; font-feature-settings: 'liga'; }
.summary-chevron { width: 9px; height: 9px; flex: 0 0 auto; margin-right: 3px; border-right: 2px solid var(--ember-hot); border-bottom: 2px solid var(--ember-hot); transform: translateY(-2px) rotate(45deg); transition: transform .28s cubic-bezier(.2,.7,.2,1); }
.mobile-drawer details[open] .summary-chevron { transform: translateY(2px) rotate(-135deg); }
.mobile-drawer details > div { padding: 8px 0 13px 17px; border-bottom: 1px solid rgba(255,255,255,.08); }
.mobile-drawer details > div a { display: block; padding: 8px 0; color: #8d858c; font-size: 10px; line-height: 1.3; overflow-wrap: anywhere; }
.drawer-foot { min-height: 86px; flex: 0 0 auto; padding: 15px 30px max(15px, env(safe-area-inset-bottom)); display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 18px; align-items: center; border-top: 1px solid rgba(255,255,255,.09); background: #0b090c; }
.drawer-foot a { white-space: nowrap; font-family: var(--display); font-size: 22px; line-height: 1; }.drawer-foot span { min-width: 0; color: #6e666d; font-size: 7px; font-weight: 700; line-height: 1.45; letter-spacing: .12em; text-align: right; }
.cart-drawer { display: flex; flex-direction: column; }
.cart-drawer .drawer-head > span { font-size: 10px; font-weight: 700; letter-spacing: .17em; }
.cart-drawer .drawer-head b { display: inline-grid; place-items: center; width: 23px; height: 23px; margin-left: 8px; border-radius: 50%; background: var(--ember); }
.cart-empty { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 45px; text-align: center; }
.bag-art { position: relative; width: 90px; height: 92px; margin-bottom: 35px; border: 1px solid rgba(255,255,255,.18); }
.bag-art::before { content: ''; position: absolute; width: 42px; height: 26px; left: 23px; top: -18px; border: 1px solid rgba(255,255,255,.18); border-bottom: 0; border-radius: 30px 30px 0 0; }
.bag-art i { position: absolute; width: 4px; height: 4px; border-radius: 50%; background: var(--ember-hot); box-shadow: 0 0 9px var(--ember-hot); animation: spark-float 2.5s infinite; }.bag-art i:nth-child(1) { left: 8px; top: 30px; }.bag-art i:nth-child(2) { right: 8px; top: 52px; animation-delay: -1s; }
.bag-art span { position: absolute; inset: 0; display: grid; place-items: center; font-family: var(--display); font-size: 35px; }
.cart-empty h3 { margin: 0; font-family: var(--display); font-size: 36px; font-weight: 500; }.cart-empty p { max-width: 320px; margin: 13px 0 26px; color: #837b82; font-size: 11px; line-height: 1.75; }.cart-empty a { padding-bottom: 5px; border-bottom: 1px solid var(--ember); color: var(--live-red); font-size: 8px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.cart-filled { min-height: 0; flex: 1; display: flex; flex-direction: column; }
.cart-kicker { margin: 0; padding: 22px 27px; border-bottom: 1px solid rgba(255,255,255,.08); color: var(--live-red); font-size: 14px; font-weight: 700; letter-spacing: .09em; }
.cart-lines { min-height: 0; flex: 1; overflow-y: auto; padding: 6px 27px; }
.cart-line { position: relative; display: grid; grid-template-columns: 84px 1fr 40px; gap: 16px; align-items: center; padding: 17px 0; border-bottom: 1px solid rgba(255,255,255,.09); }
.cart-line img { width: 84px; height: 84px; object-fit: cover; background: #e5dfdb; mix-blend-mode: screen; }
.cart-line > div { min-width: 0; }.cart-line > div span { display: block; color: #746b72; font-size: 14px; font-weight: 700; letter-spacing: .07em; }.cart-line > div a { display: -webkit-box; margin-top: 5px; overflow: hidden; font-family: var(--display); font-size: 21px; line-height: 1; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }.cart-line > div strong { display: block; margin-top: 8px; color: var(--live-red); font-size: 15px; }
.cart-line > button { width: 40px; height: 40px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.13); border-radius: 50%; background: transparent; color: #8e858d; cursor: pointer; font-size: 20px; transition: .3s; }.cart-line > button:hover { color: #fff; border-color: var(--ember); background: var(--ember); }
.cart-summary { padding: 23px 27px 28px; border-top: 1px solid rgba(255,255,255,.11); background: #09070a; }
.cart-summary > p { margin: 0; display: flex; justify-content: space-between; align-items: end; gap: 20px; }.cart-summary > p span { color: #8e858c; font-size: 14px; font-weight: 700; letter-spacing: .08em; }.cart-summary > p strong { font-family: var(--display); font-size: 31px; font-weight: 500; }.cart-summary > small { display: block; margin: 8px 0 18px; color: #6f666e; font-size: 14px; line-height: 1.55; }
.cart-summary > a { min-height: 54px; padding: 0 17px; display: flex; align-items: center; justify-content: space-between; background: linear-gradient(135deg, var(--live-red), var(--live-red)); color: #fff; font-size: 14px; font-weight: 700; letter-spacing: .07em; }.cart-summary > a b { width: 35px; height: 35px; display: grid; place-items: center; border-radius: 50%; background: rgba(0,0,0,.17); }.cart-summary > button { width: 100%; margin-top: 13px; border: 0; background: none; color: #9b9299; cursor: pointer; font-size: 14px; text-decoration: underline; text-underline-offset: 4px; }
.search-overlay { position: fixed; z-index: 110; inset: 0; padding: clamp(30px, 7vw, 110px); display: flex; flex-direction: column; justify-content: center; background: rgba(7,6,8,.975); opacity: 0; visibility: hidden; transform: scale(1.02); transition: .4s; }
.search-overlay.is-open { opacity: 1; visibility: visible; transform: none; }
.overlay-close { position: absolute; top: 35px; right: 35px; }
.search-overlay > span { color: var(--ember-hot); font-size: 8px; font-weight: 700; letter-spacing: .22em; }
.search-overlay form { display: grid; grid-template-columns: 1fr auto; margin-top: 20px; border-bottom: 1px solid rgba(255,255,255,.25); }
.search-overlay input { min-width: 0; padding: 15px 0 24px; border: 0; outline: 0; background: none; color: #fff; font: 500 clamp(48px, 8vw, 122px)/1 var(--display); }
.search-overlay input::placeholder { color: #3b353a; }
.search-overlay form button { align-self: center; width: 64px; height: 64px; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; background: none; color: var(--ember-hot); cursor: pointer; font-size: 25px; }
.search-overlay > div { display: flex; align-items: center; gap: 25px; margin-top: 32px; }
.search-overlay > div p { margin: 0; color: #5e565d; font-size: 7px; font-weight: 700; letter-spacing: .16em; }.search-overlay > div a { color: #a299a0; font-size: 10px; transition: color .25s; }.search-overlay > div a:hover { color: #fff; }

.age-gate { position: fixed; z-index: 150; inset: 0; display: grid; grid-template-columns: 1fr 1fr; background: #080609; opacity: 0; visibility: hidden; transition: opacity .45s, visibility .45s; }
.age-gate.is-open { opacity: 1; visibility: visible; }
.age-art { position: relative; overflow: hidden; display: grid; place-items: center; background: radial-gradient(circle, rgba(213,19,23,.38), transparent 47%), linear-gradient(135deg, #0c080d, #1a0910); }
.age-art::before, .age-art::after { content: ''; position: absolute; width: 78%; aspect-ratio: 1; border-radius: 50%; background: repeating-conic-gradient(from 4deg, rgba(255,255,255,.58) 0 1deg, transparent 1deg 12deg); -webkit-mask: radial-gradient(circle, transparent 0 25%, #000 26% 28%, transparent 29% 44%, #000 45% 47%, transparent 48%); mask: radial-gradient(circle, transparent 0 25%, #000 26% 28%, transparent 29% 44%, #000 45% 47%, transparent 48%); animation: firework-turn 22s linear infinite; }
.age-art::after { width: 52%; background: repeating-conic-gradient(from 7deg, rgba(213,19,23,.8) 0 1.2deg, transparent 1.2deg 15deg); filter: drop-shadow(0 0 14px rgba(213,19,23,.28)); animation-duration: 15s; animation-direction: reverse; }
.age-art > span { position: relative; z-index: 2; font-family: var(--display); font-size: clamp(110px, 17vw, 270px); text-shadow: 0 0 70px rgba(213,19,23,.35); }
.age-art i { position: absolute; z-index: 3; width: 6px; height: 6px; border-radius: 50%; background: #ffd49b; box-shadow: 0 0 18px #ff995f; animation: spark-float 3s infinite; }
.age-art i:nth-child(1) { left: 22%; top: 18%; }.age-art i:nth-child(2) { right: 17%; top: 28%; animation-delay: -.7s; }.age-art i:nth-child(3) { left: 30%; bottom: 20%; animation-delay: -1.4s; }.age-art i:nth-child(4) { right: 25%; bottom: 14%; animation-delay: -2.1s; }.age-art i:nth-child(5) { right: 10%; top: 54%; animation-delay: -.4s; }
.age-card { align-self: center; width: min(570px, calc(100% - 60px)); margin: auto; padding: 40px; }
.age-card > p { margin: 60px 0 22px; color: var(--ember-hot); font-size: 8px; font-weight: 700; letter-spacing: .22em; }
.age-card h2 { margin: 0; font-family: var(--display); font-size: clamp(55px, 6vw, 93px); font-weight: 500; line-height: .8; letter-spacing: -.04em; }
.age-card h2 em { color: transparent; -webkit-text-stroke: 1.4px rgba(255,255,255,.7); font-weight: 500; }
.age-card > span { display: block; max-width: 440px; margin-top: 32px; color: #918890; font-size: 12px; line-height: 1.8; }
.age-card > div { display: flex; flex-direction: column; gap: 11px; margin-top: 37px; }
.age-card > div button { height: 56px; border: 1px solid rgba(255,255,255,.15); background: transparent; color: #c8bec3; cursor: pointer; font-size: 8px; font-weight: 700; letter-spacing: .13em; transition: .3s; }
.age-card > div button:first-child { display: flex; align-items: center; justify-content: space-between; padding: 0 13px 0 24px; border-color: var(--ember); background: var(--ember); color: #fff; }
.age-card > div button:first-child b { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: rgba(0,0,0,.18); }
.age-card > div button:hover { transform: translateY(-2px); border-color: #fff; }
.toast { position: fixed; z-index: 140; left: 50%; bottom: 30px; padding: 14px 21px; display: flex; align-items: center; gap: 10px; border: 1px solid rgba(255,255,255,.12); background: rgba(14,11,15,.94); box-shadow: 0 15px 50px rgba(0,0,0,.4); backdrop-filter: blur(12px); color: #d8cfd4; font-size: 9px; transform: translate(-50%, 25px); opacity: 0; visibility: hidden; transition: .35s; }.toast.is-visible { transform: translate(-50%, 0); opacity: 1; visibility: visible; }.toast span { color: #6ee494; }
.click-burst { position: fixed; z-index: 200; width: 1px; height: 1px; pointer-events: none; }.click-burst i { --angle: 0deg; --distance: 32px; position: absolute; width: 4px; height: 4px; border-radius: 50%; background: #ffd6a0; box-shadow: 0 0 9px var(--live-red); animation: click-spark .7s ease-out forwards; transform: rotate(var(--angle)); }.click-burst i::after { content: ''; position: absolute; width: 1px; height: 12px; left: 1px; bottom: 3px; background: linear-gradient(#ffd6a0, transparent); }
@keyframes click-spark { to { opacity: 0; transform: rotate(var(--angle)) translateY(calc(var(--distance) * -1)) scale(.2); } }

@media (max-width: 1320px) {
  .collection-stage { grid-template-columns: 1fr; }
  .collection-editorial { min-height: 590px; }
  .product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .product-buy button span { display: none; }
}

@media (max-width: 1180px) {
  .mega-layout { grid-template-columns: .9fr 1.55fr .85fr; gap: 28px; padding-block: 36px; }
  .mega-fireworks { grid-template-columns: minmax(185px, .72fr) minmax(0, 2.25fr) minmax(210px, .78fr); gap: 24px; }
  .mega-tree { columns: 3 155px; column-gap: 20px; }
  .mega-list a { padding-block: 7px; }
  .mega-feature { min-height: 320px; padding: 24px; }
  .experience { grid-template-columns: 1fr .8fr; }.trust-list { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, 1fr); gap: 25px; }.trust-list article { grid-template-columns: 28px 1fr; }.trust-list article > i { display: none; }
  .footer-top { grid-template-columns: 1.2fr 1fr 1fr; }.footer-contact { grid-column: 2 / -1; }
}

@media (max-width: 1120px) {
  .primary-nav, .mega-menu { display: none; }
  .site-header { grid-template-columns: 1fr auto; }
  .menu-toggle { display: block; }
  .vertical-note { display: none; }
  .video-stories-track { width: auto; margin-inline: calc(clamp(24px, 4vw, 72px) * -1); padding: 0 clamp(24px, 4vw, 72px) 18px; grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(238px, 31vw); overflow-x: auto; overscroll-behavior-inline: contain; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .video-stories-track::-webkit-scrollbar { display: none; }
  .video-story-card { scroll-snap-align: start; }
}

@media (max-width: 980px) {
  .site-header { position: sticky; }.site-header.is-scrolled { height: 66px; }
  .mega-menu { display: none; }.menu-toggle { display: block; }.header-actions { gap: 2px; }
  .section-heading, .split-heading { grid-template-columns: 1fr; gap: 30px; align-items: start; }
  .category-grid { grid-auto-rows: 380px; }.category-1, .category-2, .category-3, .category-4, .category-5, .category-6, .category-7, .category-8 { grid-column: span 6; }
  .catalog-signal > span:last-child { display: none; }
  .product-tabs { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }.product-tabs::-webkit-scrollbar { display: none; }.product-tabs button { flex: 0 0 215px; scroll-snap-align: start; }
  .collection-stage { grid-template-columns: 1fr; }.collection-editorial { min-height: 560px; }.product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .moment-grid { grid-template-columns: 1fr 1fr; grid-template-rows: minmax(520px, 64vh) minmax(330px, 40vh); }.moment-feature { grid-column: 1 / -1; grid-row: auto; }
  .wedding-section { grid-template-columns: 1fr; }.wedding-image { min-height: 650px; }.wedding-copy { max-width: none; padding: 90px 8vw 120px; }
  .experience { grid-template-columns: 1fr; }.experience-intro { max-width: 680px; }.experience-orb { width: min(70vw, 420px); }.trust-list { grid-column: auto; grid-template-columns: 1fr; gap: 0; }
  .reviews { grid-template-columns: 1fr; }.review-title { display: grid; grid-template-columns: 1fr auto; gap: 25px; }.review-title .section-index { grid-column: 1 / -1; }.stars { align-self: end; margin-bottom: 9px; }
  .footer-top { grid-template-columns: 1fr 1fr; }.footer-brand { grid-column: 1 / -1; }.footer-contact { grid-column: auto; }.newsletter { grid-template-columns: 1fr; gap: 25px; }
}

@media (max-width: 600px) {
  .pointer-glow { display: none; }
  .header-actions .wishlist-button { display: none; }.menu-toggle { display: block; }
  .section-pad { padding: 95px 18px; }
  .video-stories { padding: 76px 18px 88px; }
  .video-stories-heading { margin-bottom: 42px; text-align: left; }
  .video-stories-heading h2 { font-size: clamp(57px, 16.5vw, 72px); }
  .video-stories-heading p { margin: 22px 0 0; max-width: 310px; }
  .video-stories-track { margin-inline: -18px; padding: 0 18px 16px; grid-auto-columns: minmax(255px, 79vw); gap: 12px; }
  .video-story-copy { left: 21px; right: 20px; bottom: 22px; }
  .video-story-copy h3 { font-size: clamp(22px, 6.2vw, 25px); }
  .video-story-close { top: 8px; right: 8px; }
  .section-heading { margin-bottom: 45px; }.section-heading h2, .wedding-copy h2, .experience-intro h2, .review-title h2, .contact-cta h2 { font-size: clamp(53px, 17vw, 76px); }
  .hero-stats dt { font-size: 20px; }.hero-stats div:first-child dd { max-width: 104px; }
  .marquee-set { gap: 26px; padding-block: 16px; }
  .category-grid { grid-template-columns: 1fr; grid-auto-rows: 405px; gap: 10px; }.category-1, .category-2, .category-3, .category-4, .category-5, .category-6, .category-7, .category-8 { grid-column: auto; }
  .category-copy h3 { font-size: 36px; }.category-arrow { width: 38px; height: 38px; }
  .catalog-signal { margin-bottom: 55px; flex-wrap: wrap; gap: 11px 22px; }.catalog-signal p { order: 3; width: 100%; }.catalog-signal > span:last-child { display: block; }
  .product-section .section-heading h2 { font-size: clamp(56px, 17vw, 78px); }
  .product-tabs button { flex-basis: 190px; min-height: 92px; padding: 16px; }
  .collection-stage { margin-top: 11px; }.collection-editorial { min-height: 470px; }.collection-editorial-copy > span { font-size: 15px; }.editorial-orbit { width: 210px; height: 210px; }
  .product-grid { display: flex; gap: 13px; overflow-x: auto; padding: 9px 1px 27px; scroll-snap-type: x mandatory; scrollbar-width: none; }.product-grid::-webkit-scrollbar { display: none; }.product-card { flex: 0 0 83vw; scroll-snap-align: start; }.product-buy button span { display: inline; }
  .hub-foot { align-items: flex-start; flex-direction: column; }
  .moment-grid { grid-template-columns: 1fr; grid-template-rows: none; }.moment-feature { grid-column: auto; min-height: 560px; }.moment-wedding, .moment-budget { min-height: 390px; }.moment-feature h3 { font-size: 78px; }
  .wedding-image { min-height: 510px; }.wedding-copy { padding: 75px 22px 95px; }.wedding-copy .button { width: 100%; }.wedding-tag { left: 20px; bottom: 25px; }
  .experience-orb { width: 92vw; margin-left: -8vw; }.trust-list h3 { font-size: 26px; }
  .review-title { display: block; }.stars { margin-top: 28px; }.review-cards blockquote { padding: 33px 27px; }.review-cards blockquote p { font-size: 23px; }
  .contact-cta { min-height: 610px; }.contact-actions { width: 100%; flex-direction: column; gap: 24px; margin-top: 42px; }.contact-actions a { font-size: 23px; }
  .site-footer::before { width: 100%; background-position: 64% 16%; opacity: .82; -webkit-mask-image: radial-gradient(ellipse 110% 84% at 100% 100%, #000 0 32%, rgba(0,0,0,.88) 52%, rgba(0,0,0,.36) 74%, transparent 100%); mask-image: radial-gradient(ellipse 110% 84% at 100% 100%, #000 0 32%, rgba(0,0,0,.88) 52%, rgba(0,0,0,.36) 74%, transparent 100%); }
  .site-footer::after { background: linear-gradient(180deg, #060507 0%, rgba(6,5,7,.94) 12%, rgba(6,5,7,.52) 48%, rgba(6,5,7,.14) 100%), linear-gradient(90deg, #060507 0%, rgba(6,5,7,.88) 42%, rgba(6,5,7,.15) 100%); }
  .footer-top { grid-template-columns: 1fr 1fr; gap: 48px 28px; }.footer-brand { grid-column: 1 / -1; }.footer-contact { grid-column: 1 / -1; }.newsletter { margin-top: 60px; }.footer-bottom { flex-direction: column; gap: 13px; }
  .search-overlay { padding: 25px; }.search-overlay input { font-size: 50px; }.search-overlay > div { flex-wrap: wrap; gap: 13px 20px; }.search-overlay > div p { width: 100%; }
  .age-gate { grid-template-columns: 1fr; }.age-art { position: absolute; inset: 0; opacity: .35; }.age-card { position: relative; z-index: 2; width: calc(100% - 26px); padding: 28px 17px; background: rgba(8,6,9,.45); backdrop-filter: blur(5px); }.age-card > p { margin-top: 45px; }.age-card h2 { font-size: 60px; }.age-card > span { margin-top: 25px; }
  .toast { width: calc(100% - 30px); justify-content: center; text-align: center; }
}

@media (pointer: coarse) {
  .pointer-glow { display: none; }
  .product-quick-view { transform: none; }
  .product-card:hover { transform: none; }
}

/* --- Accessible typography scale: no rendered UI copy below 14px --- */
body { font-size: 16px; }

.announcement,
.brand-copy small,
.nav-link,
.bag-button,
.bag-button b,
.eyebrow,
.button,
.text-link,
.text-link i,
.hero-stats dd,
.visual-label span,
.sound-pill,
.vertical-note,
.scroll-cue,
.mega-kicker > span,
.mega-link-group > p,
.mega-list > p,
.mega-catalogue > p,
.mega-kicker > a,
.mega-list a,
.shots-list a,
.mega-feature span,
.mega-feature i,
.mega-link-group a,
.mega-link-group a span,
.mega-link-group .mega-all,
.section-index,
.marquee-set span,
.category-number,
.category-copy p,
.product-heading-copy a,
.product-badge,
.product-meta,
.product-buy del,
.wedding-copy li span,
.experience-intro > a,
.experience-orb small,
.trust-list article > span,
.stars span,
.review-cards blockquote footer,
.contact-cta > p,
.contact-actions span,
.socials a,
.footer-links > p,
.footer-contact > p,
.footer-contact .map-link,
.newsletter span,
.newsletter button,
.footer-bottom,
.mobile-drawer summary span,
.mobile-drawer nav > a span,
.drawer-foot span,
.cart-drawer .drawer-head > span,
.cart-empty a,
.search-overlay > span,
.search-overlay > div p,
.age-card > p,
.age-card > div button,
.age-card [data-age-copy] > p,
.age-card [data-age-copy] > div button,
.toast {
  font-size: var(--text-floor);
}

.hero-intro,
.section-heading > p:last-child,
.product-heading-copy p,
.wedding-copy > p:not(.section-index):not(.wedding-script),
.experience-intro > p:last-of-type,
.footer-brand > p,
.footer-store-contact a,
.footer-store-contact address,
.footer-contact a,
.footer-contact address,
.newsletter input,
.cart-empty p,
.age-card > span,
.age-card [data-age-copy] > span {
  font-size: 16px;
}

.mega-link-group a,
.mega-list a,
.mega-tree-parent,
.mega-tree-children a,
.wedding-copy li,
.trust-list p,
.footer-links a,
.mobile-drawer details > div a,
.search-overlay > div a {
  font-size: 15px;
}

.stars { font-size: 16px; }
.announcement { min-height: 36px; height: auto; padding-block: 7px; font-size: var(--text-floor); }
.brand-copy small { letter-spacing: .3em; }
.site-header.is-scrolled { height: 76px; }
.site-header .bag-button b { width: 24px; height: 24px; font-size: var(--text-floor); }
.footer-links a, .footer-contact a, .footer-contact address { line-height: 1.65; }
.newsletter input { font-family: var(--sans); }

@media (max-width: 1180px) {
  .nav-link { padding-inline: 7px; font-size: var(--text-floor); }
}

@media (max-width: 980px) {
  .site-header.is-scrolled { height: 74px; }
}

@media (max-width: 600px) {
  .announcement { grid-template-columns: 1fr; font-size: var(--text-floor); text-align: center; }
  .announcement > span { display: none; }
  .announcement a { display: none; }
  .announcement-ticker { --announcement-fade: 34px; }
  .announcement-track > span { padding-inline: 40px; }
  .brand-copy small { letter-spacing: .2em; }
  .footer-links a, .footer-contact a, .footer-contact address { font-size: 16px; }
  .back-to-top { right: 16px; bottom: 16px; width: 52px; height: 52px; }
  .product-detail-page .back-to-top { bottom: 92px; }
  .drawer-head { padding-inline: 24px; }
  .mobile-drawer nav { padding-inline: 24px; }
  .drawer-foot { padding-inline: 24px; gap: 14px; }
  .drawer-foot a { font-size: 21px; }
}

/* --- Premium product detail --- */
.product-detail-page { background: #f2eeeb; }
.product-detail-page .site-shell { background: #f2eeeb; color: #171217; }
.product-detail-page .announcement,
.product-detail-page .site-header,
.product-detail-page .site-footer,
.product-detail-page .mobile-drawer,
.product-detail-page .cart-drawer,
.product-detail-page .search-overlay,
.product-detail-page .age-gate,
.product-detail-page .contact-cta { color: var(--ink); }

.pdp-breadcrumb {
  min-height: 66px; padding: 0 clamp(22px, 5.5vw, 105px); display: flex; align-items: center; gap: 13px;
  border-bottom: 1px solid rgba(23,18,23,.12); background: #f7f3f0; color: #847b81;
  font-size: 14px; line-height: 1.5;
}
.pdp-breadcrumb a { transition: color .25s; }
.pdp-breadcrumb a:hover { color: var(--live-red); }
.pdp-breadcrumb span { color: var(--live-red); }
.pdp-breadcrumb strong { min-width: 0; overflow: hidden; color: #2c252a; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }

.pdp-stage {
  position: relative; isolation: isolate; overflow: hidden; min-height: 730px; padding: clamp(32px, 4vw, 68px) clamp(22px, 5.5vw, 105px) clamp(60px, 6vw, 100px);
  display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(430px, .95fr); gap: clamp(44px, 6vw, 110px); align-items: start;
  background: radial-gradient(circle at 6% 20%, rgba(213,19,23,.08), transparent 24%), linear-gradient(120deg, #f7f3f0, #ebe5e1);
}
.pdp-stage::before { content: 'FIRE\A PACK'; white-space: pre; position: absolute; z-index: -2; right: -1.7vw; bottom: 1%; color: rgba(213,19,23,.035); font: 500 clamp(100px, 17vw, 275px)/.63 var(--display); pointer-events: none; }
.pdp-firework-art { position: absolute; z-index: -1; width: 530px; aspect-ratio: 1; border-radius: 50%; pointer-events: none; opacity: .4; }
.pdp-firework-art::before { content: ''; position: absolute; inset: 0; border-radius: inherit; background: repeating-conic-gradient(from 3deg, rgba(213,19,23,.34) 0 1deg, transparent 1deg 11deg); -webkit-mask: radial-gradient(circle, transparent 0 19%, #000 20% 21%, transparent 22% 36%, #000 37% 38%, transparent 39% 52%, #000 53% 54%, transparent 55%); mask: radial-gradient(circle, transparent 0 19%, #000 20% 21%, transparent 22% 36%, #000 37% 38%, transparent 39% 52%, #000 53% 54%, transparent 55%); animation: firework-turn 32s linear infinite; }
.pdp-firework-one { left: -345px; bottom: -275px; }

.pdp-gallery { position: sticky; top: 105px; min-width: 0; display: grid; grid-template-columns: 86px minmax(0, 1fr); gap: 14px; }
.pdp-gallery-main { position: relative; grid-column: 2; grid-row: 1; min-height: min(630px, 66vw); overflow: hidden; display: grid; place-items: center; border: 1px solid rgba(23,18,23,.13); background: #e5dfda; box-shadow: 0 35px 80px rgba(54,31,41,.11); }
.pdp-gallery-main::before { content: ''; position: absolute; inset: 0; background-image: linear-gradient(rgba(23,18,23,.04) 1px, transparent 1px), linear-gradient(90deg, rgba(23,18,23,.04) 1px, transparent 1px); background-size: 64px 64px; -webkit-mask-image: linear-gradient(135deg, #000, transparent 72%); mask-image: linear-gradient(135deg, #000, transparent 72%); }
.pdp-gallery-main > img { position: relative; z-index: 2; width: 84%; height: 84%; object-fit: contain; mix-blend-mode: multiply; filter: drop-shadow(0 30px 32px rgba(37,18,25,.14)); transition: opacity .22s, transform .7s cubic-bezier(.2,.75,.2,1); }
.pdp-gallery-main:hover > img { transform: scale(1.035) translateY(-4px); }
.pdp-gallery-main > img.is-changing { opacity: 0; transform: scale(.96); }
.pdp-gallery-main:focus-visible { outline: 3px solid rgba(213,19,23,.3); outline-offset: 3px; }
.pdp-gallery-flare { position: absolute; z-index: 1; width: 65%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(213,19,23,.28), rgba(213,19,23,.07) 36%, transparent 69%); filter: blur(12px); animation: pdp-glow 5.5s ease-in-out infinite; }
@keyframes pdp-glow { 50% { opacity: .58; transform: scale(1.13); } }
.pdp-discount { position: absolute; z-index: 5; top: 22px; left: 22px; width: 60px; height: 60px; display: grid; place-items: center; border-radius: 50%; background: var(--live-red); color: #fff; box-shadow: 0 12px 28px rgba(213,19,23,.3); font-size: 15px; font-weight: 800; }
.pdp-zoom { position: absolute; z-index: 5; right: 20px; bottom: 20px; min-width: 104px; height: 46px; padding: 0 15px; display: flex; align-items: center; justify-content: center; gap: 8px; border: 1px solid rgba(23,18,23,.16); background: rgba(247,243,240,.85); color: #211b20; cursor: pointer; backdrop-filter: blur(10px); transition: color .3s, background .3s, transform .3s; }
.pdp-zoom .material-symbols-rounded { font-size: 20px; }
.pdp-zoom b { font-size: 14px; letter-spacing: .08em; }
.pdp-zoom:hover { color: #fff; background: var(--live-red); transform: translateY(-3px); }
.pdp-gallery-arrow { position: absolute; z-index: 6; top: 50%; width: 46px; height: 46px; display: grid; place-items: center; border: 1px solid rgba(23,18,23,.15); border-radius: 50%; background: rgba(247,243,240,.88); color: #171217; cursor: pointer; backdrop-filter: blur(10px); transform: translateY(-50%); transition: color .25s, background .25s, transform .25s; }
.pdp-gallery-arrow:hover { color: #fff; background: var(--live-red); transform: translateY(-50%) scale(1.06); }
.pdp-gallery-arrow span { font: 400 34px/1 var(--sans); }
.pdp-gallery-arrow.is-prev { left: 18px; }
.pdp-gallery-arrow.is-next { right: 18px; }
.pdp-gallery-count { position: absolute; z-index: 5; left: 20px; bottom: 22px; margin: 0; padding: 7px 10px; background: rgba(247,243,240,.82); color: #5f555c; font-size: 14px; font-weight: 750; letter-spacing: .08em; backdrop-filter: blur(10px); }
.pdp-gallery-note { position: absolute; z-index: 4; left: 22px; bottom: 26px; color: #746b71; font-size: 14px; font-weight: 700; letter-spacing: .09em; }
.pdp-thumbnails { grid-column: 1; grid-row: 1; display: flex; flex-direction: column; gap: 11px; }
.pdp-thumbnails button { position: relative; width: 86px; aspect-ratio: 1; padding: 0; overflow: hidden; border: 1px solid rgba(23,18,23,.13); background: #e6e0dc; cursor: pointer; transition: border-color .3s, transform .3s, box-shadow .3s; }
.pdp-thumbnails button::after { content: ''; position: absolute; inset: auto 0 0; height: 3px; background: var(--live-red); transform: scaleX(0); transform-origin: left; transition: transform .3s; }
.pdp-thumbnails button.is-active, .pdp-thumbnails button:hover { border-color: var(--live-red); transform: translateX(4px); box-shadow: 0 11px 25px rgba(75,39,53,.12); }
.pdp-thumbnails button.is-active::after { transform: scaleX(1); }
.pdp-thumbnails img { width: 100%; height: 100%; object-fit: cover; mix-blend-mode: multiply; }
.pdp-thumbnails .is-video { display: grid; place-items: center; isolation: isolate; background: #171217; color: #fff; }
.pdp-thumbnails .is-video::before { content: ''; position: absolute; z-index: -1; inset: 0; background-image: linear-gradient(rgba(10,7,9,.45), rgba(10,7,9,.72)), var(--video-poster); background-position: center; background-size: cover; }
.pdp-thumbnails .is-video .material-symbols-rounded { width: 35px; height: 35px; display: grid; place-items: center; border-radius: 50%; background: var(--live-red); font-size: 22px; }
.pdp-thumbnails .is-video small { position: absolute; left: 7px; bottom: 6px; color: #fff; font-size: 14px; font-weight: 800; letter-spacing: .04em; }
.pdp-video-stage { position: absolute; z-index: 4; inset: 0; display: grid; place-items: center; background-color: #0a080a; background-image: linear-gradient(rgba(9,7,9,.36), rgba(9,7,9,.82)), var(--video-poster); background-position: center; background-size: cover; }
.pdp-video-stage[hidden] { display: none; }
.pdp-video-stage > button { min-width: 190px; padding: 0; display: grid; place-items: center; border: 0; background: transparent; color: #fff; cursor: pointer; }
.pdp-video-stage > button .material-symbols-rounded { width: 82px; height: 82px; display: grid; place-items: center; border-radius: 50%; background: var(--live-red); box-shadow: 0 0 0 12px rgba(213,19,23,.15), 0 24px 60px rgba(0,0,0,.32); font-size: 44px; transition: transform .3s, box-shadow .3s; }
.pdp-video-stage > button:hover .material-symbols-rounded { transform: scale(1.07); box-shadow: 0 0 0 17px rgba(213,19,23,.11), 0 28px 70px rgba(0,0,0,.38); }
.pdp-video-stage > button b { margin-top: 27px; font-size: 14px; letter-spacing: .1em; }
.pdp-video-stage > button small { margin-top: 8px; color: #c5bbc1; font-size: 14px; }
.pdp-video-stage iframe { width: 100%; height: 100%; border: 0; background: #000; }

.pdp-buy-panel { min-width: 0; padding-right: clamp(0px, 2vw, 34px); }
.pdp-buy-panel h1 { margin: 0; color: #171217; font: 500 clamp(58px, 5vw, 91px)/.84 var(--display); letter-spacing: -.045em; }
.pdp-buy-panel h1.product-title-long { font-size: clamp(48px, 4.2vw, 72px); line-height: .88; }
.pdp-buy-panel h1.product-title-xlong { font-size: clamp(41px, 3.6vw, 61px); line-height: .9; }
.pdp-buy-panel h1 em { color: transparent; font-weight: 500; -webkit-text-stroke: 1.4px rgba(23,18,23,.72); }
.pdp-rating-row { margin-top: 28px; padding-bottom: 18px; display: flex; justify-content: space-between; gap: 20px; border-bottom: 1px solid rgba(23,18,23,.13); }
.pdp-rating-row a, .pdp-rating-row button { border: 0; background: none; color: #6f666c; cursor: pointer; font-size: 14px; font-weight: 700; letter-spacing: .065em; }
.pdp-rating-row a span { margin-right: 8px; color: var(--live-red); font-size: 18px; letter-spacing: .02em; }
.pdp-rating-row button { display: flex; align-items: center; gap: 7px; transition: color .25s; }
.pdp-rating-row button .material-symbols-rounded { font-size: 20px; }
.pdp-rating-row button:hover, .pdp-rating-row button.is-liked { color: var(--live-red); }
.pdp-rating-row button.is-liked .material-symbols-rounded { font-variation-settings: 'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 24; }
.pdp-stock { padding: 17px 0; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 13px 25px; border-bottom: 1px solid rgba(23,18,23,.13); color: #746b71; font-size: 14px; font-weight: 600; letter-spacing: .06em; }
.pdp-stock span:first-child { color: #268a51; }
.pdp-stock i { display: inline-block; width: 7px; height: 7px; margin-right: 7px; border-radius: 50%; background: #35a765; box-shadow: 0 0 0 5px rgba(53,167,101,.13); }
.pdp-stock.is-low-stock span:first-child { color: #a56500; }
.pdp-stock.is-low-stock i { background: #d38a18; box-shadow: 0 0 0 5px rgba(211,138,24,.14); }
.pdp-stock.is-out-of-stock span:first-child { color: #a42a31; }
.pdp-stock.is-out-of-stock i { background: #bd2730; box-shadow: 0 0 0 5px rgba(189,39,48,.12); }
.pdp-stock b { color: #2c252a; }
.pdp-availability-note { margin: 14px 0 0; display: flex; align-items: center; gap: 9px; color: #39704f; font-size: 14px; line-height: 1.5; }
.pdp-availability-note .material-symbols-rounded { font-size: 19px; }
.pdp-availability-note.is-low-stock { color: #925f0e; }
.pdp-availability-note.is-out-of-stock { color: #9e2930; }
.pdp-lead { max-width: 660px; margin: 25px 0 0; color: #6f676c; font-size: 16px; line-height: 1.8; }
.pdp-price { margin-top: 24px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 11px 17px; }
.pdp-price strong { color: var(--live-red); font: 600 clamp(41px, 3.3vw, 59px)/1 var(--display); }
.pdp-price del { color: #968c92; font-size: 20px; }
.pdp-price span { padding: 7px 10px; border: 1px solid rgba(213,19,23,.2); background: rgba(213,19,23,.06); color: var(--live-red); font-size: 14px; font-weight: 700; letter-spacing: .06em; }
.pdp-price small { flex-basis: 100%; color: #81777e; font-size: 14px; }
.ff-discounts { margin-top: 12px; display: grid; gap: 5px; color: #746b71; font-size: 14px; }
.ff-discounts p { margin: 0; }
.ff-options { margin-top: 28px; padding-top: 24px; border-top: 1px solid rgba(23,18,23,.13); }
.ff-options-head { display: flex; align-items: center; justify-content: space-between; gap: 15px; }
.ff-options-head h2 { margin: 0; font: 600 24px/1 var(--display); }
.ff-options-head p { margin: 0; color: #81777e; font-size: 14px; }
.ff-options-head p span { color: var(--live-red); font-weight: 800; }
.ff-option { margin-top: 20px; padding: 0; border: 0; }
.ff-option > label, .ff-option > legend { width: 100%; margin-bottom: 9px; display: flex; align-items: center; justify-content: space-between; gap: 13px; color: #2f282d; font-size: 15px; font-weight: 750; }
.ff-option.required > label > span, .ff-option.required > legend > span { color: var(--live-red); font-size: 14px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.ff-option select, .ff-option input[type="text"], .ff-option input[type="date"], .ff-option input[type="time"], .ff-option input[type="datetime-local"], .ff-option textarea { width: 100%; min-height: 50px; padding: 11px 14px; border: 1px solid rgba(23,18,23,.18); border-radius: 0; outline: 0; background: rgba(255,255,255,.66); color: #171217; font: 500 15px/1.4 var(--sans); transition: border-color .2s, box-shadow .2s, background .2s; }
.ff-option textarea { min-height: 110px; resize: vertical; }
.ff-option select:focus, .ff-option input:focus, .ff-option textarea:focus { border-color: var(--live-red); background: #fff; box-shadow: 0 0 0 3px rgba(213,19,23,.09); }
.ff-option-choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.ff-option-choices > label { position: relative; min-height: 50px; padding: 9px 13px; display: flex; align-items: center; gap: 10px; border: 1px solid rgba(23,18,23,.15); background: rgba(255,255,255,.48); cursor: pointer; font-size: 14px; transition: border-color .2s, background .2s, transform .2s; }
.ff-option-choices > label:hover { border-color: rgba(213,19,23,.55); background: rgba(255,255,255,.8); transform: translateY(-1px); }
.ff-option-choices input { width: 17px; height: 17px; margin: 0; accent-color: var(--live-red); }
.ff-option-choices input:checked + span { color: var(--live-red); font-weight: 750; }
.ff-option-choices label:has(input:checked) { border-color: var(--live-red); background: rgba(213,19,23,.06); box-shadow: inset 3px 0 var(--live-red); }
.ff-option-choices img { width: 36px; height: 36px; object-fit: contain; }
.ff-option-choices span { min-width: 0; }
.ff-option-choices small { display: block; margin-top: 3px; color: #81777e; font-size: 14px; }
.invalid-feedback { display: none; margin-top: 8px; color: #aa2028; font-size: 14px; font-weight: 650; line-height: 1.45; }
.invalid-feedback.d-block { display: block; }
.is-invalid { border-color: #aa2028 !important; box-shadow: 0 0 0 3px rgba(170,32,40,.08) !important; }
.pdp-purchase-row { margin-top: 25px; display: grid; grid-template-columns: 126px minmax(0, 1fr); gap: 10px; }
.pdp-quantity { height: 60px; display: grid; grid-template-columns: 40px 1fr 40px; align-items: center; border: 1px solid rgba(23,18,23,.18); background: rgba(255,255,255,.48); }
.pdp-quantity button { height: 100%; border: 0; background: transparent; color: #4d444a; cursor: pointer; font-size: 21px; transition: color .2s, background .2s; }
.pdp-quantity button:hover { color: #fff; background: var(--live-red); }
.pdp-quantity button:disabled { opacity: .35; cursor: not-allowed; }
.pdp-quantity button:disabled:hover { color: #4d444a; background: transparent; }
.pdp-quantity input { width: 100%; height: 100%; padding: 0; border: 0; outline: 0; background: transparent; color: #171217; text-align: center; font-size: 16px; font-weight: 750; appearance: textfield; }
.pdp-quantity input::-webkit-inner-spin-button, .pdp-quantity input::-webkit-outer-spin-button { margin: 0; appearance: none; }
.pdp-add { min-width: 0; height: 60px; padding: 0 15px 0 21px; display: flex; align-items: center; gap: 12px; border: 0; background: var(--live-red); color: #fff; cursor: pointer; box-shadow: 0 16px 38px rgba(213,19,23,.24); transition: transform .3s, box-shadow .3s, background .3s; }
.pdp-add .material-symbols-rounded { font-size: 22px; }
.pdp-add b { font-size: 14px; letter-spacing: .08em; }
.pdp-add i { width: 36px; height: 36px; margin-left: auto; display: grid; place-items: center; border-radius: 50%; background: rgba(0,0,0,.17); font-style: normal; }
.pdp-add:hover { transform: translateY(-4px); background: #bd0e12; box-shadow: 0 22px 50px rgba(213,19,23,.38); }
.pdp-add:disabled { background: #8a8186; cursor: not-allowed; box-shadow: none; transform: none; }
.pdp-add.is-loading b::after { content: ' ···'; animation: pdp-loading 1s steps(4, end) infinite; }
.pdp-add.is-success { background: #267a4c; box-shadow: 0 16px 38px rgba(38,122,76,.24); }
@keyframes pdp-loading { 50% { opacity: .35; } }
.pdp-cart-feedback { min-height: 21px; margin: 10px 0 0; color: #6f666c; font-size: 14px; line-height: 1.5; }
.ff-minimum { margin: 8px 0 0; color: #81777e; font-size: 14px; }
.pdp-question { min-height: 62px; margin-top: 13px; padding: 0 17px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 13px; border: 1px solid rgba(23,18,23,.13); color: #41383e; transition: border-color .3s, background .3s; }
.pdp-question:hover { border-color: var(--live-red); background: rgba(255,255,255,.5); }
.pdp-question .material-symbols-rounded { color: var(--live-red); }
.pdp-question b { font-size: 14px; }
.pdp-question i { color: var(--live-red); font-size: 14px; font-style: normal; font-weight: 700; }
.pdp-service-grid { margin-top: 22px; display: grid; grid-template-columns: repeat(2, 1fr); border-block: 1px solid rgba(23,18,23,.13); }
.pdp-service-grid > * { min-width: 0; padding: 18px 12px 18px 0; display: grid; grid-template-columns: auto 1fr; gap: 10px; align-items: start; }
.pdp-service-grid > * + * { padding-left: 14px; border-left: 1px solid rgba(23,18,23,.13); }
.pdp-service-contact { color: inherit; grid-template-columns: auto minmax(0, 1fr) auto; transition: color .25s, background .25s; }
.pdp-service-contact:hover { color: var(--live-red); background: rgba(213,19,23,.045); }
.pdp-service-contact:focus-visible { position: relative; z-index: 1; outline: 2px solid var(--live-red); outline-offset: 4px; }
.pdp-service-contact .pdp-service-arrow { align-self: center; color: var(--live-red); font-size: 19px; transition: transform .25s; }
.pdp-service-contact:hover .pdp-service-arrow { transform: translate(2px, -2px); }
.pdp-service-grid .material-symbols-rounded { color: var(--live-red); font-size: 22px; }
.pdp-service-grid b, .pdp-service-grid small { display: block; }
.pdp-service-grid b { font-size: 14px; line-height: 1.35; }
.pdp-service-grid small { margin-top: 5px; color: #847b81; font-size: 14px; line-height: 1.45; }

.pdp-signal { min-height: 164px; padding: 0 clamp(22px, 5.5vw, 105px); display: grid; grid-template-columns: repeat(4, 1fr); background: #0b090c; color: #fff; }
.pdp-signal article { position: relative; padding: 28px clamp(15px, 2.4vw, 42px); display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto 1fr; column-gap: 19px; align-items: center; border-right: 1px solid rgba(255,255,255,.09); overflow: hidden; }
.pdp-signal article:first-child { border-left: 1px solid rgba(255,255,255,.09); }
.pdp-signal article::after { content: ''; position: absolute; width: 110px; aspect-ratio: 1; right: -62px; top: -58px; border-radius: 50%; background: repeating-conic-gradient(rgba(213,19,23,.42) 0 1deg, transparent 1deg 15deg); -webkit-mask: radial-gradient(circle, transparent 0 28%, #000 29% 31%, transparent 32%); mask: radial-gradient(circle, transparent 0 28%, #000 29% 31%, transparent 32%); animation: firework-turn 19s linear infinite; }
.pdp-signal article > span { grid-row: 1 / 3; align-self: start; color: var(--live-red); font-size: 14px; font-weight: 700; }
.pdp-signal strong { align-self: end; font: 500 clamp(42px, 4vw, 68px)/.8 var(--display); }
.pdp-signal p { margin: 11px 0 0; color: #827a81; font-size: 14px; font-weight: 700; letter-spacing: .09em; line-height: 1.45; }

.pdp-contents { overflow: hidden; background: #f2eeeb; color: #171217; }
.pdp-contents::before { content: ''; position: absolute; width: 630px; aspect-ratio: 1; top: -390px; right: -230px; border-radius: 50%; background: repeating-conic-gradient(from 6deg, rgba(213,19,23,.14) 0 1deg, transparent 1deg 12deg); -webkit-mask: radial-gradient(circle, transparent 0 21%, #000 22% 23%, transparent 24% 39%, #000 40% 41%, transparent 42% 55%, #000 56% 57%, transparent 58%); mask: radial-gradient(circle, transparent 0 21%, #000 22% 23%, transparent 24% 39%, #000 40% 41%, transparent 42% 55%, #000 56% 57%, transparent 58%); animation: firework-turn 28s linear infinite; }
.pdp-section-head { position: relative; z-index: 1; max-width: 1600px; margin: 0 auto clamp(54px, 6vw, 88px); display: grid; grid-template-columns: 1.1fr .7fr; gap: 70px; align-items: end; }
.pdp-section-head .section-index { color: var(--live-red); }
.pdp-section-head h2, .pdp-description h2, .pdp-safety h2, .pdp-review-copy h2 { margin: 15px 0 0; font: 500 clamp(58px, 6vw, 101px)/.82 var(--display); letter-spacing: -.04em; }
.pdp-section-head h2 em, .pdp-description h2 em, .pdp-review-copy h2 em { color: transparent; font-weight: 500; -webkit-text-stroke: 1.4px rgba(23,18,23,.72); }
.pdp-section-head > p { max-width: 560px; margin: 0; color: #756c72; font-size: 16px; line-height: 1.8; }
.pdp-section-head > a { align-self: end; justify-self: end; padding-bottom: 6px; border-bottom: 1px solid var(--live-red); color: var(--live-red); font-size: 14px; font-weight: 700; letter-spacing: .08em; }
.pdp-pack-list { position: relative; z-index: 1; max-width: 1600px; margin: 0 auto; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); list-style: none; border-top: 1px solid rgba(23,18,23,.14); }
.pdp-pack-list li { min-width: 0; min-height: 142px; padding: 24px 26px; display: grid; grid-template-columns: 47px 1fr auto; gap: 18px; align-items: center; border-right: 1px solid rgba(23,18,23,.14); border-bottom: 1px solid rgba(23,18,23,.14); transition: background .35s, transform .35s, box-shadow .35s; }
.pdp-pack-list li:nth-child(even) { border-right: 0; }
.pdp-pack-list li:last-child { grid-column: 1 / -1; border-right: 0; }
.pdp-pack-list li:hover { z-index: 2; background: rgba(255,255,255,.62); box-shadow: 0 20px 52px rgba(54,31,41,.08); transform: translateY(-4px); }
.pdp-pack-list li > span { color: var(--live-red); font: 500 29px/1 var(--display); }
.pdp-pack-list small { color: #8c8288; font-size: 14px; font-weight: 700; letter-spacing: .09em; }
.pdp-pack-list h3 { margin: 7px 0 0; font: 500 clamp(26px, 2.3vw, 39px)/1 var(--display); }
.pdp-pack-list strong { color: var(--live-red); font: 600 clamp(25px, 2.3vw, 38px)/1 var(--display); text-align: right; white-space: nowrap; }
.pdp-pack-list strong em { display: block; margin-top: 6px; color: #847a81; font: 700 14px/1.2 var(--sans); letter-spacing: .06em; }

.pdp-information { display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, .85fr); gap: clamp(70px, 10vw, 175px); align-items: start; background: #fffaf6; color: #171217; }
.pdp-description { max-width: 760px; }
.pdp-description .section-index { color: var(--live-red); }
.pdp-description > p:not(.section-index) { margin: 27px 0 0; color: #6f666c; font-size: 16px; line-height: 1.9; }
.pdp-description > a { width: fit-content; margin-top: 35px; padding-bottom: 6px; display: flex; align-items: center; gap: 16px; border-bottom: 1px solid var(--live-red); color: var(--live-red); font-size: 14px; font-weight: 700; letter-spacing: .08em; }
.pdp-specs { position: sticky; top: 100px; align-self: start; border-top: 1px solid rgba(23,18,23,.16); }
.pdp-specs > div { min-height: 72px; padding: 14px 0; display: flex; justify-content: space-between; align-items: center; gap: 25px; border-bottom: 1px solid rgba(23,18,23,.16); }
.pdp-specs span { color: #81777e; font-size: 14px; }
.pdp-specs strong { font-size: 15px; text-align: right; }
.pdp-specs .is-in-stock { color: #268a51; }
.pdp-specs .is-low-stock { color: #925f0e; }
.pdp-specs .is-out-of-stock { color: #aa2028; }

.pdp-safety { position: relative; min-height: 820px; padding: clamp(90px, 9vw, 150px) clamp(22px, 7vw, 130px); display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(60px, 9vw, 150px); align-items: center; overflow: hidden; background: radial-gradient(circle at 18% 50%, rgba(213,19,23,.25), transparent 30%), #0b090c; color: #fff; }
.pdp-safety::before { content: ''; position: absolute; inset: 0; opacity: .14; background-image: linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px); background-size: 90px 90px; -webkit-mask-image: linear-gradient(90deg, #000, transparent 82%); mask-image: linear-gradient(90deg, #000, transparent 82%); }
.pdp-safety-art { position: relative; width: min(36vw, 540px); aspect-ratio: 1; display: grid; place-items: center; justify-self: center; }
.pdp-safety-art::before { content: ''; position: absolute; inset: 0; border-radius: 50%; background: repeating-conic-gradient(from 4deg, rgba(255,211,158,.8) 0 1deg, transparent 1deg 12deg); -webkit-mask: radial-gradient(circle, transparent 0 20%, #000 21% 23%, transparent 24% 38%, #000 39% 41%, transparent 42% 55%, #000 56% 58%, transparent 59%); mask: radial-gradient(circle, transparent 0 20%, #000 21% 23%, transparent 24% 38%, #000 39% 41%, transparent 42% 55%, #000 56% 58%, transparent 59%); filter: drop-shadow(0 0 18px rgba(213,19,23,.35)); animation: firework-bloom 6s ease-in-out infinite; }
.pdp-safety-art::after { content: ''; position: absolute; inset: 20%; border: 1px solid rgba(255,255,255,.16); border-radius: 50%; box-shadow: 0 0 80px rgba(213,19,23,.23); animation: firework-turn 20s linear infinite; }
.pdp-safety-art > span { position: relative; z-index: 3; font: 500 clamp(96px, 12vw, 190px)/1 var(--display); text-shadow: 0 0 55px rgba(213,19,23,.48); }
.pdp-safety-art i { --i: 0; position: absolute; left: 50%; top: 50%; width: 4px; height: 4px; border-radius: 50%; background: #fff0d1; box-shadow: 0 0 14px #ff9d60, 0 0 28px var(--live-red); transform: rotate(calc(var(--i) * 30deg)) translateY(-45%); animation: pdp-safety-spark 3.8s calc(var(--i) * -.17s) ease-out infinite; }
.pdp-safety-art i:nth-child(1) { --i: 0; }.pdp-safety-art i:nth-child(2) { --i: 1; }.pdp-safety-art i:nth-child(3) { --i: 2; }.pdp-safety-art i:nth-child(4) { --i: 3; }.pdp-safety-art i:nth-child(5) { --i: 4; }.pdp-safety-art i:nth-child(6) { --i: 5; }.pdp-safety-art i:nth-child(7) { --i: 6; }.pdp-safety-art i:nth-child(8) { --i: 7; }.pdp-safety-art i:nth-child(9) { --i: 8; }.pdp-safety-art i:nth-child(10) { --i: 9; }.pdp-safety-art i:nth-child(11) { --i: 10; }.pdp-safety-art i:nth-child(12) { --i: 11; }
@keyframes pdp-safety-spark { 0%, 18% { opacity: 0; transform: rotate(calc(var(--i) * 30deg)) translateY(-40px) scale(.2); } 33% { opacity: 1; } 80%, 100% { opacity: 0; transform: rotate(calc(var(--i) * 30deg)) translateY(-235px) scale(.55); } }
.pdp-safety-copy { position: relative; z-index: 2; }
.pdp-safety-copy .section-index { color: var(--live-red); }
.pdp-safety h2 em { color: transparent; font-weight: 500; -webkit-text-stroke: 1.4px rgba(255,255,255,.74); }
.pdp-legal-grid { margin-top: 55px; border-top: 1px solid rgba(255,255,255,.12); }
.pdp-legal-grid article { padding: 24px 0; display: grid; grid-template-columns: 45px 1fr; gap: 18px; border-bottom: 1px solid rgba(255,255,255,.12); }
.pdp-legal-grid article > span { color: var(--live-red); font: 500 24px/1 var(--display); }
.pdp-legal-grid h3 { margin: 0; font: 500 29px/1 var(--display); }
.pdp-legal-grid p { max-width: 690px; margin: 10px 0 0; color: #9c939a; font-size: 15px; line-height: 1.75; }

.pdp-delivery { background: #eee8e4; color: #171217; }
.pdp-accordion { max-width: 1600px; margin: 0 auto; border-top: 1px solid rgba(23,18,23,.15); }
.pdp-accordion details { border-bottom: 1px solid rgba(23,18,23,.15); }
.pdp-accordion summary { min-height: 92px; padding: 20px 5px; display: grid; grid-template-columns: 55px 1fr 30px; align-items: center; gap: 15px; cursor: pointer; list-style: none; }
.pdp-accordion summary::-webkit-details-marker { display: none; }
.pdp-accordion summary > span { color: var(--live-red); font: 500 26px/1 var(--display); }
.pdp-accordion summary > b { font: 500 clamp(27px, 2.5vw, 41px)/1 var(--display); }
.pdp-accordion .summary-chevron { justify-self: end; width: 12px; height: 12px; border-right: 2px solid var(--live-red); border-bottom: 2px solid var(--live-red); transform: rotate(45deg); transition: transform .3s; }
.pdp-accordion details[open] .summary-chevron { transform: rotate(-135deg) translate(-3px, -3px); }
.pdp-accordion details > div { max-width: 820px; padding: 0 70px 29px; color: #6f666c; font-size: 15px; line-height: 1.8; }
.pdp-accordion details > div p { margin: 0; }
.pdp-accordion details > div a { display: inline-block; margin-top: 14px; color: var(--live-red); font-weight: 700; }

.pdp-reviews { display: grid; grid-template-columns: .65fr 1.35fr; gap: clamp(60px, 10vw, 170px); background: #fffaf6; color: #171217; }
.pdp-review-score { display: flex; flex-direction: column; align-items: flex-start; }
.pdp-review-score .section-index { color: var(--live-red); }
.pdp-review-score > strong { margin-top: 32px; font: 500 clamp(105px, 13vw, 200px)/.7 var(--display); }
.pdp-review-score > span { margin-top: 27px; color: var(--live-red); font-size: 25px; letter-spacing: .1em; }
.pdp-review-score > small { margin-top: 11px; color: #847a81; font-size: 14px; }
.pdp-review-score.is-empty { max-width: 470px; }
.pdp-review-score .pdp-review-empty-icon { width: 58px; height: 58px; margin: 0; display: grid; place-items: center; border: 1px solid rgba(213,19,23,.22); border-radius: 50%; background: rgba(213,19,23,.06); color: var(--live-red); font-size: 29px; letter-spacing: 0; }
.pdp-review-score.is-empty > .pdp-review-empty-title { margin-top: 28px; font: 500 clamp(48px, 5.2vw, 78px)/1.02 var(--display); letter-spacing: -.03em; }
.pdp-review-score.is-empty > small { max-width: 340px; margin-top: 20px; font-size: 16px; line-height: 1.65; }
.pdp-review-reward { max-width: 430px; margin-top: 32px; padding: 24px 25px; border: 1px solid rgba(213,19,23,.2); background: rgba(213,19,23,.045); }
.pdp-review-reward b { display: block; color: var(--live-red); font: 500 27px/1.05 var(--display); }
.pdp-review-reward p { margin: 13px 0 0; color: #4f464c; font-size: 15px; line-height: 1.6; }
.pdp-review-reward small { display: block; margin-top: 13px; color: #847a81; font-size: 12px; line-height: 1.55; }
.ff-review-reward-fields { margin: 18px 0 22px; padding: 20px; border: 1px solid rgba(213,19,23,.18); background: rgba(213,19,23,.035); }
.ff-review-reward-toggle { display: flex; align-items: flex-start; gap: 11px; color: #171217; font-weight: 700; }
.ff-review-reward-toggle input { margin-top: 4px; accent-color: var(--live-red); }
.ff-review-reward-details { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 17px; }
.ff-review-reward-details[hidden] { display: none; }
.ff-review-reward-details label { display: grid; gap: 7px; color: #6f666c; font-size: 13px; font-weight: 700; }
.ff-review-reward-note { margin: 13px 0 0; color: #847a81; font-size: 12px; line-height: 1.55; }
.ff-review-badges { display: inline-flex; flex-wrap: wrap; gap: 7px; margin-left: 10px; vertical-align: middle; }
.ff-review-badge { padding: 5px 8px; border: 1px solid rgba(213,19,23,.2); color: var(--live-red); font-size: 10px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
@media (max-width: 680px) { .ff-review-reward-details { grid-template-columns: 1fr; } }
.pdp-review-copy > p { max-width: 680px; margin: 31px 0 0; color: #6f666c; font-size: 16px; line-height: 1.8; }
.pdp-review-copy > button { min-width: 210px; min-height: 56px; margin-top: 31px; padding: 0 13px 0 20px; display: flex; justify-content: space-between; align-items: center; gap: 25px; border: 0; background: var(--live-red); color: #fff; cursor: pointer; font-size: 14px; font-weight: 700; letter-spacing: .08em; transition: transform .3s, box-shadow .3s; }
.pdp-review-copy > button:hover { transform: translateY(-3px); box-shadow: 0 15px 36px rgba(213,19,23,.28); }
.pdp-review-copy > button span { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: rgba(0,0,0,.17); }
.pdp-review-form { margin-top: 28px; padding-top: 26px; display: grid; gap: 19px; border-top: 1px solid rgba(23,18,23,.14); }
.pdp-review-form[hidden] { display: none; }
.pdp-review-form > div:not(.pdp-star-picker) { display: grid; gap: 8px; }
.pdp-review-form label, .pdp-review-form legend { color: #6f666c; font-size: 14px; font-weight: 700; }
.pdp-review-form input:not([type="radio"]), .pdp-review-form textarea { width: 100%; padding: 14px 15px; border: 1px solid rgba(23,18,23,.18); outline: 0; background: rgba(255,255,255,.58); color: #171217; font-size: 16px; resize: vertical; transition: border-color .25s, box-shadow .25s; }
.pdp-review-form input:focus, .pdp-review-form textarea:focus { border-color: var(--live-red); box-shadow: 0 0 0 3px rgba(213,19,23,.08); }
.pdp-review-form fieldset { margin: 0; padding: 0; border: 0; }
.pdp-star-picker { width: fit-content; margin-top: 7px; display: flex; flex-direction: row-reverse; }
.pdp-star-picker input { position: absolute; opacity: 0; pointer-events: none; }
.pdp-star-picker label { color: #cfc6ca; cursor: pointer; font-size: 30px; transition: color .2s, transform .2s; }
.pdp-star-picker label:hover, .pdp-star-picker label:hover ~ label, .pdp-star-picker input:checked ~ label { color: var(--live-red); transform: translateY(-2px); }
.pdp-review-form > button { width: fit-content; min-height: 50px; padding: 0 22px; border: 0; background: #171217; color: #fff; cursor: pointer; font-size: 14px; font-weight: 700; letter-spacing: .07em; }
.pdp-review-form [data-review-message] { margin: 0; color: #268a51; font-size: 14px; font-weight: 600; }

.pdp-related { overflow: hidden; background: #f2eeeb; color: #171217; }
.pdp-related .pdp-section-head > div > p { max-width: 620px; margin: 24px 0 0; color: #756c72; font-size: 16px; line-height: 1.7; }
.pdp-related-grid { max-width: 1600px; margin: 0 auto; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 15px; }
.pdp-related .product-card { color: #171217; }
.pdp-related .product-buy > a { min-width: 91px; height: 44px; padding: 0 12px; display: flex; align-items: center; justify-content: space-between; gap: 9px; border-radius: 24px; background: #171217; color: #fff; font-size: 14px; font-weight: 700; transition: background .3s, transform .3s; }
.pdp-related .product-buy > a:hover { background: var(--live-red); transform: translateY(-2px); }

.pdp-image-lightbox { position: fixed; z-index: 145; inset: 0; padding: clamp(20px, 5vw, 75px); display: grid; place-items: center; background: rgba(5,4,6,.96); opacity: 0; visibility: hidden; transform: scale(1.02); transition: opacity .35s, visibility .35s, transform .35s; }
.pdp-image-lightbox.is-open { opacity: 1; visibility: visible; transform: none; }
.pdp-image-lightbox > img { max-width: min(900px, 88vw); max-height: 84vh; object-fit: contain; filter: drop-shadow(0 35px 85px rgba(0,0,0,.5)); }
.pdp-image-lightbox > button { position: absolute; z-index: 2; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; background: rgba(255,255,255,.05); color: #fff; cursor: pointer; transition: background .25s, transform .25s; }
.pdp-image-lightbox > button:hover { background: var(--live-red); }
.pdp-lightbox-close { top: 25px; right: 25px; width: 50px; height: 50px; }
.pdp-lightbox-arrow { top: 50%; width: 56px; height: 56px; transform: translateY(-50%); font-size: 35px; }
.pdp-lightbox-arrow:hover { transform: translateY(-50%) scale(1.06); }
.pdp-lightbox-arrow.is-prev { left: 25px; }
.pdp-lightbox-arrow.is-next { right: 25px; }
.pdp-mobile-buy { display: none; }

@media (max-width: 1240px) {
  .pdp-stage { grid-template-columns: minmax(0, 1fr) minmax(390px, .9fr); gap: 45px; }
  .pdp-gallery { grid-template-columns: 72px minmax(0, 1fr); }
  .pdp-thumbnails button { width: 72px; }
  .pdp-gallery-main { min-height: 580px; }
  .pdp-service-grid { grid-template-columns: 1fr; }
  .pdp-service-grid > * + * { padding-left: 0; border-top: 1px solid rgba(23,18,23,.13); border-left: 0; }
  .pdp-service-grid > * { padding: 13px 0; }
  .pdp-related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 34px 15px; }
}

@media (max-width: 980px) {
  .pdp-stage { grid-template-columns: 1fr; gap: 55px; }
  .pdp-gallery { position: relative; top: auto; }
  .pdp-gallery-main { min-height: min(720px, 85vw); }
  .pdp-buy-panel { padding: 0; }
  .pdp-signal { grid-template-columns: repeat(2, 1fr); }
  .pdp-signal article:nth-child(2) { border-right: 0; }
  .pdp-signal article:nth-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,.09); }
  .pdp-section-head { grid-template-columns: 1fr; gap: 28px; align-items: start; }
  .pdp-section-head > a { justify-self: start; }
  .pdp-information { grid-template-columns: 1fr; }
  .pdp-specs { position: static; top: auto; }
  .pdp-safety { grid-template-columns: 1fr; }
  .pdp-safety-art { width: min(70vw, 480px); }
  .pdp-reviews { grid-template-columns: 1fr; }
  .pdp-review-score > strong { font-size: 135px; }
}

/* Greek display glyphs and tonos need a full line box when titles wrap. */
.hero h1,
.hero-theme-wedding h1,
.section-heading h2,
.wedding-copy h2,
.experience-intro h2,
.review-title h2,
.contact-cta h2,
.category-copy h3,
.collection-editorial-copy h3,
.moment-card h3,
.wedding-tag,
.age-card h2 { line-height: .98; }

.pdp-buy-panel h1,
.pdp-buy-panel h1.product-title-long,
.pdp-buy-panel h1.product-title-xlong,
.pdp-section-head h2,
.pdp-description h2,
.pdp-description h2.product-title-long,
.pdp-description h2.product-title-xlong,
.pdp-safety h2,
.pdp-review-copy h2 { line-height: 1.02; }

.ff-product-description { max-width: 72ch; margin-top: clamp(30px, 3.5vw, 52px); color: #6f666c; font: 400 16px/1.85 var(--sans); }
.ff-product-description > :first-child { margin-top: 0 !important; }
.ff-product-description > :last-child { margin-bottom: 0 !important; }
.ff-product-description :where(p, li, span, font, a, b, strong, em) { font-family: inherit !important; font-size: inherit !important; line-height: inherit !important; }
.ff-product-description p { margin: 0 0 18px !important; }
.ff-product-description ul,
.ff-product-description ol { margin: 22px 0 28px; padding-left: 1.35rem; display: grid; gap: 10px; }
.ff-product-description li { margin: 0 !important; padding-left: 4px; }
.ff-product-description li::marker { color: var(--live-red); }
.ff-product-description h2,
.ff-product-description h3,
.ff-product-description h4 { margin: 34px 0 14px; color: #251e23; font-family: var(--display); font-weight: 500; line-height: 1.15; letter-spacing: -.02em; }
.ff-product-description h2 { font-size: clamp(30px, 3vw, 42px); }
.ff-product-description h3 { font-size: clamp(25px, 2.4vw, 34px); }
.ff-product-description h4 { font-size: 22px; }
.ff-product-description strong,
.ff-product-description b { color: #40363d; font-weight: 750; }
.ff-product-description a { color: var(--live-red); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.ff-product-description img { max-width: 100%; height: auto; }
.ff-product-description table { width: 100%; margin: 26px 0; border-collapse: collapse; font: inherit; }
.ff-product-description th,
.ff-product-description td { padding: 12px 10px; border-bottom: 1px solid rgba(23,18,23,.14); text-align: left; }

@media (max-width: 680px) {
  .product-detail-page { padding-bottom: 76px; }
  .pdp-breadcrumb { min-height: 58px; padding-inline: 18px; gap: 9px; }
  .pdp-breadcrumb a:nth-of-type(2), .pdp-breadcrumb a:nth-of-type(2) + span { display: none; }
  .pdp-stage { padding: 22px 18px 70px; gap: 43px; }
  .pdp-stage::before { font-size: 30vw; }
  .pdp-gallery { grid-template-columns: 1fr; }
  .pdp-gallery-main { grid-column: 1; min-height: 88vw; }
  .pdp-thumbnails { grid-column: 1; grid-row: 2; flex-direction: row; overflow-x: auto; padding-bottom: 5px; }
  .pdp-thumbnails button { flex: 0 0 72px; }
  .pdp-thumbnails button.is-active, .pdp-thumbnails button:hover { transform: translateY(-3px); }
  .pdp-gallery-note { display: none; }
  .pdp-gallery-arrow { width: 42px; height: 42px; }
  .pdp-gallery-arrow.is-prev { left: 10px; }
  .pdp-gallery-arrow.is-next { right: 10px; }
  .pdp-gallery-count { left: 12px; bottom: 12px; }
  .pdp-discount { top: 14px; left: 14px; width: 50px; height: 50px; }
  .pdp-zoom { right: 13px; bottom: 13px; min-width: 49px; width: 49px; padding: 0; }
  .pdp-zoom b { display: none; }
  .pdp-buy-panel h1 { font-size: clamp(52px, 16vw, 76px); }
  .pdp-rating-row { align-items: flex-start; flex-direction: column; }
  .pdp-stock { flex-direction: column; }
  .pdp-purchase-row { grid-template-columns: 105px minmax(0, 1fr); }
  .pdp-quantity { grid-template-columns: 33px 1fr 33px; }
  .pdp-add { padding-inline: 13px; justify-content: center; }
  .pdp-add .material-symbols-rounded, .pdp-add i { display: none; }
  .pdp-add b { text-align: center; }
  .ff-options-head { align-items: flex-start; flex-direction: column; gap: 8px; }
  .ff-option-choices { grid-template-columns: 1fr; }
  .pdp-question { grid-template-columns: auto 1fr; }
  .pdp-question i { grid-column: 2; }
  .pdp-signal { padding: 0 18px; }
  .pdp-signal article { min-height: 145px; padding: 20px 13px; grid-template-columns: 29px 1fr; column-gap: 8px; }
  .pdp-signal strong { font-size: 43px; }
  .pdp-signal p { font-size: 14px; }
  .pdp-pack-list { grid-template-columns: 1fr; }
  .pdp-pack-list li, .pdp-pack-list li:nth-child(even), .pdp-pack-list li:last-child { grid-column: auto; border-right: 0; }
  .pdp-pack-list li { min-height: 120px; padding: 20px 10px; grid-template-columns: 38px 1fr auto; gap: 10px; }
  .pdp-pack-list h3 { font-size: 26px; }
  .pdp-pack-list strong { font-size: 25px; }
  .pdp-section-head h2, .pdp-description h2, .pdp-safety h2, .pdp-review-copy h2 { font-size: clamp(53px, 16vw, 75px); }
  .pdp-information { gap: 55px; }
  .pdp-specs > div { align-items: flex-start; flex-direction: column; gap: 7px; }
  .pdp-specs strong { text-align: left; }
  .pdp-safety { padding: 88px 20px; gap: 45px; }
  .pdp-safety-art { width: 90vw; margin-left: -5vw; }
  .pdp-legal-grid { margin-top: 40px; }
  .pdp-legal-grid article { grid-template-columns: 35px 1fr; }
  .pdp-accordion summary { grid-template-columns: 40px 1fr 24px; }
  .pdp-accordion details > div { padding: 0 0 25px 55px; }
  .pdp-review-score > strong { font-size: 115px; }
  .pdp-related-grid { display: flex; gap: 13px; overflow-x: auto; padding: 5px 1px 25px; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .pdp-related-grid::-webkit-scrollbar { display: none; }
  .pdp-related .product-card { flex: 0 0 83vw; scroll-snap-align: start; }
  .pdp-mobile-buy { position: fixed; z-index: 80; left: 0; right: 0; bottom: 0; height: 76px; padding: 10px 13px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-top: 1px solid rgba(255,255,255,.12); background: rgba(9,7,10,.96); color: #fff; box-shadow: 0 -15px 45px rgba(0,0,0,.25); backdrop-filter: blur(14px); }
  .pdp-mobile-buy div { display: grid; }
  .pdp-mobile-buy small { color: #9d949b; font-size: 14px; font-weight: 700; letter-spacing: .06em; }
  .pdp-mobile-buy strong { margin-top: 3px; font: 600 24px/1 var(--display); }
  .pdp-mobile-buy button { height: 52px; padding: 0 16px; display: flex; align-items: center; gap: 8px; border: 0; background: var(--live-red); color: #fff; font-size: 14px; font-weight: 700; }
  .pdp-mobile-buy button:disabled { background: #665f64; color: #d3cdd0; }
  .pdp-lightbox-arrow { width: 44px; height: 44px; }
  .pdp-lightbox-arrow.is-prev { left: 10px; }
  .pdp-lightbox-arrow.is-next { right: 10px; }
  .product-detail-page .toast { bottom: 90px; }
}

@media (prefers-reduced-motion: reduce) {
  .pdp-firework-art::before, .pdp-signal article::after, .pdp-contents::before, .pdp-safety-art::before, .pdp-safety-art::after, .pdp-safety-art i, .pdp-gallery-flare { animation: none !important; }
}

/* --- Premium category page --- */
.category-page { background: #f2eeeb; }
.category-page .site-shell { background: #f2eeeb; color: #171217; }
.category-page .announcement,
.category-page .site-header,
.category-page .site-footer,
.category-page .mobile-drawer,
.category-page .cart-drawer,
.category-page .search-overlay,
.category-page .age-gate,
.category-page .contact-cta { color: var(--ink); }

.category-breadcrumb {
  min-height: 68px; padding: 0 clamp(20px, 5.7vw, 110px); display: flex; align-items: center; gap: 13px;
  border-bottom: 1px solid rgba(23,18,23,.12); background: #f5f1ee; color: #7d7379;
  font-size: 14px; font-weight: 600;
}
.category-breadcrumb a { transition: color .25s; }
.category-breadcrumb a:hover { color: var(--live-red); }
.category-breadcrumb span { color: var(--live-red); }
.category-breadcrumb strong { color: #171217; font-weight: 700; }

.category-hero {
  position: relative; min-height: min(820px, calc(100svh - 120px)); padding: clamp(90px, 11vw, 175px) clamp(22px, 7vw, 135px) clamp(150px, 15vw, 225px);
  display: flex; align-items: center; overflow: hidden; isolation: isolate; background: #09070a; color: #fff;
}
.category-hero-image { position: absolute; z-index: -4; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 62% center; filter: saturate(.95) contrast(1.08) brightness(.82); transform: scale(1.025); }
.category-hero-shade { position: absolute; z-index: -3; inset: 0; background: linear-gradient(90deg, rgba(6,5,8,.96) 0%, rgba(7,5,8,.78) 40%, rgba(7,5,8,.17) 76%), linear-gradient(180deg, rgba(7,5,8,.08) 45%, rgba(7,5,8,.84)); }
.category-hero::after { content: ''; position: absolute; z-index: -2; inset: 0; opacity: .12; background-image: linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px); background-size: 95px 95px; -webkit-mask-image: linear-gradient(90deg, #000, transparent 75%); mask-image: linear-gradient(90deg, #000, transparent 75%); }
.category-hero-copy { position: relative; z-index: 2; max-width: 900px; }
.category-hero-copy .section-index { color: #f7b574; }
.category-hero-copy h1 { max-width: 100%; margin: 20px 0 0; font: 500 clamp(76px, 9vw, 154px)/.77 var(--display); letter-spacing: -.04em; overflow-wrap: normal; word-break: normal; hyphens: none; text-wrap: balance; }
.category-hero-copy h1.category-title-wideword { max-width: 100%; font-size: clamp(68px, 7.6vw, 120px); line-height: .84; }
.category-hero-copy h1.category-title-long { max-width: 11.5ch; font-size: clamp(68px, 7.6vw, 120px); line-height: .82; }
.category-hero-copy h1.category-title-xlong { max-width: 14ch; font-size: clamp(58px, 6vw, 96px); line-height: .86; }
.category-hero-copy h1 em { color: transparent; font-weight: 500; -webkit-text-stroke: 1.4px rgba(255,255,255,.82); }
.category-hero-copy > p:not(.section-index) { max-width: 650px; margin: 37px 0 0; color: #c1b7bd; font-size: 16px; line-height: 1.85; }
.category-hero-copy .button { margin-top: 35px; }
.category-hero-stats { position: absolute; z-index: 3; left: clamp(22px, 7vw, 135px); right: clamp(22px, 7vw, 135px); bottom: 37px; margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid rgba(255,255,255,.18); }
.category-hero-stats div { min-height: 92px; padding: 21px 28px 0 0; display: flex; align-items: baseline; gap: 14px; border-right: 1px solid rgba(255,255,255,.14); }
.category-hero-stats div + div { padding-left: 28px; }
.category-hero-stats div:last-child { border-right: 0; }
.category-hero-stats strong { font: 500 39px/1 var(--display); }
.category-hero-stats span { color: #a99fa6; font-size: 14px; font-weight: 700; letter-spacing: .08em; }

.category-story { display: grid; grid-template-columns: .85fr 1.15fr; column-gap: clamp(60px, 9vw, 160px); row-gap: clamp(70px, 8vw, 120px); background: #f7f3f0; color: #171217; }
.category-story > *,
.category-guide-grid > *,
.category-guide-grid article > div,
.category-catalog-layout > *,
.category-results,
.category-product-grid > *,
.category-responsibility > * { min-width: 0; }
.category-story-display, .category-catalog-head h2, .category-responsibility h2 { margin: 17px 0 0; font: 500 clamp(60px, 6vw, 105px)/.82 var(--display); letter-spacing: -.04em; }
.category-story-display em, .category-catalog-head h2 em { color: transparent; font-weight: 500; -webkit-text-stroke: 1.4px rgba(23,18,23,.72); }
.category-story .section-index, .category-catalog .section-index { color: var(--live-red); }
.category-description {
  --category-description-collapsed-height: 13.25rem;
  max-width: min(68ch, 100%); align-self: end; font-family: var(--sans);
}
.category-description-title { margin: 0 0 22px; color: #211a1f; font: 500 clamp(30px, 2.4vw, 42px)/1.08 var(--display); letter-spacing: -.025em; text-wrap: balance; }
.category-description .category-lead { position: relative; margin: 0; color: #6e656b; font: 400 16px/1.8 var(--sans); }
.category-description .category-lead > :first-child { margin-top: 0; }
.category-description .category-lead > :last-child { margin-bottom: 0; }
.category-description .category-lead h2,
.category-description .category-lead h3 { color: #211a1f; font-family: var(--display); font-weight: 500; letter-spacing: -.025em; }
.category-description .category-lead h2 { margin: 0 0 17px; font-size: clamp(28px, 2.2vw, 34px); line-height: 1.12; }
.category-description .category-lead h3 { margin: 27px 0 11px; font-size: clamp(24px, 1.8vw, 30px); line-height: 1.18; }
.category-description .category-lead p { margin: 0 0 15px; color: #6e656b; font: inherit; }
.category-description .category-lead ul,
.category-description .category-lead ol { margin: 13px 0 18px; padding-left: 1.35rem; display: grid; gap: 8px; }
.category-description .category-lead li { color: #5f565c; font: 400 16px/1.7 var(--sans); }
.category-description .category-lead li::marker { color: var(--live-red); }
.category-description .category-lead strong { color: #2d252a; font: inherit; font-weight: 700; }
.category-description img { display: block; max-width: 100%; height: auto; }
.category-description .category-seo-media { overflow: hidden; }
.category-description.is-collapsible .category-lead {
  max-height: var(--category-description-collapsed-height); overflow: hidden;
  transition: max-height .55s cubic-bezier(.2,.7,.2,1);
}
.category-description.is-collapsible .category-lead::after {
  content: ''; position: absolute; right: 0; bottom: 0; left: 0; height: 72px; pointer-events: none;
  background: linear-gradient(180deg, rgba(247,243,240,0), #f7f3f0 88%); opacity: 1; transition: opacity .25s ease;
}
.category-description.is-collapsible.is-expanded .category-lead { max-height: var(--category-description-expanded-height); }
.category-description.is-collapsible.is-expanded .category-lead::after { opacity: 0; }
.category-description-toggle {
  min-height: 44px; margin: 14px 0 0; padding: 0 2px; display: inline-flex; align-items: center; gap: 12px;
  border: 0; border-bottom: 1px solid rgba(213,19,23,.65); background: transparent; color: var(--live-red); cursor: pointer;
  font: 700 14px/1 var(--sans); letter-spacing: .07em; transition: color .25s, border-color .25s;
}
.category-description-toggle[hidden] { display: none; }
.category-description-toggle:hover { color: #a90d11; border-color: currentColor; }
.category-description-toggle:focus-visible { outline: 2px solid var(--live-red); outline-offset: 5px; }
.category-description-chevron { width: 9px; height: 9px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .3s cubic-bezier(.2,.7,.2,1); }
.category-description-toggle[aria-expanded="true"] .category-description-chevron { transform: translateY(3px) rotate(225deg); }
.category-description .category-description-hint { margin: 22px 0 0; color: #766d72; font: 500 14px/1.7 var(--sans); }
.category-guide-grid { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid rgba(23,18,23,.14); }
.category-guide-grid article { min-height: 245px; padding: 34px clamp(22px, 3vw, 48px); display: grid; grid-template-columns: 45px 1fr; gap: 18px; border-right: 1px solid rgba(23,18,23,.14); border-bottom: 1px solid rgba(23,18,23,.14); transition: background .35s, transform .35s, box-shadow .35s; }
.category-guide-grid article:last-child { border-right: 0; }
.category-guide-grid article:hover { z-index: 2; background: #fff; transform: translateY(-5px); box-shadow: 0 22px 55px rgba(52,31,40,.09); }
.category-guide-grid article > span { color: var(--live-red); font: 500 27px/1 var(--display); }
.category-guide-grid small { color: #90868c; font-size: 14px; font-weight: 700; letter-spacing: .09em; }
.category-guide-grid h3 { margin: 12px 0 0; font: 500 clamp(31px, 3vw, 49px)/.95 var(--display); }
.category-guide-grid p { margin: 17px 0 0; color: #756b72; font-size: 15px; line-height: 1.7; }

.category-catalog { overflow: visible; background: #ede8e4; color: #171217; }
.category-catalog-head { max-width: 1600px; margin: 0 auto clamp(55px, 7vw, 95px); display: grid; grid-template-columns: 1.1fr .7fr; gap: 70px; align-items: end; }
.category-catalog-title { max-width: 16ch; text-wrap: balance; }
.category-catalog-title span, .category-catalog-title em { display: block; }
.category-catalog-title em { margin-top: .12em; font-size: .7em; line-height: .98; letter-spacing: -.025em; overflow-wrap: anywhere; }
.category-catalog-head > p { max-width: 560px; margin: 0; color: #756c72; font-size: 16px; line-height: 1.8; }
.category-toolbar { position: relative; z-index: 8; max-width: 1600px; min-height: 75px; margin: 0 auto; padding: 14px 0; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 24px; border-block: 1px solid rgba(23,18,23,.15); }
.category-toolbar > p { margin: 0; color: #746b71; font-size: 14px; font-weight: 700; letter-spacing: .08em; }
.category-toolbar > p strong { margin-right: 6px; color: var(--live-red); font: 500 28px/1 var(--display); }
.category-toolbar > label { display: flex; align-items: center; gap: 14px; color: #756b72; font-size: 14px; font-weight: 700; }
.category-toolbar select { min-height: 48px; padding: 0 42px 0 15px; border: 1px solid rgba(23,18,23,.16); outline: 0; background: rgba(255,255,255,.48); color: #171217; font-size: 14px; cursor: pointer; }
.category-filter-open { display: none; }
.category-filter-open b[hidden] { display: none; }
.category-active-filters { max-width: 1600px; min-height: 0; margin: 18px auto 0; display: flex; flex-wrap: wrap; gap: 8px; }
.category-active-filters:empty { display: none; }
.category-active-filters button { min-height: 38px; padding: 0 12px; display: inline-flex; align-items: center; gap: 9px; border: 1px solid rgba(213,19,23,.2); border-radius: 99px; background: rgba(255,255,255,.55); color: #4f454c; cursor: pointer; font-size: 14px; font-weight: 600; }
.category-active-filters button span { color: var(--live-red); font-size: 18px; }
.category-active-filters .is-reset { border-color: transparent; background: transparent; color: var(--live-red); text-decoration: underline; text-underline-offset: 4px; }
.category-catalog-layout { max-width: 1600px; margin: 30px auto 0; display: grid; grid-template-columns: minmax(250px, .26fr) minmax(0, 1fr); gap: clamp(26px, 3.5vw, 58px); align-items: start; }
.category-filter-panel { position: sticky; top: 96px; overflow: hidden; background: #171217; color: #fff; box-shadow: 0 24px 55px rgba(40,23,31,.12); }
.category-filter-head { min-height: 96px; padding: 20px 23px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(255,255,255,.11); }
.category-filter-head span { color: var(--live-red); font-size: 14px; font-weight: 700; letter-spacing: .1em; }
.category-filter-head h3 { margin: 6px 0 0; font: 500 35px/1 var(--display); }
.category-filter-head button { display: none; width: 43px; height: 43px; place-items: center; border: 1px solid rgba(255,255,255,.13); border-radius: 50%; background: transparent; color: #fff; cursor: pointer; }
.category-filter-panel form { padding: 0 23px 24px; }
.category-search-field, .category-filter-group { margin: 0; padding: 23px 0; border: 0; border-bottom: 1px solid rgba(255,255,255,.1); }
.category-search-field > label, .category-filter-group legend { margin: 0 0 14px; padding: 0; color: #fff; font-size: 14px; font-weight: 700; letter-spacing: .07em; }
.category-search-field > div { min-height: 48px; padding: 0 12px; display: flex; align-items: center; gap: 9px; border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.035); }
.category-search-field .material-symbols-rounded { color: #81777e; font-size: 21px; }
.category-search-field input { min-width: 0; width: 100%; border: 0; outline: 0; background: transparent; color: #fff; font-size: 14px; }
.category-search-field input::placeholder { color: #81777e; }
.category-filter-group label { min-height: 36px; display: grid; grid-template-columns: 20px 1fr auto; align-items: center; gap: 9px; color: #c1b8be; cursor: pointer; font-size: 14px; }
.category-filter-group label:hover { color: #fff; }
.category-filter-group label input { width: 17px; height: 17px; margin: 0; accent-color: var(--live-red); }
.category-filter-group label b { color: #6e656c; font-size: 14px; font-weight: 600; }
.category-price-filter legend { width: 100%; display: flex; justify-content: space-between; gap: 12px; }
.category-price-filter output { color: var(--live-red); }
.category-price-filter input { width: 100%; accent-color: var(--live-red); }
.category-price-filter > div { display: flex; justify-content: space-between; color: #716970; font-size: 14px; }
.category-filter-reset { width: 100%; min-height: 48px; margin-top: 22px; border: 1px solid rgba(255,255,255,.16); background: transparent; color: #aaa1a7; cursor: pointer; font-size: 14px; font-weight: 700; letter-spacing: .06em; transition: color .25s, border-color .25s, background .25s; }
.category-filter-reset:hover { color: #fff; border-color: var(--live-red); background: rgba(213,19,23,.12); }
.category-filter-apply { display: none; }
.category-product-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; gap: 38px 15px; }
.category-product-grid .product-card { color: #171217; }
.category-product-grid .product-card[hidden] { display: none; }
.category-product-grid .product-media { background: #ddd6d1; }
.category-empty { min-height: 520px; padding: 50px 25px; display: flex; flex-direction: column; align-items: center; justify-content: center; border: 1px solid rgba(23,18,23,.14); text-align: center; }
.category-empty[hidden] { display: none; }
.category-empty > .material-symbols-rounded { color: var(--live-red); font-size: 58px; }
.category-empty h3 { margin: 20px 0 0; font: 500 clamp(38px, 4vw, 63px)/1 var(--display); }
.category-empty p { max-width: 430px; margin: 15px 0 0; color: #756c72; font-size: 15px; line-height: 1.7; }
.category-empty button { min-height: 50px; margin-top: 25px; padding: 0 19px; border: 0; background: var(--live-red); color: #fff; cursor: pointer; font-size: 14px; font-weight: 700; }
.category-filter-scrim { display: none; }

.category-responsibility { display: grid; grid-template-columns: 1fr .9fr; gap: clamp(70px, 10vw, 170px); align-items: center; overflow: hidden; background: radial-gradient(circle at 12% 35%, rgba(213,19,23,.22), transparent 30%), #0b090c; color: #fff; }
.category-responsibility::before { content: ''; position: absolute; width: 680px; aspect-ratio: 1; left: -390px; bottom: -370px; border-radius: 50%; background: repeating-conic-gradient(from 5deg, rgba(255,210,164,.32) 0 1deg, transparent 1deg 13deg); -webkit-mask: radial-gradient(circle, transparent 0 20%, #000 21% 23%, transparent 24% 39%, #000 40% 42%, transparent 43% 55%, #000 56% 58%, transparent 59%); mask: radial-gradient(circle, transparent 0 20%, #000 21% 23%, transparent 24% 39%, #000 40% 42%, transparent 43% 55%, #000 56% 58%, transparent 59%); animation: firework-turn 30s linear infinite; }
.category-responsibility-copy, .category-responsibility-list { position: relative; z-index: 2; }
.category-responsibility .section-index { color: var(--live-red); }
.category-responsibility h2 em { color: transparent; font-weight: 500; -webkit-text-stroke: 1.4px rgba(255,255,255,.75); }
.category-responsibility-copy > p:not(.section-index) { max-width: 690px; margin: 31px 0 0; color: #a0979e; font-size: 16px; line-height: 1.85; }
.category-responsibility-copy > a { width: fit-content; margin-top: 30px; padding-bottom: 6px; display: block; border-bottom: 1px solid var(--live-red); color: var(--live-red); font-size: 14px; font-weight: 700; letter-spacing: .07em; }
.category-responsibility-list { border-top: 1px solid rgba(255,255,255,.12); }
.category-responsibility-list article { padding: 25px 0; display: grid; grid-template-columns: 47px 1fr; gap: 18px; border-bottom: 1px solid rgba(255,255,255,.12); }
.category-responsibility-list article > span { color: var(--live-red); font: 500 25px/1 var(--display); }
.category-responsibility-list h3 { margin: 0; font: 500 31px/1 var(--display); }
.category-responsibility-list p { margin: 10px 0 0; color: #91888f; font-size: 15px; line-height: 1.7; }

@media (max-width: 1240px) {
  .category-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 980px) {
  .category-hero { min-height: 780px; }
  .category-hero-copy h1.category-title-wideword { max-width: 100%; font-size: clamp(60px, 8vw, 76px); }
  .category-hero-copy h1.category-title-long { max-width: 12ch; font-size: clamp(60px, 8vw, 76px); }
  .category-hero-copy h1.category-title-xlong { max-width: 14ch; font-size: clamp(50px, 6.5vw, 64px); line-height: .88; }
  .category-story { grid-template-columns: 1fr; }
  .category-guide-grid { grid-template-columns: 1fr; }
  .category-guide-grid article { border-right: 0; }
  .category-catalog-head { grid-template-columns: 1fr; gap: 28px; }
  .category-toolbar { grid-template-columns: auto 1fr auto; }
  .category-filter-open { min-height: 48px; padding: 0 15px; display: flex; align-items: center; gap: 8px; border: 0; background: #171217; color: #fff; cursor: pointer; font-size: 14px; font-weight: 700; }
  .category-filter-open b { min-width: 22px; height: 22px; padding: 0 5px; display: grid; place-items: center; border-radius: 50%; background: var(--live-red); font-size: 14px; }
  .category-toolbar > p { justify-self: center; }
  .category-catalog-layout { grid-template-columns: 1fr; }
  .category-filter-panel { position: fixed; z-index: 131; top: 0; bottom: 0; left: 0; width: min(430px, 94vw); overflow-y: auto; transform: translateX(-105%); visibility: hidden; transition: transform .45s cubic-bezier(.2,.7,.2,1), visibility .45s; }
  .category-filter-panel.is-open { transform: none; visibility: visible; }
  .category-filter-panel.is-open .category-filter-head button { display: grid; }
  .category-filter-panel form { padding-bottom: 90px; }
  .category-filter-apply { position: sticky; z-index: 2; left: 0; right: 0; bottom: 0; width: 100%; min-height: 62px; padding: 0 20px; display: block; border: 0; background: var(--live-red); color: #fff; cursor: pointer; font-size: 14px; font-weight: 700; letter-spacing: .06em; }
  .category-filter-scrim { position: fixed; z-index: 130; inset: 0; border: 0; background: rgba(5,4,6,.72); opacity: 0; visibility: hidden; transition: opacity .35s, visibility .35s; }
  .category-filter-scrim.is-open { display: block; opacity: 1; visibility: visible; }
  .category-responsibility { grid-template-columns: 1fr; }
}

@media (max-width: 680px) {
  .category-breadcrumb { min-height: 58px; padding-inline: 18px; }
  .category-hero { min-height: 720px; padding: 90px 20px 210px; align-items: flex-start; }
  .category-hero-image { object-position: 68% center; }
  .category-hero-shade { background: linear-gradient(90deg, rgba(6,5,8,.92), rgba(7,5,8,.36)), linear-gradient(180deg, rgba(7,5,8,.12), rgba(7,5,8,.9)); }
  .category-hero-copy { width: 100%; }
  .category-hero-copy h1 { font-size: clamp(38px, 11.8vw, 56px); letter-spacing: -.04em; overflow-wrap: normal; word-break: normal; hyphens: none; }
  .category-hero-copy h1.category-title-wideword { max-width: 100%; font-size: clamp(38px, 11.8vw, 56px); line-height: .88; }
  .category-hero-copy h1.category-title-long { max-width: 100%; font-size: clamp(38px, 11.8vw, 56px); line-height: .84; }
  .category-hero-copy h1.category-title-xlong { max-width: 100%; font-size: clamp(34px, 10.5vw, 44px); line-height: .9; }
  .category-hero-copy > p:not(.section-index) { margin-top: 28px; line-height: 1.7; }
  .category-hero-copy h1.category-title-xlong + p { margin-top: 22px; }
  .category-hero-copy .button { width: 100%; min-width: 0; }
  .category-hero-stats { left: 20px; right: 20px; bottom: 18px; grid-template-columns: 1fr; }
  .category-hero-stats div { min-height: 48px; padding: 10px 0; align-items: center; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.12); }
  .category-hero-stats div + div { padding-left: 0; }
  .category-hero-stats div:last-child { border-bottom: 0; }
  .category-hero-stats strong { min-width: 78px; font-size: 28px; }
  .category-story-display, .category-catalog-head h2, .category-responsibility h2 { font-size: clamp(53px, 16vw, 75px); }
  .category-catalog-title em { font-size: .62em; line-height: 1.04; }
  .category-guide-grid article { min-height: 210px; padding: 28px 7px; grid-template-columns: 38px 1fr; }
  .category-toolbar { grid-template-columns: 1fr auto; gap: 14px; }
  .category-filter-open { justify-self: start; }
  .category-toolbar > p { display: none; }
  .category-toolbar > label { display: grid; gap: 5px; }
  .category-toolbar select { width: min(48vw, 190px); }
  .category-product-grid { grid-template-columns: 1fr; gap: 27px; }
  .category-product-grid .product-buy button span { display: inline; }
  .category-product-grid .product-card { width: 100%; max-width: 100%; padding-bottom: 19px; flex: 0 1 auto; }
  .category-product-grid .product-media { min-width: 0; }
  .category-product-grid .product-meta,
  .category-product-grid .product-name,
  .category-product-grid .product-buy { min-width: 0; max-width: 100%; }
  .category-responsibility { gap: 55px; }
}

@media (max-width: 360px) {
  .category-hero-copy h1,
  .category-hero-copy h1.category-title-wideword,
  .category-hero-copy h1.category-title-long { font-size: 36px; }
  .category-guide-grid article { padding-inline: 8px; grid-template-columns: 1fr; gap: 12px; }
  .category-guide-grid h3 { font-size: 29px; }
}

@media (prefers-reduced-motion: reduce) {
  .category-responsibility::before { animation: none !important; }
}

@media (max-width: 600px) {
  .hero-stats { display: grid; grid-template-columns: 1fr; gap: 0; }
  .hero-stats div { min-height: 48px; padding: 11px 0 11px 15px; display: grid; grid-template-columns: 68px minmax(0, 1fr); align-items: center; border-bottom: 1px solid rgba(255,255,255,.1); }
  .hero-stats div:last-child { border-bottom: 0; }
  .hero-stats dd, .hero-stats div:first-child dd { max-width: none; margin: 0; line-height: 1.35; overflow-wrap: anywhere; }
}

/* Category headlines share the same Greek-safe vertical rhythm. */
.category-hero-copy h1,
.category-hero-copy h1.category-title-wideword,
.category-hero-copy h1.category-title-long,
.category-hero-copy h1.category-title-xlong,
.category-story-display,
.category-catalog-head h2,
.category-responsibility h2,
.category-guide-grid h3 { line-height: 1.02; }

/* Homepage collection cards: keep long Greek category names inside narrow phones. */
@media (max-width: 600px) {
  .collections .category-copy {
    left: 22px;
    right: 22px;
    bottom: 28px;
  }

  .collections .category-copy h3 {
    max-width: 100%;
    font-size: clamp(30px, 9.2vw, 36px);
    line-height: 1.02;
    letter-spacing: -.035em;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
    text-wrap: balance;
  }

  .collections .category-arrow {
    top: 20px;
    right: 20px;
    bottom: auto;
  }

  .collections .category-line {
    left: 22px;
    right: 22px;
    bottom: 16px;
  }
}
