body.theme-sian3:not(.is-form-open):not(.is-app-subroute) .s34-form-shell,
body.theme-sian3:not(.is-form-open):not(.is-app-subroute) .s34-site-header,
body.theme-sian4:not(.is-form-open) .s34-form-shell,
body.theme-sian4:not(.is-form-open) .s34-site-header {
  visibility: hidden;
  pointer-events: none;
  position: fixed;
  inset: 0;
  z-index: -1;
}
body.theme-sian3.is-form-open #s3Landing,
body.theme-sian3.is-form-open .s3-sticky-cta,
body.theme-sian3.is-form-open .s3-geo,
body.theme-sian3.is-form-open .s3-snap-progress,
body.theme-sian4.is-form-open #s4Landing,
body.theme-sian4.is-form-open .s4-header,
body.theme-sian4.is-form-open .s4-rail {
  display: none !important;
}
/* Keep landing noise / glow alive on form ? styled further in sian3-app.css */
body.theme-sian3.is-form-open .s34-form-shell,
body.theme-sian3.is-form-open .s34-site-header,
body.theme-sian3.is-app-subroute .s34-site-header,
body.theme-sian4.is-form-open .s34-form-shell,
body.theme-sian4.is-form-open .s34-site-header {
  visibility: visible;
  pointer-events: auto;
}
body.theme-sian3.is-form-open .s34-form-shell {
  position: relative;
  z-index: 1;
}
body.theme-sian3.is-form-open .s34-site-header,
body.theme-sian3.is-app-subroute .s34-site-header,
body.theme-sian4.is-form-open .s34-site-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 3200;
  height: auto;
}
/* Non-sian3 fallback only ? sian3 uses dark canvas from sian3-app.css */
body.is-form-open:not(.theme-sian3) #splitLayout {
  display: block !important;
  position: relative;
  min-height: 100dvh;
  opacity: 1 !important;
  visibility: visible !important;
  background: #f6f5f4;
  padding: calc(64px + env(safe-area-inset-top, 0px)) 0 40px;
  overflow: auto;
}
body.is-form-open:not(.theme-sian3) #formStage {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  position: relative;
  width: min(920px, calc(100% - 32px));
  margin: 0 auto;
}




/* ── First-paint hero intro (paired with sian3-bridge initHeroStagger) ── */
html.s3-await-hero body.theme-sian3 .s3-header,
html.s3-await-hero body.theme-sian3 .s3-hero__micro,
html.s3-await-hero body.theme-sian3 .s3-hero__headline .s3-flip,
html.s3-await-hero body.theme-sian3 .s3-hero__lead,
html.s3-await-hero body.theme-sian3 .s3-hero__actions,
html.s3-await-hero body.theme-sian3 .s3-hero__symbol,
html.s3-await-hero body.theme-sian3 .s3-hero__visual,
html.s3-await-hero body.theme-sian3 .s3-hero__scroll,
html.s3-await-hero body.theme-sian3 .s3-hero__glow {
  opacity: 0;
}
@media (prefers-reduced-motion: reduce) {
  html.s3-await-hero body.theme-sian3 .s3-header,
  html.s3-await-hero body.theme-sian3 .s3-hero__micro,
  html.s3-await-hero body.theme-sian3 .s3-hero__headline .s3-flip,
  html.s3-await-hero body.theme-sian3 .s3-hero__lead,
  html.s3-await-hero body.theme-sian3 .s3-hero__actions,
  html.s3-await-hero body.theme-sian3 .s3-hero__symbol,
  html.s3-await-hero body.theme-sian3 .s3-hero__visual,
  html.s3-await-hero body.theme-sian3 .s3-hero__scroll,
  html.s3-await-hero body.theme-sian3 .s3-hero__glow {
    opacity: 1;
  }
}
/* Safety: after intro class flip, CTAs must never stay stuck invisible */
html.s3-hero-ready body.theme-sian3 .s3-hero__actions,
html.s3-hero-ready body.theme-sian3 .s3-hero__actions .s3-btn {
  opacity: 1 !important;
  filter: none !important;
}

