:root{--primary:#7c5cff;--primary-rgb:124,92,255;--ink:#f7f7fb;--muted:#a7a9b7;--glass:rgba(255,255,255,.09);--glass-strong:rgba(255,255,255,.14);--line:rgba(255,255,255,.12)}
*{box-sizing:border-box}html{min-height:100%;background:#05070d}body{margin:0;min-height:100vh;color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;background:#05070d url("/static/assets/blue-brick.jpg") center center/cover fixed no-repeat;overflow-x:hidden}
body:before{content:"";position:fixed;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(1,4,12,.22),rgba(1,4,12,.52)),radial-gradient(circle at 50% 12%,rgba(20,110,255,.28),transparent 42%),radial-gradient(circle at 85% 65%,rgba(236,0,140,.12),transparent 35%);mix-blend-mode:normal}.ambient{position:fixed;border-radius:50%;filter:blur(85px);opacity:.18;pointer-events:none}.ambient-a{width:300px;height:300px;left:-100px;top:22%;background:#0ea5ff}.ambient-b{width:280px;height:280px;right:-80px;top:45%;background:#ff1493}.ambient-c{width:220px;height:220px;left:45%;bottom:-100px;background:#1684ff}
.glass-header{position:sticky;top:12px;z-index:10;margin:12px 18px 0;padding:10px 16px 10px 14px;border:1px solid var(--line);background:rgba(20,22,31,.68);backdrop-filter:blur(24px) saturate(150%);-webkit-backdrop-filter:blur(24px) saturate(150%);box-shadow:0 18px 50px rgba(0,0,0,.28);border-radius:24px;display:flex;justify-content:space-between;align-items:center;gap:16px}.brand{display:flex;gap:13px;align-items:center;min-width:0}.logo{width:88px;height:68px;display:grid;place-items:center;overflow:visible;background:transparent;border:0;box-shadow:none}.logo img{width:88px;height:68px;object-fit:contain;padding:0;filter:drop-shadow(0 8px 16px rgba(0,0,0,.35))}.logo span{font-weight:900;font-size:23px;letter-spacing:-2px}.brand-copy{min-width:0}.brand-copy b{display:block;font-size:24px;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-copy small{display:block;margin-top:5px;color:#8f93a5;font-size:9px;font-weight:800;letter-spacing:.19em}.cart-button{border:1px solid rgba(255,255,255,.18);background:linear-gradient(135deg,rgba(236,0,140,.94),rgba(31,143,255,.82));color:#fff;padding:11px 14px;border-radius:17px;font-size:16px;font-weight:800;display:flex;align-items:center;gap:9px;box-shadow:0 10px 28px rgba(var(--primary-rgb),.22);white-space:nowrap}.cart-icon{font-size:19px}.cart-pill{min-width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:rgba(0,0,0,.22);font-size:12px}.cart-button strong{padding-left:4px}
main{max-width:1500px;margin:0 auto;padding:38px 28px 90px}.hero{display:flex;justify-content:space-between;align-items:end;gap:28px;padding:16px 2px 28px}.eyebrow{font-size:10px;letter-spacing:.22em;font-weight:900;color:#8f93a5}.hero h1{margin:8px 0 6px;font-size:clamp(32px,4vw,52px);line-height:.98;letter-spacing:-.045em}.hero p{margin:0;color:var(--muted);font-size:15px}.search-wrap{width:min(390px,100%);height:54px;display:flex;align-items:center;gap:10px;padding:0 17px;border:1px solid var(--line);border-radius:18px;background:var(--glass);backdrop-filter:blur(18px);box-shadow:inset 0 1px rgba(255,255,255,.06)}.search-wrap span{font-size:26px;color:#9ca0b1;line-height:1}.search-wrap input{width:100%;border:0;outline:0;background:transparent;color:#fff;font-size:17px}.search-wrap input::placeholder{color:#85899a}
.cats{display:flex;gap:10px;overflow-x:auto;padding:4px 2px 24px;scrollbar-width:none}.cats::-webkit-scrollbar{display:none}.cat{border:1px solid var(--line);background:rgba(255,255,255,.055);color:#cdd0da;padding:12px 18px;border-radius:999px;font-size:15px;font-weight:750;white-space:nowrap;backdrop-filter:blur(14px);transition:.18s transform,.18s background,.18s color}.cat:active{transform:scale(.97)}.cat.active{background:linear-gradient(135deg,#ec008c,#188dff);border-color:transparent;color:#fff;box-shadow:0 10px 28px rgba(var(--primary-rgb),.20)}
.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px}.card{position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.10);border-radius:24px;background:linear-gradient(145deg,rgba(255,255,255,.105),rgba(255,255,255,.045));backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 14px 40px rgba(0,0,0,.18);display:flex;flex-direction:column;min-width:0;transition:transform .18s,box-shadow .18s,border-color .18s}.card:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(125deg,rgba(255,255,255,.08),transparent 28%)}.card:hover{transform:translateY(-3px);border-color:rgba(255,255,255,.18);box-shadow:0 20px 48px rgba(0,0,0,.27)}.photo,.nop{width:100%;aspect-ratio:1.1;object-fit:contain;background:radial-gradient(circle at 50% 40%,rgba(255,255,255,.08),transparent 65%);padding:16px}.nop{display:grid;place-items:center;font-size:54px;color:#707587}.body{padding:16px 17px 17px;display:flex;flex-direction:column;flex:1;min-height:170px}.name{font-size:17px;line-height:1.2;font-weight:800;letter-spacing:-.015em}.desc{color:#9296a7;font-size:12px;line-height:1.4;margin:7px 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.price{font-size:25px;font-weight:900;letter-spacing:-.03em;margin-top:auto;padding-top:14px}.add{margin-top:12px;border:1px solid rgba(255,255,255,.10);background:linear-gradient(135deg,rgba(236,0,140,.17),rgba(24,141,255,.17));color:#fff;border-radius:14px;padding:13px;font-size:15px;font-weight:850;transition:.18s}.add:active{transform:scale(.98);background:rgba(var(--primary-rgb),.7)}
.overlay{position:fixed;inset:0;background:rgba(3,4,8,.70);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);z-index:30;display:grid;place-items:center;padding:18px}.hidden{display:none!important}.glass-panel{border:1px solid var(--line);background:linear-gradient(145deg,rgba(35,38,51,.88),rgba(16,18,26,.91));backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);box-shadow:0 30px 90px rgba(0,0,0,.5)}.modal,.done{border-radius:30px;padding:26px;width:min(680px,100%);max-height:90vh;overflow:auto}.mh{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.mh h2,.done h2{margin:7px 0 0;font-size:34px;letter-spacing:-.04em}.icon-button{border:1px solid var(--line);background:rgba(255,255,255,.06);color:#fff;border-radius:12px;width:42px;height:42px;font-size:18px}.line{display:flex;gap:12px;align-items:center;padding:15px 0;border-bottom:1px solid var(--line)}.lname{flex:1;font-weight:700;font-size:15px}.qty{display:flex;gap:8px;align-items:center}.qty button{width:38px;height:38px;border:1px solid var(--line);background:rgba(255,255,255,.07);color:#fff;border-radius:11px;font-size:22px}.total{display:flex;justify-content:space-between;font-size:23px;padding:22px 0}.total span{color:#a4a8b7}.wide{width:100%}.primary{border:0;background:linear-gradient(135deg,#ec008c,#188dff);color:#fff;border-radius:16px;padding:16px 20px;font-size:17px;font-weight:850;box-shadow:0 14px 34px rgba(var(--primary-rgb),.22)}.primary span{float:right}.done{text-align:center;padding:55px 30px}.success-ring{width:92px;height:92px;margin:0 auto 24px;border-radius:50%;display:grid;place-items:center;background:rgba(77,225,149,.12);border:1px solid rgba(77,225,149,.35);box-shadow:0 0 50px rgba(77,225,149,.13)}.success-ring span{font-size:50px;color:#61e5a0}.done p{color:#a7aab8;line-height:1.5;margin:12px 0 28px}
@media(max-width:1100px){.grid{grid-template-columns:repeat(3,minmax(0,1fr))}.hero{align-items:stretch;flex-direction:column}.search-wrap{width:100%}}@media(max-width:720px){.logo{width:70px;height:54px}.logo img{width:70px;height:54px}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.glass-header{top:7px;margin:7px 8px 0;border-radius:19px;padding:7px 10px}.brand-copy b{font-size:18px}.brand-copy small{font-size:7px}.logo{width:58px;height:58px}.cart-label{display:none}.cart-button{padding:9px 11px}.cart-button strong{font-size:14px}main{padding:28px 11px 70px}.hero{padding-bottom:20px}.hero h1{font-size:34px}.hero p{font-size:13px}.body{padding:13px;min-height:155px}.name{font-size:14px}.price{font-size:21px}.add{padding:12px 8px;font-size:14px}.desc{font-size:11px}.photo,.nop{padding:10px}.cats{padding-bottom:17px}.modal,.done{padding:21px;border-radius:25px}.mh h2,.done h2{font-size:29px}}


.search-area{width:min(520px,100%);display:flex;flex-direction:column;align-items:flex-end;gap:7px}.search-area .search-wrap{width:100%}
.scan-status{display:flex;align-items:center;gap:6px;white-space:nowrap;font-size:10px;font-weight:800;color:#aeb3c2;padding-right:6px;min-height:14px}
.scan-dot{width:7px;height:7px;border-radius:50%;background:#8b91a0;box-shadow:0 0 0 3px rgba(139,145,160,.10)}
.scan-dot.ok{background:#55e69a;box-shadow:0 0 0 3px rgba(85,230,154,.12)}
.stock{font-size:11px;font-weight:800;margin-top:8px;color:#9da2b2}.stock.in{color:#69e6a5}.stock.out{color:#ff91bd}
.add:disabled{opacity:.42;cursor:not-allowed;filter:saturate(.55)}
.lname small{display:block;color:#858a9b;font-size:10px;font-weight:600;margin-top:4px}
.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);z-index:60;padding:13px 18px;border-radius:15px;border:1px solid rgba(255,255,255,.14);background:rgba(17,19,28,.94);backdrop-filter:blur(18px);box-shadow:0 16px 50px rgba(0,0,0,.4);font-size:14px;font-weight:800;color:#fff;max-width:min(600px,calc(100vw - 30px));text-align:center}.toast.ok{box-shadow:0 16px 50px rgba(0,0,0,.4),0 0 28px rgba(85,230,154,.12)}.toast.warn{border-color:rgba(255,92,153,.35);box-shadow:0 16px 50px rgba(0,0,0,.4),0 0 28px rgba(255,92,153,.12)}
@media(max-width:720px){.search-area{width:100%}.search-wrap{height:54px}.scan-status{font-size:9px;padding-right:4px}.stock{font-size:10px}.toast{bottom:18px}}


/* Sweet Vegas brand */
#shop .sweet {
  color: #ec008c !important;
  text-shadow: 0 0 14px rgba(236, 0, 140, .45);
}
#shop .vegas {
  color: #61c8f5 !important;
  text-shadow: 0 0 14px rgba(97, 200, 245, .45);
}
#shop {
  white-space: nowrap;
}

/* Sweet Vegas logo */
.logo { width: 90px; height: 76px; }
.logo img { width: 100%; height: 100%; object-fit: contain; }
.brand-copy { display: block; }
@media(max-width:720px) {
  .logo { width: 68px; height: 68px; }
}


/* Five product cards per row on tablet and desktop */
@media (min-width: 721px) {
  .grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
}

/* Sweet Vegas product details */
.product-detail {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 26px;
  width: min(940px, 100%);
  max-height: 90vh;
  overflow: auto;
  padding: 30px;
  border-radius: 28px;
}
.detail-close {
  position: absolute;
  z-index: 2;
  top: 12px;
  right: 12px;
}
.detail-image-wrap {
  min-height: 300px;
  display: grid;
  place-items: center;
  border-radius: 22px;
  background: radial-gradient(circle, rgba(255,255,255,.12), transparent 70%);
  overflow: hidden;
}
.detail-image {
  width: 100%;
  max-height: 55vh;
  object-fit: contain;
  padding: 16px;
}
.detail-no-image {
  font-size: 72px;
  color: #9296a7;
}
.detail-content {
  min-width: 0;
  display: flex;
  flex-direction: column;
  padding: 18px 0;
}
.detail-content h2 {
  margin: 14px 0 10px;
  font-size: clamp(24px, 3vw, 36px);
  line-height: 1.15;
  overflow-wrap: anywhere;
}
.detail-price {
  margin: 20px 0;
  font-size: clamp(30px, 4vw, 42px);
  font-weight: 900;
}
.detail-description {
  color: #d5d7e1;
  font-size: 16px;
  line-height: 1.65;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  margin-bottom: 24px;
}
.detail-description.empty-description {
  color: #9296a7;
  font-style: italic;
}
.detail-content .primary {
  margin-top: auto;
}
.detail-content .primary:disabled {
  opacity: .45;
}
.card {
  cursor: pointer;
}
@media(max-width:720px) {
  .product-detail {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 18px;
    width: min(540px, 100%);
    max-height: 92vh;
    border-radius: 23px;
  }
  .detail-image-wrap {
    min-height: 170px;
    max-height: 30vh;
  }
  .detail-image {
    max-height: 28vh;
    padding: 8px;
  }
  .detail-content {
    padding: 4px 2px;
  }
  .detail-content h2 {
    font-size: 25px;
    margin: 8px 0;
  }
  .detail-price {
    font-size: 30px;
    margin: 12px 0;
  }
  .detail-description {
    font-size: 14px;
    line-height: 1.5;
    margin-bottom: 16px;
  }
}


/* Sweet Vegas — фирменная красно-белая надпись */
#shop .sweet,
#shop .vegas {
  color: #fff7f2 !important;
  -webkit-text-stroke: 1px #e71924;
  text-shadow:
    2px 2px 0 #8f0008,
    -1px -1px 0 #e71924,
    0 0 8px rgba(255, 20, 30, .8),
    0 0 18px rgba(255, 0, 0, .35);
}

.brand-copy small {
  color: #fff0ed;
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .12em;
  text-shadow: 0 0 8px rgba(255, 30, 40, .35);
}


/* Smooth, lightweight window entrance animations */
@keyframes sv-overlay-in {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes sv-panel-in {
  from { opacity: 0; transform: translateY(10px) scale(.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
.overlay:not(.hidden) {
  animation: sv-overlay-in 180ms ease-out both;
}
.overlay:not(.hidden) > .glass-panel,
.overlay:not(.hidden) > .product-detail {
  animation: sv-panel-in 220ms cubic-bezier(.2,.75,.25,1) both;
}
.card {
  transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}
button {
  -webkit-tap-highlight-color: transparent;
}
@media (prefers-reduced-motion: reduce) {
  .overlay:not(.hidden),
  .overlay:not(.hidden) > .glass-panel,
  .overlay:not(.hidden) > .product-detail {
    animation: none !important;
  }
  *, *::before, *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}

/* Напоминание об обновлении киоска */
.refresh-notice {
  position: fixed;
  z-index: 1000;
  left: 50%;
  bottom: 24px;
  transform: translateX(-50%);
  width: min(440px, calc(100vw - 28px));
  padding: 20px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 18px;
  background: #171923;
  color: #fff;
  box-shadow: 0 12px 44px rgba(0,0,0,.5);
  text-align: center;
}
.refresh-notice-title {
  font-size: 20px;
  font-weight: 900;
  margin-bottom: 8px;
}
.refresh-notice-text {
  font-size: 14px;
  line-height: 1.5;
  margin-bottom: 16px;
}
.refresh-notice button {
  width: 100%;
  min-height: 48px;
  border: 0;
  border-radius: 12px;
  background: #e71924;
  color: #fff;
  font-size: 16px;
  font-weight: 800;
}

.fulfillment{
  display:grid;
  gap:10px;
  margin:20px 0;
  text-align:left;
}
.fulfillment label{
  color:#a7aab8;
  font-size:13px;
}
.checkout-input{
  box-sizing:border-box;
  width:100%;
  min-height:46px;
  padding:12px 14px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:12px;
  background:rgba(255,255,255,.05);
  color:inherit;
  font:inherit;
}
.checkout-input option{
  background:#20212b;
  color:#fff;
}
.fulfillment textarea{
  resize:vertical;
}
#checkout:disabled{
  opacity:.65;
  cursor:wait;
}

.consent-block {
  display: grid;
  gap: 12px;
  margin: 16px 0;
  font-size: 13px;
  line-height: 1.5;
}

.consent-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.consent-item input {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin-top: 2px;
}

.consent-item a {
  text-decoration: underline;
}









/* Итоговая сетка каталога */
@media (orientation: portrait) {
  #products.grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}
@media (orientation: landscape) and (max-width: 720px) {
  #products.grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}
@media (orientation: landscape) and (min-width: 721px) {
  #products.grid {
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  }
}


/* Кнопка очистки строки поиска */
.search-wrap {
  position: relative;
}
.search-wrap #q {
  padding-right: 44px;
}
.search-wrap #clearSearch {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  width: 32px;
  height: 32px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: inherit;
  font-size: 25px;
  line-height: 1;
  cursor: pointer;
  align-items: center;
  justify-content: center;
}
.search-wrap #clearSearch:not([hidden]) {
  display: flex;
}
.search-wrap #clearSearch[hidden] {
  display: none;
}


/* Кнопка очистки корзины */
.cart-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.clear-cart-button {
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 10px;
  padding: 9px 12px;
  background: transparent;
  color: inherit;
  cursor: pointer;
  font: inherit;
  font-size: 13px;
}

.clear-cart-button:hover {
  background: rgba(255,255,255,.08);
}

@media (max-width: 480px) {
  .cart-actions {
    gap: 6px;
  }
  .clear-cart-button {
    padding: 8px;
    font-size: 12px;
  }
}


/* Количество товара прямо в карточке */
.card-buy{margin-top:12px}
.card-qty{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:42px;border:1px solid #d8dce5;border-radius:10px;padding:3px 6px}
.card-qty span{font-weight:700;font-size:16px;min-width:20px;text-align:center}
.card-qty button{width:36px;height:34px;border:0;border-radius:8px;background:#f0f2f7;color:#222;font-size:22px;cursor:pointer}
.card-qty button:disabled{opacity:.4;cursor:not-allowed}
.card-buy .add{width:100%}


/* Компактный счётчик количества товара v2 */
.card-buy {
  margin-top: 12px;
}

.card-qty {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  min-height: 42px;
  width: 100%;
  box-sizing: border-box;
  padding: 4px;
  border: 1px solid var(--border, #e2e5eb);
  border-radius: 12px;
  background: var(--card, #fff);
}

.card-qty button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 36px;
  width: 36px;
  height: 32px;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: var(--soft, #f1f3f7);
  color: var(--text, #222);
  font-size: 20px;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  transition: background .15s ease, transform .15s ease;
}

.card-qty button:not(:disabled):hover {
  background: #e4e8f0;
}

.card-qty button:not(:disabled):active {
  transform: scale(.95);
}

.card-qty button:disabled {
  opacity: .35;
  cursor: not-allowed;
}

.card-qty span {
  flex: 1 1 auto;
  min-width: 24px;
  text-align: center;
  font-size: 15px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.card-buy .add {
  width: 100%;
}

/* Fix: visible quantity in product counter */
.card-qty span {
  display: inline-block !important;
  color: #222 !important;
  opacity: 1 !important;
  visibility: visible !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  text-align: center !important;
  min-width: 28px !important;
  flex: 1 1 auto !important;
  position: relative !important;
  z-index: 1 !important;
}


/* Счётчик в окне подробностей товара */
.detail-buy {
  width: 100%;
  margin-top: 14px;
}
.detail-buy .detail-qty {
  width: 100%;
  min-height: 48px;
  padding: 5px;
  border-radius: 12px;
  box-sizing: border-box;
}
.detail-buy .detail-qty button {
  flex-basis: 42px;
  width: 42px;
  height: 38px;
}
.detail-buy .detail-qty span {
  font-size: 17px !important;
}
.detail-buy #detailAdd {
  width: 100%;
}

/* Яркий экран номера заказа для самовывоза */
.pickup-order{margin:26px 0 30px;padding:24px 18px 26px;border:3px solid #ffe04b;border-radius:24px;background:linear-gradient(145deg,#fff4b8,#ffda38);color:#171717;box-shadow:0 0 0 5px rgba(255,224,75,.13),0 12px 45px rgba(255,200,0,.20)}
.pickup-order-label{font-size:clamp(14px,2.5vw,20px);font-weight:950;letter-spacing:.09em}
.pickup-order-number{margin:8px 0 16px;font-size:clamp(64px,15vw,112px);font-weight:1000;line-height:1;letter-spacing:-.045em;overflow-wrap:anywhere;color:#111;text-shadow:0 2px 0 rgba(255,255,255,.35)}
.pickup-order-instructions{font-size:clamp(19px,3.8vw,29px);font-weight:950;line-height:1.25}
#doneText.hidden{display:none!important}


/* Low-power tablet profile: keep the palette, reduce GPU-heavy effects. */
@media (max-width: 1100px) {
  .glass-header,.card,.search-wrap,.cat,.overlay,.glass-panel,.toast {
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }
  .card { box-shadow: 0 5px 16px rgba(0,0,0,.16); transition: none; }
  .card:hover { transform: none; box-shadow: 0 5px 16px rgba(0,0,0,.16); }
  .ambient { display: none !important; }
  .glass-panel { box-shadow: 0 12px 36px rgba(0,0,0,.38); }
  .toast { box-shadow: 0 8px 24px rgba(0,0,0,.32); }
}
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}


/* Sweet Vegas brand header: enamel red/white lettering, responsive on tablets and phones */
.brand{gap:12px;}
.brand-copy{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:5px;}
.brand-copy b{display:flex;align-items:baseline;gap:7px;font-family:Georgia,"Times New Roman",serif;font-size:clamp(20px,2.1vw,29px);font-weight:900;line-height:1;letter-spacing:.025em;white-space:nowrap;overflow:visible;text-overflow:clip;text-shadow:0 2px 0 #4a0000,0 0 10px rgba(255,30,30,.25);}
.brand-copy b .sweet{color:#fff8f2;-webkit-text-stroke:.35px #d61b24;text-shadow:1px 2px 0 #7c0008,0 0 8px rgba(255,255,255,.18);}
.brand-copy b .vegas{color:#ff343b;-webkit-text-stroke:.5px #fff0e8;text-shadow:1px 2px 0 #710008,0 0 10px rgba(255,20,35,.38);}
.brand-copy small{display:inline-block;margin-top:1px;padding:5px 9px 4px;border:1px solid rgba(255,82,82,.85);border-radius:5px;background:linear-gradient(180deg,rgba(171,0,12,.96),rgba(74,0,7,.98));color:#fff7f0;font-size:clamp(7px,.72vw,9px);font-weight:900;letter-spacing:.12em;line-height:1.25;white-space:normal;max-width:100%;box-shadow:inset 0 1px rgba(255,255,255,.22),0 2px 8px rgba(0,0,0,.25);}
@media(max-width:720px){
 .glass-header{gap:8px;}
 .brand{gap:7px;flex:1;min-width:0;}
 .logo{width:51px;height:51px;flex:0 0 51px;}
 .logo img{width:51px;height:51px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.4));}
 .brand-copy{gap:4px;flex:1;}
 .brand-copy b{font-size:clamp(15px,4.3vw,20px);gap:4px;letter-spacing:0;}
 .brand-copy small{font-size:clamp(6px,1.65vw,8px);letter-spacing:.055em;padding:4px 5px 3px;line-height:1.15;}
 .cart-button{gap:5px;padding:8px;}
}
@media(max-width:370px){
 .logo{width:43px;height:43px;flex-basis:43px;}
 .logo img{width:43px;height:43px;}
 .brand-copy b{font-size:14px;gap:3px;}
 .brand-copy small{font-size:6px;letter-spacing:.025em;padding:3px 4px;}
 .cart-button{padding:7px;}
 .cart-icon{font-size:16px;}
}

/* Условия доставки Sweet Vegas */
.delivery-terms{margin:12px 0 16px;padding:15px 16px;border:1px solid rgba(255,45,55,.48);border-radius:16px;background:linear-gradient(135deg,rgba(255,35,48,.13),rgba(255,255,255,.045));box-shadow:0 8px 22px rgba(0,0,0,.12);color:#fff}
.delivery-terms-title{font-size:16px;font-weight:950;color:#ff656b;margin-bottom:9px;letter-spacing:.01em}
.delivery-term{font-size:14px;line-height:1.4;padding:4px 0}
.delivery-term strong{font-weight:850}
@media(max-width:480px){.delivery-terms{padding:12px 13px;margin:10px 0 14px}.delivery-terms-title{font-size:15px}.delivery-term{font-size:13px}}


/* Sweet Vegas: softer, more premium motion */
@keyframes sv-card-arrive {
  from { opacity: 0; transform: translateY(15px) scale(.975); filter: blur(3px); }
  to { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
}
@keyframes sv-detail-arrive {
  from { opacity: 0; transform: translateY(22px) scale(.965); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes sv-image-arrive {
  from { opacity: 0; transform: scale(.92) translateY(8px); }
  to { opacity: 1; transform: scale(1) translateY(0); }
}
@keyframes sv-image-glow {
  0%, 100% { box-shadow: inset 0 0 0 rgba(97,200,245,0); }
  50% { box-shadow: inset 0 0 38px rgba(97,200,245,.075); }
}
#products .card {
  animation: sv-card-arrive 420ms cubic-bezier(.2,.75,.25,1) both;
  animation-delay: calc(min(var(--card-index, 0), 14) * 22ms);
  will-change: transform, opacity;
}
#products .card:active { transform: scale(.985); }
#products .card .photo { transition: transform 380ms cubic-bezier(.2,.75,.25,1), filter 380ms ease; }
#products .card:hover .photo { transform: scale(1.045); filter: drop-shadow(0 8px 16px rgba(97,200,245,.12)); }
#productDetail:not(.hidden) { animation: sv-overlay-in 260ms ease-out both; }
#productDetail:not(.hidden) > .product-detail {
  animation: sv-detail-arrive 360ms cubic-bezier(.16,1,.3,1) both;
}
#productDetail:not(.hidden) .detail-image-wrap {
  animation: sv-image-glow 2.8s ease-in-out 450ms 1 both;
}
#productDetail:not(.hidden) .detail-image,
#productDetail:not(.hidden) .detail-no-image {
  animation: sv-image-arrive 500ms cubic-bezier(.16,1,.3,1) 80ms both;
}
#productDetail:not(.hidden) .detail-content > * {
  animation: sv-card-arrive 360ms cubic-bezier(.2,.75,.25,1) both;
}
#productDetail:not(.hidden) .detail-content > *:nth-child(1) { animation-delay: 50ms; }
#productDetail:not(.hidden) .detail-content > *:nth-child(2) { animation-delay: 90ms; }
#productDetail:not(.hidden) .detail-content > *:nth-child(3) { animation-delay: 130ms; }
#productDetail:not(.hidden) .detail-content > *:nth-child(4) { animation-delay: 170ms; }
#productDetail:not(.hidden) .detail-content > *:nth-child(5) { animation-delay: 210ms; }
#productDetail:not(.hidden) .detail-content > *:nth-child(6) { animation-delay: 250ms; }
#detailClose { transition: transform 180ms ease, background 180ms ease, border-color 180ms ease; }
#detailClose:hover { transform: rotate(90deg); background: rgba(255,255,255,.14); border-color: rgba(255,255,255,.3); }
.primary, .icon-button, .cart-button { transition: transform 180ms ease, filter 180ms ease, box-shadow 180ms ease; }
.primary:hover:not(:disabled), .cart-button:hover { transform: translateY(-2px); filter: brightness(1.08); box-shadow: 0 16px 38px rgba(124,92,255,.28); }
.primary:active:not(:disabled), .cart-button:active { transform: scale(.98); }
@media (prefers-reduced-motion: reduce) {
  #products .card, #productDetail:not(.hidden), #productDetail:not(.hidden) > .product-detail,
  #productDetail:not(.hidden) .detail-image-wrap, #productDetail:not(.hidden) .detail-image,
  #productDetail:not(.hidden) .detail-no-image, #productDetail:not(.hidden) .detail-content > * {
    animation: none !important; filter: none !important; will-change: auto !important;
  }
}

/* Sweet Vegas — Premium boutique motion layer */
:root {
  --sv-champagne: #f1d6a2;
  --sv-champagne-soft: rgba(241, 214, 162, .18);
  --sv-luxe-shadow: 0 24px 70px rgba(0, 0, 0, .38);
}
#products .card {
  isolation: isolate;
  border-color: rgba(241, 214, 162, .13);
  background: linear-gradient(145deg, rgba(255,255,255,.105), rgba(255,255,255,.035) 55%, rgba(241,214,162,.035));
  box-shadow: 0 12px 34px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.075);
  transition: transform 420ms cubic-bezier(.2,.8,.2,1), border-color 420ms ease, box-shadow 420ms ease;
}
#products .card::before {
  content: "";
  position: absolute;
  z-index: 1;
  top: -60%;
  left: -75%;
  width: 48%;
  height: 220%;
  pointer-events: none;
  transform: rotate(22deg);
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.075), rgba(241,214,162,.12), transparent);
  transition: left 850ms cubic-bezier(.2,.8,.2,1);
}
#products .card:hover::before { left: 140%; }
#products .card:hover {
  transform: translateY(-5px) scale(1.008);
  border-color: rgba(241,214,162,.36);
  box-shadow: 0 24px 52px rgba(0,0,0,.32), 0 0 0 1px rgba(241,214,162,.055), 0 0 34px rgba(241,214,162,.055);
}
#products .card .photo {
  filter: drop-shadow(0 8px 15px rgba(0,0,0,.12));
  transition: transform 600ms cubic-bezier(.16,1,.3,1), filter 600ms ease;
}
#products .card:hover .photo {
  transform: translateY(-4px) scale(1.065);
  filter: drop-shadow(0 16px 23px rgba(0,0,0,.28)) drop-shadow(0 0 10px rgba(241,214,162,.13));
}
#products .card .price,
.detail-price {
  text-shadow: 0 0 24px rgba(241,214,162,.10);
}
#productDetail:not(.hidden) {
  backdrop-filter: blur(12px) saturate(125%);
  -webkit-backdrop-filter: blur(12px) saturate(125%);
  background: rgba(5, 7, 14, .72);
}
#productDetail:not(.hidden) > .product-detail {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(241,214,162,.23);
  background: radial-gradient(ellipse at 18% 12%, rgba(241,214,162,.095), transparent 38%), linear-gradient(145deg, rgba(28,30,43,.98), rgba(12,14,24,.985) 68%, rgba(25,20,29,.98));
  box-shadow: var(--sv-luxe-shadow), 0 0 0 1px rgba(255,255,255,.025), inset 0 1px 0 rgba(255,255,255,.09);
}
#productDetail:not(.hidden) > .product-detail::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: inherit;
  background: linear-gradient(115deg, rgba(255,255,255,.055), transparent 22%, transparent 72%, rgba(241,214,162,.035));
}
#productDetail:not(.hidden) .detail-image-wrap {
  position: relative;
  border: 1px solid rgba(241,214,162,.10);
  background: radial-gradient(ellipse at 50% 45%, rgba(241,214,162,.11), rgba(255,255,255,.035) 35%, transparent 72%);
}
#productDetail:not(.hidden) .detail-image {
  filter: drop-shadow(0 18px 22px rgba(0,0,0,.25));
  transform-origin: 50% 55%;
}
#productDetail:not(.hidden) .detail-content h2 {
  letter-spacing: -.025em;
  text-wrap: balance;
}
#productDetail:not(.hidden) .detail-price {
  color: var(--sv-champagne);
  letter-spacing: -.035em;
}
#productDetail:not(.hidden) .primary {
  box-shadow: 0 8px 24px rgba(0,0,0,.2), inset 0 1px 0 rgba(255,255,255,.16);
}
#productDetail:not(.hidden) .primary:hover:not(:disabled) {
  box-shadow: 0 12px 34px rgba(124,92,255,.25), 0 0 24px rgba(241,214,162,.09);
}
#detailClose { transition: transform 240ms cubic-bezier(.2,.8,.2,1), background 240ms ease, border-color 240ms ease; }
@media (hover: none) {
  #products .card:hover { transform: none; }
  #products .card:hover .photo { transform: none; }
  #products .card::before { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  #products .card, #products .card::before, #products .card .photo,
  #productDetail:not(.hidden) .detail-image, #detailClose {
    transition: none !important;
  }
  #products .card::before { display: none !important; }
}


