.top-lamp-widget {
  position: relative;
  width: 100%;
  background: transparent !important;
  -webkit-tap-highlight-color: transparent;
  --tlw-min-height: var(--tlw-min-height-desktop, 620px);
  --tlw-lamp-width: var(--tlw-lamp-width-desktop, 140px);
  --tlw-lamp-top: var(--tlw-lamp-top-desktop, 8px);
  --tlw-lamp-left: var(--tlw-lamp-left-desktop, 10px);
  --tlw-beam-top: var(--tlw-beam-top-desktop, 12%);
  --tlw-beam-left: var(--tlw-beam-left-desktop, 8%);
  --tlw-beam-width: var(--tlw-beam-width-desktop, 44%);
  --tlw-beam-height: var(--tlw-beam-height-desktop, 66%);
  --tlw-variant-width: var(--tlw-variant-width-desktop, 84%);
  --tlw-variant-x: var(--tlw-variant-x-desktop, 0px);
  --tlw-variant-y: var(--tlw-variant-y-desktop, 0px);
}

.top-lamp-widget,
.top-lamp-widget *,
.top-lamp-widget__lamp-btn,
.top-lamp-widget__lamp-btn * {
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  user-select: none;
}

.top-lamp-widget__media {
  position: relative;
  overflow: hidden;
  width: 100%;
  min-height: var(--tlw-min-height);
  background: transparent !important;
  isolation: isolate;
  touch-action: manipulation;
}

.top-lamp-widget__photo {
  display: block;
  width: 100%;
  height: 100%;
  min-height: var(--tlw-min-height);
  object-fit: contain;
  object-position: center bottom;
  background: transparent !important;
  filter: none !important;
}

.top-lamp-widget__variant-stage,
.top-lamp-widget__beam,
.top-lamp-widget__spot,
.top-lamp-widget__lamp-btn,
.top-lamp-widget__variant-badge,
.top-lamp-widget__hint,
.top-lamp-widget__bulb-glow {
  position: absolute;
}

.top-lamp-widget__variant-stage {
  inset: 0;
  z-index: 2;
  pointer-events: none;
  overflow: visible;
}

.top-lamp-widget__variant {
  position: absolute;
  left: 50%;
  bottom: var(--tlw-variant-y);
  width: var(--tlw-variant-width);
  max-width: none !important;
  height: auto;
  display: block;
  transform: translateX(calc(-50% + var(--tlw-variant-x)));
  transform-origin: bottom center;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .35s ease, visibility .35s ease;
  filter: drop-shadow(0 12px 18px rgba(0,0,0,.18));
}

.top-lamp-widget__variant.is-current.is-visible {
  visibility: visible;
  opacity: 1;
}

.top-lamp-widget__beam,
.top-lamp-widget__spot {
  z-index: 3;
  pointer-events: none;
  opacity: .82;
  transition: opacity .35s ease, transform .35s ease, filter .35s ease;
}

.top-lamp-widget__beam {
  top: var(--tlw-beam-top);
  left: var(--tlw-beam-left);
  width: var(--tlw-beam-width);
  height: var(--tlw-beam-height);
  transform-origin: top left;
  transform: rotate(var(--top-lamp-beam-angle, -12deg));
  clip-path: polygon(14% 0%, 34% 0%, 100% 100%, 0% 100%);
  background: linear-gradient(
    180deg,
    color-mix(in srgb, var(--top-lamp-beam-color, rgba(255,244,214,1)) 30%, transparent) 0%,
    color-mix(in srgb, var(--top-lamp-beam-color, rgba(255,244,214,1)) 14%, transparent) 45%,
    transparent 100%
  );
  filter: blur(var(--top-lamp-beam-blur, 10px));
}

.top-lamp-widget__spot {
  top: var(--tlw-beam-top);
  left: var(--tlw-beam-left);
  width: var(--tlw-beam-width);
  height: var(--tlw-beam-height);
  transform-origin: top left;
  transform: rotate(var(--top-lamp-beam-angle, -12deg));
  background: radial-gradient(
    ellipse at 56% 90%,
    color-mix(in srgb, var(--top-lamp-beam-color, rgba(255,244,214,1)) 30%, transparent) 0%,
    color-mix(in srgb, var(--top-lamp-beam-color, rgba(255,244,214,1)) 16%, transparent) 18%,
    transparent 52%
  );
  filter: blur(16px);
}