/* ── EN hero: SVG wordmarks (Moderniz-derived) + fluid responsive ── */
body.theme-sian3-en .s3-hero__headline {
  flex-direction: column;
  align-items: flex-start;
  gap: 0.4em;
  letter-spacing: 0.02em;
  margin-left: 0 !important;
  margin-top: clamp(4px, 0.8vh, 10px);
  line-height: 1.1;
  overflow: visible;
}
body.theme-sian3-en .s3-panel.s3-hero {
  justify-content: center !important;
}
body.theme-sian3-en .s3-hero__stack {
  /* margin not transform ? bridge JS overwrites transform */
  margin-top: clamp(10px, 3vh, 44px) !important;
  max-width: min(680px, calc(100% - var(--s3-match-size, 22vw) - var(--s3-match-right, 72px) - 28px));
}
body.theme-sian3-en .s3-hero__micro {
  margin: 0 0 clamp(10px, 1.6vh, 16px);
  font-size: clamp(0.64rem, 0.55vw + 0.45rem, 0.78rem);
  letter-spacing: 0.18em;
  white-space: nowrap;
  max-width: 100%;
  overflow: visible;
}
body.theme-sian3-en .s3-hero__lead {
  font-family: "GmarketSans", "Noto Sans KR", sans-serif;
  font-weight: 500;
  font-size: clamp(0.92rem, 0.55vw + 0.7rem, 1.08rem);
  margin-top: clamp(18px, 2.6vh, 28px) !important;
  max-width: 22em;
  line-height: 1.58;
  /* slight condensed 장평 so it sits closer to surrounding type */
  transform: scaleX(0.94);
  transform-origin: left center;
}
body.theme-sian3-en .s3-hero__actions {
  margin-top: clamp(18px, 2.8vh, 28px) !important;
  gap: 10px;
}
body.theme-sian3-en .s3-header__logo img {
  margin-left: var(--s3-logo-optical, -1.3px) !important;
}
body.theme-sian3-en .s3-flip,
body.theme-sian3-en .s3-flip--suffix {
  /* font-size drives SVG height; min-width ? DAECHI/MATCH aspect */
  min-width: 5.9em;
  margin-left: -0.12em !important;
  overflow: visible;
  line-height: 1;
}
body.theme-sian3-en .s3-flip--suffix {
  min-width: 3.7em;
  margin-top: 0.2em !important;
}
body.theme-sian3-en .s3-flip__sr {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
body.theme-sian3-en .s3-flip__item {
  /* size token only ? glyphs come from SVG masks */
  font-size: clamp(2.9rem, min(9.4vw, 11vh), 7.1rem);
  line-height: 1;
  padding: 0.02em 0;
  overflow: visible;
  color: transparent;
  transition:
          opacity 0.42s cubic-bezier(0.22, 1, 0.36, 1),
          transform 0.68s cubic-bezier(0.16, 1, 0.3, 1),
          filter 0.42s ease,
          clip-path 0.68s cubic-bezier(0.16, 1, 0.3, 1);
}
body.theme-sian3-en .s3-flip__mark {
  display: block;
  height: 0.94em;
  width: auto;
  max-width: none;
  flex-shrink: 0;
  background-color: #e8e0d4;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  /* Slightly oversized mask hides 1px corner bleed on some DPI/monitors */
  -webkit-mask-size: 100.6% 100.6%;
  mask-size: 100.6% 100.6%;
  -webkit-mask-mode: alpha;
  mask-mode: alpha;
  overflow: hidden;
  isolation: isolate;
  transform: translateZ(0);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  /* Kill subpixel fringe; no drop-shadow (reads as black edge lines) */
  filter: none !important;
  box-shadow: none;
}
body.theme-sian3-en .s3-flip__item[data-word="DAECHI"] .s3-flip__mark {
  aspect-ratio: 2340.03 / 381.15;
  width: calc(0.94em * 2340.03 / 381.15);
}
body.theme-sian3-en .s3-flip__item[data-word="EDU"] .s3-flip__mark {
  aspect-ratio: 1286.15 / 375.85;
  width: calc(0.94em * 1286.15 / 375.85);
}
body.theme-sian3-en .s3-flip__item[data-word="MATCH"] .s3-flip__mark {
  aspect-ratio: 2250.58 / 381.15;
  width: calc(0.94em * 2250.58 / 381.15);
}
body.theme-sian3-en .s3-flip__item[data-word="NOW"] .s3-flip__mark {
  aspect-ratio: 1501.51 / 381.15;
  width: calc(0.94em * 1501.51 / 381.15);
}
/* champagne ivory ? EDU / NOW */
body.theme-sian3-en .s3-flip__item[data-word="EDU"] .s3-flip__mark,
body.theme-sian3-en .s3-flip__item[data-word="NOW"] .s3-flip__mark {
  background-color: #ebe3d4;
  background-image: linear-gradient(
          168deg,
          #faf6ef 0%, #f3ebe0 18%, #efe4d2 36%,
          #e8d9c0 52%, #e2d0b4 72%, #d9c4a4 100%
  );
}
body.theme-sian3-en .s3-flip__item[data-word="EDU"].is-active,
body.theme-sian3-en .s3-flip__item[data-word="NOW"].is-active {
  filter: none;
}
/* satin red ? DAECHI / MATCH */
body.theme-sian3-en .s3-flip__item[data-word="DAECHI"] .s3-flip__mark,
body.theme-sian3-en .s3-flip__item[data-word="MATCH"] .s3-flip__mark {
  background-color: #ce2430;
  background-image: linear-gradient(
          172deg, #e85258 0%, #ce2430 32%, #b41620 68%, #941218 100%
  );
}
body.theme-sian3-en .s3-flip__item[data-word="DAECHI"].is-active,
body.theme-sian3-en .s3-flip__item[data-word="MATCH"].is-active {
  filter: none;
}
body.theme-sian3-en .s3-hero__headline.is-fwd .s3-flip__item[data-word="EDU"].is-active,
body.theme-sian3-en .s3-hero__headline.is-fwd .s3-flip__item[data-word="NOW"].is-active,
body.theme-sian3-en .s3-hero__headline.is-back .s3-flip__item[data-word="EDU"].is-active,
body.theme-sian3-en .s3-hero__headline.is-back .s3-flip__item[data-word="NOW"].is-active {
  filter: blur(0);
}
body.theme-sian3-en .s3-hero__headline.is-fwd .s3-flip__item[data-word="DAECHI"].is-active,
body.theme-sian3-en .s3-hero__headline.is-fwd .s3-flip__item[data-word="MATCH"].is-active,
body.theme-sian3-en .s3-hero__headline.is-back .s3-flip__item[data-word="DAECHI"].is-active,
body.theme-sian3-en .s3-hero__headline.is-back .s3-flip__item[data-word="MATCH"].is-active {
  filter: blur(0);
}
body.theme-sian3-en .s3-hero__headline.is-fwd .s3-flip__item {
  /* no scaleX ? SVG marks must not settle-shrink after reveal */
  transform: translateX(-0.14em);
  filter: blur(10px);
  clip-path: inset(0 100% 0 0);
  opacity: 0;
}
body.theme-sian3-en .s3-hero__headline.is-fwd .s3-flip__item.is-active {
  transform: none;
  filter: blur(0);
  clip-path: none;
  opacity: 1;
}
body.theme-sian3-en .s3-hero__headline.is-back .s3-flip__item {
  transform: translateY(-0.28em);
  filter: blur(8px);
  opacity: 0;
}
body.theme-sian3-en .s3-hero__headline.is-back .s3-flip__item.is-active {
  transform: none;
  filter: blur(0);
  clip-path: none;
  opacity: 1;
}

/* Compact desktop / iPad landscape (~1024): keep dial + type in balance */
@media (min-width: 901px) and (max-width: 1180px) {
  body.theme-sian3-en .s3-hero__stack {
    margin-top: clamp(8px, 2.2vh, 28px) !important;
    max-width: min(540px, calc(100% - var(--s3-match-size, 20vw) - var(--s3-match-right, 72px) - 16px));
  }
  body.theme-sian3-en .s3-hero__micro {
    font-size: clamp(0.6rem, 0.9vw, 0.72rem) !important;
    letter-spacing: 0.12em !important;
    white-space: nowrap !important;
  }
  body.theme-sian3-en .s3-flip__item {
    font-size: clamp(2.55rem, min(5.8vw, 8vh), 4.2rem);
  }
  body.theme-sian3-en .s3-hero__lead {
    font-size: clamp(0.88rem, 1.2vw, 1rem);
  }
}
@media (min-width: 1181px) and (max-width: 1439px) {
  body.theme-sian3-en .s3-hero__stack {
    max-width: min(600px, calc(100% - var(--s3-match-size, 22vw) - var(--s3-match-right, 64px) - 20px)) !important;
  }
  body.theme-sian3-en .s3-flip__item {
    font-size: clamp(3rem, min(6vw, 8.2vh), 5rem);
  }
}
@media (min-width: 1440px) and (max-width: 1599px) {
  body.theme-sian3-en .s3-flip__item {
    font-size: clamp(3.1rem, min(6.2vw, 8.5vh), 5.2rem);
  }
}

/* Ultra-wide: optical rail + fluid scale (no fixed rem) */
@media (min-width: 2200px) {
  body.theme-sian3-en .s3-hero__stack {
    margin-top: clamp(8px, 2.4vh, 36px) !important;
  }
  body.theme-sian3-en .s3-hero__micro {
    margin-left: calc(var(--s3-logo-optical, -1.3px) - 0.02em) !important;
    font-size: clamp(0.74rem, 0.65vw, 0.9rem);
    letter-spacing: 0.2em;
  }
  body.theme-sian3-en .s3-flip__item {
    font-size: clamp(3.6rem, min(5vw, 8vh), 7.4rem);
  }
  body.theme-sian3-en .s3-flip,
  body.theme-sian3-en .s3-flip--suffix {
    margin-left: calc(var(--s3-logo-optical, -1.3px) - 0.2em) !important;
    min-width: 6.2em;
  }
  body.theme-sian3-en .s3-flip--suffix { min-width: 3.9em; }
  body.theme-sian3-en .s3-hero__lead {
    margin-left: calc(var(--s3-logo-optical, -1.3px) - 0.08em) !important;
    font-size: clamp(1.05rem, 1.05vw, 1.28rem);
  }
  body.theme-sian3-en .s3-hero__actions {
    margin-left: calc(var(--s3-logo-optical, -1.3px) - 0.08em) !important;
  }
}
@media (min-width: 3200px) {
  body.theme-sian3-en .s3-flip__item {
    font-size: clamp(4.2rem, min(4.6vw, 7.5vh), 8.8rem);
  }
  body.theme-sian3-en .s3-flip,
  body.theme-sian3-en .s3-flip--suffix {
    margin-left: calc(var(--s3-logo-optical, -1.3px) - 0.28em) !important;
  }
}

/* Tablet */
@media (min-width: 641px) and (max-width: 900px) {
  body.theme-sian3-en .s3-hero__stack {
    margin-top: clamp(4px, 1.4vh, 18px) !important;
    max-width: min(420px, calc(100% - var(--s3-match-size, 24vw) - var(--s3-match-right, 56px) - 20px)) !important;
  }
  body.theme-sian3-en .s3-hero__micro {
    font-size: clamp(0.58rem, 1.35vw, 0.7rem) !important;
    letter-spacing: 0.11em !important;
    white-space: nowrap !important;
  }
  body.theme-sian3-en .s3-flip,
  body.theme-sian3-en .s3-flip--suffix {
    min-width: 4.8em;
    margin-left: -0.08em !important;
  }
  body.theme-sian3-en .s3-flip--suffix { min-width: 3.1em; }
  body.theme-sian3-en .s3-flip__item {
    font-size: clamp(2.1rem, min(6.2vw, 6.8vh), 3.2rem);
  }
  body.theme-sian3-en .s3-hero__lead {
    font-size: clamp(0.88rem, 2vw, 1rem);
    max-width: 20em;
    word-break: keep-all;
    overflow-wrap: break-word;
  }
}

/* Mobile ? drop text block clearly below header */
@media (max-width: 640px) {
  body.theme-sian3-en .s3-panel.s3-hero {
    justify-content: flex-start !important;
    padding-top: calc(var(--s3-header-h) + clamp(20px, 3vh, 36px)) !important;
    padding-bottom: max(108px, calc(14vh + env(safe-area-inset-bottom, 0px))) !important;
  }
  body.theme-sian3-en .s3-hero__stack {
    margin-top: clamp(108px, 16.5vh, 156px) !important;
    max-width: 100% !important;
    padding-right: clamp(8px, 3vw, 20px);
  }
  body.theme-sian3-en .s3-hero__micro {
    font-size: clamp(0.52rem, 2.6vw, 0.62rem) !important;
    letter-spacing: 0.08em !important;
    white-space: nowrap !important;
    margin-bottom: 10px !important;
  }
  body.theme-sian3-en .s3-flip,
  body.theme-sian3-en .s3-flip--suffix {
    min-width: 0;
    margin-left: -0.06em !important;
  }
  body.theme-sian3-en .s3-flip--suffix { min-width: 0; }
  body.theme-sian3-en .s3-flip__item {
    font-size: clamp(1.9rem, min(9.2vw, 7.6vh), 2.55rem);
  }
  body.theme-sian3-en .s3-hero__lead {
    font-size: clamp(0.76rem, 3vw, 0.86rem);
    max-width: 19em;
    word-break: keep-all;
    overflow-wrap: break-word;
    line-height: 1.55;
  }
  body.theme-sian3-en .s3-hero__actions {
    margin-top: 16px !important;
    max-width: min(100%, 300px);
    gap: 6px;
  }
  body.theme-sian3-en .s3-hero__actions .s3-btn {
    min-height: 34px !important;
    padding: 7px 18px !important;
    font-size: 11px !important;
    border-radius: 9px;
  }
}
@media (max-width: 640px) and (max-height: 720px) {
  body.theme-sian3-en .s3-panel.s3-hero {
    padding-top: calc(var(--s3-header-h) + clamp(14px, 2.2vh, 24px)) !important;
  }
  body.theme-sian3-en .s3-hero__stack {
    margin-top: clamp(72px, 12vh, 118px) !important;
    padding-right: clamp(6px, 2vw, 14px);
  }
  body.theme-sian3-en .s3-flip__item {
    font-size: clamp(1.85rem, min(9vw, 7.5vh), 2.4rem);
  }
  body.theme-sian3-lp .s3-hero__symbol.s3-hero__match,
  body.theme-sian3-en .s3-hero__symbol.s3-hero__match,
  body.theme-sian3-en .s3-hero__match {
    bottom: clamp(76px, 11vh, 108px) !important;
  }
}

/* ── 어린왕자 히어로: 기본 모니터 구도 ── */
body.theme-sian3-lp {
  --lp-const-size: clamp(348px, min(42vw, 52vh), 590px);
  --lp-const-right: clamp(16%, 20vw, 27%);
  --lp-const-top: 35%;
  --lp-planet-w: min(60vw, 755px);
  --lp-planet-right: -2%;
  --lp-planet-bottom: -6.85%;
  --lp-scene-w: min(21.5vw, 285px);
  --lp-scene-h: calc(var(--lp-scene-w) * 0.95);
  --lp-scene-right: clamp(5%, 7vw, 10%);
  --lp-scene-bottom: 2.15%;
}

body.theme-sian3-lp .s3-hero__glow--red {
  position: absolute;
  left: 50%; right: -8%; bottom: -28%;
  height: 50%;
  background: radial-gradient(ellipse at 70% 90%, rgba(120, 22, 32, 0.22) 0%, transparent 65%);
  filter: blur(16px);
  opacity: 0.55;
  pointer-events: none;
}

body.theme-sian3-lp .s3-hero__stars-dust { display: none; }

body.theme-sian3-lp .s3-hero__visual,
body.theme-sian3-lp .s3-hero__visual.s3-hero__symbol {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  aspect-ratio: auto !important;
  transform: none !important;
  right: 0 !important;
  left: 0 !important;
  top: 0 !important;
  bottom: 0 !important;
  z-index: 1 !important;
  pointer-events: none;
  overflow: visible !important;
  background: transparent !important;
  filter: none !important;
}

/* Full-canvas star field */
body.theme-sian3-lp .lp-field {
  position: absolute;
  inset: 0;
  z-index: 0;
}

body.theme-sian3-lp .lp-field-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.2);
  box-shadow: 0 0 calc(var(--s, 1px) * 1.4) rgba(255,255,255,0.35);
  animation: lpFieldTwinkle var(--tw, 7.2s) ease-in-out infinite;
  animation-delay: var(--td, 0s);
}

body.theme-sian3-lp .lp-field-star--bright {
  box-shadow:
          0 0 calc(var(--s) * 1.2) rgba(255,255,255,0.9),
          0 0 calc(var(--s) * 3) rgba(255,236,190,0.25);
  animation: lpFieldTwinkle var(--tw, 5s) ease-in-out infinite;
  animation-delay: var(--td, 0s);
}

body.theme-sian3-lp .lp-haze {
  position: absolute;
  left: 40%; right: 0; bottom: 0; height: 45%;
  background: radial-gradient(ellipse at 70% 100%, rgba(90, 18, 28, 0.18) 0%, transparent 70%);
  filter: blur(28px);
  opacity: 0.5;
  z-index: 0;
}