/* Product detail: keep purchase action visible; scroll only the description */
#productDetail {
  overscroll-behavior: contain;
  touch-action: pan-y;
}
#productDetail > .product-detail {
  height: min(90vh, 900px);
  height: min(90dvh, 900px);
  max-height: calc(100vh - 36px);
  max-height: calc(100dvh - 36px);
  overflow: hidden;
  min-height: 0;
  overscroll-behavior: contain;
}
#productDetail .detail-content {
  min-height: 0;
  height: 100%;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
#productDetail .detail-description {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: rgba(241,214,162,.45) rgba(255,255,255,.05);
  padding-right: 8px;
  margin-bottom: 14px;
}
#productDetail .detail-description::-webkit-scrollbar { width: 6px; }
#productDetail .detail-description::-webkit-scrollbar-track { background: rgba(255,255,255,.045); border-radius: 99px; }
#productDetail .detail-description::-webkit-scrollbar-thumb { background: rgba(241,214,162,.42); border-radius: 99px; }
#productDetail .detail-content > .primary {
  position: relative;
  flex: 0 0 auto;
  width: 100%;
  margin-top: 10px;
  margin-bottom: 0;
  z-index: 2;
  box-shadow: 0 -8px 24px rgba(12,14,24,.22), 0 8px 24px rgba(0,0,0,.2), inset 0 1px 0 rgba(255,255,255,.16);
}
@media (max-width: 720px) {
  #productDetail { padding: 10px; }
  #productDetail > .product-detail {
    height: calc(94dvh - 20px);
    max-height: calc(94dvh - 20px);
    padding: 14px;
    gap: 8px;
    grid-template-rows: minmax(110px, 27dvh) minmax(0, 1fr);
    overflow: hidden;
  }
  #productDetail .detail-image-wrap {
    min-height: 0;
    height: 100%;
    max-height: none;
  }
  #productDetail .detail-image { max-height: 25dvh; }
  #productDetail .detail-content {
    min-height: 0;
    height: 100%;
    padding: 2px 1px 0;
  }
  #productDetail .detail-description { font-size: 14px; line-height: 1.5; }
}


