.sv-special-overlay {
  position: fixed;
  inset: 0;
  z-index: 50000;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition:
    opacity 0.32s ease,
    visibility 0.32s ease;
  font-family: 'Roboto', sans-serif;
  isolation: isolate;
}

.sv-special-overlay.is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.sv-special-overlay[data-scene='yellow-flowers'] {
  background: radial-gradient(circle at 65% 42%, rgba(234, 179, 52, .16), transparent 43%),
    linear-gradient(125deg, rgba(11, 25, 26, .62), rgba(23, 33, 30, .54) 54%, rgba(39, 33, 20, .62));
  backdrop-filter: blur(2px) saturate(.85);
  color: #f8f0d8;
}

.sv-special-overlay[data-scene='yellow-flowers']::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 16% 17%, rgba(255, 239, 188, .10), transparent 32%),
    radial-gradient(circle at 88% 87%, rgba(245, 190, 52, .12), transparent 31%);
  pointer-events: none;
}

.sv-special-overlay[data-scene='yellow-flowers']::after {
  content: '';
  position: absolute;
  inset: 14px;
  border: 1px solid rgba(255, 223, 147, .24);
  border-radius: 22px;
  pointer-events: none;
}

.sv-yellow-flowers-stage {
  position: relative;
  width: min(1180px, 90vw);
  min-height: min(710px, 88vh);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, .95fr);
  align-items: center;
  gap: clamp(12px, 4vw, 70px);
}

.sv-yellow-flowers-copy {
  position: relative;
  z-index: 20;
  padding: 38px 0 48px;
  opacity: 0;
  transform: translateY(28px);
}

.sv-special-overlay.is-active .sv-yellow-flowers-copy {
  animation: svYellowFlowersRise 1.15s .25s cubic-bezier(.16, .82, .25, 1) forwards;
}

.sv-yellow-flowers-kicker {
  font: 700 12px/1.5 Georgia, serif;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: #f5d477;
  margin-bottom: 32px;
}

.sv-yellow-flowers-kicker::before {
  content: '✦';
  margin-right: 12px;
  color: #ffd64e;
}

.sv-yellow-flowers-title {
  margin: 0;
  font: 400 clamp(68px, 8vw, 124px)/.87 Georgia, 'Times New Roman', serif;
  letter-spacing: -.075em;
  color: #fff8df;
  text-shadow: 0 8px 24px rgba(0, 0, 0, .26);
}

.sv-yellow-flowers-title span {
  display: block;
  font-style: italic;
  color: #f7ce5a;
  margin-left: .52em;
}