/* LP layout ? HQ v24 */
body.theme-sian3-lp .s3-hero__visual,
body.theme-sian3-lp .s3-hero__visual.s3-hero__symbol { overflow: visible !important; }
body.theme-sian3-lp .lp-field-star:nth-child(1) { --tw: 4.17s; --td: -0.61s; }
body.theme-sian3-lp .lp-field-star:nth-child(2) { --tw: 4.54s; --td: -1.22s; }
body.theme-sian3-lp .lp-field-star:nth-child(3) { --tw: 4.91s; --td: -1.83s; }
body.theme-sian3-lp .lp-field-star:nth-child(4) { --tw: 5.28s; --td: -2.44s; }
body.theme-sian3-lp .lp-field-star:nth-child(5) { --tw: 5.65s; --td: -3.05s; }
body.theme-sian3-lp .lp-field-star:nth-child(6) { --tw: 6.02s; --td: -3.66s; }
body.theme-sian3-lp .lp-field-star:nth-child(7) { --tw: 6.39s; --td: -4.27s; }
body.theme-sian3-lp .lp-field-star:nth-child(8) { --tw: 6.76s; --td: -4.88s; }
body.theme-sian3-lp .lp-field-star:nth-child(9) { --tw: 7.13s; --td: -5.49s; }
body.theme-sian3-lp .lp-field-star:nth-child(10) { --tw: 7.50s; --td: -0.60s; }
body.theme-sian3-lp .lp-field-star:nth-child(11) { --tw: 7.87s; --td: -1.21s; }
body.theme-sian3-lp .lp-field-star:nth-child(12) { --tw: 8.24s; --td: -1.82s; }
body.theme-sian3-lp .lp-field-star:nth-child(13) { --tw: 4.11s; --td: -2.43s; }
body.theme-sian3-lp .lp-field-star:nth-child(14) { --tw: 4.48s; --td: -3.04s; }
body.theme-sian3-lp .lp-field-star:nth-child(15) { --tw: 4.85s; --td: -3.65s; }
body.theme-sian3-lp .lp-field-star:nth-child(16) { --tw: 5.22s; --td: -4.26s; }
body.theme-sian3-lp .lp-field-star:nth-child(17) { --tw: 5.59s; --td: -4.87s; }
body.theme-sian3-lp .lp-field-star:nth-child(18) { --tw: 5.96s; --td: -5.48s; }
body.theme-sian3-lp .lp-field-star:nth-child(19) { --tw: 6.33s; --td: -0.59s; }
body.theme-sian3-lp .lp-field-star:nth-child(20) { --tw: 6.70s; --td: -1.20s; }
body.theme-sian3-lp .lp-field-star:nth-child(21) { --tw: 7.07s; --td: -1.81s; }
body.theme-sian3-lp .lp-field-star:nth-child(22) { --tw: 7.44s; --td: -2.42s; }
body.theme-sian3-lp .lp-field-star:nth-child(23) { --tw: 7.81s; --td: -3.03s; }
body.theme-sian3-lp .lp-field-star:nth-child(24) { --tw: 8.18s; --td: -3.64s; }
body.theme-sian3-lp .lp-field-star:nth-child(25) { --tw: 4.05s; --td: -4.25s; }
body.theme-sian3-lp .lp-field-star:nth-child(26) { --tw: 4.42s; --td: -4.86s; }
body.theme-sian3-lp .lp-field-star:nth-child(27) { --tw: 4.79s; --td: -5.47s; }
body.theme-sian3-lp .lp-field-star:nth-child(28) { --tw: 5.16s; --td: -0.58s; }
body.theme-sian3-lp .lp-field-star:nth-child(29) { --tw: 5.53s; --td: -1.19s; }
body.theme-sian3-lp .lp-field-star:nth-child(30) { --tw: 5.90s; --td: -1.80s; }
body.theme-sian3-lp .lp-field-star:nth-child(31) { --tw: 6.27s; --td: -2.41s; }
body.theme-sian3-lp .lp-field-star:nth-child(32) { --tw: 6.64s; --td: -3.02s; }
body.theme-sian3-lp .lp-field-star:nth-child(33) { --tw: 7.01s; --td: -3.63s; }
body.theme-sian3-lp .lp-field-star:nth-child(34) { --tw: 7.38s; --td: -4.24s; }
body.theme-sian3-lp .lp-field-star:nth-child(35) { --tw: 7.75s; --td: -4.85s; }
body.theme-sian3-lp .lp-field-star:nth-child(36) { --tw: 8.12s; --td: -5.46s; }
body.theme-sian3-lp .lp-field-star:nth-child(37) { --tw: 3.99s; --td: -0.57s; }
body.theme-sian3-lp .lp-field-star:nth-child(38) { --tw: 4.36s; --td: -1.18s; }
body.theme-sian3-lp .lp-field-star:nth-child(39) { --tw: 4.73s; --td: -1.79s; }
body.theme-sian3-lp .lp-field-star:nth-child(40) { --tw: 5.10s; --td: -2.40s; }
body.theme-sian3-lp .lp-field-star--dimtw {
  animation: lpFieldTwinkle var(--tw, 6s) ease-in-out infinite;
  animation-delay: var(--td, 0s);
}
body.theme-sian3-lp .lp-constellation {
  position: absolute;
  right: var(--lp-const-right);
  top: var(--lp-const-top);
  transform: translate(2%, -51%);
  width: var(--lp-const-size);
  height: var(--lp-const-size);
  z-index: 3;
  transform-origin: 70% 20%;
  overflow: visible;
  padding: 1.5%;
  box-sizing: content-box;
  opacity: 0.9;
  filter: saturate(1.0) brightness(1.02) contrast(1.02);
}
/* Drawing pass: drop parent filter + freeze companion CSS anims (big jank source) */
body.theme-sian3-lp .lp-constellation.is-drawing {
  filter: none !important;
}
body.theme-sian3-lp .lp-constellation.is-drawing .lp-sky-extra,
body.theme-sian3-lp .lp-constellation.is-drawing .lp-sky-extra::before,
body.theme-sian3-lp .lp-constellation.is-drawing .lp-sky-extra::after,
body.theme-sian3-lp .lp-constellation.is-drawing .lp-amb-star {
  animation: none !important;
}
body.theme-sian3-lp .lp-constellation.is-drawing .dc-links-glow {
  visibility: hidden !important;
}
body.theme-sian3-lp .lp-constellation.is-drawing .dc-star__core {
  box-shadow: none;
}
body.theme-sian3-lp .lp-planet {
  position: absolute;
  right: var(--lp-planet-right);
  bottom: var(--lp-planet-bottom);
  width: var(--lp-planet-w);
  height: auto;
  z-index: 2;
}
body.theme-sian3-lp .lp-planet img {
  width: 100%; height: auto; display: block; opacity: 1; filter: none;
}
body.theme-sian3-lp .lp-scene {
  position: absolute;
  right: var(--lp-scene-right);
  bottom: var(--lp-scene-bottom);
  width: var(--lp-scene-w);
  height: var(--lp-scene-h);
  z-index: 4;
  overflow: visible;
}
body.theme-sian3-lp .lp-rose {
  position: absolute;
  left: -3.5%;
  bottom: 9%;
  width: 14.2%;
  z-index: 2;
  filter: drop-shadow(0 8px 12px rgba(0,0,0,0.4));
}
body.theme-sian3-lp .lp-rose__sway {
  transform-origin: 50% 100%;
  animation: lpRoseSway 5.6s cubic-bezier(0.37, 0.0, 0.2, 1) infinite;
  will-change: transform;
}
body.theme-sian3-lp .lp-rose img {
  width: 100%; height: auto; display: block; opacity: 1; filter: none;
}
body.theme-sian3-lp .lp-prince {
  position: absolute;
  right: 3%;
  bottom: 0;
  width: 79%;
  z-index: 3;
}
body.theme-sian3-lp .lp-prince--video {
  width: 98%;
  right: -4%;
  bottom: -2.5%;
  pointer-events: none;
  overflow: visible;
}
body.theme-sian3-lp .lp-prince__stack {
  position: relative;
  width: 100%;
  aspect-ratio: var(--lp-prince-ar, 1.08);
  overflow: visible;
  isolation: isolate;
  transform-origin: 48% 78%;
  animation: lpPrinceBreath 14s ease-in-out infinite;
}
body.theme-sian3-lp .lp-prince--video .lp-prince__stack {
  /* 377.gif 640×608 — position/size locked */
  aspect-ratio: 640 / 608;
  overflow: visible;
  animation: none;
  isolation: isolate;
}
body.theme-sian3-lp .lp-prince__gif {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  object-position: center bottom;
  pointer-events: none;
  user-select: none;
  transform-origin: 50% 50%;
}
body.theme-sian3-lp .lp-prince__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  object-position: center bottom;
  pointer-events: none;
  user-select: none;
  /* Real alpha webm ? never mix-blend (ghosts dark clothing) */
  mix-blend-mode: normal;
  background: transparent;
}
body.theme-sian3-lp .lp-prince--video.is-alpha-video .lp-prince__video {
  mix-blend-mode: normal;
}
/* Safari mp4 fallback: canvas paints strict black-key (see JS) */
body.theme-sian3-lp .lp-prince__canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: none;
  pointer-events: none;
}
body.theme-sian3-lp .lp-prince--video.is-canvas-key .lp-prince__video {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
body.theme-sian3-lp .lp-prince--video.is-canvas-key .lp-prince__canvas {
  display: block;
}
body.theme-sian3-lp .lp-prince__body,
body.theme-sian3-lp .lp-prince__head,
body.theme-sian3-lp .lp-prince__scarf {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  display: block; object-fit: contain; object-position: bottom center;
  opacity: 1; filter: none;
  pointer-events: none; user-select: none;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
body.theme-sian3-lp .lp-prince__body { z-index: 1; }
body.theme-sian3-lp .lp-prince__head {
  z-index: 2;
  /* Pivot at neck joint ? rotate in place, no translate (avoids severed neck) */
  transform-origin: var(--lp-head-ox, 38%) var(--lp-head-oy, 44%);
  animation: lpHeadGaze 9.2s cubic-bezier(0.4, 0.0, 0.2, 1) infinite;
  will-change: transform;
  overflow: visible;
  /* Micro seat into the body layer so the scarf cut never flashes */
  translate: 0 0.35%;
}
body.theme-sian3-lp .lp-prince__scarf {
  z-index: 3;
  transform-origin: var(--lp-scarf-ox, 52%) var(--lp-scarf-oy, 22%);
  animation: lpScarfWind 8.0s cubic-bezier(0.37, 0.0, 0.2, 1) infinite;
  will-change: transform;
}
@keyframes lpPrinceBreath {
  0%, 100% { transform: rotate(-0.1deg); }
  50% { transform: rotate(0.12deg); }
}
/* Head slightly less frequent than scarf; varied angles + soft holds */
@keyframes lpHeadGaze {
  0%, 10% { transform: rotate(-0.3deg); }
  24% { transform: rotate(1.2deg); }
  36%, 44% { transform: rotate(0.95deg); }
  58% { transform: rotate(-0.65deg); }
  70%, 80% { transform: rotate(0.55deg); }
  92% { transform: rotate(-0.15deg); }
  100% { transform: rotate(-0.3deg); }
}
@keyframes lpScarfWind {
  0%, 100% { transform: rotate(-0.7deg) skewX(0.2deg) translateX(0); }
  20% { transform: rotate(1.2deg) skewX(-0.9deg) translateX(0.35%); }
  45% { transform: rotate(0.1deg) skewX(0.5deg) translateX(-0.2%); }
  68% { transform: rotate(1.4deg) skewX(-0.7deg) translateX(0.28%); }
  88% { transform: rotate(-0.2deg) skewX(0.25deg) translateX(-0.08%); }
}
@keyframes lpRoseSway {
  0%, 100% { transform: rotate(-1.8deg) scale(1); }
  22% { transform: rotate(0.6deg) scale(1.01); }
  48% { transform: rotate(2.1deg) scale(1); }
  72% { transform: rotate(-0.4deg) scale(1.008); }
  88% { transform: rotate(-1.5deg) scale(1); }
}
/* 기본 데스크톱(1440~1799) */
@media (min-width: 1440px) {
  body.theme-sian3-lp {
    --lp-planet-w: min(60vw, 755px);
    --lp-planet-bottom: -6.85%;
    --lp-planet-right: -2%;
    --lp-scene-w: min(21.5vw, 285px);
    --lp-scene-right: clamp(4.5%, 6.5vw, 9%);
    --lp-scene-bottom: 2.15%;
  }
}
/* 와이드: 기본보다 크게 */
@media (min-width: 1800px) {
  body.theme-sian3-lp {
    --lp-planet-w: min(54vw, 910px);
    --lp-planet-bottom: -6.85%;
    --lp-planet-right: -2%;
    --lp-scene-w: min(26vw, 480px);
    --lp-scene-bottom: 2.15%;
  }
}
/* 매우 큰 와이드: 크기↑ + 위치 살짝 상향 */
@media (min-width: 2200px) {
  body.theme-sian3-lp {
    --lp-planet-w: min(50vw, 1050px);
    --lp-planet-bottom: -5.75%;
    --lp-planet-right: -1.5%;
    --lp-scene-w: min(25vw, 560px);
    --lp-scene-bottom: 2.9%;
  }
}
@media (min-width: 2800px) {
  body.theme-sian3-lp {
    --lp-planet-w: min(44vw, 1200px);
    --lp-scene-w: min(22vw, 640px);
    --lp-planet-bottom: -5.4%;
    --lp-scene-bottom: 3.15%;
  }
}

/* Tall — 아주 살짝만 하향 */
@media (min-height: 1200px) {
  body.theme-sian3-lp {
    --lp-planet-bottom: -7.25%;
    --lp-scene-bottom: 1.9%;
  }
}
@media (min-height: 1400px) {
  body.theme-sian3-lp {
    --lp-planet-bottom: -7.75%;
    --lp-scene-bottom: 1.6%;
  }
}
@media (min-width: 1440px) and (min-height: 1200px) {
  body.theme-sian3-lp {
    --lp-planet-bottom: -7.25%;
    --lp-scene-bottom: 1.9%;
  }
}
@media (min-width: 1800px) and (min-height: 1200px) {
  body.theme-sian3-lp {
    --lp-planet-bottom: -7.25%;
    --lp-scene-bottom: 1.9%;
  }
}
/* 매우 큰 와이드 + 높은 화면: 상향 위치 유지 */
@media (min-width: 2200px) and (min-height: 1200px) {
  body.theme-sian3-lp {
    --lp-planet-bottom: -5.75%;
    --lp-scene-bottom: 2.9%;
  }
}
@media (min-width: 2800px) and (min-height: 1200px) {
  body.theme-sian3-lp {
    --lp-planet-bottom: -5.4%;
    --lp-scene-bottom: 3.15%;
  }
}
/* LP: EN 다이얼 예약폭 해제 — 카피는 좌측, 비주얼은 풀캔버스 */
body.theme-sian3-lp.theme-sian3-en .s3-hero__stack {
  max-width: min(560px, 46%) !important;
}

/* ── Small monitors: 원본 구도 비율 + % 앵커 ── */
@media (min-width: 901px) and (max-width: 1024px) {
  body.theme-sian3-lp {
    --lp-const-size: clamp(270px, min(38vw, 46vh), 420px);
    --lp-const-right: clamp(10%, 14vw, 18%);
    --lp-const-top: 33%;
    --lp-planet-w: min(62vw, 680px);
    --lp-planet-bottom: -6.5%;
    --lp-planet-right: -2%;
    --lp-scene-w: min(30vw, 300px);
    --lp-scene-right: clamp(4%, 5.5vw, 8%);
    --lp-scene-bottom: 2.4%;
  }
  body.theme-sian3-lp.theme-sian3-en .s3-hero__stack {
    margin-top: clamp(10px, 2.4vh, 32px) !important;
    max-width: min(420px, 42%) !important;
  }
  body.theme-sian3-lp.theme-sian3-en .s3-flip__item {
    font-size: clamp(2.15rem, min(5.2vw, 7vh), 3.5rem);
  }
  body.theme-sian3-lp.theme-sian3-en .s3-hero__lead {
    font-size: clamp(0.84rem, 1.1vw, 0.96rem);
    max-width: 19em;
  }
}
@media (min-width: 1025px) and (max-width: 1180px) {
  body.theme-sian3-lp {
    --lp-const-size: clamp(300px, min(39vw, 48vh), 480px);
    --lp-const-right: clamp(12%, 16vw, 22%);
    --lp-const-top: 34%;
    --lp-planet-w: min(62vw, 700px);
    --lp-planet-bottom: -6.5%;
    --lp-planet-right: -2%;
    --lp-scene-w: min(28vw, 315px);
    --lp-scene-right: clamp(4.5%, 6vw, 9%);
    --lp-scene-bottom: 2.4%;
  }
  body.theme-sian3-lp.theme-sian3-en .s3-hero__stack {
    margin-top: clamp(8px, 2vh, 28px) !important;
    max-width: min(460px, 44%) !important;
  }
  body.theme-sian3-lp.theme-sian3-en .s3-flip__item {
    font-size: clamp(2.35rem, min(5.5vw, 7.4vh), 3.9rem);
  }
}
@media (min-width: 1181px) and (max-width: 1366px) {
  body.theme-sian3-lp {
    --lp-const-size: clamp(320px, min(40vw, 50vh), 540px);
    --lp-const-right: clamp(14%, 18vw, 24%);
    --lp-planet-w: min(60vw, 720px);
    --lp-planet-bottom: -6.5%;
    --lp-planet-right: -2%;
    --lp-scene-w: min(26vw, 325px);
    --lp-scene-bottom: 2.4%;
  }
  body.theme-sian3-lp.theme-sian3-en .s3-hero__stack {
    max-width: min(500px, 45%) !important;
  }
}
/* 좁고 높은 모니터 — 떠오름 방지 */
@media (max-width: 1366px) and (min-height: 1000px) {
  body.theme-sian3-lp {
    --lp-planet-bottom: -7.25%;
    --lp-scene-bottom: 1.9%;
    --lp-planet-w: min(60vw, 700px);
    --lp-scene-w: min(26vw, 310px);
  }
}
@media (max-height: 760px) and (min-width: 901px) {
  body.theme-sian3-lp {
    --lp-const-size: clamp(260px, min(34vw, 44vh), 440px);
    --lp-planet-w: min(60vw, 70vh, 620px);
    --lp-planet-bottom: -5%;
    --lp-scene-w: min(28vw, 34vh, 300px);
    --lp-scene-bottom: 3.25%;
    --lp-const-top: 31%;
  }
  body.theme-sian3-lp.theme-sian3-en .s3-hero__stack {
    margin-top: clamp(4px, 1.4vh, 18px) !important;
  }
  body.theme-sian3-lp.theme-sian3-en .s3-flip__item {
    font-size: clamp(2.1rem, min(5vw, 6.8vh), 3.4rem);
  }
  body.theme-sian3-lp.theme-sian3-en .s3-hero__lead {
    margin-top: clamp(10px, 1.6vh, 16px) !important;
  }
  body.theme-sian3-lp.theme-sian3-en .s3-hero__actions {
    margin-top: clamp(12px, 1.8vh, 18px) !important;
  }
}

/* Tablet ≤900: 행성 크레스트에 안착 + 별자리 가독 크기 */
@media (max-width: 900px) {
  body.theme-sian3-lp {
    --lp-const-size: clamp(250px, min(52vw, 40vh), 360px);
    --lp-scene-w: clamp(210px, min(42vw, 32vh), 300px);
    --lp-planet-w: min(88vw, 60vh, 540px);
    /* 데스크톱 비율 유지: planet↓ / scene↑ 델타 ≈ 6.5~7pp */
    --lp-planet-bottom: -2.5%;
    --lp-scene-bottom: 2.35%;
  }
  body.theme-sian3-lp .s3-panel.s3-hero {
    justify-content: flex-start !important;
    align-items: stretch !important;
    padding-top: calc(var(--s3-header-h) + clamp(12px, 2vh, 24px)) !important;
    padding-bottom: max(24px, calc(14px + env(safe-area-inset-bottom, 0px))) !important;
    overflow: visible !important;
  }
  body.theme-sian3-lp.theme-sian3-en .s3-hero__stack,
  body.theme-sian3-lp .s3-hero__stack {
    position: relative;
    z-index: 6;
    width: auto !important;
    max-width: min(520px, 72%) !important;
    margin: 0 !important;
    margin-top: clamp(72px, 12.5vh, 148px) !important;
    padding: 0 !important;
    align-self: flex-start;
  }
  body.theme-sian3-lp.theme-sian3-en .s3-hero__micro {
    font-size: clamp(0.56rem, 1.4vw, 0.68rem) !important;
    letter-spacing: 0.12em !important;
    white-space: nowrap !important;
    margin: 0 0 12px !important;
  }
  body.theme-sian3-lp.theme-sian3-en .s3-flip,
  body.theme-sian3-lp.theme-sian3-en .s3-flip--suffix {
    min-width: 4.6em;
    margin-left: -0.08em !important;
  }
  body.theme-sian3-lp.theme-sian3-en .s3-flip--suffix { min-width: 3em; }
  body.theme-sian3-lp.theme-sian3-en .s3-flip__item {
    font-size: clamp(2.05rem, min(6.2vw, 6.2vh), 3rem);
  }
  body.theme-sian3-lp.theme-sian3-en .s3-hero__lead {
    margin-top: 14px !important;
    font-size: clamp(0.88rem, 2.1vw, 1.02rem);
    max-width: 26em;
    line-height: 1.55;
    word-break: keep-all;
  }
  body.theme-sian3-lp.theme-sian3-en .s3-hero__actions {
    display: flex !important;
    flex-wrap: nowrap !important;
    width: auto !important;
    max-width: none !important;
    margin-top: 20px !important;
    gap: 8px;
  }
  body.theme-sian3-lp.theme-sian3-en .s3-hero__actions .s3-btn {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 8.25rem !important;
    max-width: none !important;
    min-height: 42px;
    padding: 11px 28px !important;
    font-size: 13px !important;
  }
  body.theme-sian3-lp .s3-hero__scroll {
    bottom: max(14px, env(safe-area-inset-bottom, 0px));
    opacity: 0.5;
  }
  body.theme-sian3-lp .s3-hero__visual,
  body.theme-sian3-lp .s3-hero__visual.s3-hero__symbol {
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    transform: none !important;
    opacity: 1 !important;
    z-index: 1 !important;
  }
  body.theme-sian3-lp .lp-constellation {
    right: 3%;
    left: auto;
    top: auto;
    bottom: 36%;
    transform: none;
    width: var(--lp-const-size);
    height: var(--lp-const-size);
    opacity: 0.9;
  }
  body.theme-sian3-lp .lp-planet {
    right: -3%;
    left: auto;
    transform: none;
    width: var(--lp-planet-w);
    bottom: var(--lp-planet-bottom);
  }
  body.theme-sian3-lp .lp-scene {
    right: clamp(3%, 5vw, 8%);
    left: auto;
    bottom: var(--lp-scene-bottom);
    transform: none;
    width: var(--lp-scene-w);
    height: calc(var(--lp-scene-w) * 0.95);
  }
  body.theme-sian3-lp .lp-prince--video {
    width: 98%;
    right: -4%;
    bottom: -2.5%;
  }
  body.theme-sian3-lp .lp-rose {
    left: -3.5%;
    bottom: 9%;
    width: 14.2%;
  }
}

@media (min-width: 700px) and (max-width: 900px) {
  body.theme-sian3-lp {
    --lp-const-size: clamp(270px, min(48vw, 42vh), 380px);
    --lp-scene-w: clamp(230px, min(40vw, 34vh), 320px);
    --lp-planet-w: min(84vw, 58vh, 560px);
    --lp-planet-bottom: -2.75%;
    --lp-scene-bottom: 2.2%;
  }
  body.theme-sian3-lp.theme-sian3-en .s3-hero__stack {
    margin-top: clamp(88px, 14vh, 160px) !important;
    max-width: min(460px, 54%) !important;
  }
  body.theme-sian3-lp .lp-constellation {
    right: 5%;
    bottom: 34%;
  }
  body.theme-sian3-lp .lp-scene {
    right: 5%;
    bottom: var(--lp-scene-bottom);
  }
}

/* 세로로 긴 태블릿: 같은 안착 비율만 소폭 보정 (양수 bottom 금지) */
@media (max-width: 900px) and (min-height: 900px) {
  body.theme-sian3-lp {
    --lp-planet-bottom: -1.75%;
    --lp-scene-bottom: 2.8%;
    --lp-planet-w: min(90vw, 54vh, 560px);
    --lp-scene-w: clamp(210px, min(40vw, 30vh), 300px);
    --lp-const-size: clamp(260px, min(50vw, 36vh), 370px);
  }
  body.theme-sian3-lp .lp-constellation { bottom: 38%; }
}
@media (max-width: 900px) and (min-height: 1100px) {
  body.theme-sian3-lp {
    --lp-planet-bottom: -1.1%;
    --lp-scene-bottom: 3.15%;
    --lp-planet-w: min(92vw, 52vh, 600px);
    --lp-scene-w: clamp(200px, min(38vw, 28vh), 290px);
    --lp-const-size: clamp(270px, min(48vw, 34vh), 380px);
  }
  body.theme-sian3-lp .lp-constellation { bottom: 40%; }
}

/* Mobile ≤640: 우측 앵커로 행성·장면·별자리 정렬 */
@media (max-width: 640px) {
  body.theme-sian3-lp {
    --lp-const-size: clamp(168px, min(48vw, 26vh), 228px);
    --lp-scene-w: clamp(185px, min(58vw, 30vh), 250px);
    --lp-planet-w: min(108vw, 52vh, 430px);
    --lp-planet-bottom: -2%;
    --lp-scene-bottom: 2.5%;
  }
  body.theme-sian3-lp .s3-panel.s3-hero {
    justify-content: flex-start !important;
    padding-top: calc(var(--s3-header-h) + clamp(8px, 1.6vh, 18px)) !important;
    padding-bottom: max(16px, calc(10px + env(safe-area-inset-bottom, 0px))) !important;
  }
  body.theme-sian3-lp.theme-sian3-en .s3-hero__stack,
  body.theme-sian3-lp .s3-hero__stack {
    width: auto !important;
    max-width: min(100%, 340px) !important;
    margin: 0 !important;
    margin-top: clamp(56px, 10.5vh, 118px) !important;
    padding: 0 !important;
    padding-right: 0 !important;
  }
  body.theme-sian3-lp.theme-sian3-en .s3-hero__micro {
    font-size: clamp(0.5rem, 2.4vw, 0.6rem) !important;
    letter-spacing: 0.08em !important;
    white-space: nowrap !important;
    margin-bottom: 10px !important;
  }
  body.theme-sian3-lp.theme-sian3-en .s3-flip,
  body.theme-sian3-lp.theme-sian3-en .s3-flip--suffix {
    min-width: 0;
    margin-left: -0.06em !important;
  }
  body.theme-sian3-lp.theme-sian3-en .s3-flip--suffix { min-width: 0; }
  body.theme-sian3-lp.theme-sian3-en .s3-flip__item {
    font-size: clamp(1.9rem, min(9vw, 6.6vh), 2.5rem);
  }
  body.theme-sian3-lp.theme-sian3-en .s3-hero__lead {
    margin-top: 12px !important;
    font-size: clamp(0.78rem, 3vw, 0.9rem);
    max-width: 19em;
    line-height: 1.5;
  }
  body.theme-sian3-lp.theme-sian3-en .s3-hero__actions,
  body.theme-sian3-lp .s3-hero__actions {
    display: flex !important;
    flex-wrap: nowrap !important;
    width: auto !important;
    max-width: none !important;
    margin-top: 16px !important;
    gap: 8px;
  }
  body.theme-sian3-lp.theme-sian3-en .s3-hero__actions .s3-btn,
  body.theme-sian3-lp .s3-hero__actions .s3-btn {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 7.75rem !important;
    max-width: 11rem !important;
    min-height: 36px !important;
    height: auto !important;
    padding: 8px 22px !important;
    font-size: 12px !important;
    border-radius: 10px !important;
  }
  body.theme-sian3-lp .lp-constellation {
    right: 7%;
    left: auto;
    top: auto;
    bottom: 37.5%;
    transform: none;
    opacity: 0.88;
  }
  body.theme-sian3-lp .lp-planet {
    right: -20%;
    left: auto;
    transform: none;
    bottom: var(--lp-planet-bottom);
    width: var(--lp-planet-w);
  }
  body.theme-sian3-lp .lp-scene {
    right: 2%;
    left: auto;
    bottom: var(--lp-scene-bottom);
    transform: none;
    width: var(--lp-scene-w);
    height: calc(var(--lp-scene-w) * 0.95);
  }
  body.theme-sian3-lp .lp-prince--video {
    width: 98%;
    right: -4%;
    bottom: -2.5%;
  }
  body.theme-sian3-lp .lp-rose {
    left: -3.5%;
    bottom: 9%;
    width: 14.2%;
  }
  body.theme-sian3-lp .s3-hero__scroll {
    display: none;
  }
}

@media (max-width: 640px) and (min-height: 780px) {
  body.theme-sian3-lp {
    --lp-planet-bottom: -1.35%;
    --lp-scene-bottom: 2.9%;
    --lp-planet-w: min(110vw, 50vh, 450px);
    --lp-scene-w: clamp(180px, min(56vw, 28vh), 240px);
    --lp-const-size: clamp(172px, min(46vw, 24vh), 232px);
  }
  body.theme-sian3-lp .lp-constellation { right: 6%; bottom: 40%; }
}
@media (max-width: 640px) and (min-height: 900px) {
  body.theme-sian3-lp {
    --lp-planet-bottom: -0.6%;
    --lp-scene-bottom: 3.25%;
    --lp-planet-w: min(112vw, 48vh, 470px);
    --lp-scene-w: clamp(175px, min(54vw, 26vh), 235px);
    --lp-const-size: clamp(176px, min(44vw, 22vh), 236px);
  }
  body.theme-sian3-lp .lp-constellation { right: 5%; bottom: 42%; }
}

@media (max-width: 640px) and (max-height: 720px) {
  body.theme-sian3-lp {
    --lp-const-size: clamp(150px, min(44vw, 22vh), 200px);
    --lp-scene-w: clamp(165px, min(52vw, 28vh), 220px);
    --lp-scene-bottom: 2%;
    --lp-planet-bottom: -2.6%;
  }
  body.theme-sian3-lp .s3-panel.s3-hero {
    padding-top: calc(var(--s3-header-h) + clamp(6px, 1.2vh, 14px)) !important;
  }
  body.theme-sian3-lp.theme-sian3-en .s3-hero__stack {
    margin-top: clamp(36px, 7.5vh, 84px) !important;
  }
  body.theme-sian3-lp.theme-sian3-en .s3-flip__item {
    font-size: clamp(1.7rem, min(8.2vw, 6vh), 2.2rem);
  }
  body.theme-sian3-lp.theme-sian3-en .s3-hero__lead {
    margin-top: 8px !important;
    font-size: clamp(0.72rem, 2.8vw, 0.82rem);
  }
  body.theme-sian3-lp .lp-constellation { right: 6%; bottom: 34.5%; }
}

@media (max-width: 380px) {
  body.theme-sian3-lp {
    --lp-const-size: clamp(155px, 52vw, 200px);
    --lp-scene-w: clamp(168px, 56vw, 210px);
    --lp-planet-bottom: -1.85%;
    --lp-scene-bottom: 2.4%;
  }
  body.theme-sian3-lp.theme-sian3-en .s3-hero__stack {
    margin-top: clamp(48px, 9vh, 96px) !important;
    max-width: 100% !important;
  }
  body.theme-sian3-lp.theme-sian3-en .s3-flip__item {
    font-size: clamp(1.65rem, 8.6vw, 2.05rem);
  }
  body.theme-sian3-lp.theme-sian3-en .s3-hero__actions .s3-btn {
    min-width: 7.25rem !important;
    padding: 8px 18px !important;
  }
  body.theme-sian3-lp .lp-constellation {
    right: 5%;
    bottom: 36%;
  }
  body.theme-sian3-lp .lp-planet { right: -24%; }
  body.theme-sian3-lp .lp-scene { right: 1%; }
}

@media (prefers-reduced-motion: reduce) {
  body.theme-sian3-lp .lp-prince__stack,
  body.theme-sian3-lp .lp-prince__head,
  body.theme-sian3-lp .lp-prince__scarf,
  body.theme-sian3-lp .lp-rose__sway { animation: none; }
}


/* FOUC guard ? hide glyph seats until sequence owns positions */
body.theme-sian3-lp .lp-constellation:not([data-lp-seq="1"]) .dc-star {
  opacity: 0 !important;
  visibility: hidden;
}
body.theme-sian3-lp .lp-constellation:not([data-lp-seq="1"]) .lp-constellation__links {
  opacity: 0 !important;
  visibility: hidden;
}

/* Premium optical stars + logo glyph ? soft / muted */

body.theme-sian3-lp .lp-constellation__ambient {
  position: absolute;
  inset: -22%;
  z-index: 1;
  pointer-events: none;
  overflow: visible;
}
body.theme-sian3-lp .lp-constellation.is-sky .lp-constellation__ambient,
body.theme-sian3-lp .lp-constellation.is-assembling .lp-constellation__ambient {
  inset: -62%;
}
body.theme-sian3-lp .lp-amb-star {
  position: absolute;
  left: var(--x); top: var(--y);
  width: var(--s); height: var(--s);
  margin: calc(var(--s) / -2) 0 0 calc(var(--s) / -2);
  border-radius: 50%;
  background: rgba(255, 252, 245, 0.95);
  opacity: var(--o, 0.3);
  box-shadow:
          0 0 calc(var(--s) * 1.8) rgba(255, 240, 200, 0.45),
          0 0 calc(var(--s) * 3.5) rgba(255, 220, 150, 0.18);
  animation: lpAmbTwinkle var(--tw, 6s) ease-in-out infinite;
  animation-delay: var(--td, 0s);
  will-change: opacity, transform;
}
body.theme-sian3-lp .lp-amb-star--bright {
  box-shadow:
          0 0 calc(var(--s) * 2.2) rgba(255, 245, 210, 0.65),
          0 0 calc(var(--s) * 4.5) rgba(255, 220, 150, 0.28);
}
body.theme-sian3-lp .lp-amb-star--tiny {
  box-shadow: 0 0 calc(var(--s) * 1.4) rgba(255, 240, 200, 0.35);
}
@keyframes lpAmbTwinkle {
  0%, 100% { opacity: calc(var(--o, 0.3) * 0.42); transform: scale(0.9); }
  18% { opacity: calc(var(--o, 0.3) * 0.78); transform: scale(1.0); }
  36% { opacity: calc(var(--o, 0.3) * 0.32); transform: scale(0.88); }
  54% { opacity: calc(var(--o, 0.3) * 1.08); transform: scale(1.14); }
  70% { opacity: calc(var(--o, 0.3) * 0.5); transform: scale(0.95); }
  86% { opacity: calc(var(--o, 0.3) * 0.92); transform: scale(1.06); }
}
/* Surround accents ? optical stars + soft milky bands (main Daechi untouched) */
body.theme-sian3-lp .lp-amb-star {
  /* upgrade plain dots → tiny optical stars */
  background: rgba(255, 252, 245, 0.95);
  box-shadow:
          0 0 calc(var(--s) * 1.6) rgba(255, 240, 200, 0.5),
          0 0 calc(var(--s) * 3.2) rgba(255, 220, 150, 0.2);
}
body.theme-sian3-lp .lp-amb-star::before,
body.theme-sian3-lp .lp-amb-star::after {
  content: "";
  position: absolute; left: 50%; top: 50%;
  pointer-events: none;
  background: linear-gradient(90deg,
  transparent 0%, rgba(255,248,230,0.15) 22%,
  rgba(255,255,255,0.85) 50%,
  rgba(255,248,230,0.15) 78%, transparent 100%);
  border-radius: 999px;
  opacity: 0.55;
}
body.theme-sian3-lp .lp-amb-star::before {
  width: calc(var(--s) * 5.2); height: max(0.6px, calc(var(--s) * 0.28));
  margin: calc(max(0.6px, calc(var(--s) * 0.28)) / -2) 0 0 calc(var(--s) * -2.6);
}
body.theme-sian3-lp .lp-amb-star::after {
  width: max(0.6px, calc(var(--s) * 0.28)); height: calc(var(--s) * 5.2);
  margin: calc(var(--s) * -2.6) 0 0 calc(max(0.6px, calc(var(--s) * 0.28)) / -2);
  background: linear-gradient(180deg,
  transparent 0%, rgba(255,248,230,0.15) 22%,
  rgba(255,255,255,0.85) 50%,
  rgba(255,248,230,0.15) 78%, transparent 100%);
}
body.theme-sian3-lp .lp-amb-star--bright::before {
  width: calc(var(--s) * 6.5); margin-left: calc(var(--s) * -3.25);
  opacity: 0.7;
}
body.theme-sian3-lp .lp-amb-star--bright::after {
  height: calc(var(--s) * 6.5); margin-top: calc(var(--s) * -3.25);
  opacity: 0.7;
}
body.theme-sian3-lp .lp-amb-star--tiny::before,
body.theme-sian3-lp .lp-amb-star--tiny::after { opacity: 0.35; }
body.theme-sian3-lp .lp-constellation__satellites {
  position: absolute; inset: -40%;
  width: 180%; height: 180%;
  overflow: visible; z-index: 1; pointer-events: none;
  opacity: 0.5;
}
body.theme-sian3-lp .lp-sat-link {
  fill: none; stroke: rgba(255, 236, 200, 0.28);
  stroke-width: 0.36; stroke-linecap: round;
  stroke-dasharray: none;
  vector-effect: non-scaling-stroke;
}
body.theme-sian3-lp .lp-sat-arc {
  fill: none; stroke: rgba(255, 236, 200, 0.11);
  stroke-width: 0.38; stroke-linecap: round;
  stroke-dasharray: 0.18 1.7;
  vector-effect: non-scaling-stroke;
}
body.theme-sian3-lp .lp-sat-arc--soft {
  stroke: rgba(255, 236, 200, 0.08);
  stroke-dasharray: 0.12 2.1;
}

body.theme-sian3-lp .lp-constellation__sat-stars {
  position: absolute; inset: -40%;
  width: 180%; height: 180%;
  z-index: 1; pointer-events: none; overflow: visible;
  opacity: 0.78;
}
body.theme-sian3-lp .lp-sat-star {
  --u: calc(var(--lp-const-size) * 0.007);
  --core: calc(var(--u) * 0.48 * var(--s, 1));
  --bloom: calc(var(--u) * 3.4 * var(--s, 1));
  --ray: calc(var(--u) * 4.0 * var(--s, 1));
  --ray-w: calc(var(--u) * 0.18 * var(--s, 1));
  --o: 0.7;
  position: absolute; left: var(--x); top: var(--y); width: 0; height: 0;
  opacity: var(--o);
  animation: lpSatTwinkle var(--tw, 6s) ease-in-out infinite;
  animation-delay: var(--td, 0s);
}
body.theme-sian3-lp .lp-sat-star--major {
  --core: calc(var(--u) * 0.62 * var(--s, 1));
  --bloom: calc(var(--u) * 4.2 * var(--s, 1));
  --ray: calc(var(--u) * 5.0 * var(--s, 1));
  --ray-w: calc(var(--u) * 0.22 * var(--s, 1));
}
body.theme-sian3-lp .lp-sat-star__bloom {
  position: absolute; left: 0; top: 0;
  width: var(--bloom); height: var(--bloom);
  margin: calc(var(--bloom) / -2) 0 0 calc(var(--bloom) / -2);
  border-radius: 50%;
  background: radial-gradient(circle,
  rgba(255,255,255,0.45) 0%, rgba(255,230,170,0.16) 30%,
  rgba(255,210,120,0.04) 55%, transparent 76%);
  animation: lpSatBloom calc(var(--tw, 6s) * 1.1) ease-in-out infinite;
  animation-delay: var(--td, 0s);
}
body.theme-sian3-lp .lp-sat-star__core {
  position: absolute; left: 0; top: 0;
  width: var(--core); height: var(--core);
  margin: calc(var(--core) / -2) 0 0 calc(var(--core) / -2);
  border-radius: 50%;
  background: rgba(255,252,245,0.95);
  box-shadow:
          0 0 calc(var(--u) * 0.3) calc(var(--u) * 0.05) rgba(255,255,255,0.7),
          0 0 calc(var(--u) * 1.0) calc(var(--u) * 0.12) rgba(255,230,170,0.35),
          0 0 calc(var(--u) * 2.0) calc(var(--u) * 0.18) rgba(255,200,100,0.1);
}
body.theme-sian3-lp .lp-sat-star__rays {
  position: absolute; left: 0; top: 0; opacity: 0.5;
  animation: lpSatRay calc(var(--tw, 6s) * 1.15) ease-in-out infinite;
  animation-delay: calc(var(--td, 0s) + 0.12s);
}
body.theme-sian3-lp .lp-sat-star__ray {
  position: absolute; left: 0; top: 0; pointer-events: none; border-radius: 999px;
}
body.theme-sian3-lp .lp-sat-star__ray--h {
  width: calc(var(--ray) * 2); height: var(--ray-w);
  margin: calc(var(--ray-w) / -2) 0 0 calc(var(--ray) * -1);
  background: linear-gradient(90deg, transparent, rgba(255,248,230,0.2) 20%, rgba(255,255,255,0.8) 50%, rgba(255,248,230,0.2) 80%, transparent);
}
body.theme-sian3-lp .lp-sat-star__ray--v {
  width: var(--ray-w); height: calc(var(--ray) * 2);
  margin: calc(var(--ray) * -1) 0 0 calc(var(--ray-w) / -2);
  background: linear-gradient(180deg, transparent, rgba(255,248,230,0.2) 20%, rgba(255,255,255,0.8) 50%, rgba(255,248,230,0.2) 80%, transparent);
}
body.theme-sian3-lp .lp-sat-star__ray--d1,
body.theme-sian3-lp .lp-sat-star__ray--d2 {
  width: calc(var(--ray) * 1.05); height: calc(var(--ray-w) * 0.5);
  margin: calc(var(--ray-w) * -0.25) 0 0 calc(var(--ray) * -0.525);
  background: linear-gradient(90deg, transparent, rgba(255,248,230,0.4), transparent);
  opacity: 0.45;
}
body.theme-sian3-lp .lp-sat-star__ray--d1 { transform: rotate(45deg); }
body.theme-sian3-lp .lp-sat-star__ray--d2 { transform: rotate(-45deg); }
@keyframes lpSatTwinkle {
  0%, 100% { opacity: calc(var(--o, 0.7) * 0.72); }
  30% { opacity: calc(var(--o, 0.7) * 0.95); }
  55% { opacity: calc(var(--o, 0.7) * 0.62); }
  78% { opacity: calc(var(--o, 0.7) * 0.88); }
}
@keyframes lpSatBloom {
  0%, 100% { opacity: 0.3; transform: scale(0.92); }
  50% { opacity: 0.75; transform: scale(1.08); }
}
@keyframes lpSatRay {
  0%, 100% { opacity: 0.18; }
  50% { opacity: 0.72; }
}
body.theme-sian3-lp .lp-constellation__aura {
  position: absolute; inset: -8%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,230,170,0.075) 0%, rgba(255,220,160,0.03) 42%, transparent 74%);
  filter: blur(26px); z-index: 0;
}
body.theme-sian3-lp .lp-constellation__links {
  position: absolute; inset: 0; width: 100%; height: 100%;
  overflow: visible; z-index: 2; pointer-events: none;
}
body.theme-sian3-lp .dc-arc-smooth {
  fill: none; stroke: rgba(255,242,210,0.78); stroke-width: 1.28;
  stroke-linecap: round; stroke-dasharray: none; stroke-dashoffset: 0;
  vector-effect: non-scaling-stroke;
  filter: drop-shadow(0 0 2.2px rgba(255,230,170,0.4));
}
body.theme-sian3-lp .dc-link-glow {
  fill: none; stroke: rgba(255,230,170,0.14); stroke-width: 2.4;
  stroke-linecap: round; vector-effect: non-scaling-stroke;
}
body.theme-sian3-lp .dc-link--logo {
  fill: none; stroke: rgba(255,248,232,0.72); stroke-width: 1.48;
  stroke-linecap: round; stroke-dasharray: none; stroke-dashoffset: 0;
  vector-effect: non-scaling-stroke;
  filter: drop-shadow(0 0 1.6px rgba(255,235,180,0.28));
}
body.theme-sian3-lp .dc-link--frame {
  fill: none; stroke: rgba(255,240,205,0.66); stroke-width: 1.18;
  stroke-linecap: round; stroke-dasharray: none; stroke-dashoffset: 0;
  vector-effect: non-scaling-stroke;
  filter: drop-shadow(0 0 1.6px rgba(255,230,170,0.32));
}
/* During stitch: solid luminous ink ? no dotted crawl / awkward tails */
body.theme-sian3-lp .lp-constellation__links path {
  transition: stroke 0.9s ease, stroke-width 0.9s ease, filter 0.9s ease, opacity 0.9s ease;
}
body.theme-sian3-lp .lp-constellation.is-settling .dc-link--logo,
body.theme-sian3-lp .lp-constellation.is-settling .dc-link--frame,
body.theme-sian3-lp .lp-constellation.is-settling .dc-arc-smooth {
  transition: stroke 0.9s ease, stroke-width 0.9s ease, filter 0.9s ease;
}
/* Drawing: ALWAYS solid on visible paths ? never dash (reads as 점선) */
body.theme-sian3-lp .lp-constellation.is-drawing .lp-constellation__links path:not(.dc-arc-reveal-stroke) {
  transition: none !important;
  stroke-dasharray: none !important;
  stroke-dashoffset: 0 !important;
}
body.theme-sian3-lp .lp-constellation.is-drawing .dc-link--logo,
body.theme-sian3-lp .lp-constellation.is-drawing .dc-link--frame {
  stroke: rgba(255, 248, 230, 0.9);
  stroke-width: 1.42;
  stroke-linecap: round;
  stroke-linejoin: round;
  filter: none;
}
body.theme-sian3-lp .lp-constellation.is-drawing .dc-link-glow {
  visibility: hidden !important;
}
body.theme-sian3-lp .lp-constellation.is-drawing .dc-arc-smooth {
  stroke: rgba(255, 248, 225, 0.88);
  stroke-width: 1.36;
  stroke-linecap: round;
  filter: none;
}
body.theme-sian3-lp .lp-constellation.is-formed .dc-link--logo,
body.theme-sian3-lp .lp-constellation.is-formed .dc-link--frame,
body.theme-sian3-lp .lp-constellation.is-formed .dc-arc-smooth,
body.theme-sian3-lp .lp-constellation.is-settling .dc-link--logo,
body.theme-sian3-lp .lp-constellation.is-settling .dc-link--frame,
body.theme-sian3-lp .lp-constellation.is-settling .dc-arc-smooth {
  stroke-dasharray: none !important;
  stroke-dashoffset: 0 !important;
}
body.theme-sian3-lp .lp-sat-arc,
body.theme-sian3-lp .lp-sat-link {
  opacity: 0.85;
}
body.theme-sian3-lp .lp-constellation__stars { position: absolute; inset: 0; z-index: 3; }
body.theme-sian3-lp .dc-star {
  --star-o: 0.82;
  --bloom-o: 0.36;
  --ray-o: 0.4;
  --u: calc(var(--lp-const-size) * 0.0115);
  --star-core: calc(var(--u) * 0.55 * var(--s, 1));
  --star-bloom: calc(var(--u) * 4.2 * var(--s, 1));
  --star-ray: calc(var(--u) * 4.0 * var(--s, 1));
  --star-ray-w: calc(var(--u) * 0.14 * var(--s, 1));
  position: absolute; left: var(--x); top: var(--y); width: 0; height: 0;
  transform-origin: 50% 50%;
  will-change: transform, opacity;
  backface-visibility: hidden;
}
/* 태블릿·모바일: 별 점 가독성 (base --u 정의 이후에 덮어씀) */
@media (max-width: 900px) {
  body.theme-sian3-lp .dc-star {
    --u: calc(var(--lp-const-size) * 0.014);
  }
  body.theme-sian3-lp .lp-constellation__sat-stars {
    --u: calc(var(--lp-const-size) * 0.009);
  }
}
@media (max-width: 640px) {
  body.theme-sian3-lp .dc-star {
    --u: calc(var(--lp-const-size) * 0.016);
  }
  body.theme-sian3-lp .lp-constellation__sat-stars {
    --u: calc(var(--lp-const-size) * 0.01);
  }
}
body.theme-sian3-lp .lp-constellation.is-drawing .dc-star {
  will-change: transform, opacity;
  filter: none !important;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
body.theme-sian3-lp .lp-constellation.is-drawing .lp-constellation__links {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}
body.theme-sian3-lp .dc-star--mid {
  --star-core: calc(var(--u) * 0.42 * var(--s, 1));
  --star-bloom: calc(var(--u) * 3.2 * var(--s, 1));
  --star-ray: calc(var(--u) * 3.1 * var(--s, 1));
  --star-ray-w: calc(var(--u) * 0.12 * var(--s, 1));
}
body.theme-sian3-lp .dc-star__facet { display: none !important; }
body.theme-sian3-lp .lp-light-bridge { display: none !important; }
body.theme-sian3-lp .dc-star__bloom {
  position: absolute; left: 0; top: 0;
  width: var(--star-bloom); height: var(--star-bloom);
  margin: calc(var(--star-bloom) / -2) 0 0 calc(var(--star-bloom) / -2);
  border-radius: 50%;
  opacity: 0.55;
  background: radial-gradient(circle,
  rgba(255,255,255,0.55) 0%,
  rgba(255,236,190,0.22) 26%,
  rgba(255,220,150,0.08) 48%,
  transparent 72%);
}
body.theme-sian3-lp .dc-star__core {
  position: absolute; left: 0; top: 0;
  width: var(--star-core); height: var(--star-core);
  margin: calc(var(--star-core) / -2) 0 0 calc(var(--star-core) / -2);
  border-radius: 50%;
  background: radial-gradient(circle at 38% 32%,
  #fff 0%,
  rgba(255,250,238,0.96) 48%,
  rgba(255,236,190,0.8) 100%);
  box-shadow:
          0 0 calc(var(--u) * 0.3) calc(var(--u) * 0.06) rgba(255,255,255,0.7),
          0 0 calc(var(--u) * 1.0) calc(var(--u) * 0.12) rgba(255,232,175,0.3);
}
body.theme-sian3-lp .dc-star__rays {
  position: absolute; left: 0; top: 0;
  opacity: 0.48;
}
body.theme-sian3-lp .dc-star__ray { position: absolute; left: 0; top: 0; pointer-events: none; }
body.theme-sian3-lp .dc-star__ray--h {
  width: calc(var(--star-ray) * 2); height: var(--star-ray-w);
  margin: calc(var(--star-ray-w) / -2) 0 0 calc(var(--star-ray) * -1);
  background: linear-gradient(90deg,
  transparent 0%,
  rgba(255,248,230,0.2) 28%,
  rgba(255,255,255,0.9) 50%,
  rgba(255,248,230,0.2) 72%,
  transparent 100%);
  border-radius: 999px;
}
body.theme-sian3-lp .dc-star__ray--v {
  width: var(--star-ray-w); height: calc(var(--star-ray) * 2);
  margin: calc(var(--star-ray) * -1) 0 0 calc(var(--star-ray-w) / -2);
  background: linear-gradient(180deg,
  transparent 0%,
  rgba(255,248,230,0.2) 28%,
  rgba(255,255,255,0.9) 50%,
  rgba(255,248,230,0.2) 72%,
  transparent 100%);
  border-radius: 999px;
}
body.theme-sian3-lp .dc-star__ray--d1,
body.theme-sian3-lp .dc-star__ray--d2 {
  width: calc(var(--star-ray) * 1.05); height: calc(var(--star-ray-w) * 0.45);
  margin: calc(var(--star-ray-w) * -0.225) 0 0 calc(var(--star-ray) * -0.525);
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.45), transparent);
  border-radius: 999px;
  opacity: 0.35;
}
body.theme-sian3-lp .dc-star__ray--d1 { transform: rotate(45deg); }
body.theme-sian3-lp .dc-star__ray--d2 { transform: rotate(-45deg); }
/* GSAP owns live shimmer ? CSS must NOT fight opacity/transform */
body.theme-sian3-lp .dc-star.is-live {
  animation: none !important;
}
body.theme-sian3-lp .dc-star.is-live .dc-star__bloom,
body.theme-sian3-lp .dc-star.is-live .dc-star__core,
body.theme-sian3-lp .dc-star.is-live .dc-star__rays {
  animation: none !important;
}
body.theme-sian3-lp .lp-constellation.is-matching .dc-star.is-charging {
  animation: none !important;
}
body.theme-sian3-lp .lp-constellation.is-forming .dc-star.is-scattered .dc-star__bloom,
body.theme-sian3-lp .lp-constellation.is-forming .dc-star.is-scattered .dc-star__core,
body.theme-sian3-lp .lp-constellation.is-forming .dc-star.is-scattered .dc-star__rays {
  animation: none !important;
}
/* Peripheral sky companions (ambient DNA) ? glyph stars keep dc-star look always */
body.theme-sian3-lp .lp-constellation.is-forming .dc-star.is-scattered {
  transform-origin: 50% 50%;
  filter: none;
}
body.theme-sian3-lp .lp-constellation.is-sky .dc-star.is-scattered .dc-star__core {
  box-shadow:
          0 0 calc(var(--u) * 0.22) calc(var(--u) * 0.04) rgba(255,255,255,0.7),
          0 0 calc(var(--u) * 0.6) calc(var(--u) * 0.07) rgba(255,236,190,0.28);
}
body.theme-sian3-lp .lp-constellation.is-sky .dc-star.is-scattered .dc-star__bloom {
  opacity: 0.42;
}
body.theme-sian3-lp .lp-constellation.is-sky .dc-star.is-scattered .dc-star__rays {
  opacity: 0.55;
}
body.theme-sian3-lp .lp-sky-extra {
  position: absolute;
  left: var(--x); top: var(--y);
  width: var(--s); height: var(--s);
  margin: calc(var(--s) / -2) 0 0 calc(var(--s) / -2);
  border-radius: 50%;
  background: rgba(255, 252, 245, 0.95);
  opacity: var(--o, 0.3);
  box-shadow:
          0 0 calc(var(--s) * 1.6) rgba(255, 240, 200, 0.45),
          0 0 calc(var(--s) * 3.2) rgba(255, 220, 150, 0.18);
  animation: lpAmbTwinkle var(--tw, 6s) ease-in-out infinite;
  animation-delay: var(--td, 0s);
  pointer-events: none;
  z-index: 2;
}
body.theme-sian3-lp .lp-sky-extra::before,
body.theme-sian3-lp .lp-sky-extra::after {
  content: "";
  position: absolute; left: 50%; top: 50%;
  pointer-events: none;
  background: linear-gradient(90deg,
  transparent 0%, rgba(255,248,230,0.15) 22%,
  rgba(255,255,255,0.8) 50%,
  rgba(255,248,230,0.15) 78%, transparent 100%);
  border-radius: 999px;
  opacity: 0.45;
}
body.theme-sian3-lp .lp-sky-extra::before {
  width: calc(var(--s) * 4.8); height: max(0.5px, calc(var(--s) * 0.26));
  margin: calc(max(0.5px, calc(var(--s) * 0.26)) / -2) 0 0 calc(var(--s) * -2.4);
}
body.theme-sian3-lp .lp-sky-extra::after {
  width: max(0.5px, calc(var(--s) * 0.26)); height: calc(var(--s) * 4.8);
  margin: calc(var(--s) * -2.4) 0 0 calc(max(0.5px, calc(var(--s) * 0.26)) / -2);
  background: linear-gradient(180deg,
  transparent 0%, rgba(255,248,230,0.15) 22%,
  rgba(255,255,255,0.8) 50%,
  rgba(255,248,230,0.15) 78%, transparent 100%);
}
body.theme-sian3-lp .lp-sky-extra--bright::before,
body.theme-sian3-lp .lp-sky-extra--bright::after { opacity: 0.62; }
body.theme-sian3-lp .lp-sky-extra--tiny::before,
body.theme-sian3-lp .lp-sky-extra--tiny::after { opacity: 0.28; }
body.theme-sian3-lp .dc-star.is-charging {
  z-index: 8;
  filter: saturate(1.15) brightness(1.12) hue-rotate(-6deg);
  transition: filter 0.55s ease;
}
body.theme-sian3-lp .dc-star.is-charging .dc-star__bloom {
  opacity: 1 !important;
  background: radial-gradient(circle,
  rgba(255,255,255,0.72) 0%,
  rgba(255,236,190,0.42) 22%,
  rgba(255,200,120,0.18) 48%,
  rgba(255,170,90,0.06) 66%,
  transparent 80%);
}
body.theme-sian3-lp .dc-star.is-charging .dc-star__rays {
  opacity: 0.95 !important;
}
body.theme-sian3-lp .dc-star.is-charging .dc-star__core {
  background: radial-gradient(circle at 38% 32%,
  #fff 0%,
  #fff6e0 40%,
  #ffd89a 100%);
  box-shadow:
          0 0 calc(var(--u) * 0.5) calc(var(--u) * 0.1) rgba(255,255,255,0.9),
          0 0 calc(var(--u) * 1.6) calc(var(--u) * 0.22) rgba(255,210,130,0.55),
          0 0 calc(var(--u) * 3.4) calc(var(--u) * 0.35) rgba(255,170,80,0.22);
}
/* Seat vacated while this star is the meteor */
body.theme-sian3-lp .dc-star.is-spent {
  pointer-events: none;
  filter: none !important;
}
body.theme-sian3-lp .dc-star.is-spent .dc-star__bloom,
body.theme-sian3-lp .dc-star.is-spent .dc-star__rays,
body.theme-sian3-lp .dc-star.is-spent .dc-star__core {
  /* opacity driven by GSAP crossfade */
}
body.theme-sian3-lp .lp-meteor {
  position: absolute;
  left: 0; top: 0;
  width: 18px; height: 18px;
  margin: 0;
  z-index: 12;
  pointer-events: none;
  opacity: 0;
  will-change: transform, opacity;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  filter: saturate(1.08) brightness(1.06);
}
body.theme-sian3-lp .lp-meteor__core {
  position: absolute; left: 50%; top: 50%;
  width: 7px; height: 7px;
  margin: -3.5px 0 0 -3.5px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #fff 0%, #fff4d8 48%, #ffd090 100%);
  box-shadow:
          0 0 5px 1.5px rgba(255, 255, 255, 0.85),
          0 0 12px 4px rgba(255, 220, 150, 0.5),
          0 0 22px 8px rgba(255, 180, 90, 0.18);
}
body.theme-sian3-lp .lp-meteor__glow {
  position: absolute; left: 50%; top: 50%;
  width: 32px; height: 32px;
  margin: -16px 0 0 -16px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,240,200,0.42) 0%, rgba(255,200,120,0.12) 48%, transparent 78%);
}
body.theme-sian3-lp .lp-meteor__trail {
  position: absolute; left: 50%; top: 50%;
  width: 108px; height: 1.35px;
  margin: -0.65px 0 0 -102px;
  border-radius: 999px;
  transform: scaleX(0.02);
  transform-origin: right center;
  opacity: 0;
  background: linear-gradient(90deg,
  transparent 0%,
  rgba(255, 210, 140, 0.04) 12%,
  rgba(255, 235, 185, 0.28) 48%,
  rgba(255, 252, 240, 0.85) 100%);
  filter: blur(0.1px);
  will-change: transform, opacity;
}
body.theme-sian3-lp .lp-meteor__trail--mid {
  width: 86px; height: 2.8px;
  margin: -1.4px 0 0 -80px;
  filter: blur(1.3px);
  background: linear-gradient(90deg,
  transparent 0%,
  rgba(255, 200, 120, 0.06) 22%,
  rgba(255, 235, 180, 0.28) 100%);
}
body.theme-sian3-lp .lp-meteor__trail--soft {
  width: 120px; height: 6px;
  margin: -3px 0 0 -114px;
  filter: blur(4px);
  background: linear-gradient(90deg,
  transparent 0%,
  rgba(255, 190, 100, 0.05) 25%,
  rgba(255, 230, 170, 0.18) 100%);
}
body.theme-sian3-lp .lp-meteor__spark {
  position: absolute; left: 50%; top: 50%;
  width: 1.8px; height: 1.8px; margin: -0.9px 0 0 -0.9px;
  border-radius: 50%;
  background: rgba(255, 248, 230, 0.85);
  box-shadow: 0 0 3.5px rgba(255, 230, 170, 0.5);
  opacity: 0;
  will-change: transform, opacity;
}
body.theme-sian3-lp .lp-meteor__spark--a,
body.theme-sian3-lp .lp-meteor__spark--b,
body.theme-sian3-lp .lp-meteor__spark--c { transform: none; }
body.theme-sian3-lp .lp-meteor__ember {
  position: absolute; left: 0; top: 0;
  width: 2px; height: 2px; margin: -1px 0 0 -1px;
  border-radius: 50%;
  background: rgba(255, 240, 200, 0.75);
  box-shadow: 0 0 4px rgba(255, 220, 160, 0.4);
  pointer-events: none;
  z-index: 11;
  opacity: 0;
}
body.theme-sian3-lp .lp-match-flash {
  position: absolute;
  left: 0; top: 0;
  width: 92px; height: 92px;
  margin: 0;
  border-radius: 50%;
  pointer-events: none;
  z-index: 9;
  opacity: 0;
  background: radial-gradient(circle,
  rgba(255, 255, 255, 0.78) 0%,
  rgba(255, 248, 225, 0.42) 26%,
  rgba(255, 220, 160, 0.14) 52%,
  transparent 76%);
  filter: blur(1.1px);
  mix-blend-mode: screen;
  will-change: transform, opacity;
}
body.theme-sian3-lp .lp-match-bloom {
  position: absolute;
  left: 0; top: 0;
  width: 140px; height: 140px;
  margin: 0;
  border-radius: 50%;
  pointer-events: none;
  z-index: 6;
  opacity: 0;
  background: radial-gradient(circle,
  rgba(255, 240, 200, 0.22) 0%,
  rgba(255, 210, 150, 0.08) 42%,
  transparent 72%);
  filter: blur(6px);
  mix-blend-mode: screen;
  will-change: transform, opacity;
}
body.theme-sian3-lp .lp-match-ring {
  position: absolute;
  left: 0; top: 0;
  width: 48px; height: 48px;
  margin: 0;
  border-radius: 50%;
  pointer-events: none;
  z-index: 8;
  opacity: 0;
  border: none;
  background: radial-gradient(circle,
  transparent 38%,
  rgba(255, 244, 215, 0.48) 54%,
  rgba(255, 215, 155, 0.16) 68%,
  transparent 82%);
  filter: blur(1.1px);
  mix-blend-mode: screen;
  will-change: transform, opacity;
}
body.theme-sian3-lp .lp-match-spark {
  position: absolute;
  left: 0; top: 0;
  width: 2px; height: 2px;
  margin: 0;
  border-radius: 50%;
  pointer-events: none;
  z-index: 10;
  background: rgba(255, 250, 235, 0.9);
  box-shadow: 0 0 5px 1px rgba(255, 230, 170, 0.45);
  will-change: transform, opacity;
}
body.theme-sian3-lp .lp-match-spark--hi {
  width: 2.6px; height: 2.6px;
  box-shadow:
          0 0 6px 1.5px rgba(255, 235, 190, 0.55),
          0 0 14px rgba(255, 200, 120, 0.22);
}
/* Mobile: meteor + match impact slightly smaller */
@media (max-width: 640px) {
  body.theme-sian3-lp .lp-meteor {
    width: 14px; height: 14px;
    filter: saturate(1.05) brightness(1.04);
  }
  body.theme-sian3-lp .lp-meteor__core {
    width: 5.4px; height: 5.4px;
    margin: -2.7px 0 0 -2.7px;
    box-shadow:
            0 0 4px 1px rgba(255, 255, 255, 0.8),
            0 0 9px 3px rgba(255, 220, 150, 0.45),
            0 0 16px 6px rgba(255, 180, 90, 0.15);
  }
  body.theme-sian3-lp .lp-meteor__glow {
    width: 24px; height: 24px;
    margin: -12px 0 0 -12px;
  }
  body.theme-sian3-lp .lp-meteor__trail {
    width: 78px; height: 1.15px;
    margin: -0.55px 0 0 -74px;
  }
  body.theme-sian3-lp .lp-meteor__trail--mid {
    width: 64px; height: 2.2px;
    margin: -1.1px 0 0 -60px;
    filter: blur(1.1px);
  }
  body.theme-sian3-lp .lp-meteor__trail--soft {
    width: 88px; height: 4.5px;
    margin: -2.25px 0 0 -84px;
    filter: blur(3.2px);
  }
  body.theme-sian3-lp .lp-meteor__spark {
    width: 1.4px; height: 1.4px; margin: -0.7px 0 0 -0.7px;
  }
  body.theme-sian3-lp .lp-meteor__ember {
    width: 1.5px; height: 1.5px; margin: -0.75px 0 0 -0.75px;
  }
  body.theme-sian3-lp .lp-match-flash {
    width: 68px; height: 68px;
    filter: blur(0.9px);
  }
  body.theme-sian3-lp .lp-match-bloom {
    width: 102px; height: 102px;
    filter: blur(5px);
  }
  body.theme-sian3-lp .lp-match-ring {
    width: 36px; height: 36px;
    filter: blur(0.9px);
  }
  body.theme-sian3-lp .lp-match-spark {
    width: 1.6px; height: 1.6px;
    box-shadow: 0 0 4px 1px rgba(255, 230, 170, 0.4);
  }
  body.theme-sian3-lp .lp-match-spark--hi {
    width: 2px; height: 2px;
    box-shadow:
            0 0 4.5px 1px rgba(255, 235, 190, 0.5),
            0 0 10px rgba(255, 200, 120, 0.18);
  }
}
body.theme-sian3-lp .lp-prince__gif {
  transition: none;
  will-change: filter;
}