/* SWEET VEGAS cinematic startup intro — original racing-game-inspired motion */
/* SWEET VEGAS intro sequence: logo reveal, gathering lettering, edge-light wipe */
.sv-intro{--sv-intro-time:4.3s}
.sv-intro-content{animation:none}
.sv-intro-kicker,.sv-intro-line,.sv-intro-subtitle{opacity:0;animation:sv-detail-reveal .55s 2.15s ease-out forwards}
.sv-intro-logo{opacity:0;transform:scale(.72);animation:sv-logo-first .9s .18s cubic-bezier(.16,1,.3,1) forwards,sv-logo-pulse 2.8s 1.25s ease-in-out infinite}
.sv-intro-title{display:flex;align-items:center;justify-content:center;gap:.22em;position:relative;z-index:4;perspective:700px}
.sv-intro-title .sv-word-sweet,.sv-intro-title .sv-word-vegas{display:inline-flex;white-space:nowrap}
.sv-intro-title i,.sv-intro-title b{display:inline-block;font-style:normal;opacity:0;will-change:transform,opacity,filter}
.sv-intro-title i{color:#fff;animation:sv-letter-from-left .8s calc(.48s + var(--letter)*.095s) cubic-bezier(.16,1,.3,1) forwards}
.sv-intro-title b{font-weight:950;background:linear-gradient(100deg,#fff1c9 0%,#d8b879 28%,#fff4d9 47%,#c49b58 72%,#fff0c7 100%);background-size:220% 100%;color:transparent;background-clip:text;-webkit-background-clip:text;animation:sv-letter-from-right .8s calc(.55s + var(--letter)*.095s) cubic-bezier(.16,1,.3,1) forwards,sv-gold-sweep 2.2s 1.3s ease-in-out both}
.sv-intro-wash{position:absolute;z-index:8;inset:-20%;pointer-events:none;opacity:0;background:radial-gradient(ellipse at 50% 50%,rgba(255,255,255,.98) 0%,rgba(255,239,199,.88) 18%,rgba(244,198,115,.38) 36%,rgba(255,255,255,0) 68%);transform:scale(.12);filter:blur(18px);animation:sv-screen-wash 1.15s 3.25s cubic-bezier(.16,.75,.22,1) forwards}
.sv-edge-light{position:absolute;z-index:7;left:0;right:0;height:2px;opacity:0;pointer-events:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.85) 20%,#ffe8b2 50%,rgba(255,255,255,.85) 80%,transparent 100%);box-shadow:0 0 18px 5px rgba(255,220,153,.65),0 0 65px 18px rgba(255,230,184,.28)}
.sv-edge-light-top{top:0;animation:sv-edge-flash 1.25s 2.95s ease-out forwards}
.sv-edge-light-bottom{bottom:0;animation:sv-edge-flash 1.25s 3.05s ease-out forwards}
.sv-intro.is-leaving .sv-intro-wash{opacity:1;transform:scale(2.8);filter:blur(32px)}
@keyframes sv-logo-first{0%{opacity:0;transform:scale(.72);filter:brightness(2.2) blur(8px)}65%{opacity:1;filter:brightness(1.4) blur(0)}100%{opacity:1;transform:scale(1);filter:brightness(1)}}
@keyframes sv-letter-from-left{0%{opacity:0;transform:translate3d(-65vw,0,120px) rotateY(-65deg) scale(.65);filter:blur(10px)}70%{opacity:1;filter:blur(0)}100%{opacity:1;transform:translate3d(0,0,0) rotateY(0) scale(1)}}
@keyframes sv-letter-from-right{0%{opacity:0;transform:translate3d(65vw,0,120px) rotateY(65deg) scale(.65);filter:blur(10px)}70%{opacity:1;filter:blur(0)}100%{opacity:1;transform:translate3d(0,0,0) rotateY(0) scale(1)}}
@keyframes sv-detail-reveal{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes sv-edge-flash{0%{opacity:0;transform:scaleX(.12)}24%{opacity:1;transform:scaleX(1)}65%{opacity:.9}100%{opacity:0;transform:scaleX(1)}}
@keyframes sv-screen-wash{0%{opacity:0;transform:scale(.12)}24%{opacity:.3}58%{opacity:.88;transform:scale(1.25)}100%{opacity:0;transform:scale(2.8)}}

.sv-intro{position:fixed;inset:0;z-index:100000;display:grid;place-items:center;overflow:hidden;background:radial-gradient(ellipse at 50% 48%,#24202d 0%,#10111b 43%,#05060b 100%);color:#fff;opacity:1;visibility:visible;transition:opacity .8s cubic-bezier(.22,.7,.2,1),visibility .8s;isolation:isolate}
.sv-intro.is-leaving{opacity:0;visibility:hidden;pointer-events:none}
.sv-intro-grain{position:absolute;inset:-50%;opacity:.12;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.25'/%3E%3C/svg%3E");animation:sv-grain-drift .25s steps(2) infinite;pointer-events:none}
.sv-intro:before,.sv-intro:after{content:"";position:absolute;left:-20%;right:-20%;height:1px;opacity:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.65),rgba(244,199,115,.85),transparent);transform:rotate(-12deg);animation:sv-speedline 1.4s .15s ease-out both}
.sv-intro:after{top:70%;animation-delay:.5s;transform:rotate(9deg)}
.sv-intro-orbit{position:absolute;width:min(78vw,900px);aspect-ratio:1;border:1px solid rgba(236,205,150,.13);border-radius:50%;box-shadow:0 0 70px rgba(187,78,255,.07),inset 0 0 70px rgba(53,150,255,.04);opacity:0;animation:sv-orbit-in 1.8s .1s cubic-bezier(.15,.8,.25,1) forwards}
.sv-orbit-two{width:min(58vw,670px);border-color:rgba(99,185,255,.12);animation-delay:.25s;transform:rotateX(66deg) scaleY(.42)}
.sv-intro-flare{position:absolute;width:45vw;height:45vw;max-width:620px;max-height:620px;border-radius:50%;background:conic-gradient(from 210deg,transparent,rgba(67,151,255,.1),transparent,rgba(246,180,91,.11),transparent);filter:blur(28px);animation:sv-flare-spin 5s linear infinite;pointer-events:none}
.sv-intro-content{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;text-align:center;width:min(90vw,720px);animation:sv-brand-arrive 1.2s .18s cubic-bezier(.16,1,.3,1) both}
.sv-intro-kicker,.sv-intro-subtitle{font-size:clamp(9px,1.1vw,12px);font-weight:800;letter-spacing:.32em;color:#b9b6c7;text-transform:uppercase}
.sv-intro-logo{width:clamp(140px,25vw,270px);height:clamp(100px,20vw,200px);display:grid;place-items:center;margin:4px 0 -3px;filter:drop-shadow(0 0 22px rgba(94,166,255,.23)) drop-shadow(0 0 38px rgba(231,77,174,.13));animation:sv-logo-first .9s .18s cubic-bezier(.16,1,.3,1) forwards,sv-logo-pulse 2.8s 1.25s ease-in-out infinite}
.sv-intro-logo img{width:100%;height:100%;object-fit:contain}
.sv-intro-title{font-size:clamp(30px,6vw,68px);font-weight:950;letter-spacing:.12em;line-height:1.05;text-shadow:0 4px 25px rgba(0,0,0,.55);white-space:nowrap}
.sv-intro-title span{color:#f8f7fb}.sv-intro-title b{font-weight:950;background:linear-gradient(100deg,#fff1c9 0%,#d8b879 28%,#fff4d9 47%,#c49b58 72%,#fff0c7 100%);background-size:220% 100%;color:transparent;background-clip:text;-webkit-background-clip:text;animation:sv-letter-from-right .8s calc(.55s + var(--letter)*.095s) cubic-bezier(.16,1,.3,1) forwards,sv-gold-sweep 2.2s 1.3s ease-in-out both}
.sv-intro-line{width:min(54vw,350px);height:1px;margin:24px 0 17px;background:rgba(255,255,255,.12);overflow:hidden}.sv-intro-line i{display:block;width:100%;height:100%;background:linear-gradient(90deg,transparent,#f4d69c,#fff,transparent);transform:translateX(-110%);animation:sv-line-reveal 1.25s .65s cubic-bezier(.2,.8,.2,1) forwards;box-shadow:0 0 12px #f4d69c}
.sv-intro-bottom{position:absolute;z-index:2;left:clamp(18px,4vw,48px);right:clamp(18px,4vw,48px);bottom:clamp(18px,3.5vh,38px);display:flex;justify-content:space-between;gap:18px;font-size:9px;letter-spacing:.2em;font-weight:800;color:#777888}
.sv-loading{display:flex;align-items:center;gap:5px}.sv-loading i{display:block;width:4px;height:4px;border-radius:50%;background:#e7c88e;animation:sv-load-dot .8s ease-in-out infinite alternate}.sv-loading i:nth-child(2){animation-delay:.18s}.sv-loading i:nth-child(3){animation-delay:.36s}
@keyframes sv-brand-arrive{0%{opacity:0;transform:translateY(24px) scale(.88);filter:blur(12px)}55%{opacity:1;filter:blur(0)}100%{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}
@keyframes sv-orbit-in{0%{opacity:0;transform:scale(.58) rotate(-20deg)}45%{opacity:.8}100%{opacity:.42;transform:scale(1) rotate(0)}}
@keyframes sv-flare-spin{to{transform:rotate(360deg) scale(1.08)}}@keyframes sv-logo-pulse{0%,100%{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.035);filter:brightness(1.12)}}
@keyframes sv-gold-sweep{0%{background-position:100% 0}100%{background-position:0 0}}@keyframes sv-line-reveal{to{transform:translateX(110%)}}
@keyframes sv-speedline{0%{opacity:0;transform:translateX(-15%) rotate(-12deg)}18%{opacity:.7}100%{opacity:0;transform:translateX(15%) rotate(-12deg)}}@keyframes sv-grain-drift{0%{transform:translate(0,0)}100%{transform:translate(-2%,1%)}}@keyframes sv-load-dot{to{opacity:.25;transform:scale(.65)}}
@media(max-width:600px){
  .sv-intro-content{width:94vw;max-width:94vw;}
  .sv-intro-kicker{font-size:9px;letter-spacing:.2em;}
  .sv-intro-logo{width:clamp(112px,34vw,170px);height:clamp(82px,25vw,125px);margin:2px 0 7px;}
  .sv-intro-title{font-size:clamp(34px,9vw,48px);letter-spacing:.035em;line-height:1.08;white-space:nowrap;text-shadow:0 3px 8px rgba(0,0,0,.9),0 0 28px rgba(244,214,156,.22);}
  .sv-intro-title .sv-word-sweet i{color:#fff;}
  .sv-intro-title b{display:inline-block;text-shadow:0 0 18px rgba(244,214,156,.2);}
  .sv-intro-line{width:64vw;margin:17px 0 13px;}
  .sv-intro-subtitle{font-size:9px;letter-spacing:.12em;line-height:1.6;max-width:88vw;}
  .sv-intro-bottom{left:14px;right:14px;bottom:16px;font-size:7px;letter-spacing:.08em;gap:8px;}
  .sv-loading{gap:4px;}
  .sv-intro-orbit{width:110vw;}
  .sv-orbit-two{width:85vw;}
}
@media(max-width:370px){
  .sv-intro-title{font-size:31px;letter-spacing:0;}
  .sv-intro-logo{width:108px;height:78px;}
  .sv-intro-kicker{font-size:8px;letter-spacing:.16em;}
  .sv-intro-bottom{font-size:6px;}
}
@media(prefers-reduced-motion:reduce){.sv-intro *,.sv-intro:before,.sv-intro:after{animation-duration:.01ms!important;animation-iteration-count:1!important}.sv-intro{transition-duration:.15s}}

/* Sweet Vegas candy-logo reveal v44: visible candy flight, smaller logo, slower reveal */
.sv-candy-intro .sv-intro-content{width:min(76vw,640px);max-width:640px;display:grid;place-items:center;min-height:0;}
.sv-candy-intro .sv-intro-logo{width:min(62vw,520px);height:auto;aspect-ratio:1500/800;margin:0;position:relative;z-index:4;opacity:0;transform:scale(.72);clip-path:inset(0 50% 0 50%);filter:brightness(.7) drop-shadow(0 0 0 rgba(204,40,255,0));animation:sv-logo-assemble-v44 1.5s 2.45s cubic-bezier(.16,1,.3,1) forwards;}
.sv-candy-intro .sv-intro-logo img{width:100%;height:100%;object-fit:contain;display:block;}
.sv-candy-field{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:5;}
.sv-candy{position:absolute;left:var(--x);top:var(--y);font-size:clamp(36px,5.4vw,76px);line-height:1;opacity:0;will-change:transform,opacity;filter:drop-shadow(0 0 15px rgba(255,205,110,.65));transform:translate(0,0) rotate(var(--rot)) scale(.65);animation:sv-candy-gather-v44 1.75s var(--delay) cubic-bezier(.16,.78,.18,1) forwards;}
.c1{--x:8%;--y:15%;--dx:34vw;--dy:31vh;--rot:-70deg;--delay:.15s}.c2{--x:90%;--y:20%;--dx:-34vw;--dy:29vh;--rot:65deg;--delay:.22s}.c3{--x:17%;--y:78%;--dx:28vw;--dy:-28vh;--rot:120deg;--delay:.28s}.c4{--x:82%;--y:82%;--dx:-29vw;--dy:-31vh;--rot:-110deg;--delay:.34s}.c5{--x:48%;--y:7%;--dx:0vw;--dy:39vh;--rot:80deg;--delay:.4s}.c6{--x:3%;--y:48%;--dx:43vw;--dy:0vh;--rot:-40deg;--delay:.46s}.c7{--x:97%;--y:53%;--dx:-43vw;--dy:-2vh;--rot:90deg;--delay:.52s}.c8{--x:31%;--y:6%;--dx:15vw;--dy:36vh;--rot:140deg;--delay:.58s}.c9{--x:70%;--y:95%;--dx:-16vw;--dy:-41vh;--rot:-85deg;--delay:.64s}.c10{--x:58%;--y:92%;--dx:-6vw;--dy:-40vh;--rot:50deg;--delay:.7s}.c11{--x:1%;--y:29%;--dx:44vw;--dy:13vh;--rot:-130deg;--delay:.76s}.c12{--x:99%;--y:30%;--dx:-44vw;--dy:13vh;--rot:120deg;--delay:.82s}.c13{--x:26%;--y:96%;--dx:21vw;--dy:-42vh;--rot:70deg;--delay:.88s}.c14{--x:75%;--y:4%;--dx:-20vw;--dy:39vh;--rot:-70deg;--delay:.94s}.c15{--x:42%;--y:2%;--dx:5vw;--dy:42vh;--rot:160deg;--delay:1s}.c16{--x:12%;--y:60%;--dx:32vw;--dy:-9vh;--rot:-45deg;--delay:1.06s}.c17{--x:88%;--y:65%;--dx:-33vw;--dy:-11vh;--rot:80deg;--delay:1.12s}.c18{--x:53%;--y:98%;--dx:-2vw;--dy:-44vh;--rot:-120deg;--delay:1.18s}
@keyframes sv-candy-gather-v44{0%{opacity:0;transform:translate(calc(var(--dx)*-.75),calc(var(--dy)*-.75)) rotate(var(--rot)) scale(.55)}12%{opacity:1}68%{opacity:1;filter:drop-shadow(0 0 22px rgba(255,215,135,.8))}100%{opacity:0;transform:translate(var(--dx),var(--dy)) rotate(0) scale(.18)}}
@keyframes sv-logo-assemble-v44{0%{opacity:0;transform:scale(.72);clip-path:inset(0 50% 0 50%);filter:brightness(1.8) blur(5px) drop-shadow(0 0 0 rgba(204,40,255,0))}55%{opacity:1;clip-path:inset(0 0 0 0);filter:brightness(1.25) blur(0) drop-shadow(0 0 34px rgba(204,40,255,.55))}78%{transform:scale(1.025)}100%{opacity:1;transform:scale(1);clip-path:inset(0 0 0 0);filter:brightness(1) drop-shadow(0 0 18px rgba(204,40,255,.28))}}
.sv-candy-intro .sv-edge-light{animation-delay:4.6s!important}.sv-candy-intro .sv-intro-wash{animation-delay:4.95s}.sv-candy-intro .sv-intro-flare{animation-delay:3.9s!important}
@media(max-width:600px){.sv-candy-intro .sv-intro-content{width:94vw;max-width:94vw}.sv-candy-intro .sv-intro-logo{width:min(76vw,360px)}.sv-candy{font-size:clamp(34px,9vw,52px)}}
@media(max-height:500px){.sv-candy-intro .sv-intro-logo{width:min(48vw,360px)}}
@media(prefers-reduced-motion:reduce){.sv-candy{display:none!important}.sv-candy-intro .sv-intro-logo{animation:none;opacity:1;transform:none;clip-path:none;filter:none}}


/* Sweet Vegas precise logo assembly: particles sample the real transparent logo. */
.sv-candy-intro .sv-candy{font-size:clamp(54px,7vw,96px);filter:drop-shadow(0 5px 20px rgba(255,195,90,.55));}
.sv-candy-intro .sv-intro-logo{opacity:0;clip-path:none!important;animation:none;width:min(52vw,440px);height:auto;aspect-ratio:1500/800;filter:none;}
.sv-candy-intro .sv-intro-logo img{opacity:0;}
.sv-logo-particles{position:absolute;z-index:6;inset:0;width:100%;height:100%;pointer-events:none;}
.sv-candy-intro .sv-candy-field{z-index:5;}
@media(max-width:600px){.sv-candy-intro .sv-intro-logo{width:min(70vw,330px)}.sv-candy-intro .sv-candy{font-size:clamp(44px,11vw,68px)}}


/* Sweet Vegas lightweight cinematic intro: logo approaches from darkness, then a soft flash reveals the catalog. */
.sv-candy-intro .sv-intro-content{width:min(80vw,560px);max-width:80vw;display:grid;place-items:center;animation:none;}
.sv-candy-intro .sv-intro-logo{width:min(48vw,390px)!important;height:auto!important;aspect-ratio:1500/800;margin:0;opacity:0;clip-path:none!important;transform:scale(.58);filter:brightness(.72) drop-shadow(0 0 0 rgba(255,220,160,0));animation:sv-simple-logo-arrive 2.15s cubic-bezier(.16,1,.3,1) .2s forwards;}
.sv-candy-intro .sv-intro-logo img{display:block;width:100%;height:100%;object-fit:contain;opacity:1;}
.sv-candy-intro .sv-intro-grain,.sv-candy-intro .sv-intro-orbit,.sv-candy-intro .sv-intro-flare,.sv-candy-intro .sv-candy-field,.sv-candy-intro .sv-intro-kicker,.sv-candy-intro .sv-intro-title,.sv-candy-intro .sv-intro-line,.sv-candy-intro .sv-intro-subtitle,.sv-candy-intro .sv-intro-bottom{display:none!important;}
.sv-candy-intro .sv-intro:before,.sv-candy-intro .sv-intro:after{display:none!important;}
.sv-candy-intro .sv-edge-light{height:18vh;width:100%;left:0;right:0;opacity:0;filter:blur(18px);transform:scaleX(.3);background:linear-gradient(180deg,rgba(255,255,255,.9),rgba(255,220,160,.42),transparent);}
.sv-candy-intro .sv-edge-light-top{top:0;animation:sv-simple-edge 1s 2.65s ease-out forwards!important;}
.sv-candy-intro .sv-edge-light-bottom{bottom:0;transform:scaleX(.3) rotate(180deg);animation:sv-simple-edge 1s 2.65s ease-out forwards!important;}
.sv-candy-intro .sv-intro-wash{z-index:8;opacity:0;transform:scale(.6);filter:blur(8px);background:radial-gradient(ellipse at center,rgba(255,255,255,1) 0%,rgba(255,240,205,.92) 22%,rgba(225,184,255,.32) 45%,rgba(255,255,255,0) 70%);animation:sv-simple-flash 1s 2.9s ease-out forwards;}
.sv-candy-intro.is-leaving .sv-intro-wash{opacity:1;transform:scale(2.2);filter:blur(20px);}
@keyframes sv-simple-logo-arrive{0%{opacity:0;transform:scale(.58);filter:brightness(.35) blur(8px) drop-shadow(0 0 0 rgba(255,220,160,0));}55%{opacity:1;filter:brightness(1.12) blur(0) drop-shadow(0 0 24px rgba(112,157,255,.25));}78%{transform:scale(1.035);}100%{opacity:1;transform:scale(1);filter:brightness(1) blur(0) drop-shadow(0 0 24px rgba(255,220,160,.16));}}
@keyframes sv-simple-edge{0%{opacity:0;transform:scaleX(.2)}35%{opacity:.95;transform:scaleX(1)}100%{opacity:0;transform:scaleX(1)}}
@keyframes sv-simple-flash{0%{opacity:0;transform:scale(.6)}35%{opacity:.95;transform:scale(1.2)}100%{opacity:0;transform:scale(2.4)}}
@media(max-width:600px){.sv-candy-intro .sv-intro-content{width:94vw;max-width:94vw}.sv-candy-intro .sv-intro-logo{width:min(66vw,290px)!important}}
@media(prefers-reduced-motion:reduce){.sv-candy-intro .sv-intro-logo{animation:none;opacity:1;transform:none;filter:none}.sv-candy-intro .sv-intro-wash,.sv-candy-intro .sv-edge-light{display:none!important}}

/* Hotfix: force the intro's real logo to render above the dark background. */
#sv-intro.sv-candy-intro{isolation:isolate;}
#sv-intro.sv-candy-intro .sv-intro-content{position:relative!important;z-index:5!important;display:flex!important;align-items:center!important;justify-content:center!important;opacity:1!important;visibility:visible!important;}
#sv-intro.sv-candy-intro .sv-intro-logo{display:block!important;position:relative!important;z-index:6!important;width:min(48vw,390px)!important;height:auto!important;aspect-ratio:1500/800!important;opacity:1;visibility:visible!important;clip-path:none!important;transform-origin:center!important;animation:sv-logo-visible-fix 2.15s cubic-bezier(.16,1,.3,1) .2s both;}
#sv-intro.sv-candy-intro .sv-intro-logo img{display:block!important;width:100%!important;height:100%!important;object-fit:contain!important;opacity:1;visibility:visible!important;}
@keyframes sv-logo-visible-fix{0%{opacity:.05;transform:scale(.62);filter:brightness(.45) blur(5px)}60%{opacity:1;transform:scale(1.035);filter:brightness(1.15) blur(0) drop-shadow(0 0 22px rgba(255,220,160,.22))}100%{opacity:1;transform:scale(1);filter:brightness(1) blur(0) drop-shadow(0 0 18px rgba(255,220,160,.18))}}
@media(max-width:600px){#sv-intro.sv-candy-intro .sv-intro-logo{width:min(66vw,290px)!important;}}
@media(prefers-reduced-motion:reduce){#sv-intro.sv-candy-intro .sv-intro-logo{animation:none;opacity:1;transform:none;filter:none;}}

/* Smooth cinematic approach: one continuous GPU-friendly transform, then flash. */
#sv-intro.sv-candy-intro .sv-intro-logo{animation:sv-logo-smooth-approach 3.15s cubic-bezier(.18,.72,.22,1) .15s both;will-change:transform,opacity;backface-visibility:hidden;}
@keyframes sv-logo-smooth-approach{
  0%{opacity:.08;transform:translateZ(0) scale(.035);filter:brightness(.8) drop-shadow(0 0 0 rgba(255,220,160,0));}
  18%{opacity:.32;}
  55%{opacity:.82;transform:translateZ(0) scale(.56);filter:brightness(1.02) drop-shadow(0 0 10px rgba(255,220,160,.08));}
  82%{opacity:1;transform:translateZ(0) scale(.91);filter:brightness(1.06) drop-shadow(0 0 16px rgba(255,220,160,.13));}
  100%{opacity:1;transform:translateZ(0) scale(1);filter:brightness(1) drop-shadow(0 0 18px rgba(255,220,160,.18));}
}
#sv-intro.sv-candy-intro .sv-edge-light-top{animation-delay:3.05s!important;}
#sv-intro.sv-candy-intro .sv-edge-light-bottom{animation-delay:3.05s!important;}
#sv-intro.sv-candy-intro .sv-intro-wash{animation-delay:3.28s;}
@media(max-width:600px){#sv-intro.sv-candy-intro .sv-intro-logo{animation-duration:3.15s;width:min(66vw,290px)!important;}}
@media(prefers-reduced-motion:reduce){#sv-intro.sv-candy-intro .sv-intro-logo{animation:none;opacity:1;transform:none;filter:none;}}

/* Smoothness refinement: animate only compositor-friendly opacity/transform; keep filters static to avoid frame drops. */
#sv-intro.sv-candy-intro .sv-intro-logo{
  animation:sv-logo-glide-final 3.35s cubic-bezier(.22,.61,.36,1) .12s both;
  transform-origin:50% 50%;
  transform:translate3d(0,0,0) scale(.035);
  opacity:0;
  filter:drop-shadow(0 0 16px rgba(255,220,160,.16));
  will-change:transform,opacity;
  backface-visibility:hidden;
}
@keyframes sv-logo-glide-final{
  0%{opacity:0;transform:translate3d(0,0,0) scale(.035)}
  8%{opacity:.18;transform:translate3d(0,0,0) scale(.075)}
  35%{opacity:.58;transform:translate3d(0,0,0) scale(.32)}
  68%{opacity:.92;transform:translate3d(0,0,0) scale(.73)}
  88%{opacity:1;transform:translate3d(0,0,0) scale(.96)}
  96%{opacity:1;transform:translate3d(0,0,0) scale(1.008)}
  100%{opacity:1;transform:translate3d(0,0,0) scale(1)}
}
#sv-intro.sv-candy-intro .sv-edge-light-top,#sv-intro.sv-candy-intro .sv-edge-light-bottom{animation-delay:3.32s!important}
#sv-intro.sv-candy-intro .sv-intro-wash{animation-delay:3.55s}
@media(max-width:600px){#sv-intro.sv-candy-intro .sv-intro-logo{animation-duration:3.35s}}
@media(prefers-reduced-motion:reduce){#sv-intro.sv-candy-intro .sv-intro-logo{animation:none;opacity:1;transform:none;will-change:auto!important}}

/* Final refinement: constant-rate, uninterrupted logo approach. No mid-animation scale stops or animated filters. */
#sv-intro.sv-candy-intro .sv-intro-logo{
  animation:sv-logo-constant-glide 3.6s linear .12s both;
  transform-origin:50% 50%;
  will-change:transform,opacity;
  filter:drop-shadow(0 0 16px rgba(255,220,160,.16));
}
@keyframes sv-logo-constant-glide{
  0%{opacity:0;transform:translate3d(0,0,0) scale(.025)}
  7%{opacity:1;transform:translate3d(0,0,0) scale(.09)}
  100%{opacity:1;transform:translate3d(0,0,0) scale(1)}
}
#sv-intro.sv-candy-intro .sv-edge-light-top,#sv-intro.sv-candy-intro .sv-edge-light-bottom{animation-delay:3.72s!important}
#sv-intro.sv-candy-intro .sv-intro-wash{animation-delay:3.94s}
@media(max-width:600px){#sv-intro.sv-candy-intro .sv-intro-logo{animation-duration:3.6s}}
@media(prefers-reduced-motion:reduce){#sv-intro.sv-candy-intro .sv-intro-logo{animation:none;opacity:1;transform:none;will-change:auto!important}}

/* Sweet Vegas — smooth logo start, no initial jump */
#sv-intro.sv-candy-intro .sv-intro-logo {
  animation: sv-logo-final-smooth 3.6s linear 0.12s both;
  transform-origin: 50% 50%;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  will-change: transform, opacity;
}

@keyframes sv-logo-final-smooth {
  0% {
    opacity: 0;
    transform: translate3d(0, 0, 0) scale(0.025);
  }
  3% {
    opacity: 0.35;
    transform: translate3d(0, 0, 0) scale(0.04);
  }
  10% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(0.1);
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
}

#sv-intro.sv-candy-intro .sv-edge-light-top,
#sv-intro.sv-candy-intro .sv-edge-light-bottom {
  animation-delay: 3.82s !important;
}

#sv-intro.sv-candy-intro .sv-intro-wash {
  animation-delay: 4.02s;
}
/* Sweet Vegas: single smooth logo motion override */
#sv-intro.sv-candy-intro .sv-intro-logo {
  animation: sv-logo-one-pass 3.8s linear 0.12s both;
  transform-origin: 50% 50% !important;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  will-change: transform, opacity;
  filter: none;
}

@keyframes sv-logo-one-pass {
  0% {
    opacity: 0;
    transform: translate3d(0, 0, 0) scale(0.01);
  }
  8% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(0.08);
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
}

#sv-intro.sv-candy-intro .sv-intro-logo img {
  filter: none;
}

@media (prefers-reduced-motion: reduce) {
  #sv-intro.sv-candy-intro .sv-intro-logo {
    animation: none;
    opacity: 1;
    transform: none;
    filter: none;
  }
}

/* TEMP TEST: disable intro lines and flashes to diagnose logo stutter */
#sv-intro.sv-candy-intro::before,
#sv-intro.sv-candy-intro::after,
#sv-intro.sv-candy-intro .sv-edge-light,
#sv-intro.sv-candy-intro .sv-intro-wash {
  display: none !important;
  animation: none;
}

#sv-intro.sv-candy-intro .sv-intro-content {
  animation: none !important;
  filter: none !important;
}

/* TEMP TEST: isolate the logo animation */
#sv-intro.sv-candy-intro .sv-intro-content {
  animation: none !important;
  transition: none !important;
  transform: none !important;
  filter: none !important;
  opacity: 1 !important;
}

#sv-intro.sv-candy-intro .sv-intro-logo {
  animation: sv-logo-isolated 3.8s linear 0.12s both;
  transition: none !important;
  transform-origin: 50% 50% !important;
  filter: none;
}

#sv-intro.sv-candy-intro .sv-intro-logo img {
  animation: none;
  transition: none !important;
  transform: none;
  filter: none;
}

@keyframes sv-logo-isolated {
  0%   { opacity: 0; transform: scale(0.01); }
  8%   { opacity: 1; transform: scale(0.08); }
  100% { opacity: 1; transform: scale(1); }
}

/* TEST: smooth opacity and scale from the very first frame */
#sv-intro.sv-candy-intro .sv-intro-logo {
  animation: sv-logo-gentle-test 3.8s linear 0.12s both;
  opacity: 0;
  transform-origin: 50% 50% !important;
  filter: none;
  transition: none !important;
  will-change: transform, opacity;
}

@keyframes sv-logo-gentle-test {
  0%   { opacity: 0; transform: translate3d(0,0,0) scale(0.01); }
  25%  { opacity: 0.25; transform: translate3d(0,0,0) scale(0.18); }
  60%  { opacity: 0.65; transform: translate3d(0,0,0) scale(0.58); }
  100% { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}

/* FINAL TUNING: softer logo start */
#sv-intro.sv-candy-intro .sv-intro-logo {
  animation: sv-logo-gentle-final 3.8s linear 0.12s both;
}

@keyframes sv-logo-gentle-final {
  0%   { opacity: 0; transform: translate3d(0,0,0) scale(0.008); }
  12%  { opacity: 0.12; transform: translate3d(0,0,0) scale(0.055); }
  30%  { opacity: 0.30; transform: translate3d(0,0,0) scale(0.20); }
  60%  { opacity: 0.68; transform: translate3d(0,0,0) scale(0.58); }
  100% { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}

/* FINAL INTRO: soft flash and catalog transition */
#sv-intro.sv-candy-intro .sv-edge-light {
  display: block !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  height: 24vh !important;
  opacity: 0 !important;
  filter: blur(18px) !important;
  transform: scaleX(.35) !important;
  pointer-events: none !important;
  background: linear-gradient(
    180deg,
    rgba(255,255,255,.85),
    rgba(255,220,160,.38),
    transparent
  ) !important;
  animation: sv-final-edge-flash .8s ease-out 3.45s forwards !important;
}

#sv-intro.sv-candy-intro .sv-edge-light-top {
  top: 0 !important;
  bottom: auto !important;
}

#sv-intro.sv-candy-intro .sv-edge-light-bottom {
  bottom: 0 !important;
  top: auto !important;
  transform: scaleX(.35) rotate(180deg) !important;
}

@keyframes sv-final-edge-flash {
  0%   { opacity: 0; transform: scaleX(.35); }
  35%  { opacity: .8; transform: scaleX(1); }
  100% { opacity: 0; transform: scaleX(1.15); }
}

#sv-intro.sv-candy-intro .sv-intro-wash {
  display: block !important;
  pointer-events: none !important;
  animation: sv-final-wash .65s ease-out 3.65s forwards;
}

@keyframes sv-final-wash {
  0%   { opacity: 0; transform: scale(.7); }
  35%  { opacity: .7; transform: scale(1.15); }
  100% { opacity: 0; transform: scale(1.8); }
}


/* SWEET VEGAS — RED / BLUE LIGHTNING INTRO */
#sv-intro.sv-candy-intro {
  background: #020309 !important;
  overflow: hidden !important;
  isolation: isolate;
}

#sv-intro.sv-candy-intro::before,
#sv-intro.sv-candy-intro::after {
  content: "";
  position: absolute;
  inset: -20%;
  pointer-events: none;
  z-index: 1;
  opacity: 0;
  transform: scale(1.08);
}

#sv-intro.sv-candy-intro::before {
  background:
    linear-gradient(112deg,
      transparent 25%,
      rgba(255, 20, 50, .05) 35%,
      rgba(255, 24, 55, .9) 35.3%,
      rgba(255, 95, 105, .95) 35.5%,
      rgba(255, 15, 48, .35) 35.8%,
      transparent 37%),
    linear-gradient(125deg,
      transparent 45%,
      rgba(255, 30, 55, .7) 45.2%,
      rgba(255, 30, 55, .08) 45.5%,
      transparent 47%),
    radial-gradient(ellipse at 20% 50%,
      rgba(255, 0, 45, .22), transparent 48%);
  filter: drop-shadow(0 0 18px rgba(255, 0, 50, .9));
  clip-path: polygon(
    0 0, 100% 0, 100% 100%, 0 100%,
    0 62%, 18% 56%, 22% 49%, 30% 53%,
    37% 38%, 43% 42%, 48% 30%, 54% 37%,
    62% 22%, 69% 31%, 76% 16%, 84% 28%,
    100% 19%, 100% 100%, 0 100%
  );
  animation: sv-red-electric 3.7s ease-out .05s both;
}

