/* ==========================================================================
   DAECHI EDU - Cinematic Korea Map & Branch Network Stars Story (SCENE 01)
   Clean Optical Stars · Daechi-first Radiate Motion
   ========================================================================== */

:root {
  --korea-stroke-pearl: rgba(226, 232, 240, 0.44);
}

/* Map host stays hidden during left-copy intro; story JS reveals it */
html.s3-await-hero body.theme-sian3 .s3-hero__visual.s3-hero__symbol {
  opacity: 0 !important;
  visibility: hidden;
  filter: none !important;
}

html.s3-hero-ready body.theme-sian3 .s3-hero__visual.is-korea-map-live,
html.s3-hero-ready body.theme-sian3 .s3-hero__symbol.is-korea-map-live,
body.theme-sian3 .s3-hero__visual.is-korea-map-live,
body.theme-sian3 .s3-hero__symbol.is-korea-map-live {
  opacity: 1 !important;
  visibility: visible !important;
  filter: none !important;
}

.korea-story-stage {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
  background: transparent !important;
  z-index: 2;
  pointer-events: none;
}

.korea-story-map-wrap {
  position: absolute;
  right: clamp(1.5%, 3.8vw, 6.5%);
  top: 50%;
  transform: translateY(-50%);
  width: min(calc(var(--korea-map-size, clamp(560px, min(60vw, 86vh), 900px)) * var(--korea-map-scale, 1)), 100vh);
  height: min(calc(var(--korea-map-size, clamp(560px, min(60vw, 86vh), 900px)) * var(--korea-map-scale, 1)), 100vh);
  aspect-ratio: 1 / 1;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 3;
  user-select: none;
  pointer-events: auto;
  will-change: opacity, transform;
}

.korea-story-map-wrap::before {
  content: '';
  position: absolute;
  width: 78%;
  height: 78%;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(186, 230, 253, 0.07) 0%, rgba(147, 197, 253, 0.03) 42%, transparent 74%);
  filter: blur(40px);
  pointer-events: none;
  z-index: 0;
  animation: atmosphericBreathe 7s ease-in-out infinite alternate;
}

.korea-mosaic-svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 1;
  /* No root-level filter: it forced a full re-blur of the whole SVG every animated frame */
  will-change: opacity;
}

/* Scene 05 dissolve: drop per-path / per-line glow filters so the fade repaints cheaply */
.korea-story-map-wrap.is-scene-05 .korea-mosaic-path,
.korea-story-map-wrap.is-scene-05 .const-network-line {
  filter: none;
  animation: none;
  transition: none;
}