body.theme-sian3-lp .lp-weave-spark {
  display: none !important;
}

body.theme-sian3-lp .lp-formed-halo {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
/* Soft crystallize accents ? driven by GSAP, never harsh */
body.theme-sian3-lp .lp-form-pulse {
  position: absolute;
  left: 50%; top: 48%;
  width: 92%; height: 92%;
  transform: translate(-50%, -50%) scale(0.55);
  border-radius: 50%;
  pointer-events: none;
  z-index: 1;
  opacity: 0;
  visibility: visible;
  background: radial-gradient(circle,
  rgba(255, 248, 230, 0.22) 0%,
  rgba(255, 228, 180, 0.08) 40%,
  transparent 70%);
  filter: blur(20px);
  mix-blend-mode: screen;
}
body.theme-sian3-lp .lp-form-ring {
  position: absolute;
  left: 50%; top: 48%;
  width: 74%; height: 74%;
  transform: translate(-50%, -50%) scale(0.6);
  border-radius: 50%;
  pointer-events: none;
  z-index: 2;
  opacity: 0;
  visibility: visible;
  border: 1px solid rgba(255, 236, 200, 0.18);
  box-shadow: 0 0 24px rgba(255, 220, 160, 0.1);
  background: radial-gradient(circle, rgba(255, 245, 220, 0.06) 0%, transparent 65%);
  mix-blend-mode: screen;
}
body.theme-sian3-lp .lp-morph-wisp {
  position: absolute;
  width: 1.5px;
  height: 22px;
  border-radius: 2px;
  pointer-events: none;
  z-index: 5;
  opacity: 0;
  background: linear-gradient(
          180deg,
          rgba(255, 255, 255, 0.7) 0%,
          rgba(255, 230, 170, 0.28) 40%,
          transparent 100%
  );
  filter: blur(0.6px);
  transform-origin: 50% 100%;
  mix-blend-mode: screen;
}
body.theme-sian3-lp .lp-dock-spark {
  position: absolute;
  width: 10px; height: 10px;
  border-radius: 50%;
  pointer-events: none;
  z-index: 6;
  background: radial-gradient(circle,
  rgba(255, 255, 255, 0.85) 0%,
  rgba(255, 235, 180, 0.35) 40%,
  transparent 72%);
  box-shadow: 0 0 8px rgba(255, 230, 170, 0.35);
}
body.theme-sian3-lp .lp-formed-halo {
  position: absolute;
  left: 50%; top: 48%;
  width: 92%; height: 92%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  pointer-events: none;
  z-index: 1;
  opacity: 0;
  background: radial-gradient(circle,
  rgba(255, 236, 200, 0.14) 0%,
  rgba(255, 220, 160, 0.06) 42%,
  transparent 70%);
  filter: blur(18px);
  mix-blend-mode: screen;
}
body.theme-sian3-lp .lp-constellation.is-formed .lp-formed-halo {
  /* opacity driven by GSAP ? avoid CSS snap */
}
body.theme-sian3-lp .lp-constellation.is-matching {

  transition: filter 1.2s ease;
}
body.theme-sian3-lp .lp-constellation.is-matching.is-hushed {
  filter: none;
  transition: filter 2.6s ease;
}
body.theme-sian3-lp .lp-constellation.is-sky .lp-constellation__links {
  opacity: 0 !important;
}
body.theme-sian3-lp .lp-constellation.is-assembling .lp-constellation__aura {
  transition: none;
}
body.theme-sian3-lp .lp-constellation.is-formed .lp-constellation__sat-stars {
  opacity: 0.72;
}
body.theme-sian3-lp .lp-constellation.is-formed .lp-constellation__satellites {
  opacity: 0.48;
}
body.theme-sian3-lp .lp-constellation.is-formed .lp-constellation__ambient {
  opacity: 1;
}
body.theme-sian3-lp .lp-constellation.is-drawing .lp-constellation__satellites {
  opacity: 0 !important;
}
/* hq68-pin-stack ? freeze body only; head/scarf GSAP-owned while locked */
/* Lock kills CSS idle only ? stack may lean via GSAP */
body.theme-sian3-lp .lp-prince.is-seq-locked .lp-prince__stack,
body.theme-sian3-lp .lp-prince.is-receiving .lp-prince__stack {
  animation: none !important;
}
body.theme-sian3-lp .lp-prince.is-seq-locked .lp-prince__head,
body.theme-sian3-lp .lp-prince.is-seq-locked .lp-prince__scarf,
body.theme-sian3-lp .lp-prince.is-receiving .lp-prince__head,
body.theme-sian3-lp .lp-prince.is-receiving .lp-prince__scarf {
  animation: none !important;
}
/* Rose is sibling of prince ? lock via visual flag */
body.theme-sian3-lp #s3HeroVisual.is-lp-acting .lp-rose__sway {
  animation: none !important;
}
body.theme-sian3-lp .lp-prince.is-receiving .lp-prince__stack {
  transition: none;
}
/* Catch orb hidden — match flash/ring/sparks are the external matching FX */
body.theme-sian3-lp .lp-prince__catch {
  display: none !important;
}
body.theme-sian3-lp .lp-prince.is-starlit .lp-prince__head,
body.theme-sian3-lp .lp-prince.is-receiving .lp-prince__head,
body.theme-sian3-lp .lp-prince.is-starlit .lp-prince__scarf,
body.theme-sian3-lp .lp-prince.is-receiving .lp-prince__scarf {
  filter: none !important;
}
body.theme-sian3-lp .lp-prince.is-receiving::after {
  content: none;
  display: none;
}
@media (prefers-reduced-motion: reduce) {
  body.theme-sian3-lp .lp-meteor { display: none !important; }
}