#sv-intro.sv-candy-intro::after {
  background:
    linear-gradient(68deg,
      transparent 38%,
      rgba(0, 65, 255, .08) 43%,
      rgba(15, 105, 255, .95) 43.3%,
      rgba(100, 190, 255, .95) 43.5%,
      rgba(0, 75, 255, .32) 43.8%,
      transparent 45%),
    linear-gradient(55deg,
      transparent 53%,
      rgba(0, 105, 255, .7) 53.2%,
      rgba(0, 105, 255, .08) 53.5%,
      transparent 55%),
    radial-gradient(ellipse at 80% 48%,
      rgba(0, 75, 255, .26), transparent 48%);
  filter: drop-shadow(0 0 20px rgba(0, 90, 255, .95));
  clip-path: polygon(
    0 0, 100% 0, 100% 100%, 0 100%,
    100% 65%, 83% 57%, 78% 63%, 70% 45%,
    63% 51%, 57% 35%, 50% 41%, 44% 25%,
    36% 34%, 29% 18%, 21% 29%, 0 17%,
    0 100%
  );
  animation: sv-blue-electric 3.7s ease-out .1s both;
}

#sv-intro.sv-candy-intro .sv-intro-content {
  position: relative !important;
  z-index: 3 !important;
}

#sv-intro.sv-candy-intro .sv-intro-logo {
  opacity: 0;
  transform: scale(1);
  animation: sv-logo-lightning-reveal 3.7s ease-out .25s both;
  filter: drop-shadow(0 0 24px rgba(255, 255, 255, .22));
  will-change: opacity, filter;
}