.korea-mosaic-path {
  fill: url(#directionalLightFill);
  fill-opacity: 0;
  stroke: rgba(248, 250, 252, 0.88);
  stroke-width: 0.95;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
}

.korea-mosaic-path.is-jeju {
  stroke-width: 0.9;
  stroke: rgba(241, 245, 249, 0.82);
}

.const-network-line {
  stroke: rgba(236, 242, 250, 0.72);
  stroke-width: 1.12;
  stroke-linecap: round;
  stroke-dasharray: none;
  vector-effect: non-scaling-stroke;
  /* No filter while drawing (dash animation); the scene-04 hold rule adds the glow, eased in */
  transition: filter 0.7s ease;
}

.const-network-line.const-link-trunk {
  stroke: rgba(255, 252, 240, 0.88);
  stroke-width: 1.35;
  stroke-dasharray: none;
}

/* Temporary cinematic draw helpers (created in JS, removed after) */
.const-draw-bloom {
  fill: none;
  stroke-linecap: round;
  vector-effect: non-scaling-stroke;
  pointer-events: none;
  opacity: 0;
}

/* Wide translucent strokes instead of blur(): SVG filters re-rasterize on every dash frame */
.const-draw-bloom.is-trunk {
  stroke: rgba(254, 249, 195, 0.16);
  stroke-width: 18;
}

.const-draw-bloom.is-local {
  stroke: rgba(186, 230, 253, 0.15);
  stroke-width: 15;
}

.const-draw-glow {
  fill: none;
  stroke-linecap: round;
  vector-effect: non-scaling-stroke;
  pointer-events: none;
  opacity: 0;
}

.const-draw-glow.is-trunk {
  stroke: rgba(255, 253, 240, 0.42);
  stroke-width: 7;
}

.const-draw-glow.is-local {
  stroke: rgba(228, 240, 252, 0.38);
  stroke-width: 6.2;
}

.const-draw-core {
  fill: none;
  stroke-linecap: round;
  vector-effect: non-scaling-stroke;
  pointer-events: none;
  opacity: 0;
}

.const-draw-core.is-trunk {
  stroke: rgba(255, 255, 255, 0.95);
  stroke-width: 2.1;
}

.const-draw-core.is-local {
  stroke: rgba(255, 255, 255, 0.92);
  stroke-width: 1.8;
}

.const-draw-comet {
  pointer-events: none;
  opacity: 0;
}

.const-draw-comet.is-trunk {
  fill: #fffef7;
  filter: drop-shadow(0 0 9px rgba(254, 240, 138, 0.95));
}

.const-draw-comet.is-local {
  fill: #ffffff;
  filter: drop-shadow(0 0 9px rgba(186, 230, 253, 0.95));
}

.const-draw-comet.is-trail {
  fill: rgba(255, 255, 255, 0.55);
}

.const-draw-spark {
  pointer-events: none;
  opacity: 0;
  fill: #ffffff;
}

.const-draw-spark.is-trunk {
  fill: #fff7d6;
}

.const-draw-impact {
  fill: none;
  stroke: rgba(255, 255, 255, 0.85);
  stroke-width: 1.6;
  pointer-events: none;
  opacity: 0;
}

.const-draw-impact.is-trunk {
  stroke: rgba(254, 249, 195, 0.9);
}

/* Permanent constellation curves (3D/4D parabolic network — no straight fallback) */
.const-network-curve {
  fill: none;
  stroke: rgba(255, 255, 255, 0.78);
  stroke-width: 1.35;
  stroke-linecap: round;
  vector-effect: non-scaling-stroke;
  filter: drop-shadow(0 0 4px rgba(255, 255, 255, 0.45))
          drop-shadow(0 0 10px rgba(186, 230, 253, 0.28));
  pointer-events: none;
}

.const-network-curve.is-from-hub {
  stroke: rgba(255, 255, 255, 0.9);
  stroke-width: 1.55;
  filter: drop-shadow(0 0 5px rgba(255, 255, 255, 0.55))
          drop-shadow(0 0 12px rgba(224, 242, 254, 0.35));
}

.korea-story-map-wrap.is-curved-network .const-network-line {
  display: none !important;
}

.const-draw-arc {
  fill: none;
  stroke-linecap: round;
  vector-effect: non-scaling-stroke;
  pointer-events: none;
}

.const-draw-arc.is-trunk,
.const-draw-arc.is-local {
  stroke: rgba(255, 255, 255, 0.95);
  stroke-width: 1.7;
  filter: drop-shadow(0 0 6px rgba(255, 255, 255, 0.85))
          drop-shadow(0 0 12px rgba(186, 230, 253, 0.45));
}

.const-draw-arc-glow {
  fill: none;
  stroke-linecap: round;
  vector-effect: non-scaling-stroke;
  pointer-events: none;
}

.const-draw-arc-glow.is-trunk,
.const-draw-arc-glow.is-local {
  stroke: rgba(255, 255, 255, 0.42);
  stroke-width: 5;
  filter: blur(2.2px) drop-shadow(0 0 10px rgba(255, 255, 255, 0.55));
}

.korea-stars-layer {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 5;
}

/* ==========================================================================
   Clean Optical Star — SVG-first, soft halo, micro spark
   ========================================================================== */
.celestial-node {
  position: absolute;
  left: 0;
  top: 0;
  /* GSAP owns transform via xPercent/yPercent (-50/-50) + x/y offsets */
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  will-change: opacity, transform, filter;
}

.star-visual {
  position: relative;
  width: 42px;
  height: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  will-change: transform, opacity;
}

.celestial-node.is-center-daechi .star-visual {
  width: 54px;
  height: 54px;
}

.celestial-node.is-sub .star-visual {
  width: 36px;
  height: 36px;
}

/* Soft ambient halo — quiet glow, not a blob */
.star-visual__halo {
  position: absolute;
  inset: -20%;
  border-radius: 50%;
  background: radial-gradient(
    circle,
    rgba(255, 255, 255, 0.38) 0%,
    rgba(210, 230, 255, 0.12) 38%,
    transparent 70%
  );
  filter: blur(1.6px);
  pointer-events: none;
  z-index: 0;
}

.celestial-node.is-center-daechi .star-visual__halo {
  inset: -24%;
  background: radial-gradient(
    circle,
    rgba(254, 240, 138, 0.45) 0%,
    rgba(250, 204, 21, 0.14) 40%,
    transparent 72%
  );
  filter: blur(1.9px);
}

.star-visual__rays { display: none !important; }

/* Refined point-star sprite */
.star-visual__sprite {
  position: absolute;
  inset: 0;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  filter: drop-shadow(0 0 4px rgba(255, 255, 255, 0.85))
          drop-shadow(0 0 10px rgba(186, 230, 253, 0.4));
  z-index: 1;
  pointer-events: none;
  will-change: transform, opacity;
}

.star-visual__sprite::before,
.star-visual__sprite::after {
  content: none !important;
  display: none !important;
}

.celestial-node.is-center-daechi .star-visual__sprite {
  filter: drop-shadow(0 0 5px rgba(254, 240, 138, 0.95))
          drop-shadow(0 0 12px rgba(245, 158, 11, 0.4));
}

/* Micro core point */
.star-visual__spark {
  position: relative;
  width: 2px;
  height: 2px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 4px 1px rgba(255, 255, 255, 0.95);
  z-index: 2;
  opacity: 0.95;
}

.celestial-node.is-sub .star-visual__spark {
  width: 1.5px;
  height: 1.5px;
}

.celestial-node.is-center-daechi .star-visual__spark {
  width: 2.4px;
  height: 2.4px;
  background: #fef9c3;
  box-shadow: 0 0 5px 1.2px rgba(254, 240, 138, 0.95);
}

/* ==========================================================================
   Caption — locked upright (no rotate / skew / italic tilt)
   Position via flex insets — avoid transform matrices on the text itself
   ========================================================================== */
.star-caption-wrap {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  white-space: nowrap;
  line-height: 1;
  z-index: 10;
  writing-mode: horizontal-tb;
  text-orientation: mixed;
  font-style: normal;
  rotate: 0deg;
  skew: 0deg;
  transform: none;
}

.star-caption-text {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 1px 2px;
  /* Trendy refined KR — Pretendard + IBM Plex, not default gothic */
  font-family: "Pretendard Variable", Pretendard, "IBM Plex Sans KR", sans-serif;
  font-size: 12.5px;
  font-weight: 350;
  font-style: normal;
  font-synthesis: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  color: rgba(248, 250, 252, 0.95);
  letter-spacing: 0.1em;
  line-height: 1;
  text-align: center;
  writing-mode: horizontal-tb;
  text-orientation: mixed;
  rotate: 0deg !important;
  skew: 0deg !important;
  transform: none !important;
  text-shadow:
    0 0 1px rgba(8, 12, 24, 0.55),
    0 1px 2px rgba(8, 12, 24, 0.32),
    0 0 12px rgba(226, 232, 240, 0.2);
}

.star-caption-text::before {
  content: none !important;
  display: none !important;
}

.celestial-node.is-center-daechi .star-caption-text {
  font-size: 14px;
  font-weight: 450;
  color: rgba(254, 243, 199, 0.97);
  letter-spacing: 0.14em;
  text-shadow:
    0 0 1px rgba(20, 14, 4, 0.45),
    0 1px 2px rgba(20, 14, 4, 0.28),
    0 0 14px rgba(254, 240, 138, 0.32);
}

.celestial-node.is-center-daechi .star-caption-text::before {
  content: none !important;
  display: none !important;
}

/* Orthogonal placements — flex insets only (no rotate) */
.celestial-node.pos-top .star-caption-wrap {
  left: 0;
  right: 0;
  bottom: calc(100% + 10px);
  top: auto;
  transform: none;
}

.celestial-node.pos-bottom .star-caption-wrap {
  left: 0;
  right: 0;
  top: calc(100% + 10px);
  bottom: auto;
  transform: none;
}

.celestial-node.pos-left .star-caption-wrap {
  top: 0;
  bottom: 0;
  right: calc(100% + 10px);
  left: auto;
  transform: none;
}

.celestial-node.pos-right .star-caption-wrap {
  top: 0;
  bottom: 0;
  left: calc(100% + 10px);
  right: auto;
  transform: none;
}

/* Legacy diagonal classes → orthogonal */
.celestial-node.pos-top-left .star-caption-wrap,
.celestial-node.pos-bottom-left .star-caption-wrap {
  top: 0;
  bottom: 0;
  right: calc(100% + 10px);
  left: auto;
  transform: none;
}
.celestial-node.pos-top-right .star-caption-wrap,
.celestial-node.pos-bottom-right .star-caption-wrap {
  top: 0;
  bottom: 0;
  left: calc(100% + 10px);
  right: auto;
  transform: none;
}

/* ==========================================================================
   Living breath (subtle) — paused once SCENE 04 GSAP hold takes over
   ========================================================================== */
.celestial-node.is-steady .star-visual__halo {
  animation: starHaloBreathe 5.5s ease-in-out infinite alternate;
}

.celestial-node.is-steady .star-visual__sprite {
  animation: starSpriteBreathe 5s ease-in-out infinite alternate;
}

.celestial-node.is-center-daechi.is-steady .star-visual__halo {
  animation: daechiHaloBreathe 4.5s ease-in-out infinite alternate;
}

.celestial-node.is-center-daechi.is-steady .star-visual__sprite {
  animation: daechiSpriteBreathe 4.2s ease-in-out infinite alternate;
}

.korea-story-map-wrap.is-constellation-hold .celestial-node .star-visual__halo,
.korea-story-map-wrap.is-constellation-hold .celestial-node .star-visual__sprite {
  animation: none !important;
}

/* SCENE 04 — completed constellation hold (dark sky, soft emphasis only) */
/* No land-group blur or per-path glow: toggling a filter on the whole land made the map flash
   brighter and re-rasterized 800px at once (visible hitch). Land glow lives in the strokes. */

/* :not(.is-scene-05) — scene 05 is added on top of scene 04, and the dissolve must repaint without filters */
.korea-story-map-wrap.is-scene-04:not(.is-scene-05) .const-network-line {
  filter: drop-shadow(0 0 6px rgba(186, 230, 253, 0.55));
  animation: constLineShimmer 4.8s ease-in-out infinite alternate;
}

.korea-story-map-wrap.is-scene-04:not(.is-scene-05) .const-network-line.const-link-trunk {
  filter: drop-shadow(0 0 8px rgba(250, 204, 21, 0.5));
  animation: constTrunkShimmer 4.2s ease-in-out infinite alternate;
}

.korea-story-map-wrap.is-scene-04 .korea-stars-layer {
  /* Positions locked — no camera / zoom / rotate */
  transform: none;
}

@keyframes atmosphericBreathe {
  0% { transform: translate(-50%, -50%) scale(0.94); opacity: 0.7; }
  100% { transform: translate(-50%, -50%) scale(1.1); opacity: 1; }
}

@keyframes starHaloBreathe {
  0% { transform: scale(0.92); opacity: 0.72; }
  100% { transform: scale(1.08); opacity: 1; }
}

/* Breathing loops animate transform/opacity only — a filter in keyframes re-rasterizes every frame */
@keyframes starSpriteBreathe {
  0% { transform: scale(0.97); opacity: 0.9; }
  100% { transform: scale(1.04); opacity: 1; }
}

@keyframes daechiHaloBreathe {
  0% { transform: scale(0.94); opacity: 0.78; }
  100% { transform: scale(1.1); opacity: 1; }
}

@keyframes daechiSpriteBreathe {
  0% { transform: scale(0.97); opacity: 0.92; }
  100% { transform: scale(1.05); opacity: 1; }
}

@keyframes constLineShimmer {
  0% { stroke: rgba(226, 232, 240, 0.58); }
  100% { stroke: rgba(241, 245, 249, 0.82); }
}

@keyframes constTrunkShimmer {
  0% { stroke: rgba(255, 250, 230, 0.72); }
  100% { stroke: rgba(255, 252, 240, 0.95); }
}

@media (max-width: 1280px) {
  body:not(.theme-sian3-lp) .korea-story-map-wrap {
    right: 1.5%;
    width: clamp(480px, min(56vw, 80vh), 760px);
    height: clamp(480px, min(56vw, 80vh), 760px);
  }
  .star-caption-text { font-size: 11.5px; }
  .celestial-node.is-center-daechi .star-caption-text { font-size: 13.5px; }
}

@media (max-width: 1024px) {
  body:not(.theme-sian3-lp) .korea-story-map-wrap {
    right: 1%;
    width: clamp(420px, min(52vw, 72vh), 620px);
    height: clamp(420px, min(52vw, 72vh), 620px);
  }
  .star-visual { width: 38px; height: 38px; }
  .celestial-node.is-center-daechi .star-visual { width: 48px; height: 48px; }
  .celestial-node.is-sub .star-visual { width: 32px; height: 32px; }
  .star-caption-text { font-size: 11px; }
  .celestial-node.is-center-daechi .star-caption-text { font-size: 12.5px; }
}

@media (max-width: 768px) {
  body:not(.theme-sian3-lp) .korea-story-map-wrap {
    right: 50%;
    top: auto;
    bottom: clamp(60px, 12vh, 120px);
    transform: translateX(50%);
    width: clamp(320px, min(88vw, 52vh), 480px);
    height: clamp(320px, min(88vw, 52vh), 480px);
  }
  .star-caption-text { font-size: 10.5px; }
  .celestial-node.is-center-daechi .star-caption-text { font-size: 12px; }
}

@media (max-width: 900px) and (min-width: 769px) {
  body:not(.theme-sian3-lp) .korea-story-map-wrap {
    right: 2%;
    width: clamp(400px, min(54vw, 68vh), 560px);
    height: clamp(400px, min(54vw, 68vh), 560px);
  }
}

@media (min-width: 901px) and (max-width: 1023px) {
  body:not(.theme-sian3-lp) .korea-story-map-wrap {
    right: 1.25%;
    width: clamp(440px, min(54vw, 74vh), 640px);
    height: clamp(440px, min(54vw, 74vh), 640px);
  }
}

@media (min-width: 1024px) and (max-width: 1279px) {
  body:not(.theme-sian3-lp) .korea-story-map-wrap {
    right: 1.25%;
    width: clamp(460px, min(55vw, 78vh), 720px);
    height: clamp(460px, min(55vw, 78vh), 720px);
  }
}

@media (min-width: 1280px) and (max-width: 1439px) {
  body:not(.theme-sian3-lp) .korea-story-map-wrap {
    right: 1.75%;
    width: clamp(500px, min(56vw, 82vh), 740px);
    height: clamp(500px, min(56vw, 82vh), 740px);
  }
}

@media (min-width: 1800px) {
  body:not(.theme-sian3-lp) .korea-story-map-wrap {
    right: 2.5%;
    width: clamp(560px, min(52vw, 86vh), 820px);
    height: clamp(560px, min(52vw, 86vh), 820px);
  }
}

/* ==========================================================================
   SCENE 05–06 — Converge + Hero star + Onui handoff
   ========================================================================== */
:root {
  /* Park seat after map dissolve — slightly lower so star sits in the sky band */
  --korea-hero-park-x: 0.62;
  --korea-hero-park-y: 0.20;
  --korea-hero-end-x: 0.62;
  --korea-hero-end-y: 0.20;
  --korea-meteor-target-x: 0.57;
  --korea-meteor-target-y: 0.205;
  --korea-meteor-scale: 1;
  --korea-meteor-core: 7.6px;
  --korea-meteor-glow: 29px;
  --korea-meteor-trail: 104px;
  --korea-meteor-trail-neck: 16px;
  --korea-meteor-trail-mid: 88px;
  --korea-meteor-trail-soft: 96px;
  --korea-meteor-trail-flare: 88px;
  --korea-map-size: clamp(560px, min(60vw, 86vh), 900px);
  /* Map enlargement knob — consumed with a viewport-height cap so short windows never overflow */
  --korea-map-scale: 1.5;
}

/* LP desktop — original cinematic map pocket (vertical center, full size) */
body.theme-sian3-lp .korea-story-map-wrap {
  right: clamp(1.5%, 3.8vw, 6.5%);
  top: 50%;
  left: auto;
  bottom: auto;
  transform: translateY(-50%);
  transform-origin: center center;
  /* Cap: the land shape spans y 8.5%–89% of the box, so 100vh keeps it fully inside the viewport */
  width: min(calc(var(--korea-map-size) * var(--korea-map-scale)), 100vh);
  height: min(calc(var(--korea-map-size) * var(--korea-map-scale)), 100vh);
}

@media (min-width: 901px) and (max-width: 1279px) {
  body.theme-sian3-lp {
    --korea-map-size: clamp(460px, min(55vw, 78vh), 720px);
  }
  body.theme-sian3-lp .korea-story-map-wrap {
    right: 1.25%;
  }
}

@media (min-width: 1280px) and (max-width: 1439px) {
  body.theme-sian3-lp {
    --korea-map-size: clamp(500px, min(56vw, 82vh), 740px);
  }
  body.theme-sian3-lp .korea-story-map-wrap {
    right: 1.75%;
  }
}

@media (min-width: 1800px) {
  body.theme-sian3-lp {
    --korea-map-size: clamp(560px, min(52vw, 86vh), 820px);
  }
  body.theme-sian3-lp .korea-story-map-wrap {
    right: 2.5%;
  }
}

/* Tablet / iPad portrait only — bottom-anchored pocket (오누이 구도 유지) */
@media (max-width: 900px),
       (max-width: 1180px) and (orientation: portrait) {
  body.theme-sian3-lp {
    --korea-map-size: clamp(268px, min(44vw, 34vh), 392px);
  }
  body.theme-sian3-lp .korea-story-map-wrap {
    right: var(--lp-const-right, 3%);
    top: auto;
    bottom: var(--lp-const-bottom, 28%);
    left: auto;
    transform: none;
    transform-origin: center center;
    width: min(calc(var(--korea-map-size, var(--lp-const-size)) * var(--korea-map-scale)), 48vh, 92vw);
    height: min(calc(var(--korea-map-size, var(--lp-const-size)) * var(--korea-map-scale)), 48vh, 92vw);
  }
}

/* Onui handoff layers — inherit LP layout tokens */
body.theme-sian3-lp .korea-onui-world .lp-planet {
  position: absolute;
  right: var(--lp-planet-right);
  bottom: var(--lp-planet-bottom);
  width: var(--lp-planet-w);
  height: auto;
}

body.theme-sian3-lp .korea-onui-world .lp-planet img {
  width: 100%;
  height: auto;
  display: block;
}

body.theme-sian3-lp .korea-onui-world .lp-scene {
  position: absolute;
  right: var(--lp-scene-right);
  bottom: var(--lp-scene-bottom);
  width: var(--lp-scene-w);
  height: var(--lp-scene-h, calc(var(--lp-scene-w) * 0.95));
  overflow: visible;
}

body.theme-sian3-lp .korea-onui-world .lp-book {
  position: absolute;
  left: var(--lp-book-left, -6%);
  bottom: var(--lp-book-bottom, 6.5%);
  width: var(--lp-book-w, 29.5%);
  z-index: 2;
  pointer-events: none;
}

body.theme-sian3-lp .korea-onui-world .lp-prince--video {
  position: absolute;
  width: var(--lp-prince-w, 84%);
  right: var(--lp-prince-right, 9%);
  bottom: var(--lp-prince-bottom, -4%);
  z-index: 3;
  pointer-events: none;
}

@media (max-width: 900px),
       (max-width: 1180px) and (orientation: portrait) {
  body.theme-sian3-lp .korea-onui-world .lp-planet,
  body.theme-sian3-lp .korea-onui-world .lp-scene,
  body.theme-sian3-lp .korea-onui-world .lp-book,
  body.theme-sian3-lp .korea-onui-world .lp-prince--video {
    left: auto;
    transform: none;
  }
}

.korea-star-trail {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 8;
}

.korea-hero-star {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 56px;
  height: 56px;
  margin: 0;
  opacity: 0;
  pointer-events: none;
  z-index: 10;
  will-change: left, top, transform, opacity;
  filter: drop-shadow(0 0 10px rgba(253, 224, 71, 0.35));
}

.korea-hero-star__bloom {
  position: absolute;
  inset: -42%;
  border-radius: 50%;
  background: radial-gradient(
    circle,
    rgba(254, 243, 199, 0.55) 0%,
    rgba(250, 204, 21, 0.18) 38%,
    transparent 72%
  );
  filter: blur(5px);
  opacity: 0.9;
  pointer-events: none;
}

.korea-hero-star__sprite {
  position: absolute;
  inset: 0;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  pointer-events: none;
}

.korea-hero-star__spark {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 6px;
  height: 6px;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: radial-gradient(circle, #fff 0%, rgba(254, 249, 195, 0.85) 45%, transparent 100%);
  box-shadow: 0 0 10px 3px rgba(255, 255, 255, 0.55);
  opacity: 0.85;
  pointer-events: none;
}

.korea-hero-star.is-alive .korea-hero-star__bloom {
  animation: koreaHeroGlowPulse 2.6s ease-in-out infinite alternate;
}

.korea-hero-star.is-settled {
  filter: drop-shadow(0 0 8px rgba(253, 224, 71, 0.28));
}

.korea-hero-star.is-settled .korea-hero-star__spark {
  opacity: 0.65;
}

.korea-hero-star.is-parked {
  z-index: 12;
  filter: drop-shadow(0 0 12px rgba(253, 224, 71, 0.4));
}

.korea-hero-star.is-spent {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none;
}

.korea-hero-star.is-charging .korea-hero-star__bloom {
  animation: koreaHeroGlowPulse 0.55s ease-in-out infinite alternate;
}

.korea-hero-star.is-drifting {
  z-index: 12;
  filter: drop-shadow(0 0 11px rgba(253, 224, 71, 0.34));
}

.korea-hero-star.is-drifting .korea-hero-star__bloom {
  animation: none;
}

/* Caption removed — hide if leftover */
.korea-story-caption { display: none !important; }

.korea-story-stage.is-scene-05 .korea-story-map-wrap::before,
.korea-story-stage.is-scene-06 .korea-story-map-wrap::before {
  opacity: 0.28;
  animation: none;
}

.korea-story-map-wrap.is-scene-05 .const-network-line,
.korea-story-map-wrap.is-scene-06 .const-network-line {
  animation: none !important;
}

.korea-story-map-wrap.is-map-dissolving {
  pointer-events: none;
}

.korea-story-map-wrap.is-map-dissolving::before {
  opacity: 0.14;
  animation: none;
}

.korea-story-map-wrap.is-map-dissolving .korea-mosaic-svg {
  filter: blur(0.4px);
}

.korea-story-map-wrap.is-map-gone {
  visibility: hidden !important;
  pointer-events: none;
  opacity: 0 !important;
}

.korea-story-stage.is-map-cleared {
  z-index: 6;
}

.korea-story-stage.is-map-cleared .korea-story-map-wrap {
  display: none;
}

/* Onui handoff world (planet + prince under map) */
.korea-onui-world {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  overflow: visible;
  opacity: 0;
}

.korea-onui-world.is-live {
  z-index: 2;
}

/* Sky layers fade as composited layers; twinkles stay paused until the sky is settled so the
   pre-built (near-invisible) sky costs nothing during the map scenes */
.korea-onui-world .lp-field,
.korea-onui-world .korea-sky-deep,
.korea-onui-world .korea-sky-constellation,
.korea-onui-world .korea-park-vicinity {
  will-change: opacity;
}

.korea-onui-world:not(.is-sky-settled) .lp-field-star,
.korea-onui-world:not(.is-sky-settled) .korea-deep-star,
.korea-onui-world:not(.is-sky-settled) .lp-amb-star,
.korea-onui-world:not(.is-sky-settled) .lp-sat-star,
.korea-onui-world:not(.is-sky-settled) .lp-sat-star * {
  animation-play-state: paused;
}

.korea-onui-world .lp-field {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

.korea-onui-world .korea-sky-constellation {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: visible;
  opacity: 0;
}

.korea-onui-world .korea-park-vicinity {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  overflow: visible;
  opacity: 0;
}

.korea-onui-world .korea-park-vicinity__amb {
  position: absolute;
  inset: -8%;
  pointer-events: none;
}

.korea-onui-world .korea-park-vicinity__links {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  overflow: visible;
}

.korea-onui-world .korea-park-vicinity__stars {
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.88;
}

.korea-onui-world .korea-sky-ambient {
  inset: -28%;
}

.korea-onui-world .korea-sky-links {
  position: absolute;
  inset: -20%;
  width: 140%;
  height: 140%;
  z-index: 1;
  pointer-events: none;
  overflow: visible;
}

.korea-onui-world .korea-sky-satellites {
  opacity: 0.78;
}

.korea-onui-world .korea-sky-deep {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: visible;
  opacity: 0;
}

.korea-onui-world .korea-deep-star {
  position: absolute;
  left: var(--x);
  top: var(--y);
  width: var(--s, 1px);
  height: var(--s, 1px);
  margin: calc(var(--s, 1px) / -2) 0 0 calc(var(--s, 1px) / -2);
  border-radius: 50%;
  background: rgba(255, 252, 245, 0.92);
  opacity: var(--o, 0.2);
  box-shadow:
    0 0 calc(var(--s, 1px) * 1.5) rgba(255, 240, 210, 0.42),
    0 0 calc(var(--s, 1px) * 2.8) rgba(255, 220, 160, 0.16);
  animation: koreaDeepTwinkle var(--tw, 5.5s) ease-in-out infinite;
  animation-delay: var(--td, 0s);
}

.korea-onui-world .korea-deep-star--bright {
  box-shadow:
    0 0 calc(var(--s) * 1.8) rgba(255, 245, 220, 0.55),
    0 0 calc(var(--s) * 3.6) rgba(255, 220, 150, 0.22);
}

.korea-onui-world.is-sky-settled .lp-field-star,
.korea-onui-world.is-sky-settled .lp-amb-star,
.korea-onui-world.is-sky-settled .lp-sat-star,
.korea-onui-world.is-sky-settled .korea-deep-star {
  animation-play-state: running;
}

.korea-onui-world.is-sky-settled .lp-field,
.korea-onui-world.is-sky-settled .korea-sky-deep,
.korea-onui-world.is-sky-settled .korea-sky-constellation {
  opacity: 1 !important;
}

.korea-onui-world .lp-haze {
  z-index: 1;
}

.korea-onui-world .lp-planet {
  z-index: 2;
}

.korea-onui-world .lp-scene {
  z-index: 4;
}

.korea-onui-world .lp-meteor,
.korea-onui-world .lp-match-flash,
.korea-onui-world .lp-match-bloom,
.korea-onui-world .lp-match-ring {
  z-index: 14;
}

.korea-onui-sky {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

.korea-onui-sky__star {
  position: absolute;
  left: var(--x);
  top: var(--y);
  width: var(--s, 1px);
  height: var(--s, 1px);
  margin: calc(var(--s, 1px) / -2) 0 0 calc(var(--s, 1px) / -2);
  border-radius: 50%;
  background: #fff;
  opacity: var(--o, 0.3);
  box-shadow: 0 0 calc(var(--s, 1px) * 1.6) rgba(255, 255, 255, 0.45);
  animation: koreaOnuiTwinkle 5.5s ease-in-out infinite;
  animation-delay: var(--d, 0s);
}

.korea-onui-sky__star.is-bright,
.korea-onui-sky__star.is-anchor.is-bright {
  box-shadow:
    0 0 calc(var(--s) * 1.2) rgba(255, 255, 255, 0.9),
    0 0 calc(var(--s) * 3.2) rgba(255, 236, 190, 0.35);
}

.korea-onui-sky__star.is-anchor {
  transform-origin: center center;
}

#s3HeroVisual.is-korea-handoff .korea-story-stage {
  z-index: 5;
}

#s3HeroVisual.is-onui-live #koreaHeroStar {
  z-index: 13;
}

#s3HeroVisual.is-onui-live #koreaMapMeteor {
  z-index: 14;
}

#s3HeroVisual.is-onui-live .korea-story-stage.is-map-cleared {
  z-index: 0;
  pointer-events: none;
}