.top-lamp-widget__lamp-btn {
  top: var(--tlw-lamp-top) !important;
  left: var(--tlw-lamp-left) !important;
  width: var(--tlw-lamp-width) !important;
  height: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  overflow: visible !important;
  z-index: 5;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  line-height: 0 !important;
  display: block !important;
  cursor: pointer;
  touch-action: manipulation;
  outline: none !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  font-size: 0 !important;
}

.top-lamp-widget__lamp-btn::before,
.top-lamp-widget__lamp-btn::after {
  content: none !important;
  display: none !important;
}

.top-lamp-widget__lamp-btn:focus,
.top-lamp-widget__lamp-btn:active,
.top-lamp-widget__lamp-btn:focus-visible {
  outline: none !important;
  box-shadow: none !important;
}

.top-lamp-widget__lamp-img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-height: none !important;
  max-width: none !important;
  object-fit: contain;
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  position: relative;
  z-index: 2;
  pointer-events: none;
  filter: drop-shadow(0 6px 12px rgba(0,0,0,.14));
}

.top-lamp-widget__bulb-glow {
  left: 21%;
  top: 52%;
  width: 18%;
  aspect-ratio: 1 / 1;
  border-radius: 999px;
  z-index: 1;
  pointer-events: none;
  background: radial-gradient(circle,
    color-mix(in srgb, var(--top-lamp-beam-color, rgba(255,244,214,1)) 88%, white 12%) 0%,
    color-mix(in srgb, var(--top-lamp-beam-color, rgba(255,244,214,1)) 38%, transparent) 32%,
    transparent 72%
  );
  filter: blur(10px);
  opacity: 1;
}

.top-lamp-widget__variant-badge {
  top: 18px;
  right: 18px;
  z-index: 6;
  padding: 8px 14px;
  border-radius: 999px;
  background: var(--top-lamp-badge-bg, rgba(10,16,28,.72));
  color: var(--top-lamp-badge-color, rgba(255,255,255,.96));
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 10px 30px rgba(0,0,0,.18);
  font-size: 14px;
  line-height: 1.2;
  transition: opacity .3s ease, transform .3s ease;
}

.top-lamp-widget__hint {
  left: 50%;
  bottom: 18px;
  transform: translateX(-50%);
  z-index: 6;
  padding: 10px 14px;
  border-radius: 999px;
  background: var(--top-lamp-hint-bg, rgba(12,12,12,.64));
  color: var(--top-lamp-hint-color, rgba(255,255,255,.92));
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 8px 22px rgba(0,0,0,.18);
  white-space: nowrap;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: 10px;
}

.top-lamp-widget.is-off .top-lamp-widget__beam,
.top-lamp-widget.is-off .top-lamp-widget__spot,
.top-lamp-widget.is-off .top-lamp-widget__bulb-glow,
.top-lamp-widget.is-off .top-lamp-widget__variant {
  opacity: 0 !important;
}

.top-lamp-widget.is-off .top-lamp-widget__variant-badge {
  opacity: 0;
  transform: translateY(-6px);
  pointer-events: none;
}

.top-lamp-widget.is-on .top-lamp-widget__variant-badge {
  opacity: 1;
  transform: translateY(0);
}

.top-lamp-widget.is-flicker .top-lamp-widget__beam,
.top-lamp-widget.is-flicker .top-lamp-widget__spot,
.top-lamp-widget.is-flicker .top-lamp-widget__bulb-glow {
  animation: topLampFlicker .28s linear 1;
}

.top-lamp-widget.is-on .top-lamp-widget__beam,
.top-lamp-widget.is-on .top-lamp-widget__spot {
  animation: topLampLightFloat 7s ease-in-out infinite alternate;
}

.top-lamp-widget.is-on .top-lamp-widget__bulb-glow {
  animation: topLampGlowPulse 2.8s ease-in-out infinite;
}

@keyframes topLampFlicker {
  0% { opacity: .2; }
  18% { opacity: 1; }
  34% { opacity: .55; }
  52% { opacity: 1; }
  70% { opacity: .72; }
  100% { opacity: 1; }
}