#sv-intro.sv-candy-intro .sv-intro-logo img {
  transform: none;
  animation: none;
}

#sv-intro.sv-candy-intro .sv-intro-wash {
  z-index: 4 !important;
  background: #fff !important;
  animation: sv-lightning-flash .65s ease-out 3.35s both;
}

#sv-intro.sv-candy-intro.is-leaving {
  animation: sv-lightning-exit .9s ease-out both !important;
}

@keyframes sv-red-electric {
  0%, 8% { opacity: 0; }
  14% { opacity: .95; }
  19% { opacity: .2; }
  26% { opacity: .85; }
  38% { opacity: .5; }
  55% { opacity: .3; }
  75%, 100% { opacity: .04; }
}

@keyframes sv-blue-electric {
  0%, 12% { opacity: 0; }
  20% { opacity: .95; }
  25% { opacity: .25; }
  33% { opacity: .9; }
  43% { opacity: .5; }
  58% { opacity: .22; }
  75%, 100% { opacity: .03; }
}

@keyframes sv-logo-lightning-reveal {
  0%, 12% {
    opacity: 0;
    transform: scale(1);
    filter: brightness(.5);
  }
  32% {
    opacity: .65;
    transform: scale(1);
    filter: brightness(1.2);
  }
  48% {
    opacity: 1;
    transform: scale(1);
    filter: brightness(1);
  }
  82%, 100% {
    opacity: 1;
    transform: scale(1);
    filter: brightness(1);
  }
}