@keyframes koreaDeepTwinkle {
  0%, 100% { opacity: calc(var(--o, 0.2) * 0.72); transform: scale(0.94); }
  50% { opacity: calc(var(--o, 0.2) * 1.08); transform: scale(1.06); }
}

@keyframes koreaHeroGlowPulse {
  0% { transform: scale(0.94); opacity: 0.8; }
  100% { transform: scale(1.12); opacity: 1; }
}

@keyframes koreaOnuiTwinkle {
  0%, 100% { opacity: calc(var(--o, 0.3) * 0.55); }
  50% { opacity: var(--o, 0.3); }
}

/* Star awakening shockwave ring — one-shot, created in JS */
.star-awaken-ring {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.72);
  box-shadow: 0 0 6px rgba(255, 255, 255, 0.55), 0 0 14px rgba(186, 230, 253, 0.35);
  opacity: 0;
  pointer-events: none;
  z-index: 0;
  will-change: transform, opacity;
}

.star-awaken-ring.is-hub {
  border-color: rgba(255, 249, 214, 0.82);
  box-shadow: 0 0 8px rgba(255, 244, 200, 0.6), 0 0 18px rgba(254, 240, 138, 0.35);
}

/* Converge trail — streak following each star into the hub light */
.korea-converge-trail {
  position: absolute;
  width: 46px;
  height: 2.5px;
  border-radius: 2px;
  transform-origin: 100% 50%;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgba(210, 230, 255, 0.6) 50%, rgba(255, 255, 255, 1) 100%);
  box-shadow: 0 0 8px rgba(186, 230, 253, 0.55);
  opacity: 0;
  pointer-events: none;
  z-index: 12;
  will-change: transform, opacity;
}