.sv-yellow-flowers-rule {
  height: 2px;
  width: 0;
  max-width: 290px;
  margin: 38px 0 28px;
  background: linear-gradient(90deg, #f3d16b, transparent);
}

.sv-special-overlay.is-active .sv-yellow-flowers-rule {
  animation: svYellowFlowersRule 1s .9s ease forwards;
}

.sv-yellow-flowers-message {
  max-width: 490px;
  margin: 0;
  font: 400 clamp(18px, 2vw, 24px)/1.48 Georgia, 'Times New Roman', serif;
  color: #f4e8c9;
}

.sv-yellow-flowers-sign {
  margin-top: 33px;
  color: #f2d582;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .08em;
}

.sv-yellow-flowers-bouquet {
  position: relative;
  z-index: 3;
  width: min(100%, 600px);
  height: min(78vh, 690px);
  justify-self: center;
  filter: drop-shadow(0 24px 24px rgba(109, 65, 19, .18));
  transform-origin: 50% 90%;
  opacity: 0;
  transform: translateY(65px) rotate(-4deg) scale(.9);
}

.sv-special-overlay.is-active .sv-yellow-flowers-bouquet {
  animation: svYellowFlowersBouquetIn 1.6s .25s cubic-bezier(.16, .82, .25, 1) forwards,
    svYellowFlowersSway 5s 1.9s ease-in-out infinite alternate;
}

.sv-yellow-flowers-bouquet svg {
  width: 100%;
  height: 100%;
  overflow: visible;
}

.sv-yellow-flowers-fall {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 7;
}

.sv-yellow-flowers-falling {
  position: absolute;
  left: 0;
  top: 0;
  opacity: .92;
  filter: drop-shadow(0 4px 8px rgba(0, 0, 0, .42));
  will-change: transform;
}

.sv-yellow-flowers-falling svg {
  display: block;
  width: 100%;
  height: 100%;
}

@keyframes svYellowFlowersRise { to { opacity: 1; transform: translateY(0); } }
@keyframes svYellowFlowersRule { to { width: 290px; } }
@keyframes svYellowFlowersBouquetIn { to { opacity: 1; transform: translateY(0) rotate(0) scale(1); } }
@keyframes svYellowFlowersSway { from { opacity: 1; transform: rotate(-1.4deg); } to { opacity: 1; transform: rotate(1.4deg); } }

@media (max-width: 760px) {
  .sv-yellow-flowers-stage { display: flex; flex-direction: column; justify-content: center; gap: 0; min-height: 100vh; width: 90vw; }
  .sv-yellow-flowers-copy { text-align: center; padding: 72px 0 0; }
  .sv-yellow-flowers-kicker { margin-bottom: 18px; font-size: 10px; }
  .sv-yellow-flowers-title { font-size: clamp(56px, 15vw, 90px); }
  .sv-yellow-flowers-title span { margin-left: 0; }
  .sv-yellow-flowers-rule { margin: 20px auto 16px; }
  .sv-yellow-flowers-message { font-size: clamp(15px, 4vw, 20px); }
  .sv-yellow-flowers-sign { margin-top: 16px; font-size: 10px; }
  .sv-yellow-flowers-bouquet { height: min(39vh, 350px); width: min(80vw, 390px); margin-top: -8px; }
}

.sv-special-overlay > canvas:not(.sv-special-fredy-canvas) {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 8;
  pointer-events: none;
}

.sv-special-close {
  position: absolute;
  top: max(18px, env(safe-area-inset-top));
  right: max(18px, env(safe-area-inset-right));
  z-index: 40;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 50%;
  background: rgba(15, 20, 23, 0.42);
  color: rgba(255, 255, 255, 0.8);
  font-size: 26px;
  line-height: 1;
  cursor: pointer;
  backdrop-filter: blur(8px);
  transition:
    transform 0.18s ease,
    background 0.18s ease,
    color 0.18s ease;
}

.sv-special-close:hover {
  transform: scale(1.06);
  background: rgba(15, 20, 23, 0.68);
  color: #fff;
}

.sv-special-copy {
  position: relative;
  z-index: 20;
  width: min(920px, calc(100vw - 52px));
  padding: 34px 24px 118px;
  text-align: center;
  opacity: 0;
  transform: translateY(18px) scale(0.985);
}

.sv-special-overlay.is-active .sv-special-copy {
  animation: svSpecialHeroRise 1.15s 0.3s cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
}

.sv-special-eyebrow {
  margin-bottom: 16px;
  font-size: clamp(10px, 1.2vw, 12px);
  font-weight: 500;
  letter-spacing: 0.28em;
  text-transform: uppercase;
}

.sv-special-title {
  margin: 0;
  font-size: clamp(48px, 8.2vw, 112px);
  line-height: 0.95;
  font-weight: 700;
  letter-spacing: -0.055em;
}

.sv-special-name {
  display: block;
  margin-top: 0.14em;
  font-size: 0.62em;
  line-height: 1.08;
  letter-spacing: -0.03em;
}

.sv-special-message {
  max-width: 720px;
  margin: 25px auto 0;
  font-size: clamp(15px, 1.7vw, 21px);
  line-height: 1.55;
  font-weight: 300;
}

.sv-special-sign {
  margin-top: 22px;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.sv-special-balloon-layer {
  position: absolute;
  inset: 0;
  z-index: 9;
  overflow: hidden;
  pointer-events: none;
}

.sv-special-balloon {
  --balloon: #fa5c00;
  position: absolute;
  left: 0;
  top: 0;
  display: block;
  width: 48px;
  height: 60px;
  border-radius: 52% 48% 48% 52% / 45% 45% 55% 55%;
  background:
    radial-gradient(circle at 32% 24%, rgba(255, 255, 255, 0.48) 0 6%, transparent 17%),
    radial-gradient(circle at 72% 72%, rgba(0, 0, 0, 0.16), transparent 42%), var(--balloon);
  box-shadow:
    inset -9px -12px 18px rgba(0, 0, 0, 0.22),
    inset 8px 7px 13px rgba(255, 255, 255, 0.26),
    0 8px 18px rgba(0, 0, 0, 0.22);
  transform-origin: 50% 50%;
  will-change: transform;
}

.sv-special-balloon.is-small {
  width: 36px;
  height: 45px;
}
.sv-special-balloon.is-large {
  width: 57px;
  height: 71px;
}

.sv-special-balloon::before {
  content: '';
  position: absolute;
  left: 50%;
  bottom: -7px;
  width: 9px;
  height: 9px;
  transform: translateX(-50%) rotate(45deg);
  background: var(--balloon);
  border-radius: 1px;
}

.sv-special-balloon::after {
  content: '';
  position: absolute;
  left: 50%;
  top: calc(100% + 6px);
  width: 1px;
  height: 92px;
  background: linear-gradient(rgba(255, 255, 255, 0.55), rgba(255, 255, 255, 0.04));
}
.sv-special-overlay[data-scene='birthday'] {
  background: radial-gradient(
    circle at 50% 42%,
    rgba(46, 62, 72, 0.55),
    rgba(10, 15, 18, 0.66) 58%,
    rgba(7, 10, 12, 0.72)
  );
}

.sv-special-overlay[data-scene='birthday']::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    radial-gradient(circle at 20% 20%, rgba(250, 92, 0, 0.1), transparent 30%),
    radial-gradient(circle at 78% 72%, rgba(255, 209, 102, 0.08), transparent 32%);
  pointer-events: none;
}

.sv-special-overlay[data-scene='birthday'] .sv-special-eyebrow {
  color: #ffb184;
}
.sv-special-overlay[data-scene='birthday'] .sv-special-title {
  color: #fff;
}
.sv-special-overlay[data-scene='birthday'] .sv-special-name {
  background: linear-gradient(180deg, #fff 0%, #ffd8bf 55%, #fa8c4d 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.sv-special-overlay[data-scene='birthday'] .sv-special-message {
  color: #d7e0e4;
}
.sv-special-overlay[data-scene='birthday'] .sv-special-sign {
  color: #ff9a61;
}

.sv-special-birthday-chip {
  display: none;
  align-items: center;
  gap: 8px;
  width: max-content;
  margin: 0 auto 16px;
  padding: 6px 11px;
  border: 1px solid rgba(255, 209, 102, 0.22);
  border-radius: 999px;
  background: rgba(255, 209, 102, 0.055);
  color: #ffe3a1;
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.sv-special-overlay.is-team-birthday .sv-special-birthday-chip {
  display: inline-flex;
}
.sv-special-overlay.is-team-birthday .sv-special-title {
  font-size: clamp(42px, 6.5vw, 88px);
}
.sv-special-overlay.is-team-birthday .sv-special-name {
  background: linear-gradient(180deg, #fff 0%, #ffe7a6 58%, #ffc24d 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.sv-special-overlay[data-scene='anniversary'] {
  background:
    radial-gradient(circle at 50% 48%, rgba(250, 92, 0, 0.14), transparent 28%),
    radial-gradient(circle at 50% 50%, rgba(218, 167, 86, 0.07), transparent 48%),
    linear-gradient(
      145deg,
      rgba(16, 23, 27, 0.68) 0%,
      rgba(23, 33, 40, 0.64) 43%,
      rgba(12, 17, 20, 0.7) 100%
    );
}

.sv-special-overlay[data-scene='anniversary']::before {
  content: 'SV';
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 1;
  transform: translate(-50%, -50%) scale(0.82);
  font-size: min(48vw, 650px);
  font-weight: 900;
  letter-spacing: -0.13em;
  color: transparent;
  -webkit-text-stroke: 1px rgba(255, 255, 255, 0.035);
  opacity: 0;
}

.sv-special-overlay[data-scene='anniversary'].is-active::before {
  animation: svSpecialMonogram 2.1s 0.1s ease forwards;
}

.sv-special-overlay[data-scene='anniversary'] .sv-special-eyebrow {
  color: #e3b56d;
}
.sv-special-overlay[data-scene='anniversary'] .sv-special-title {
  font-size: clamp(48px, 7.4vw, 104px);
  background: linear-gradient(180deg, #fff 5%, #f7e0bd 58%, #e4ad61 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.sv-special-overlay[data-scene='anniversary'] .sv-special-message {
  color: #d8e0e3;
}
.sv-special-overlay[data-scene='anniversary'] .sv-special-sign {
  color: #dfaa61;
}
.sv-special-overlay[data-scene='archaeologist'] {
  background:
    radial-gradient(circle at 50% 44%, rgba(255, 255, 255, 0.065), transparent 24%),
    linear-gradient(
      118deg,
      rgba(78, 12, 19, 0.7) 0%,
      rgba(116, 17, 27, 0.67) 24%,
      rgba(23, 25, 27, 0.67) 24.2%,
      rgba(16, 21, 24, 0.66) 75.8%,
      rgba(116, 17, 27, 0.67) 76%,
      rgba(78, 12, 19, 0.7) 100%
    );
}

.sv-special-overlay[data-scene='archaeologist']::before {
  content: '◇  △  ◇  ▱  △  ◇  △  ▱  ◇';
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 1;
  transform: translate(-50%, -50%) rotate(-9deg);
  white-space: nowrap;
  font-size: clamp(90px, 13vw, 190px);
  letter-spacing: 0.16em;
  color: rgba(255, 255, 255, 0.026);
}

.sv-special-arch-badge {
  width: 94px;
  height: 94px;
  margin: 0 auto 22px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #fff;
  background: rgba(255, 255, 255, 0.035);
  box-shadow: 0 0 0 9px rgba(255, 255, 255, 0.018);
}

.sv-special-arch-badge strong {
  display: block;
  font-size: 27px;
  line-height: 0.8;
}
.sv-special-arch-badge span {
  display: block;
  margin-top: 8px;
  font-size: 8px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  opacity: 0.7;
}
.sv-special-overlay[data-scene='archaeologist'] .sv-special-eyebrow {
  color: #f3b7bb;
}
.sv-special-overlay[data-scene='archaeologist'] .sv-special-title {
  font-family: Georgia, 'Times New Roman', serif;
  font-weight: 400;
  font-size: clamp(44px, 6.6vw, 92px);
  letter-spacing: -0.035em;
  color: #fffaf4;
}
.sv-special-overlay[data-scene='archaeologist'] .sv-special-message {
  color: #e2e5e7;
}
.sv-special-overlay[data-scene='archaeologist'] .sv-special-sign {
  color: #e7b8bc;
}
.sv-special-overlay[data-scene='inti-raymi'] {
  background:
    radial-gradient(circle at 50% 39%, rgba(242, 171, 58, 0.2), transparent 25%),
    radial-gradient(circle at 50% 45%, rgba(119, 57, 15, 0.22), transparent 50%),
    linear-gradient(
      155deg,
      rgba(21, 17, 14, 0.72),
      rgba(55, 31, 17, 0.66) 48%,
      rgba(15, 15, 16, 0.75)
    );
}

.sv-special-inti-sun {
  position: absolute;
  z-index: 3;
  left: 50%;
  top: 39%;
  width: min(36vw, 390px);
  aspect-ratio: 1;
  transform: translate(-50%, -50%) scale(0.82) rotate(-10deg);
  border-radius: 50%;
  border: 1px solid rgba(255, 221, 143, 0.3);
  background:
    radial-gradient(
      circle,
      rgba(255, 235, 170, 0.28) 0 18%,
      rgba(239, 166, 55, 0.15) 19% 31%,
      transparent 32%
    ),
    repeating-conic-gradient(from 0deg, rgba(246, 188, 74, 0.3) 0deg 3deg, transparent 3deg 12deg);
  filter: drop-shadow(0 0 38px rgba(236, 148, 36, 0.2));
  opacity: 0;
}

.sv-special-inti-sun::before,
.sv-special-inti-sun::after {
  content: '';
  position: absolute;
  inset: 16%;
  border: 1px solid rgba(255, 225, 153, 0.22);
  border-radius: 50%;
}

.sv-special-inti-sun::after {
  inset: 31%;
  background: radial-gradient(circle at 38% 32%, #ffe6a0, #dc8128 64%, #8f4718);
  border: 0;
  box-shadow: 0 0 38px rgba(238, 153, 45, 0.28);
}

.sv-special-overlay[data-scene='inti-raymi'].is-active .sv-special-inti-sun {
  animation: svSpecialIntiSun 2.1s 0.1s cubic-bezier(0.18, 0.8, 0.2, 1) forwards;
}

.sv-special-inti-pattern {
  position: absolute;
  z-index: 2;
  left: -8%;
  right: -8%;
  bottom: 12%;
  height: 90px;
  opacity: 0.11;
  background:
    linear-gradient(135deg, transparent 42%, #f4c16a 43% 49%, transparent 50%) 0 0/54px 54px,
    linear-gradient(45deg, transparent 42%, #d67d2c 43% 49%, transparent 50%) 27px 0/54px 54px;
  transform: skewY(-2deg);
}

.sv-special-overlay[data-scene='inti-raymi'] .sv-special-eyebrow {
  color: #f0b657;
}
.sv-special-overlay[data-scene='inti-raymi'] .sv-special-title {
  font-family: Georgia, 'Times New Roman', serif;
  font-weight: 400;
  color: #fff3d5;
  text-shadow: 0 10px 42px rgba(68, 29, 6, 0.42);
}
.sv-special-overlay[data-scene='inti-raymi'] .sv-special-message {
  color: #eadcc5;
}
.sv-special-overlay[data-scene='inti-raymi'] .sv-special-sign {
  color: #daa04f;
}
.sv-special-overlay[data-scene='fiestas-patrias'] {
  background:
    radial-gradient(circle at 50% 46%, rgba(255, 255, 255, 0.105), transparent 26%),
    linear-gradient(
      90deg,
      rgba(111, 3, 17, 0.78) 0 19%,
      rgba(22, 24, 26, 0.7) 19.2% 80.8%,
      rgba(111, 3, 17, 0.78) 81% 100%
    );
}

.sv-special-peru-ribbon {
  position: absolute;
  inset: 0;
  z-index: 2;
  opacity: 0.22;
  background: linear-gradient(
    90deg,
    rgba(211, 13, 35, 0.7) 0 13%,
    rgba(255, 255, 255, 0.1) 13% 16%,
    transparent 16% 84%,
    rgba(255, 255, 255, 0.1) 84% 87%,
    rgba(211, 13, 35, 0.7) 87% 100%
  );
}

.sv-special-peru-cockade {
  position: absolute;
  z-index: 4;
  top: 50%;
  left: 50%;
  width: 152px;
  aspect-ratio: 1;
  transform: translate(-50%, -50%) scale(0.72);
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: rgba(255, 255, 255, 0.16);
  font-size: 32px;
  font-weight: 800;
  border: 20px solid rgba(203, 18, 38, 0.16);
  box-shadow:
    0 0 0 14px rgba(255, 255, 255, 0.045),
    0 0 0 34px rgba(203, 18, 38, 0.055);
  opacity: 0;
}

.sv-special-overlay[data-scene='fiestas-patrias'].is-active .sv-special-peru-cockade {
  animation: svSpecialCockade 1.65s 0.18s ease forwards;
}

.sv-special-overlay[data-scene='fiestas-patrias'] .sv-special-eyebrow {
  color: #ef9ca5;
}
.sv-special-overlay[data-scene='fiestas-patrias'] .sv-special-title {
  color: #fff;
  font-size: clamp(48px, 7.4vw, 102px);
  text-shadow: 0 10px 40px rgba(99, 0, 13, 0.3);
}
.sv-special-overlay[data-scene='fiestas-patrias'] .sv-special-message {
  color: #ece6e7;
}
.sv-special-overlay[data-scene='fiestas-patrias'] .sv-special-sign {
  color: #e88b96;
}
.sv-special-overlay[data-scene='halloween'] {
  background:
    radial-gradient(circle at 74% 20%, rgba(230, 199, 143, 0.1), transparent 15%),
    radial-gradient(circle at 30% 72%, rgba(125, 52, 168, 0.12), transparent 32%),
    linear-gradient(155deg, rgba(10, 8, 18, 0.78), rgba(24, 12, 31, 0.73) 50%, rgba(7, 8, 11, 0.8));
}

.sv-special-halloween-moon {
  position: absolute;
  z-index: 3;
  top: 9%;
  right: 10%;
  width: clamp(108px, 15vw, 210px);
  aspect-ratio: 1;
  border-radius: 50%;
  background:
    radial-gradient(circle at 37% 34%, rgba(94, 77, 57, 0.2) 0 5%, transparent 6%),
    radial-gradient(circle at 65% 63%, rgba(94, 77, 57, 0.18) 0 8%, transparent 9%),
    radial-gradient(circle at 48% 52%, #f0dfb9, #c9b285 70%, #8d795d);
  box-shadow: 0 0 55px rgba(231, 205, 149, 0.13);
  opacity: 0;
  transform: translateY(-18px) scale(0.9);
}

.sv-special-overlay[data-scene='halloween'].is-active .sv-special-halloween-moon {
  animation: svSpecialMoonIn 1.7s 0.15s ease forwards;
}

.sv-special-halloween-fog {
  position: absolute;
  z-index: 5;
  left: -15%;
  right: -15%;
  bottom: 8%;
  height: 120px;
  opacity: 0.16;
  filter: blur(18px);
  background:
    radial-gradient(ellipse at 25% 50%, #9f89ad 0 18%, transparent 46%),
    radial-gradient(ellipse at 58% 48%, #735f83 0 22%, transparent 50%),
    radial-gradient(ellipse at 84% 52%, #aa91b2 0 17%, transparent 45%);
  animation: svSpecialFog 7s ease-in-out infinite alternate;
}

.sv-special-bat-layer {
  position: absolute;
  inset: 0;
  z-index: 7;
  overflow: hidden;
  pointer-events: none;
}

.sv-special-bat {
  position: absolute;
  left: 0;
  top: 0;
  width: 34px;
  height: 18px;
  background: #08070b;
  clip-path: polygon(
    0 35%,
    19% 7%,
    40% 31%,
    50% 12%,
    60% 31%,
    81% 7%,
    100% 35%,
    82% 49%,
    67% 43%,
    50% 88%,
    33% 43%,
    18% 49%
  );
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.35));
  will-change: transform;
}

.sv-special-bat.is-large {
  width: 50px;
  height: 27px;
  opacity: 0.82;
}
.sv-special-bat.is-small {
  width: 24px;
  height: 13px;
  opacity: 0.66;
}

.sv-special-spider-layer {
  position: absolute;
  inset: 0;
  z-index: 10;
  overflow: hidden;
  pointer-events: none;
}

.sv-special-spider {
  position: absolute;
  top: -150px;
  width: 54px;
  height: 68px;
  will-change: transform;
  filter: drop-shadow(0 4px 5px rgba(0, 0, 0, 0.42));
}

.sv-special-spider-thread {
  position: absolute;
  left: 50%;
  bottom: 53px;
  width: 1px;
  height: 210px;
  background: linear-gradient(rgba(226, 225, 230, 0.68), rgba(226, 225, 230, 0.2));
  transform: translateX(-50%);
}

.sv-special-spider-body {
  position: absolute;
  left: 50%;
  top: 22px;
  width: 34px;
  height: 38px;
  transform: translateX(-50%);
}

.sv-special-spider-abdomen {
  position: absolute;
  left: 50%;
  top: 10px;
  width: 24px;
  height: 28px;
  border-radius: 48% 52% 55% 45%;
  background: radial-gradient(circle at 38% 28%, #24202a 0 8%, #0b0910 48%, #040306 100%);
  transform: translateX(-50%);
  box-shadow: inset -3px -4px 7px rgba(0, 0, 0, 0.5);
}

.sv-special-spider-head {
  position: absolute;
  left: 50%;
  top: 2px;
  width: 15px;
  height: 14px;
  border-radius: 50%;
  background: #09070d;
  transform: translateX(-50%);
}

.sv-special-spider-eye {
  position: absolute;
  top: 5px;
  width: 2px;
  height: 2px;
  border-radius: 50%;
  background: #b85a35;
  box-shadow: 0 0 3px rgba(214, 100, 55, 0.7);
}
.sv-special-spider-eye.e1 {
  left: 12px;
}
.sv-special-spider-eye.e2 {
  right: 12px;
}

.sv-special-spider-leg {
  position: absolute;
  top: 13px;
  width: 25px;
  height: 12px;
  border-top: 2px solid #09070d;
  border-radius: 55% 0 0 0;
  transform-origin: 100% 50%;
}
.sv-special-spider-leg.left {
  right: 25px;
}
.sv-special-spider-leg.right {
  left: 25px;
  transform-origin: 0 50%;
  border-radius: 0 55% 0 0;
}
.sv-special-spider-leg.l1 {
  top: 7px;
  transform: rotate(25deg);
}
.sv-special-spider-leg.r1 {
  top: 7px;
  transform: rotate(-25deg);
}
.sv-special-spider-leg.l2 {
  top: 14px;
  transform: rotate(8deg);
}
.sv-special-spider-leg.r2 {
  top: 14px;
  transform: rotate(-8deg);
}
.sv-special-spider-leg.l3 {
  top: 22px;
  transform: rotate(-10deg);
}
.sv-special-spider-leg.r3 {
  top: 22px;
  transform: rotate(10deg);
}
.sv-special-spider-leg.l4 {
  top: 29px;
  transform: rotate(-30deg);
}
.sv-special-spider-leg.r4 {
  top: 29px;
  transform: rotate(30deg);
}

.sv-special-spider-leg::after {
  content: '';
  position: absolute;
  top: -2px;
  width: 13px;
  height: 10px;
  border-top: 2px solid #09070d;
}
.sv-special-spider-leg.left::after {
  left: -9px;
  transform: rotate(-34deg);
  transform-origin: right top;
}
.sv-special-spider-leg.right::after {
  right: -9px;
  transform: rotate(34deg);
  transform-origin: left top;
}

.sv-special-pumpkin-mark {
  position: absolute;
  z-index: 4;
  left: 50%;
  top: 49%;
  transform: translate(-50%, -50%) rotate(-6deg);
  color: rgba(255, 127, 35, 0.055);
  font-size: min(42vw, 560px);
  line-height: 0.8;
  font-weight: 900;
  letter-spacing: -0.08em;
  user-select: none;
}

.sv-special-overlay[data-scene='halloween'] .sv-special-eyebrow {
  color: #d492f0;
}
.sv-special-overlay[data-scene='halloween'] .sv-special-title {
  font-family: Georgia, 'Times New Roman', serif;
  font-weight: 400;
  color: #ff9b45;
  text-shadow: 0 8px 34px rgba(242, 105, 22, 0.18);
}
.sv-special-overlay[data-scene='halloween'] .sv-special-message {
  color: #ddd5e1;
}
.sv-special-overlay[data-scene='halloween'] .sv-special-sign {
  color: #b489c7;
}

@keyframes svSpecialIntiSun {
  0% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.72) rotate(-16deg);
  }
  100% {
    opacity: 0.78;
    transform: translate(-50%, -50%) scale(1) rotate(0deg);
  }
}

@keyframes svSpecialCockade {
  from {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.72) rotate(-9deg);
  }
  to {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1) rotate(0deg);
  }
}

@keyframes svSpecialMoonIn {
  to {
    opacity: 0.76;
    transform: translateY(0) scale(1);
  }
}

@keyframes svSpecialFog {
  from {
    transform: translateX(-3%) scaleX(1);
  }
  to {
    transform: translateX(3%) scaleX(1.08);
  }
}
.sv-special-overlay[data-scene='christmas'] {
  background: linear-gradient(
    155deg,
    rgba(6, 15, 20, 0.69),
    rgba(10, 25, 30, 0.66) 42%,
    rgba(8, 13, 17, 0.72)
  );
}

.sv-special-overlay[data-scene='christmas']::before {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 1;
  width: min(620px, 76vw);
  aspect-ratio: 1;
  transform: translate(-50%, -50%) rotate(-8deg);
  border: 1px solid rgba(226, 209, 159, 0.11);
  border-radius: 50%;
}

.sv-special-overlay[data-scene='christmas'] .sv-special-eyebrow {
  color: #c9b982;
}
.sv-special-overlay[data-scene='christmas'] .sv-special-title {
  font-family: Georgia, 'Times New Roman', serif;
  font-weight: 400;
  letter-spacing: -0.035em;
  color: #f3efe4;
  text-shadow: 0 8px 42px rgba(0, 0, 0, 0.35);
}
.sv-special-overlay[data-scene='christmas'] .sv-special-message {
  max-width: 680px;
  color: #cfd9d8;
}
.sv-special-overlay[data-scene='christmas'] .sv-special-sign {
  color: #c9b982;
}

.sv-special-xmas-rule {
  width: 0;
  height: 1px;
  margin: 24px auto 0;
  background: linear-gradient(90deg, transparent, #c9b982, transparent);
  opacity: 0.65;
}
.sv-special-overlay[data-scene='christmas'].is-active .sv-special-xmas-rule {
  animation: svSpecialRuleGrow 1.4s 0.75s ease forwards;
}

.sv-special-xmas-santa {
  position: absolute;
  z-index: 7;
  left: clamp(18px, 3.2vw, 56px);
  top: clamp(12px, 3.2vh, 38px);
  width: clamp(390px, 42vw, 620px);
  aspect-ratio: 4 / 3;
  pointer-events: none;
  opacity: 0.96;
  filter: drop-shadow(0 12px 22px rgba(0, 0, 0, 0.24));
}

.sv-special-xmas-santa svg {
  width: 100% !important;
  height: 100% !important;
  display: block;
  overflow: visible !important;
  transform: none !important;
}

@media (max-width: 760px) {
  .sv-special-xmas-santa {
    left: 10px;
    top: 18px;
    width: min(72vw, 470px);
    opacity: 0.9;
  }
}
.sv-special-overlay[data-scene='newyear'] {
  background: radial-gradient(
    circle at 50% 48%,
    rgba(86, 72, 18, 0.54) 0%,
    rgba(13, 17, 19, 0.65) 38%,
    rgba(6, 8, 9, 0.7) 76%
  );
  perspective: 1000px;
}

.sv-special-ny-bg {
  position: absolute;
  inset: -8%;
  z-index: 1;
  background:
    radial-gradient(circle at 50% 50%, rgba(255, 210, 37, 0.1), transparent 32%),
    linear-gradient(135deg, rgba(255, 218, 64, 0.025), transparent 38%, rgba(255, 201, 30, 0.04));
  transform: scale(1.35);
}
.sv-special-overlay[data-scene='newyear'].is-active .sv-special-ny-bg {
  animation: svSpecialDollyBack 2.35s cubic-bezier(0.17, 0.8, 0.22, 1) forwards;
}

.sv-special-year-stage {
  position: relative;
  z-index: 20;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: min(980px, calc(100vw - 40px));
  padding: 24px 18px 118px;
  text-align: center;
  transform-style: preserve-3d;
  opacity: 0;
  transform: translateZ(-680px) scale(0.34);
}
.sv-special-overlay[data-scene='newyear'].is-active .sv-special-year-stage {
  animation: svSpecialDollyYear 2.35s 0.12s cubic-bezier(0.16, 0.84, 0.24, 1) forwards;
}

.sv-special-ny-kicker {
  margin-bottom: 16px;
  color: #e6cb66;
  opacity: 0.76;
  font-size: 11px;
  letter-spacing: 0.4em;
  text-transform: uppercase;
}

.sv-special-year-balloons {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 0;
  filter: drop-shadow(0 28px 34px rgba(0, 0, 0, 0.28));
}

.sv-special-digit {
  --base-rot: 0deg;
  position: relative;
  display: block;
  margin-inline: -0.03em;
  padding: 0 0.01em 0.12em;
  font-family: 'Arial Black', Impact, sans-serif;
  font-size: clamp(108px, 22vw, 312px);
  line-height: 0.84;
  font-weight: 900;
  letter-spacing: -0.105em;
  color: transparent;
  -webkit-text-stroke: 1.2px rgba(32, 32, 32, 0.24);
  background: linear-gradient(
    105deg,
    #5f5f5f 0%,
    #f9f9f9 12%,
    #c8c8c8 24%,
    #ffffff 34%,
    #b0b0b0 49%,
    #f4f4f4 63%,
    #8d8d8d 80%,
    #ffffff 100%
  );
  -webkit-background-clip: text;
  background-clip: text;
  text-shadow:
    0 1px 0 rgba(255, 255, 255, 0.78),
    0 10px 18px rgba(0, 0, 0, 0.22),
    0 26px 24px rgba(0, 0, 0, 0.18);
  transform-origin: 50% 20%;
  animation: svSpecialDigitFloat 3.8s ease-in-out infinite alternate;
  filter: saturate(0.05) contrast(1.1) drop-shadow(0 8px 10px rgba(0, 0, 0, 0.1));
}

.sv-special-digit::before {
  content: attr(data-char);
  position: absolute;
  inset: 0;
  color: transparent;
  background: linear-gradient(
    115deg,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 0.88) 20%,
    rgba(255, 255, 255, 0.24) 32%,
    rgba(255, 255, 255, 0) 45%,
    rgba(255, 255, 255, 0.18) 59%,
    rgba(255, 255, 255, 0) 72%
  );
  -webkit-background-clip: text;
  background-clip: text;
  mix-blend-mode: screen;
  opacity: 0.92;
  transform: translate(-0.02em, -0.015em);
  pointer-events: none;
}

.sv-special-digit::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 95%;
  width: clamp(8px, 1vw, 14px);
  height: clamp(16px, 2vw, 24px);
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e7e7e7 0%, #8d8d8d 100%);
  clip-path: polygon(18% 0, 82% 0, 65% 100%, 35% 100%);
  border-radius: 1px;
  box-shadow: 0 2px 3px rgba(0, 0, 0, 0.28);
}

.sv-special-digit:nth-child(1) {
  --base-rot: -6deg;
  animation-delay: -0.8s;
}
.sv-special-digit:nth-child(2) {
  --base-rot: 1deg;
  animation-delay: -1.6s;
}
.sv-special-digit:nth-child(3) {
  --base-rot: -4deg;
  animation-delay: -0.3s;
}
.sv-special-digit:nth-child(4) {
  --base-rot: 7deg;
  animation-delay: -1.9s;
}

.sv-special-ny-message {
  margin-top: clamp(42px, 5.8vw, 72px);
  color: #f2ead0;
  font-size: clamp(16px, 2vw, 24px);
  font-weight: 300;
  letter-spacing: 0.015em;
}

.sv-special-ny-sign {
  margin-top: 18px;
  color: #b89c45;
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.sv-special-overlay[data-scene='newyear'] .sv-special-balloon {
  box-shadow:
    inset -9px -12px 18px rgba(90, 60, 0, 0.22),
    inset 8px 7px 13px rgba(255, 255, 220, 0.35),
    0 8px 20px rgba(255, 205, 25, 0.16);
}

@keyframes svSpecialHeroRise {
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
@keyframes svSpecialMonogram {
  to {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
  }
}
@keyframes svSpecialRuleGrow {
  to {
    width: 210px;
  }
}
@keyframes svSpecialDollyBack {
  from {
    transform: scale(1.35);
  }
  to {
    transform: scale(0.98);
  }
}
@keyframes svSpecialDollyYear {
  0% {
    opacity: 0;
    transform: translateZ(-680px) scale(0.34);
    filter: blur(6px);
  }
  58% {
    opacity: 1;
    filter: blur(0);
  }
  100% {
    opacity: 1;
    transform: translateZ(0) scale(1);
    filter: blur(0);
  }
}
@keyframes svSpecialDigitFloat {
  from {
    transform: translateY(0) rotate(var(--base-rot));
  }
  to {
    transform: translateY(-10px) rotate(calc(var(--base-rot) + 1.2deg));
  }
}

@media (max-width: 700px) {
  .sv-special-close {
    width: 38px;
    height: 38px;
    font-size: 23px;
  }
  .sv-special-copy {
    width: calc(100vw - 28px);
    padding-inline: 12px;
    padding-bottom: 100px;
  }
  .sv-special-message {
    max-width: 92vw;
  }
  .sv-special-year-stage {
    padding-bottom: 100px;
  }
  .sv-special-digit {
    font-size: clamp(88px, 24vw, 180px);
  }
}
.sv-special-delay-sticker {
  position: absolute;
  z-index: 34;
  pointer-events: none;
  user-select: none;
}

.sv-special-delay-sticker-late {
  top: max(30px, calc(env(safe-area-inset-top) + 14px));
  left: max(30px, calc(env(safe-area-inset-left) + 14px));
  min-width: 190px;
  padding: 13px 18px 12px;
  transform: rotate(-8deg);
  border: 2px solid rgba(92, 47, 10, 0.72);
  border-radius: 8px 10px 7px 9px;
  background: linear-gradient(165deg, rgba(255, 255, 255, 0.28), transparent 36%), #f3b45c;
  color: #4a2508;
  box-shadow:
    0 10px 28px rgba(0, 0, 0, 0.28),
    inset 0 0 0 2px rgba(255, 255, 255, 0.22);
  font-family: 'Roboto', sans-serif;
  text-align: center;
}

.sv-special-delay-sticker-late::before,
.sv-special-delay-sticker-late::after {
  content: '';
  position: absolute;
  width: 34px;
  height: 11px;
  background: rgba(255, 239, 202, 0.62);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.16);
}

.sv-special-delay-sticker-late::before {
  left: -14px;
  top: 7px;
  transform: rotate(-14deg);
}

.sv-special-delay-sticker-late::after {
  right: -15px;
  bottom: 8px;
  transform: rotate(-12deg);
}

.sv-special-delay-sticker-title {
  display: block;
  font-size: 15px;
  line-height: 1;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.sv-special-delay-sticker-sub {
  display: block;
  margin-top: 6px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.03em;
}

.sv-special-delay-sticker-tech {
  right: max(28px, calc(env(safe-area-inset-right) + 14px));
  bottom: max(28px, calc(env(safe-area-inset-bottom) + 14px));
  min-width: 250px;
  padding: 11px 14px 10px;
  border: 1px solid rgba(108, 227, 213, 0.62);
  border-left: 4px solid #6ce3d5;
  border-radius: 5px;
  background:
    linear-gradient(90deg, rgba(108, 227, 213, 0.1), transparent 54%), rgba(8, 17, 21, 0.88);
  color: #dffef9;
  box-shadow:
    0 12px 32px rgba(0, 0, 0, 0.32),
    inset 0 0 20px rgba(108, 227, 213, 0.035);
  font-family: 'Roboto Mono', 'Consolas', monospace;
  text-align: left;
  backdrop-filter: blur(8px);
}

.sv-special-delay-sticker-tech::before {
  content: 'DELAY_PACKET / 01';
  display: block;
  margin-bottom: 6px;
  color: rgba(108, 227, 213, 0.72);
  font-size: 8px;
  line-height: 1;
  letter-spacing: 0.18em;
}

.sv-special-delay-tech-title {
  display: block;
  font-size: 12px;
  line-height: 1.2;
  font-weight: 700;
  letter-spacing: 0.07em;
}

.sv-special-delay-tech-meta {
  display: block;
  margin-top: 6px;
  color: rgba(215, 234, 232, 0.62);
  font-size: 8px;
  line-height: 1.2;
  letter-spacing: 0.1em;
}

@media (max-width: 680px) {
  .sv-special-delay-sticker-late {
    top: max(18px, calc(env(safe-area-inset-top) + 8px));
    left: max(14px, calc(env(safe-area-inset-left) + 8px));
    min-width: 150px;
    padding: 10px 12px 9px;
    transform: rotate(-7deg) scale(0.88);
    transform-origin: top left;
  }

  .sv-special-delay-sticker-tech {
    right: max(14px, calc(env(safe-area-inset-right) + 8px));
    bottom: max(16px, calc(env(safe-area-inset-bottom) + 8px));
    min-width: 210px;
    transform: scale(0.88);
    transform-origin: bottom right;
  }
}