@keyframes sv-lightning-flash {
  0%, 25% { opacity: 0; }
  38% { opacity: .92; }
  53% { opacity: .15; }
  100% { opacity: 0; }
}

@keyframes sv-lightning-exit {
  to { opacity: 0; visibility: hidden; }
}

@media (prefers-reduced-motion: reduce) {
  #sv-intro.sv-candy-intro::before,
  #sv-intro.sv-candy-intro::after,
  #sv-intro.sv-candy-intro .sv-intro-logo,
  #sv-intro.sv-candy-intro .sv-intro-wash {
    animation-duration: .01ms;
  }
}


/* SWEET VEGAS INTRO — V5: fade in + gentle pulse + full-screen white flash.
   Critical: animated properties below are NOT !important, so keyframes can run. */
#sv-intro.sv-intro.sv-candy-intro {
  display:flex!important; position:fixed!important; inset:0!important;
  width:100vw!important; height:100vh!important; min-height:100dvh!important;
  margin:0!important; padding:0!important; overflow:hidden!important;
  background:#020207!important; z-index:2147483000!important; isolation:isolate!important;
  opacity:1; visibility:visible;
}
#sv-intro.sv-intro.sv-candy-intro .sv-intro-content {
  display:flex!important; position:absolute!important; inset:0!important;
  width:100%!important; max-width:none!important; height:100%!important;
  margin:0!important; padding:24px!important; align-items:center!important; justify-content:center!important;
  opacity:1; visibility:visible!important; transform:none!important; z-index:10!important;
}
#sv-intro.sv-intro.sv-candy-intro .sv-intro-logo {
  display:block!important; position:relative!important;
  width:min(64vw,430px)!important; max-width:84vw!important; height:auto!important;
  margin:0!important; padding:0!important; clip-path:none!important; overflow:visible!important;
  opacity:0; visibility:visible!important; transform:none!important; filter:none;
  animation:sv-v5-logo 3.55s ease-in-out .15s both;
  will-change:opacity,filter;
}
#sv-intro.sv-intro.sv-candy-intro .sv-intro-logo img {
  display:block!important; width:100%!important; height:auto!important; max-height:none!important;
  object-fit:contain!important; opacity:1!important; visibility:visible!important;
  transform:none!important; clip-path:none!important; animation:none!important;
}
@keyframes sv-v5-logo {
  0% { opacity:0; filter:brightness(.55) drop-shadow(0 0 0 rgba(255,255,255,0)); }
  48% { opacity:1; filter:brightness(1.08) drop-shadow(0 0 20px rgba(255,255,255,.22)); }
  65% { opacity:1; filter:brightness(1.28) drop-shadow(0 0 34px rgba(255,255,255,.48)); }
  80% { opacity:1; filter:brightness(1.02) drop-shadow(0 0 18px rgba(255,255,255,.2)); }
  100% { opacity:1; filter:brightness(1.12) drop-shadow(0 0 26px rgba(255,255,255,.34)); }
}
#sv-intro.sv-intro.sv-candy-intro::before,
#sv-intro.sv-intro.sv-candy-intro::after,
#sv-intro.sv-intro.sv-candy-intro .sv-intro-grain,
#sv-intro.sv-intro.sv-candy-intro .sv-intro-orbit,
#sv-intro.sv-intro.sv-candy-intro .sv-intro-flare,
#sv-intro.sv-intro.sv-candy-intro .sv-edge-light { display:none!important; animation:none!important; }
#sv-intro.sv-intro.sv-candy-intro .sv-intro-wash {
  display:block!important; position:absolute!important; inset:0!important;
  width:100vw!important; height:100vh!important; margin:0!important; padding:0!important;
  z-index:30!important; pointer-events:none!important; background:#fff!important;
  opacity:0; visibility:visible!important; transform:none!important; filter:none!important;
  animation:sv-v5-flash .9s ease-out 3.55s both;
}
@keyframes sv-v5-flash {
  0% { opacity:0; }
  18% { opacity:.72; }
  42% { opacity:1; }
  68% { opacity:1; }
  100% { opacity:0; }
}
#sv-intro.sv-intro.sv-candy-intro.is-leaving {
  opacity:0!important; visibility:hidden!important;
  transition:opacity .45s ease-out,visibility .45s ease-out!important;
}
@media(max-width:600px) {
  #sv-intro.sv-intro.sv-candy-intro .sv-intro-logo { width:min(76vw,340px)!important; }
}


/* V53 FIX: keep the flash fully white until JS starts removing the intro.
   This prevents the logo from appearing again between the flash and catalog. */
#sv-intro.sv-intro.sv-candy-intro .sv-intro-wash {
  animation: sv-v53-flash-hold .9s ease-out 3.55s both !important;
}
@keyframes sv-v53-flash-hold {
  0%   { opacity: 0; }
  18%  { opacity: .72; }
  42%  { opacity: 1; }
  100% { opacity: 1; }
}
/* At catalog handoff, fade the entire intro (including the white flash)
   as one layer; the logo underneath is never exposed on its own. */
#sv-intro.sv-intro.sv-candy-intro.is-leaving {
  opacity: 0 !important;
  visibility: hidden !important;
  transition: opacity .45s ease-out, visibility .45s ease-out !important;
}