/* Gold-star birth — flash + expanding ring at the merge point, one-shot from JS */
.korea-birth-flash {
  position: absolute;
  width: clamp(160px, 38vh, 360px);
  height: clamp(160px, 38vh, 360px);
  border-radius: 50%;
  background: radial-gradient(
    circle,
    rgba(255, 251, 235, 0.95) 0%,
    rgba(254, 240, 138, 0.55) 22%,
    rgba(250, 204, 21, 0.18) 48%,
    transparent 72%
  );
  filter: blur(6px);
  opacity: 0;
  pointer-events: none;
  z-index: 13;
  will-change: transform, opacity;
}

.korea-birth-ring {
  position: absolute;
  width: clamp(64px, 13vh, 120px);
  height: clamp(64px, 13vh, 120px);
  border-radius: 50%;
  border: 2px solid rgba(255, 249, 214, 0.9);
  box-shadow: 0 0 10px rgba(254, 240, 138, 0.7), inset 0 0 10px rgba(254, 240, 138, 0.35);
  opacity: 0;
  pointer-events: none;
  z-index: 13;
  will-change: transform, opacity;
}

.korea-birth-ring.is-soft {
  border-width: 1px;
  border-color: rgba(254, 240, 138, 0.55);
  box-shadow: 0 0 14px rgba(250, 204, 21, 0.4);
}