@keyframes topLampLightFloat {
  from { transform: rotate(var(--top-lamp-beam-angle, -12deg)) translate3d(0,0,0) scale(1); }
  to { transform: rotate(calc(var(--top-lamp-beam-angle, -12deg) + 1deg)) translate3d(6px,-4px,0) scale(1.02); }
}

@keyframes topLampGlowPulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.08); opacity: .82; }
}

body .top-lamp-widget img,
body .top-lamp-widget button,
body .top-lamp-widget {
  -webkit-user-drag: none;
}


@media (max-width: 1024px) {
  .top-lamp-widget__lamp-btn {
    width: var(--tlw-lamp-width) !important;
    top: var(--tlw-lamp-top) !important;
    left: var(--tlw-lamp-left) !important;
  }
}

@media (max-width: 767px) {
  .top-lamp-widget__lamp-btn {
    width: var(--tlw-lamp-width) !important;
    top: var(--tlw-lamp-top) !important;
    left: var(--tlw-lamp-left) !important;
  }
}

@media (max-width: 1024px) {
  .top-lamp-widget {
    --tlw-min-height: var(--tlw-min-height-tablet, var(--tlw-min-height-desktop, 520px));
    --tlw-lamp-width: var(--tlw-lamp-width-tablet, var(--tlw-lamp-width-desktop, 120px));
    --tlw-lamp-top: var(--tlw-lamp-top-tablet, var(--tlw-lamp-top-desktop, 8px));
    --tlw-lamp-left: var(--tlw-lamp-left-tablet, var(--tlw-lamp-left-desktop, 10px));
    --tlw-beam-top: var(--tlw-beam-top-tablet, var(--tlw-beam-top-desktop, 12%));
    --tlw-beam-left: var(--tlw-beam-left-tablet, var(--tlw-beam-left-desktop, 8%));
    --tlw-beam-width: var(--tlw-beam-width-tablet, var(--tlw-beam-width-desktop, 50%));
    --tlw-beam-height: var(--tlw-beam-height-tablet, var(--tlw-beam-height-desktop, 68%));
    --tlw-variant-width: var(--tlw-variant-width-tablet, var(--tlw-variant-width-desktop, 84%));
    --tlw-variant-x: var(--tlw-variant-x-tablet, var(--tlw-variant-x-desktop, 0px));
    --tlw-variant-y: var(--tlw-variant-y-tablet, var(--tlw-variant-y-desktop, 0px));
  }
}

@media (max-width: 767px) {
  .top-lamp-widget {
    --tlw-min-height: var(--tlw-min-height-mobile, var(--tlw-min-height-tablet, 420px));
    --tlw-lamp-width: var(--tlw-lamp-width-mobile, var(--tlw-lamp-width-tablet, 100px));
    --tlw-lamp-top: var(--tlw-lamp-top-mobile, var(--tlw-lamp-top-tablet, 6px));
    --tlw-lamp-left: var(--tlw-lamp-left-mobile, var(--tlw-lamp-left-tablet, 6px));
    --tlw-beam-top: var(--tlw-beam-top-mobile, var(--tlw-beam-top-tablet, 12%));
    --tlw-beam-left: var(--tlw-beam-left-mobile, var(--tlw-beam-left-tablet, 8%));
    --tlw-beam-width: var(--tlw-beam-width-mobile, var(--tlw-beam-width-tablet, 58%));
    --tlw-beam-height: var(--tlw-beam-height-mobile, var(--tlw-beam-height-tablet, 64%));
    --tlw-variant-width: var(--tlw-variant-width-mobile, var(--tlw-variant-width-tablet, 88%));
    --tlw-variant-x: var(--tlw-variant-x-mobile, var(--tlw-variant-x-tablet, 0px));
    --tlw-variant-y: var(--tlw-variant-y-mobile, var(--tlw-variant-y-tablet, 0px));
  }

  .top-lamp-widget__variant-badge {
    top: 12px;
    right: 12px;
    padding: 8px 12px;
    font-size: 12px;
  }

  .top-lamp-widget__hint {
    bottom: 12px;
    max-width: calc(100% - 24px);
    white-space: normal;
    text-align: center;
  }
}