@keyframes dcStarTwinkle {
  0%, 100% { opacity: calc(var(--star-o, 0.85) * 0.86); }
  40% { opacity: calc(var(--star-o, 0.85) * 1); }
  70% { opacity: calc(var(--star-o, 0.85) * 0.9); }
}
@keyframes dcBloomBreathe {
  0%, 100% { opacity: calc(var(--bloom-o, 0.4) * 0.65); transform: scale(0.95); }
  35% { opacity: calc(var(--bloom-o, 0.4) * 1.25); transform: scale(1.1); }
  65% { opacity: calc(var(--bloom-o, 0.4) * 0.8); transform: scale(1.0); }
}
@keyframes dcCoreBreathe {
  0%, 100% { opacity: 0.88; transform: scale(0.97); }
  50% { opacity: 1; transform: scale(1.08); }
}
@keyframes dcRayBreathe {
  0%, 100% { opacity: calc(var(--ray-o, 0.35) * 0.55); }
  40% { opacity: calc(var(--ray-o, 0.35) * 1.25); }
  75% { opacity: calc(var(--ray-o, 0.35) * 0.7); }
}
@keyframes lpFieldTwinkle {
  0%, 100% { opacity: calc(var(--o, 0.3) * 0.4); transform: scale(0.92); }
  30% { opacity: calc(var(--o, 0.3) * 0.75); transform: scale(1.0); }
  55% { opacity: calc(var(--o, 0.3) * 1.05); transform: scale(1.08); }
  78% { opacity: calc(var(--o, 0.3) * 0.55); transform: scale(0.95); }
}
@media (prefers-reduced-motion: reduce) {
  body.theme-sian3-lp .dc-star.is-live,
  body.theme-sian3-lp .dc-star.is-live .dc-star__bloom,
  body.theme-sian3-lp .dc-star.is-live .dc-star__core,
  body.theme-sian3-lp .dc-star.is-live .dc-star__rays,
  body.theme-sian3-lp .lp-sat-star,
  body.theme-sian3-lp .lp-sat-star__bloom,
  body.theme-sian3-lp .lp-sat-star__rays,
  body.theme-sian3-lp .lp-amb-star,
  body.theme-sian3-lp .lp-field-star,
  body.theme-sian3-lp .lp-field-star--bright,
  body.theme-sian3-lp .lp-field-star--dimtw,
  body.theme-sian3-lp .lp-rose__sway { animation: none; }
}
@font-face {
  font-family: "Moderniz";
  src: url("../fonts/Moderniz.otf") format("opentype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}