/* Firework spark: a short gold streak, rotated toward its flight direction (origin at the tail) */
.korea-birth-spark {
  position: absolute;
  width: 22px;
  height: 2.5px;
  border-radius: 2px;
  transform-origin: 0 50%;
  background: linear-gradient(90deg, rgba(254, 240, 138, 0) 0%, rgba(254, 243, 199, 0.85) 60%, #fffbea 100%);
  box-shadow: 0 0 6px rgba(250, 204, 21, 0.6);
  opacity: 0;
  pointer-events: none;
  z-index: 13;
  will-change: transform, opacity;
}

.korea-birth-spark.is-bright {
  width: 30px;
  height: 3px;
  box-shadow: 0 0 9px rgba(255, 244, 200, 0.85);
}

/* ── birthBurst: 'rich' 전용 (LP_SEQUENCE_CONFIG) — 스파크 2파·잔불·광선·충격 링 ── */
.korea-birth-spark.is-second {
  width: 16px;
  height: 2px;
  background: linear-gradient(90deg, rgba(251, 191, 36, 0) 0%, rgba(253, 224, 71, 0.85) 60%, #fff7d6 100%);
  box-shadow: 0 0 5px rgba(245, 158, 11, 0.6);
}

.korea-birth-ring.is-shock {
  border-width: 1.5px;
  border-color: rgba(255, 255, 255, 0.95);
  box-shadow: 0 0 16px rgba(254, 240, 138, 0.9), inset 0 0 8px rgba(255, 255, 255, 0.5);
}

.korea-birth-ray {
  position: absolute;
  height: 1.5px;
  border-radius: 1px;
  transform-origin: 0 50%;
  background: linear-gradient(90deg, rgba(255, 251, 235, 0.95) 0%, rgba(254, 240, 138, 0.5) 45%, rgba(254, 240, 138, 0) 100%);
  opacity: 0;
  pointer-events: none;
  z-index: 12;
  will-change: transform, opacity;
}

.korea-birth-ember {
  position: absolute;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #fff7d6;
  box-shadow: 0 0 6px 2px rgba(254, 240, 138, 0.75);
  opacity: 0;
  pointer-events: none;
  z-index: 13;
  will-change: transform, opacity;
}

.korea-birth-ember.is-amber {
  background: #fde68a;
  box-shadow: 0 0 6px 2px rgba(245, 158, 11, 0.7);
}

.korea-birth-ember.is-lg {
  width: 5.5px;
  height: 5.5px;
  box-shadow: 0 0 8px 3px rgba(254, 240, 138, 0.8);
}

@media (max-width: 768px) {
  .korea-hero-star {
    width: 44px;
    height: 44px;
  }
  body.theme-sian3-lp {
    --korea-map-size: clamp(292px, min(58vw, 46vh), 408px);
  }
  :root {
    --korea-hero-park-x: 0.56;
    --korea-hero-park-y: 0.218;
    --korea-hero-end-x: 0.56;
    --korea-hero-end-y: 0.218;
    --korea-meteor-target-x: 0.55;
    --korea-meteor-target-y: 0.232;
    --korea-meteor-scale: 0.88;
    --korea-meteor-core: 6px;
    --korea-meteor-glow: 22px;
    --korea-meteor-trail: 82px;
    --korea-meteor-trail-neck: 12px;
    --korea-meteor-trail-mid: 72px;
    --korea-meteor-trail-soft: 78px;
    --korea-meteor-trail-flare: 72px;
  }
}

@media (max-width: 480px) {
  body:not(.theme-sian3-lp) .korea-story-map-wrap {
    bottom: clamp(48px, 10vh, 96px);
    width: clamp(280px, min(92vw, 48vh), 420px);
    height: clamp(280px, min(92vw, 48vh), 420px);
  }
  .korea-hero-star {
    width: 40px;
    height: 40px;
  }
  :root {
    --korea-hero-park-x: 0.53;
    --korea-hero-park-y: 0.155;
    --korea-hero-end-x: 0.53;
    --korea-hero-end-y: 0.155;
    --korea-meteor-target-x: 0.52;
    --korea-meteor-target-y: 0.175;
    --korea-meteor-scale: 0.82;
    --korea-meteor-core: 5.5px;
    --korea-meteor-glow: 20px;
    --korea-meteor-trail: 74px;
    --korea-meteor-trail-neck: 11px;
    --korea-meteor-trail-mid: 64px;
    --korea-meteor-trail-soft: 70px;
    --korea-meteor-trail-flare: 64px;
  }
}

@media (min-width: 769px) and (max-width: 900px) {
  .korea-hero-star {
    width: 48px;
    height: 48px;
  }
  body.theme-sian3-lp {
    --korea-map-size: clamp(318px, min(60vw, 48vh), 432px);
  }
  :root {
    --korea-hero-park-x: 0.57;
    --korea-hero-park-y: 0.212;
    --korea-hero-end-x: 0.57;
    --korea-hero-end-y: 0.212;
    --korea-meteor-target-x: 0.56;
    --korea-meteor-target-y: 0.228;
    --korea-meteor-scale: 0.92;
    --korea-meteor-core: 7px;
    --korea-meteor-glow: 26px;
    --korea-meteor-trail: 94px;
    --korea-meteor-trail-neck: 14px;
    --korea-meteor-trail-mid: 80px;
    --korea-meteor-trail-soft: 88px;
    --korea-meteor-trail-flare: 80px;
  }
}

@media (min-width: 901px) and (max-width: 1023px) {
  .korea-hero-star {
    width: 50px;
    height: 50px;
  }
  :root {
    --korea-hero-park-x: 0.58;
    --korea-hero-park-y: 0.175;
    --korea-hero-end-x: 0.58;
    --korea-hero-end-y: 0.175;
    --korea-meteor-target-x: 0.56;
    --korea-meteor-target-y: 0.188;
    --korea-meteor-scale: 0.94;
    --korea-meteor-core: 7.2px;
    --korea-meteor-glow: 27px;
    --korea-meteor-trail: 96px;
    --korea-meteor-trail-neck: 14px;
    --korea-meteor-trail-mid: 82px;
    --korea-meteor-trail-soft: 90px;
    --korea-meteor-trail-flare: 82px;
  }
}

@media (min-width: 901px) and (max-width: 1180px) and (orientation: landscape) {
  :root {
    --korea-hero-park-x: 0.59;
    --korea-hero-park-y: 0.168;
    --korea-hero-end-x: 0.59;
    --korea-hero-end-y: 0.168;
    --korea-meteor-target-x: 0.57;
    --korea-meteor-target-y: 0.182;
  }
}

@media (max-width: 900px),
       (max-width: 1180px) and (orientation: portrait) {
  :root {
    --korea-hero-park-x: 0.56;
    --korea-hero-park-y: 0.214;
    --korea-hero-end-x: 0.56;
    --korea-hero-end-y: 0.214;
    --korea-meteor-target-x: 0.55;
    --korea-meteor-target-y: 0.228;
  }
}

@media (min-width: 1024px) and (max-width: 1279px) {
  .korea-hero-star {
    width: 52px;
    height: 52px;
  }
  :root {
    --korea-hero-park-x: 0.61;
    --korea-hero-park-y: 0.188;
    --korea-hero-end-x: 0.61;
    --korea-hero-end-y: 0.188;
    --korea-meteor-target-x: 0.565;
    --korea-meteor-target-y: 0.198;
    --korea-meteor-scale: 0.96;
  }
}

@media (min-width: 1280px) and (max-width: 1439px) {
  .korea-hero-star {
    width: 54px;
    height: 54px;
  }
  :root {
    --korea-hero-park-x: 0.615;
    --korea-hero-park-y: 0.195;
    --korea-hero-end-x: 0.615;
    --korea-hero-end-y: 0.195;
    --korea-meteor-scale: 0.98;
  }
}

/* PC / 가로 데스크톱 — 태블릿 park·meteor 값이 새어 나오지 않도록 복원 */
@media (min-width: 901px) and (orientation: landscape),
       (min-width: 1181px) {
  :root {
    --korea-hero-park-x: 0.62;
    --korea-hero-park-y: 0.20;
    --korea-hero-end-x: 0.62;
    --korea-hero-end-y: 0.20;
    --korea-meteor-target-x: 0.57;
    --korea-meteor-target-y: 0.205;
    --korea-meteor-scale: 1;
  }
}

/* Map meteor — zero-size anchor so head sits exactly on hero star center */
#koreaMapMeteor.lp-meteor {
  width: 0;
  height: 0;
  overflow: visible;
  transform-origin: 0 0;
}

#koreaMapMeteor .lp-meteor__core {
  left: 0;
  top: 0;
  width: var(--korea-meteor-core, 7.6px);
  height: var(--korea-meteor-core, 7.6px);
  margin: calc(var(--korea-meteor-core, 7.6px) / -2) 0 0 calc(var(--korea-meteor-core, 7.6px) / -2);
}

#koreaMapMeteor .lp-meteor__glow {
  left: 0;
  top: 0;
  width: var(--korea-meteor-glow, 29px);
  height: var(--korea-meteor-glow, 29px);
  margin: calc(var(--korea-meteor-glow, 29px) / -2) 0 0 calc(var(--korea-meteor-glow, 29px) / -2);
}

#koreaMapMeteor .lp-meteor__trail {
  left: 0;
  top: 0;
  width: var(--korea-meteor-trail, 104px);
  margin: -1px 0 0 calc(var(--korea-meteor-trail, 104px) * -1);
  transform-origin: 100% 50%;
}

#koreaMapMeteor .lp-meteor__trail--neck {
  left: 0;
  top: 0;
  width: var(--korea-meteor-trail-neck, 16px);
  height: 2.6px;
  margin: -1.3px 0 0 calc(var(--korea-meteor-trail-neck, 16px) * -1);
  transform-origin: 100% 50%;
}

#koreaMapMeteor .lp-meteor__trail--mid {
  left: 0;
  top: 0;
  width: var(--korea-meteor-trail-mid, 88px);
  height: 3.6px;
  margin: -1.8px 0 0 calc(var(--korea-meteor-trail-mid, 88px) * -1);
  transform-origin: 100% 50%;
}

#koreaMapMeteor .lp-meteor__trail--soft {
  left: 0;
  top: 0;
  width: var(--korea-meteor-trail-soft, 96px);
  height: 5.8px;
  margin: -2.9px 0 0 calc(var(--korea-meteor-trail-soft, 96px) * -1);
  transform-origin: 100% 50%;
}

#koreaMapMeteor .lp-meteor__trail--flare {
  left: 0;
  top: 0;
  width: var(--korea-meteor-trail-flare, 88px);
  height: 0.85px;
  margin: -0.425px 0 0 calc(var(--korea-meteor-trail-flare, 88px) * -1);
  transform-origin: 100% 50%;
}

#s3HeroVisual.is-onui-live .korea-onui-world .lp-planet,
#s3HeroVisual.is-onui-live .korea-onui-world .lp-scene {
  transition: opacity 0.45s ease, transform 0.55s ease;
}

@media (max-width: 900px) {
  #s3HeroVisual.is-onui-live .korea-onui-world .lp-field-star--bright {
    --s: calc(var(--s, 1px) * 0.92);
  }
}

@media (max-width: 480px) {
  #s3HeroVisual.is-onui-live .korea-onui-world .lp-match-flash {
    width: 58px;
    height: 58px;
  }
  #s3HeroVisual.is-onui-live .korea-onui-world .lp-match-bloom {
    width: 88px;
    height: 88px;
  }
  #s3HeroVisual.is-onui-live .korea-onui-world .lp-match-ring {
    width: 32px;
    height: 32px;
  }
}



/* 인앱 브라우저(카카오톡 등) 대비 — 오누이 클립이 아직 재생되지 않을 때
   브라우저가 그리는 기본 재생 버튼·컨트롤이 하늘에 동영상 표시처럼 보이지 않게 숨긴다 */
body.theme-sian3-lp .lp-prince__gif::-webkit-media-controls,
body.theme-sian3-lp .lp-prince__gif::-webkit-media-controls-panel,
body.theme-sian3-lp .lp-prince__gif::-webkit-media-controls-start-playback-button,
body.theme-sian3-lp .lp-prince__gif::-webkit-media-controls-overlay-play-button {
  display: none !important;
  -webkit-appearance: none;
  appearance: none;
  opacity: 0 !important;
}
body.theme-sian3-lp .lp-prince__gif {
  background: transparent;
}
