﻿    /* Hero EN wordmark only ? Moderniz (dafont, 100% free) */
    @font-face {
      font-family: "Moderniz";
      src: url("/lp/korea-map-v21/fonts/Moderniz.otf") format("opentype");
      font-weight: 400;
      font-style: normal;
      font-display: swap;
    }
    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;
    }
    /* logo_wh.png full-bleed — match logo_white.png visible mark (content 38/50 of frame) */
    body.theme-sian3 .s3-header__logo img[src*="logo_wh"] {
      height: 24px !important;
      width: auto !important;
    }
    body.theme-sian3.is-form-open .s34-site-header .header-logo img[src*="logo_wh"],
    body.theme-sian3.is-app-subroute .s34-site-header .header-logo img[src*="logo_wh"],
    body.theme-sian3.is-app-subroute .site-header .header-logo img[src*="logo_wh"] {
      height: calc(clamp(26px, 3.8vw, 34px) * 0.76) !important;
      width: auto !important;
    }
    html body.theme-sian3.is-app-subroute .app-subview--thanks .app-thanks-brand__logo[src*="logo_wh"] {
      height: calc(clamp(26px, 3.6vw, 32px) * 0.76) !important;
      width: auto !important;
    }
    @media (max-width: 480px) {
      body.theme-sian3 .s3-header__logo img[src*="logo_wh"] {
        height: 20px !important;
      }
    }
    @media (max-width: 640px) {
      html body.theme-sian3.is-app-subroute .app-subview--thanks .app-thanks-brand__logo[src*="logo_wh"] {
        height: 18px !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 — LP는 자체 반응형 사용 */
    @media (min-width: 641px) and (max-width: 900px) {
      body.theme-sian3-en:not(.theme-sian3-lp) .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:not(.theme-sian3-lp) .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:not(.theme-sian3-lp) .s3-flip,
      body.theme-sian3-en:not(.theme-sian3-lp) .s3-flip--suffix {
        min-width: 4.8em;
        margin-left: -0.08em !important;
      }
      body.theme-sian3-en:not(.theme-sian3-lp) .s3-flip--suffix { min-width: 3.1em; }
      body.theme-sian3-en:not(.theme-sian3-lp) .s3-flip__item {
        font-size: clamp(2.1rem, min(6.2vw, 6.8vh), 3.2rem);
      }
      body.theme-sian3-en:not(.theme-sian3-lp) .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:not(.theme-sian3-lp) .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:not(.theme-sian3-lp) .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:not(.theme-sian3-lp) .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:not(.theme-sian3-lp) .s3-flip,
      body.theme-sian3-en:not(.theme-sian3-lp) .s3-flip--suffix {
        min-width: 0;
        margin-left: -0.06em !important;
      }
      body.theme-sian3-en:not(.theme-sian3-lp) .s3-flip--suffix { min-width: 0; }
      body.theme-sian3-en:not(.theme-sian3-lp) .s3-flip__item {
        font-size: clamp(1.9rem, min(9.2vw, 7.6vh), 2.55rem);
      }
      body.theme-sian3-en:not(.theme-sian3-lp) .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:not(.theme-sian3-lp) .s3-hero__actions {
        margin-top: 16px !important;
        max-width: min(100%, 300px);
        gap: 6px;
      }
      body.theme-sian3-en:not(.theme-sian3-lp) .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:not(.theme-sian3-lp) .s3-panel.s3-hero {
        padding-top: calc(var(--s3-header-h) + clamp(14px, 2.2vh, 24px)) !important;
      }
      body.theme-sian3-en:not(.theme-sian3-lp) .s3-hero__stack {
        margin-top: clamp(72px, 12vh, 118px) !important;
        padding-right: clamp(6px, 2vw, 14px);
      }
      body.theme-sian3-en:not(.theme-sian3-lp) .s3-flip__item {
        font-size: clamp(1.85rem, min(9vw, 7.5vh), 2.4rem);
      }
      body.theme-sian3-en:not(.theme-sian3-lp) .s3-hero__symbol.s3-hero__match,
      body.theme-sian3-en:not(.theme-sian3-lp) .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(11%, 15vw, 22%);
      --lp-const-top: 35%;
      --lp-const-nudge-x: 7%;
      --lp-planet-w: min(64vw, 820px);
      --lp-planet-right: -2%;
      --lp-planet-bottom: -6.85%;
      --lp-scene-w: min(24vw, 320px);
      --lp-scene-h: calc(var(--lp-scene-w) * 0.95);
      --lp-scene-right: clamp(7.5%, 9.5vw, 12.5%);
      --lp-scene-bottom: 2.15%;
      --lp-prince-w: 84%;
      --lp-prince-right: 9%;
      --lp-prince-bottom: -4%;
      --lp-book-w: 29.5%;
      --lp-book-left: -6%;
      --lp-book-bottom: 6.5%;
    }

    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; }

    /* 히어로 배경 성운 (/lp/korea-map-v21/images/hero_nebula_bg.webp 1920×1080)
       원본 클립이 정지 화면에 가까워 스틸 한 장을 쓰고, 별이 천천히 흐르는 정도의 이동만 준다.
       확대 없이 translate만 움직여 컴포지터에서만 처리되도록 한다 (재그리기 없음) */
    body.theme-sian3-lp .s3-hero__nebula {
      position: absolute;
      inset: -7%;
      background: #050203 url("/lp/korea-map-v21/images/hero_nebula_bg.webp") center / cover no-repeat;
      opacity: 0.9;
      transition: opacity 1.4s ease;
      pointer-events: none;
      animation: heroNebulaDrift 120s linear infinite alternate;
      will-change: transform;
    }
    html.s3-await-hero body.theme-sian3-lp .s3-hero__nebula { opacity: 0; }
    @keyframes heroNebulaDrift {
      0%   { transform: translate3d(3.4%, 2.4%, 0); }
      100% { transform: translate3d(-3.4%, -2.4%, 0); }
    }
    @media (prefers-reduced-motion: reduce) {
      body.theme-sian3-lp .s3-hero__nebula { animation: none; transform: 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);
    }
    /* Native system cursor — no custom crosshair on LP */
    body.theme-sian3-lp,
    body.theme-sian3-lp * {
      cursor: auto !important;
    }
    body.theme-sian3-lp a,
    body.theme-sian3-lp button,
    body.theme-sian3-lp [role="button"],
    body.theme-sian3-lp label,
    body.theme-sian3-lp .s3-role,
    body.theme-sian3-lp .s3-step {
      cursor: pointer !important;
    }
    html.s3-has-custom-cursor body.theme-sian3,
    html.s3-has-custom-cursor body.theme-sian3-lp,
    html.s3-has-custom-cursor body.theme-sian3 *,
    html.s3-has-custom-cursor body.theme-sian3-lp * {
      cursor: auto !important;
    }
    html.s3-has-custom-cursor body.theme-sian3 a,
    html.s3-has-custom-cursor body.theme-sian3 button,
    html.s3-has-custom-cursor body.theme-sian3-lp a,
    html.s3-has-custom-cursor body.theme-sian3-lp button,
    html.s3-has-custom-cursor body.theme-sian3 [role="button"],
    html.s3-has-custom-cursor body.theme-sian3-lp [role="button"] {
      cursor: pointer !important;
    }
    body.theme-sian3 .s3-cursor,
    body.theme-sian3-lp .s3-cursor {
      display: none !important;
    }
    body.theme-sian3-lp .lp-constellation {
      position: absolute;
      right: var(--lp-const-right);
      top: var(--lp-const-top);
      transform: translate(var(--lp-const-nudge-x, 7%), -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: 1;
      filter: none;
      transition: none !important;
    }
    /* Drawing: drop parent filter + freeze companion CSS anims (big jank source) */
    body.theme-sian3-lp .lp-constellation.is-drawing,
    body.theme-sian3-lp .lp-constellation.is-assembling {
      filter: none !important;
      transition: none !important;
    }
    body.theme-sian3-lp .lp-constellation.is-formed,
    body.theme-sian3-lp .lp-constellation.is-settling,
    body.theme-sian3-lp .lp-constellation.is-matching {
      opacity: 1 !important;
      filter: none !important;
      transition: none !important;
    }
    body.theme-sian3-lp .lp-constellation.is-formed .lp-constellation__stars {
      filter: none;
    }
    body.theme-sian3-lp .lp-constellation.is-drawing .lp-constellation__sat-stars {
      opacity: 0 !important;
      visibility: hidden !important;
      pointer-events: none;
    }
    body.theme-sian3-lp .lp-constellation.is-settling .lp-constellation__sat-stars {
      visibility: visible;
      pointer-events: none;
    }
    body.theme-sian3-lp .lp-constellation.is-formed .lp-constellation__sat-stars {
      visibility: visible;
    }
    body.theme-sian3-lp .lp-constellation.is-drawing .lp-field,
    body.theme-sian3-lp .lp-constellation.is-assembling .lp-field,
    body.theme-sian3-lp .lp-constellation.is-drawing .lp-constellation__ambient,
    body.theme-sian3-lp .lp-constellation.is-assembling .lp-constellation__ambient {
      pointer-events: none;
    }
    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,
    body.theme-sian3-lp .lp-constellation.is-assembling .lp-sky-extra,
    body.theme-sian3-lp .lp-constellation.is-assembling .lp-sky-extra::before,
    body.theme-sian3-lp .lp-constellation.is-assembling .lp-sky-extra::after,
    body.theme-sian3-lp .lp-constellation.is-assembling .lp-amb-star {
      pointer-events: none;
    }
    body.theme-sian3-lp .lp-constellation.is-settling .lp-sky-extra,
    body.theme-sian3-lp .lp-constellation.is-settling .lp-sky-extra::before,
    body.theme-sian3-lp .lp-constellation.is-settling .lp-sky-extra::after,
    body.theme-sian3-lp .lp-constellation.is-settling .lp-amb-star {
      pointer-events: none;
    }
    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,
    body.theme-sian3-lp .lp-constellation.is-settling .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 {
      display: none !important;
    }
    /* 오누이 — 행성 위 오빠 왼쪽 책 더미 */
    body.theme-sian3-lp .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;
      transform: rotate(-3deg);
      transform-origin: 50% 92%;
      filter: drop-shadow(0 8px 14px rgba(0, 0, 0, 0.38));
    }
    body.theme-sian3-lp .lp-book img {
      width: 100%;
      height: auto;
      display: block;
      opacity: 1;
      filter: none;
    }
    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: var(--lp-prince-w, 84%);
      right: var(--lp-prince-right, 9%);
      bottom: var(--lp-prince-bottom, -4%);
      pointer-events: none;
      overflow: hidden;
    }
    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 {
      /* 오누이_최종.webm 624×624 (alpha) — 오누이 슬롯 */
      aspect-ratio: 1 / 1;
      overflow: hidden;
      animation: none;
      isolation: isolate;
      background: transparent;
    }
    body.theme-sian3-lp .lp-prince__gif-canvas {
      display: none !important;
    }
    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); }
    }
    /* ══════════════════════════════════════════════
       LP 반응형 — scene/planet 토큰 + prince/book 슬롯 변수
       phone ≤640 · tablet ≤900 · iPad portrait ≤1180
       notebook 1024–1279 · laptop 1280–1439 · desktop 1440–1799
       wide 1800+
       ══════════════════════════════════════════════ */

    /* ── Notebook 1024–1279 ── */
    @media (min-width: 1024px) and (max-width: 1279px) {
      body.theme-sian3-lp {
        --lp-const-size: clamp(330px, min(40vw, 50vh), 560px);
        --lp-const-right: clamp(9%, 13vw, 19%);
        --lp-planet-w: min(72vw, 920px);
        --lp-planet-bottom: -6.45%;
        --lp-scene-w: clamp(340px, min(34vw, 46vh), 400px);
        --lp-scene-right: clamp(6%, 8vw, 11%);
        --lp-scene-bottom: 2.05%;
        --lp-prince-w: 84%;
        --lp-prince-right: 10%;
        --lp-prince-bottom: -3.75%;
        --lp-book-w: 27.5%;
        --lp-book-left: -8%;
        --lp-book-bottom: 6%;
      }
      body.theme-sian3-lp.theme-sian3-en .s3-hero__stack {
        margin-top: clamp(8px, 2vh, 28px) !important;
        max-width: min(480px, 43%) !important;
      }
      body.theme-sian3-lp.theme-sian3-en .s3-flip__item {
        font-size: clamp(2.45rem, min(5.4vw, 7.4vh), 4rem);
      }
    }

    /* ── Laptop 1280–1439 ── */
    @media (min-width: 1280px) and (max-width: 1439px) {
      body.theme-sian3-lp {
        --lp-const-size: clamp(350px, min(41vw, 52vh), 580px);
        --lp-const-right: clamp(10%, 14vw, 20%);
        --lp-planet-w: min(70vw, 940px);
        --lp-planet-bottom: -6.55%;
        --lp-scene-w: clamp(360px, min(32vw, 48vh), 420px);
        --lp-scene-right: clamp(6.5%, 8.5vw, 11%);
        --lp-scene-bottom: 2.05%;
        --lp-prince-w: 83.5%;
        --lp-prince-right: 10.5%;
        --lp-prince-bottom: -3.6%;
        --lp-book-w: 27%;
        --lp-book-left: -8.5%;
        --lp-book-bottom: 6.1%;
      }
      body.theme-sian3-lp.theme-sian3-en .s3-hero__stack {
        margin-top: clamp(8px, 2vh, 28px) !important;
        max-width: min(500px, 44%) !important;
      }
      body.theme-sian3-lp.theme-sian3-en .s3-flip__item {
        font-size: clamp(2.55rem, min(5.6vw, 7.8vh), 4.2rem);
      }
    }

    /* ── Desktop 1440–1799 ── */
    @media (min-width: 1440px) and (max-width: 1799px) {
      body.theme-sian3-lp {
        --lp-const-size: clamp(360px, min(42vw, 52vh), 590px);
        --lp-const-right: clamp(11%, 15vw, 21%);
        --lp-planet-w: min(68vw, 960px);
        --lp-planet-bottom: -6.65%;
        --lp-scene-w: clamp(380px, min(28vw, 50vh), 440px);
        --lp-scene-right: clamp(6.5%, 8.5vw, 10.5%);
        --lp-scene-bottom: 2.05%;
        --lp-prince-w: 83%;
        --lp-prince-right: 11%;
        --lp-prince-bottom: -3.5%;
        --lp-book-w: 26.5%;
        --lp-book-left: -9%;
        --lp-book-bottom: 6.2%;
      }
    }

    @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 desktop — 1440–1799: 접지 유지 (겹침·공중부양 방지) */
    @media (min-width: 1440px) and (max-width: 1799px) and (min-height: 900px) {
      body.theme-sian3-lp {
        --lp-planet-bottom: -6.35%;
        --lp-scene-bottom: 1.95%;
        --lp-prince-bottom: -3.25%;
        --lp-book-bottom: 6.35%;
      }
    }
    @media (min-width: 1440px) and (max-width: 1799px) and (min-height: 1200px) {
      body.theme-sian3-lp {
        --lp-planet-bottom: -6.05%;
        --lp-scene-bottom: 1.75%;
        --lp-prince-bottom: -3%;
        --lp-book-bottom: 6.5%;
      }
    }
    @media (min-width: 1440px) and (max-width: 1799px) and (min-height: 1400px) {
      body.theme-sian3-lp {
        --lp-planet-bottom: -5.8%;
        --lp-scene-bottom: 1.6%;
        --lp-prince-bottom: -2.75%;
        --lp-book-bottom: 6.65%;
      }
    }
    @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%;
      }
    }

    /* 매우 큰 와이드+높이 — 행성면 상향 · 책·인물 접지 (1800+ 전용) */
    @media (min-width: 1800px) and (min-height: 900px) {
      body.theme-sian3-lp {
        --lp-planet-bottom: -5%;
        --lp-scene-bottom: 1.45%;
      }
      body.theme-sian3-lp .lp-prince--video {
        bottom: -5.5%;
      }
      body.theme-sian3-lp .lp-book {
        bottom: 5%;
      }
    }
    @media (min-width: 2200px) and (min-height: 1000px) {
      body.theme-sian3-lp {
        --lp-planet-bottom: -4%;
        --lp-scene-bottom: 1.65%;
      }
      body.theme-sian3-lp .lp-prince--video {
        bottom: -6%;
      }
      body.theme-sian3-lp .lp-book {
        bottom: 4.5%;
      }
    }
    @media (min-width: 2800px) and (min-height: 1100px) {
      body.theme-sian3-lp {
        --lp-planet-bottom: -3.2%;
        --lp-scene-bottom: 1.85%;
      }
      body.theme-sian3-lp .lp-prince--video {
        bottom: -6.5%;
      }
      body.theme-sian3-lp .lp-book {
        bottom: 4%;
      }
    }

    body.theme-sian3-lp.theme-sian3-en .s3-hero__stack {
      max-width: min(560px, 46%) !important;
    }

    /* ── iPad landscape (901–1023): 태블릿 구도 ── */
    @media (min-width: 901px) and (max-width: 1023px) and (orientation: landscape) {
      body.theme-sian3-lp {
        --lp-const-size: clamp(260px, min(36vw, 44vh), 400px);
        --lp-const-right: clamp(7%, 10vw, 15%);
        --lp-const-top: 34%;
        --lp-planet-w: min(58vw, 640px);
        --lp-planet-bottom: -6.2%;
        --lp-planet-right: -2%;
        --lp-scene-w: min(22vw, 250px);
        --lp-scene-right: clamp(6.5%, 8vw, 10.5%);
        --lp-scene-bottom: 2.3%;
      }
      body.theme-sian3-lp.theme-sian3-en .s3-hero__stack {
        margin-top: clamp(8px, 2vh, 28px) !important;
        max-width: min(420px, 40%) !important;
      }
      body.theme-sian3-lp.theme-sian3-en .s3-flip__item {
        font-size: clamp(2.15rem, min(5.2vw, 7vh), 3.4rem);
      }
      body.theme-sian3-lp.theme-sian3-en .s3-hero__lead {
        font-size: clamp(0.84rem, 1.1vw, 0.96rem);
        max-width: 19em;
      }
    }
    /* ── Small PC 짧은 높이 (1024–1439) ── */
    @media (max-height: 760px) and (min-width: 1024px) and (max-width: 1439px) and (orientation: landscape) {
      body.theme-sian3-lp {
        --lp-const-size: clamp(310px, min(38vw, 48vh), 520px);
        --lp-const-top: 33%;
        --lp-planet-w: min(68vw, min(80vh, 900px));
        --lp-planet-bottom: -6.1%;
        --lp-scene-w: clamp(320px, min(31vw, 44vh), 385px);
        --lp-scene-bottom: 1.85%;
        --lp-prince-w: 84%;
        --lp-prince-right: 10%;
        --lp-prince-bottom: -3.25%;
        --lp-book-w: 27%;
        --lp-book-left: -8.5%;
        --lp-book-bottom: 6.15%;
      }
      body.theme-sian3-lp.theme-sian3-en .s3-hero__stack {
        margin-top: clamp(4px, 1.2vh, 16px) !important;
      }
      body.theme-sian3-lp.theme-sian3-en .s3-flip__item {
        font-size: clamp(2.2rem, min(5vw, 6.8vh), 3.5rem);
      }
      body.theme-sian3-lp.theme-sian3-en .s3-hero__lead {
        margin-top: clamp(8px, 1.4vh, 14px) !important;
      }
      body.theme-sian3-lp.theme-sian3-en .s3-hero__actions {
        margin-top: clamp(10px, 1.6vh, 16px) !important;
      }
    }
    /* ── 짧은 화면: 태블릿 (901–1023) ── */
    @media (max-height: 760px) and (min-width: 901px) and (max-width: 1023px) {
      body.theme-sian3-lp {
        --lp-const-size: clamp(240px, min(32vw, 42vh), 400px);
        --lp-const-top: 31%;
        --lp-planet-w: min(56vw, 68vh, 600px);
        --lp-planet-bottom: -5.2%;
        --lp-scene-w: min(20vw, 32vh, 250px);
        --lp-scene-bottom: 2.6%;
      }
      body.theme-sian3-lp.theme-sian3-en .s3-hero__stack {
        margin-top: clamp(4px, 1.2vh, 16px) !important;
      }
      body.theme-sian3-lp.theme-sian3-en .s3-flip__item {
        font-size: clamp(2.05rem, min(4.8vw, 6.4vh), 3.2rem);
      }
      body.theme-sian3-lp.theme-sian3-en .s3-hero__lead {
        margin-top: clamp(8px, 1.4vh, 14px) !important;
      }
      body.theme-sian3-lp.theme-sian3-en .s3-hero__actions {
        margin-top: clamp(10px, 1.6vh, 16px) !important;
      }
    }
    /* ── Shared compact visual: tablet + iPad portrait ── */
    @media (max-width: 900px),
           (max-width: 1180px) and (orientation: portrait) {
      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: var(--lp-const-right, 3%);
        left: auto;
        top: auto;
        bottom: var(--lp-const-bottom, 28%);
        transform: none;
        width: var(--lp-const-size);
        height: var(--lp-const-size);
        opacity: 0.92;
      }
      body.theme-sian3-lp .lp-planet {
        right: var(--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: var(--lp-scene-right, 5%);
        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: var(--lp-prince-w, 86%);
        right: var(--lp-prince-right, 8%);
        bottom: var(--lp-prince-bottom, -4.5%);
      }
      body.theme-sian3-lp .lp-book {
        left: var(--lp-book-left, -5%);
        bottom: var(--lp-book-bottom, 4%);
        width: var(--lp-book-w, 28%);
      }
      body.theme-sian3-lp .lp-rose {
        left: -3.5%;
        bottom: 9%;
        width: 14.2%;
      }
    }

    /* Tablet 641–900 */
    @media (max-width: 900px) {
      body.theme-sian3-lp {
        --lp-const-size: clamp(228px, min(50vw, 36vh), 320px);
        --lp-const-right: 2%;
        --lp-const-bottom: 28%;
        --lp-scene-w: clamp(210px, min(40vw, 30vh), 292px);
        --lp-scene-right: clamp(4%, 6vw, 9%);
        --lp-planet-w: min(88vw, 58vh, 540px);
        --lp-planet-right: -4%;
        --lp-planet-bottom: -1%;
        --lp-scene-bottom: 1.6%;
        --lp-prince-w: 84%;
        --lp-prince-right: 10%;
        --lp-prince-bottom: -4%;
        --lp-book-w: 26.5%;
        --lp-book-left: -8%;
        --lp-book-bottom: 5.5%;
      }
    }
    /* Tablet 768 전후 (700–900) — 오누이·책 대형 · 겹침 방지 */
    @media (min-width: 700px) and (max-width: 900px) {
      body.theme-sian3-lp {
        --lp-const-size: clamp(252px, min(46vw, 38vh), 348px);
        --lp-const-right: 3%;
        --lp-const-bottom: 27%;
        --lp-scene-w: clamp(285px, min(48vw, 42vh), 385px);
        --lp-scene-right: 5%;
        --lp-planet-w: min(92vw, 66vh, 660px);
        --lp-planet-bottom: -1.05%;
        --lp-scene-bottom: 1.35%;
        --lp-prince-w: 85%;
        --lp-prince-right: 10%;
        --lp-prince-bottom: -3.5%;
        --lp-book-w: 25.5%;
        --lp-book-left: -9%;
        --lp-book-bottom: 5.85%;
      }
      body.theme-sian3-lp.theme-sian3-en .s3-hero__stack {
        margin-top: clamp(88px, 14vh, 160px) !important;
        max-width: min(460px, 54%) !important;
      }
    }
    /* iPad Pro 세로 (1024×1366 등) — 태블릿 구도 */
    @media (min-width: 901px) and (max-width: 1180px) and (orientation: portrait) {
      body.theme-sian3-lp {
        --lp-const-size: clamp(260px, min(42vw, 32vh), 380px);
        --lp-const-right: 3%;
        --lp-const-bottom: 29%;
        --lp-scene-w: clamp(228px, min(34vw, 26vh), 300px);
        --lp-scene-right: 7%;
        --lp-planet-w: min(84vw, 50vh, 600px);
        --lp-planet-right: -3%;
        --lp-planet-bottom: -0.8%;
        --lp-scene-bottom: 1.9%;
      }
      body.theme-sian3-lp.theme-sian3-en .s3-hero__stack {
        margin-top: clamp(96px, 11vh, 168px) !important;
        max-width: min(480px, 52%) !important;
      }
    }
    @media (max-width: 900px) and (min-height: 900px) {
      body.theme-sian3-lp {
        --lp-planet-bottom: -0.5%;
        --lp-scene-bottom: 1.75%;
        --lp-planet-w: min(92vw, 66vh, 660px);
        --lp-scene-w: clamp(285px, min(48vw, 42vh), 385px);
        --lp-const-size: clamp(240px, min(48vw, 34vh), 348px);
        --lp-const-bottom: 30%;
        --lp-prince-w: 83.5%;
        --lp-prince-right: 10.5%;
        --lp-prince-bottom: -3.75%;
        --lp-book-w: 26%;
        --lp-book-left: -8.5%;
        --lp-book-bottom: 5.85%;
      }
    }
    @media (max-width: 900px) and (min-height: 1100px) {
      body.theme-sian3-lp {
        --lp-planet-bottom: 0%;
        --lp-scene-bottom: 1.95%;
        --lp-planet-w: min(90vw, 52vh, 580px);
        --lp-scene-w: clamp(280px, min(46vw, 40vh), 378px);
        --lp-const-size: clamp(248px, min(46vw, 32vh), 356px);
        --lp-const-bottom: 32%;
        --lp-prince-w: 83%;
        --lp-prince-right: 11%;
        --lp-prince-bottom: -3.6%;
        --lp-book-w: 25.5%;
        --lp-book-left: -9%;
        --lp-book-bottom: 6%;
      }
    }

    /* ── Phone ≤640 ── */
    @media (max-width: 640px) {
      body.theme-sian3-lp {
        --lp-const-size: clamp(152px, min(42vw, 22vh), 204px);
        --lp-const-right: 3%;
        --lp-const-bottom: 29%;
        --lp-scene-w: clamp(162px, min(52vw, 26vh), 228px);
        --lp-scene-right: 4%;
        --lp-planet-w: min(98vw, 46vh, 400px);
        --lp-planet-right: -16%;
        --lp-planet-bottom: -0.5%;
        --lp-scene-bottom: 1.7%;
      }
      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 .s3-hero__scroll {
        display: none;
      }
      body.theme-sian3-lp .lp-prince--video {
        width: 88%;
        right: 7%;
        bottom: -5.5%;
      }
      body.theme-sian3-lp .lp-book {
        left: -4%;
        bottom: 3.5%;
        width: 27%;
      }
    }
    @media (max-width: 640px) and (min-height: 780px) {
      body.theme-sian3-lp {
        --lp-planet-bottom: -0.2%;
        --lp-scene-bottom: 1.95%;
        --lp-planet-w: min(100vw, 48vh, 420px);
        --lp-scene-w: clamp(168px, min(50vw, 26vh), 220px);
        --lp-const-size: clamp(160px, min(40vw, 22vh), 212px);
        --lp-const-right: 3%;
        --lp-const-bottom: 31%;
      }
    }
    @media (max-width: 640px) and (min-height: 900px) {
      body.theme-sian3-lp {
        --lp-planet-bottom: 0.2%;
        --lp-scene-bottom: 2.15%;
        --lp-planet-w: min(102vw, 46vh, 440px);
        --lp-scene-w: clamp(164px, min(48vw, 24vh), 214px);
        --lp-const-size: clamp(164px, min(38vw, 20vh), 216px);
        --lp-const-right: 2%;
        --lp-const-bottom: 33%;
      }
    }
    @media (max-width: 640px) and (max-height: 720px) {
      body.theme-sian3-lp {
        --lp-const-size: clamp(142px, min(40vw, 20vh), 188px);
        --lp-const-right: 3%;
        --lp-const-bottom: 27%;
        --lp-scene-w: clamp(154px, min(50vw, 26vh), 208px);
        --lp-scene-bottom: 1.45%;
        --lp-planet-bottom: -1.2%;
      }
      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-prince--video {
        bottom: -5%;
      }
      body.theme-sian3-lp .lp-book {
        bottom: 3.5%;
      }
    }
    @media (max-width: 380px) {
      body.theme-sian3-lp {
        --lp-const-size: clamp(136px, 48vw, 184px);
        --lp-const-right: 2%;
        --lp-const-bottom: 28%;
        --lp-scene-w: clamp(148px, 54vw, 196px);
        --lp-scene-right: 3%;
        --lp-planet-right: -20%;
        --lp-planet-bottom: -0.8%;
        --lp-scene-bottom: 1.55%;
      }
      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;
      }
    }

    @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: -92%;
    }
    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.82); transform: scale(0.96); }
      50% { opacity: calc(var(--o, 0.3) * 1.1); transform: scale(1.05); }
    }
    /* 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(210, 230, 255, 0.38); stroke-width: 0.95;
      stroke-linecap: round; stroke-dasharray: none; stroke-dashoffset: 0;
      vector-effect: non-scaling-stroke;
      filter: drop-shadow(0 0 0.8px rgba(160, 200, 255, 0.12));
    }
    body.theme-sian3-lp .dc-link-glow {
      fill: none; stroke: rgba(195, 220, 255, 0.22); stroke-width: 1.7;
      stroke-linecap: round; vector-effect: non-scaling-stroke;
    }
    body.theme-sian3-lp .dc-link--logo {
      fill: none; stroke: rgba(220, 235, 255, 0.4); stroke-width: 1.02;
      stroke-linecap: round; stroke-dasharray: none; stroke-dashoffset: 0;
      vector-effect: non-scaling-stroke;
      filter: drop-shadow(0 0 0.7px rgba(170, 205, 255, 0.12));
    }
    body.theme-sian3-lp .dc-link--frame {
      fill: none; stroke: rgba(205, 225, 255, 0.34); stroke-width: 0.88;
      stroke-linecap: round; stroke-dasharray: none; stroke-dashoffset: 0;
      vector-effect: non-scaling-stroke;
      filter: drop-shadow(0 0 0.7px rgba(160, 200, 255, 0.1));
    }
    /* 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-formed .lp-constellation__links path,
    body.theme-sian3-lp .lp-constellation.is-settling .lp-constellation__links path,
    body.theme-sian3-lp .lp-constellation.is-matching .lp-constellation__links path {
      transition: none !important;
    }
    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: none !important;
    }
    body.theme-sian3-lp .lp-constellation.is-settling .lp-constellation__links {
      opacity: 0.96;
    }
    body.theme-sian3-lp .lp-constellation.is-settling .dc-link--logo {
      stroke: rgba(236, 247, 255, 0.76);
      stroke-width: 0.86;
      filter: none;
    }
    body.theme-sian3-lp .lp-constellation.is-settling .dc-link--frame {
      stroke: rgba(238, 248, 255, 0.74);
      stroke-width: 0.94;
      stroke-linecap: round;
      stroke-linejoin: round;
      filter: none;
    }
    body.theme-sian3-lp .lp-constellation.is-settling .dc-arc-smooth {
      stroke: rgba(240, 249, 255, 0.76);
      stroke-width: 0.98;
      stroke-linecap: round;
      filter: none;
    }
    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;
    }
    /* 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(230, 242, 255, 0.72);
      stroke-width: 1.12;
      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(220, 236, 255, 0.68);
      stroke-width: 1.05;
      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;
    }
    /* Formed: fine pale lines behind bright stars */
    body.theme-sian3-lp .lp-constellation.is-formed .lp-constellation__links,
    body.theme-sian3-lp .lp-constellation.is-matching .lp-constellation__links {
      opacity: 0.94;
    }
    body.theme-sian3-lp .lp-constellation.is-formed .dc-link--logo,
    body.theme-sian3-lp .lp-constellation.is-matching .dc-link--logo {
      stroke: rgba(228, 242, 255, 0.62);
      stroke-width: 0.82;
      filter: drop-shadow(0 0 0.75px rgba(175, 212, 255, 0.08));
    }
    body.theme-sian3-lp .lp-constellation.is-formed .dc-link--frame,
    body.theme-sian3-lp .lp-constellation.is-matching .dc-link--frame {
      stroke: rgba(232, 244, 255, 0.68);
      stroke-width: 0.92;
      stroke-linecap: round;
      stroke-linejoin: round;
      filter: none;
    }
    body.theme-sian3-lp .lp-constellation.is-formed .dc-arc-smooth,
    body.theme-sian3-lp .lp-constellation.is-matching .dc-arc-smooth {
      stroke: rgba(236, 246, 255, 0.7);
      stroke-width: 0.96;
      stroke-linecap: round;
      filter: none;
    }
    /* Formed complete — node lines slightly crisper than settling */
    body.theme-sian3-lp .lp-constellation.is-formed .lp-constellation__links,
    body.theme-sian3-lp .lp-constellation.is-matching .lp-constellation__links {
      opacity: 0.98;
    }
    body.theme-sian3-lp .lp-constellation.is-formed .dc-link--logo,
    body.theme-sian3-lp .lp-constellation.is-matching .dc-link--logo {
      stroke: rgba(236, 247, 255, 0.76);
      stroke-width: 0.86;
      filter: none;
    }
    body.theme-sian3-lp .lp-constellation.is-formed .dc-link--frame,
    body.theme-sian3-lp .lp-constellation.is-matching .dc-link--frame {
      stroke: rgba(240, 249, 255, 0.8);
      stroke-width: 0.96;
    }
    body.theme-sian3-lp .lp-constellation.is-formed .dc-arc-smooth,
    body.theme-sian3-lp .lp-constellation.is-matching .dc-arc-smooth {
      stroke: rgba(242, 250, 255, 0.82);
      stroke-width: 1;
    }
    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: 1;
      --bloom-o: 1;
      --ray-o: 0;
      --star-scale: 1;
      --sz-gain: 1.07;
      --mag-var: 1;
      --bloom-mul: 1;
      --formed-gain: 1;
      --sz: calc(var(--s, 1) * var(--star-scale) * var(--sz-gain, 1) * var(--mag-var, 1) * var(--formed-gain, 1));
      --u: calc(var(--lp-const-size) * 0.0175);
      /* Solid warm point + short whisker rays (not diamond) */
      --star-core: max(1.15px, calc(var(--u) * 0.18 * var(--sz, 1)));
      --star-bloom: calc(var(--u) * 5.2 * var(--sz, 1));
      --star-ray: calc(var(--u) * 2.2 * var(--sz, 1));
      --star-ray-w: max(0.8px, calc(var(--u) * 0.12 * var(--sz, 1)));
      --star-sprite: url("/lp/korea-map-v21/images/lp/star-soft.svg?v=hq377");
      position: absolute; left: var(--x); top: var(--y); width: 0; height: 0;
      transform-origin: 50% 50%;
      backface-visibility: hidden;
    }
    body.theme-sian3-lp .lp-constellation.is-forming .dc-star,
    body.theme-sian3-lp .lp-constellation.is-assembling .dc-star,
    body.theme-sian3-lp .lp-constellation.is-drawing .dc-star {
      will-change: transform;
    }
    body.theme-sian3-lp .lp-constellation.is-formed .dc-star {
      will-change: auto;
      --formed-gain: 1.17;
    }
    body.theme-sian3-lp .lp-constellation.is-matching .dc-star:not(.is-spent):not(.is-charging) {
      --formed-gain: 1.17;
    }
    @media (max-width: 900px) {
      body.theme-sian3-lp .dc-star {
        --u: calc(var(--lp-const-size) * 0.018);
      }
      body.theme-sian3-lp .lp-constellation__sat-stars {
        --u: calc(var(--lp-const-size) * 0.01);
      }
    }
    @media (max-width: 640px) {
      body.theme-sian3-lp .dc-star {
        --u: calc(var(--lp-const-size) * 0.0205);
      }
      body.theme-sian3-lp .lp-constellation__sat-stars {
        --u: calc(var(--lp-const-size) * 0.012);
      }
    }
    body.theme-sian3-lp .lp-constellation.is-drawing .dc-star {
      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;
    }
    /* Magnitude hierarchy — denser after form; glow-point stars, not diamonds */
    body.theme-sian3-lp .dc-star--mid {
      --star-scale: 1.08;
      --star-core: max(1px, calc(var(--u) * 0.15 * var(--sz, 1)));
      --star-bloom: calc(var(--u) * 5.4 * var(--sz, 1));
      --bloom-o: 1;
      --star-o: 1;
      --star-sprite: url("/lp/korea-map-v21/images/lp/star-mid.svg?v=hq377");
    }
    body.theme-sian3-lp .dc-star--minor {
      --star-scale: 1.14;
      --star-core: max(0.9px, calc(var(--u) * 0.13 * var(--sz, 1)));
      --star-bloom: calc(var(--u) * 5.9 * var(--sz, 1));
      --star-o: 1;
      --bloom-o: 1;
      --star-sprite: url("/lp/korea-map-v21/images/lp/star-glint.svg?v=hq377");
    }
    body.theme-sian3-lp .dc-star--dust {
      --star-core: max(0.7px, calc(var(--u) * 0.09 * var(--sz, 1)));
      --star-bloom: calc(var(--u) * 3.8 * var(--sz, 1));
      --star-o: 0.6;
      --bloom-o: 0.7;
      --star-sprite: url("/lp/korea-map-v21/images/lp/star-point.svg?v=hq377");
    }
    body.theme-sian3-lp .dc-star--dust .dc-star__core {
      opacity: 0.2;
      box-shadow: none;
    }
    /* Bridges: look-* overrides; base bloom larger than before */
    body.theme-sian3-lp .dc-star[data-node^="br"] {
      --star-core: max(0.85px, calc(var(--u) * 0.12 * var(--sz, 1)));
      --star-bloom: calc(var(--u) * 5.9 * var(--sz, 1));
      --bloom-o: 1;
      --star-o: 1;
      --star-sprite: url("/lp/korea-map-v21/images/lp/star-mid.svg?v=hq377");
    }
    body.theme-sian3-lp .dc-star--major {
      --star-core: max(1.15px, calc(var(--u) * 0.17 * var(--sz, 1)));
      --star-bloom: calc(var(--u) * 6.0 * var(--sz, 1));
      --bloom-o: 1;
      --star-o: 1;
      --star-sprite: url("/lp/korea-map-v21/images/lp/star-major.svg?v=hq377");
    }

    /* Look variants hq231 — distinct silhouettes, not rotations */
    body.theme-sian3-lp .dc-star--look-glint,
    body.theme-sian3-lp .dc-star[data-node^="br"].dc-star--look-glint {
      --star-sprite: url("/lp/korea-map-v21/images/lp/star-glint.svg?v=hq377");
      --star-bloom: calc(var(--u) * 6.2 * var(--sz, 1));
      --star-core: max(0.95px, calc(var(--u) * 0.14 * var(--sz, 1)));
      --bloom-o: 1;
      --star-o: 1;
    }
    body.theme-sian3-lp .dc-star--look-whisk,
    body.theme-sian3-lp .dc-star[data-node^="br"].dc-star--look-whisk {
      --star-sprite: url("/lp/korea-map-v21/images/lp/star-whisk.svg?v=hq377");
      --star-bloom: calc(var(--u) * 5.1 * var(--sz, 1));
      --star-core: max(0.9px, calc(var(--u) * 0.13 * var(--sz, 1)));
      --bloom-o: 0.98;
      --star-o: 0.99;
    }
    body.theme-sian3-lp .dc-star--look-mid,
    body.theme-sian3-lp .dc-star[data-node^="br"].dc-star--look-mid {
      --star-sprite: url("/lp/korea-map-v21/images/lp/star-mid.svg?v=hq377");
      --star-bloom: calc(var(--u) * 5.2 * var(--sz, 1));
      --star-core: max(0.9px, calc(var(--u) * 0.13 * var(--sz, 1)));
      --bloom-o: 0.98;
      --star-o: 0.99;
    }
    body.theme-sian3-lp .dc-star--look-soft,
    body.theme-sian3-lp .dc-star[data-node^="br"].dc-star--look-soft {
      --star-sprite: url("/lp/korea-map-v21/images/lp/star-soft.svg?v=hq377");
      --star-bloom: calc(var(--u) * 4.6 * var(--sz, 1));
      --star-core: max(0.85px, calc(var(--u) * 0.12 * var(--sz, 1)));
      --bloom-o: 0.97;
      --star-o: 0.98;
    }
    body.theme-sian3-lp .dc-star--look-halo,
    body.theme-sian3-lp .dc-star[data-node^="br"].dc-star--look-halo {
      --star-sprite: url("/lp/korea-map-v21/images/lp/star-halo.svg?v=hq377");
      --star-bloom: calc(var(--u) * 5.3 * var(--sz, 1));
      --star-core: max(0.7px, calc(var(--u) * 0.1 * var(--sz, 1)));
      --bloom-o: 0.96;
      --star-o: 0.97;
    }
    body.theme-sian3-lp .dc-star--look-point,
    body.theme-sian3-lp .dc-star[data-node^="br"].dc-star--look-point {
      --star-sprite: url("/lp/korea-map-v21/images/lp/star-point.svg?v=hq377");
      --star-bloom: calc(var(--u) * 4.2 * var(--sz, 1));
      --star-core: max(0.7px, calc(var(--u) * 0.1 * var(--sz, 1)));
      --bloom-o: 0.95;
      --star-o: 0.96;
    }
    
    body.theme-sian3-lp .dc-star--major.dc-star--look-glint {
      --star-sprite: url("/lp/korea-map-v21/images/lp/star-glint.svg?v=hq377");
      --star-bloom: calc(var(--u) * 5.4 * var(--sz, 1));
      --star-core: max(1.1px, calc(var(--u) * 0.17 * var(--sz, 1)));
    }
    body.theme-sian3-lp .dc-star--mid.dc-star--look-glint,
    body.theme-sian3-lp .dc-star--mid.dc-star--look-whisk {
      --star-bloom: calc(var(--u) * 5.4 * var(--sz, 1));
    }
    body.theme-sian3-lp .dc-star--major .dc-star__core {
      opacity: 0 !important;
      box-shadow: none !important;
    }
    body.theme-sian3-lp .dc-star--mid .dc-star__core {
      opacity: 0 !important;
    }



    /* Formed: crisp luminous points — twinkle is subtle brightness-led */
    body.theme-sian3-lp .lp-constellation.is-formed .dc-star {
      --star-o: 1;
      --bloom-o: 1;
      --ray-o: 0;
      filter: none;
      opacity: 1 !important;
    }
    body.theme-sian3-lp .lp-constellation.is-settling .dc-star,
    body.theme-sian3-lp .lp-constellation.is-matching .dc-star:not(.is-spent):not(.is-charging) {
      opacity: 1 !important;
      --star-o: 1;
      --bloom-o: 1;
      --ray-o: 0;
      filter: none;
    }
    body.theme-sian3-lp .lp-constellation.is-formed .dc-star.is-live,
    body.theme-sian3-lp .lp-constellation.is-settling .dc-star.is-live {
      /* GSAP owns live shimmer on bloom */
    }
    body.theme-sian3-lp .lp-constellation.is-formed .dc-star__rays {
      opacity: 0 !important;
      visibility: hidden !important;
    }
    body.theme-sian3-lp .lp-constellation.is-formed .dc-star--major,
    body.theme-sian3-lp .lp-constellation.is-settling .dc-star--major {
      --star-bloom: calc(var(--u) * 6.48 * var(--sz, 1) * var(--bloom-mul, 1));
    }
    body.theme-sian3-lp .lp-constellation.is-formed .dc-star--mid,
    body.theme-sian3-lp .lp-constellation.is-settling .dc-star--mid {
      --star-scale: 1.15;
      --star-bloom: calc(var(--u) * 6.40 * var(--sz, 1) * var(--bloom-mul, 1));
      --bloom-o: 1;
      --star-o: 1;
    }
    body.theme-sian3-lp .lp-constellation.is-formed .dc-star--minor,
    body.theme-sian3-lp .lp-constellation.is-settling .dc-star--minor {
      --star-scale: 1.31;
      --star-bloom: calc(var(--u) * 7.38 * var(--sz, 1) * var(--bloom-mul, 1));
      --bloom-o: 1;
      --star-o: 1;
    }
    body.theme-sian3-lp .lp-constellation.is-formed .dc-star[data-node^="br"],
    body.theme-sian3-lp .lp-constellation.is-settling .dc-star[data-node^="br"] {
      --star-bloom: calc(var(--u) * 7.32 * var(--sz, 1) * var(--bloom-mul, 1));
      --bloom-o: 1;
      --star-o: 1;
      filter: none;
      opacity: 1 !important;
    }
    /* Arc-curve node stars — slightly larger for readability on the smooth arc */
    body.theme-sian3-lp .dc-star[data-node^="A"] {
      --star-scale: 1.1;
      --bloom-mul: 1.12;
    }
    body.theme-sian3-lp .lp-constellation.is-assembling .dc-star[data-node^="A"],
    body.theme-sian3-lp .lp-constellation.is-drawing .dc-star[data-node^="A"],
    body.theme-sian3-lp .lp-constellation.is-formed .dc-star[data-node^="A"],
    body.theme-sian3-lp .lp-constellation.is-settling .dc-star[data-node^="A"],
    body.theme-sian3-lp .lp-constellation.is-matching .dc-star[data-node^="A"] {
      --star-bloom: calc(var(--u) * 7.05 * var(--sz, 1) * var(--bloom-mul, 1));
      --bloom-o: 1;
      --star-o: 1;
    }

    /* Morph / drawing — same bloom hierarchy as formed (only --bloom-mul ramps at formed label) */
    body.theme-sian3-lp .lp-constellation.is-assembling .dc-star--major,
    body.theme-sian3-lp .lp-constellation.is-drawing .dc-star--major {
      --star-bloom: calc(var(--u) * 6.35 * var(--sz, 1) * var(--bloom-mul, 1));
    }
    body.theme-sian3-lp .lp-constellation.is-assembling .dc-star--mid,
    body.theme-sian3-lp .lp-constellation.is-drawing .dc-star--mid {
      --star-scale: 1.12;
      --star-bloom: calc(var(--u) * 6.05 * var(--sz, 1) * var(--bloom-mul, 1));
      --bloom-o: 1;
      --star-o: 1;
    }
    body.theme-sian3-lp .lp-constellation.is-assembling .dc-star--minor,
    body.theme-sian3-lp .lp-constellation.is-drawing .dc-star--minor {
      --star-scale: 1.17;
      --star-bloom: calc(var(--u) * 6.15 * var(--sz, 1) * var(--bloom-mul, 1));
      --bloom-o: 1;
      --star-o: 1;
    }
    body.theme-sian3-lp .lp-constellation.is-assembling .dc-star[data-node^="br"],
    body.theme-sian3-lp .lp-constellation.is-drawing .dc-star[data-node^="br"] {
      --star-bloom: calc(var(--u) * 6.48 * var(--sz, 1) * var(--bloom-mul, 1));
      --bloom-o: 1;
      --star-o: 1;
    }
    body.theme-sian3-lp .lp-constellation.is-assembling .dc-star,
    body.theme-sian3-lp .lp-constellation.is-drawing .dc-star,
    body.theme-sian3-lp .lp-constellation.is-settling .dc-star {
      transform-origin: 50% 50%;
    }
    body.theme-sian3-lp .lp-constellation.is-assembling .dc-star__bloom,
    body.theme-sian3-lp .lp-constellation.is-drawing .dc-star__bloom,
    body.theme-sian3-lp .lp-constellation.is-settling .dc-star:not(.is-formed-twinkle) .dc-star__bloom {
      transition: none !important;
      filter: none !important;
      transform: none !important;
      animation: none !important;
    }
    body.theme-sian3-lp .lp-constellation.is-drawing .dc-star,
    body.theme-sian3-lp .lp-constellation.is-settling .dc-star {
      animation: none !important;
    }
    body.theme-sian3-lp .lp-constellation.is-assembling .dc-star.is-css-twinkle,
    body.theme-sian3-lp .lp-constellation.is-drawing .dc-star.is-css-twinkle,
    body.theme-sian3-lp .lp-constellation.is-assembling .dc-star.is-css-twinkle .dc-star__bloom,
    body.theme-sian3-lp .lp-constellation.is-drawing .dc-star.is-css-twinkle .dc-star__bloom {
      animation: none !important;
    }
    body.theme-sian3-lp .lp-constellation.is-assembling .dc-star--look-soft,
    body.theme-sian3-lp .lp-constellation.is-drawing .dc-star--look-soft,
    body.theme-sian3-lp .lp-constellation.is-assembling .dc-star--look-point,
    body.theme-sian3-lp .lp-constellation.is-drawing .dc-star--look-point,
    body.theme-sian3-lp .lp-constellation.is-assembling .dc-star--look-halo,
    body.theme-sian3-lp .lp-constellation.is-drawing .dc-star--look-halo {
      --star-bloom: calc(var(--u) * 6.35 * var(--sz, 1) * var(--bloom-mul, 1));
      --bloom-o: 1;
    }
    body.theme-sian3-lp .lp-constellation.is-formed .dc-star--look-soft,
    body.theme-sian3-lp .lp-constellation.is-formed .dc-star--look-point,
    body.theme-sian3-lp .lp-constellation.is-formed .dc-star--look-halo,
    body.theme-sian3-lp .lp-constellation.is-settling .dc-star--look-soft,
    body.theme-sian3-lp .lp-constellation.is-settling .dc-star--look-point,
    body.theme-sian3-lp .lp-constellation.is-settling .dc-star--look-halo {
      --star-bloom: calc(var(--u) * 7.38 * var(--sz, 1) * var(--bloom-mul, 1));
      --bloom-o: 1;
    }


    /* Bridge nodes: crisp small stars on the lines (readable, not oversized) */
    body.theme-sian3-lp .dc-star[data-node^="br"] {
      --star-core: max(1px, calc(var(--u) * 0.14 * var(--sz, 1)));
      --star-bloom: calc(var(--u) * 5.6 * var(--sz, 1));
      --bloom-o: 1;
      --star-o: 1;
    }
    body.theme-sian3-lp .dc-star--look-point,
    body.theme-sian3-lp .dc-star[data-node^="br"].dc-star--look-point {
      --star-sprite: url("/lp/korea-map-v21/images/lp/star-point.svg?v=hq377");
      --star-bloom: calc(var(--u) * 4.2 * var(--sz, 1));
      --star-core: max(0.9px, calc(var(--u) * 0.13 * var(--sz, 1)));
      --bloom-o: 0.98;
      --star-o: 0.98;
    }
    body.theme-sian3-lp .dc-star--look-soft,
    body.theme-sian3-lp .dc-star[data-node^="br"].dc-star--look-soft {
      --star-sprite: url("/lp/korea-map-v21/images/lp/star-soft.svg?v=hq377");
      --star-bloom: calc(var(--u) * 4.6 * var(--sz, 1));
      --star-core: max(0.95px, calc(var(--u) * 0.14 * var(--sz, 1)));
      --bloom-o: 0.99;
      --star-o: 0.99;
    }
    body.theme-sian3-lp .dc-star--look-halo,
    body.theme-sian3-lp .dc-star[data-node^="br"].dc-star--look-halo {
      --star-sprite: url("/lp/korea-map-v21/images/lp/star-halo.svg?v=hq377");
      --star-bloom: calc(var(--u) * 5.1 * var(--sz, 1));
      --star-core: max(0.9px, calc(var(--u) * 0.13 * var(--sz, 1)));
      --bloom-o: 0.98;
      --star-o: 0.98;
    }
    body.theme-sian3-lp .dc-star--look-glint,
    body.theme-sian3-lp .dc-star[data-node^="br"].dc-star--look-glint {
      --star-bloom: calc(var(--u) * 5.3 * var(--sz, 1));
    }
    body.theme-sian3-lp .dc-star--look-whisk,
    body.theme-sian3-lp .dc-star[data-node^="br"].dc-star--look-whisk {
      --star-bloom: calc(var(--u) * 5.0 * var(--sz, 1));
    }
    body.theme-sian3-lp .dc-star--look-mid,
    body.theme-sian3-lp .dc-star[data-node^="br"].dc-star--look-mid {
      --star-bloom: calc(var(--u) * 5.1 * var(--sz, 1));
    }
    body.theme-sian3-lp .dc-star--minor {
      --star-bloom: calc(var(--u) * 5.0 * var(--sz, 1));
    }
    body.theme-sian3-lp .dc-star--look-point .dc-star__core,
    body.theme-sian3-lp .dc-star--look-soft .dc-star__core,
    body.theme-sian3-lp .dc-star--look-halo .dc-star__core,
    body.theme-sian3-lp .dc-star--look-whisk .dc-star__core,
    body.theme-sian3-lp .dc-star--major .dc-star__core,
    body.theme-sian3-lp .dc-star--mid .dc-star__core {
      opacity: 0 !important;
      box-shadow: none !important;
    }

    body.theme-sian3-lp .dc-star.is-css-twinkle {
      animation: lpStarCssTwinkle var(--tw-dur, 5.5s) ease-in-out infinite !important;
      animation-delay: var(--tw-delay, 0s) !important;
    }
    body.theme-sian3-lp .dc-star.is-css-twinkle:not(.is-formed-twinkle) .dc-star__bloom {
      transition: none !important;
      animation: none !important;
    }
    body.theme-sian3-lp .dc-star.is-twinkling .dc-star__bloom {
      transition: none !important;
      animation: none !important;
    }
    body.theme-sian3-lp .dc-star__glow {
      display: none !important;
    }
    body.theme-sian3-lp .dc-star__halo {
      display: none !important;
    }
    @keyframes lpBloomSparkle {
      0%, 100% {
        opacity: 1;
        filter: brightness(1) saturate(1.02);
        transform: none;
      }
      50% {
        opacity: 1;
        filter: brightness(1.16) saturate(1.09);
        transform: none;
      }
    }
    @keyframes lpStarCssTwinkle {
      0%, 100% { opacity: 1; }
      45% { opacity: 1; }
      70% { opacity: 1; }
    }
    @keyframes lpStarCssBloom {
      0%, 100% { opacity: 1; transform: none; filter: brightness(1) saturate(1.02); }
      50% { opacity: 1; transform: none; filter: brightness(1.14) saturate(1.08); }
    }
    /* Canonical formed twinkle — lpFormedBloom (hq334 / hq360 profile) */
    @keyframes lpFormedBloom {
      0%, 100% {
        opacity: 0.9;
        transform: scale(0.86);
        filter: brightness(0.78) saturate(0.95);
      }
      35% {
        opacity: 1;
        transform: scale(1.16);
        filter: brightness(1.42) saturate(1.14);
      }
      58% {
        opacity: 0.96;
        transform: scale(1.04);
        filter: brightness(1.12) saturate(1.06);
      }
      78% {
        opacity: 0.92;
        transform: scale(0.9);
        filter: brightness(0.86) saturate(0.98);
      }
    }
    body.theme-sian3-lp .dc-star__facet { display: none !important; }
    body.theme-sian3-lp .lp-light-bridge { display: none !important; }
    /* Sprite bloom + soft core. CSS crosses off — spikes only in major/mid SVGs */
    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: 0;
      border: none;
      outline: none;
      box-shadow: none;
      background: var(--star-sprite) center / contain no-repeat;
      opacity: var(--bloom-o, 1);
      z-index: 0;
      pointer-events: none;
    }
    body.theme-sian3-lp .dc-star.is-live .dc-star__bloom,
    body.theme-sian3-lp .dc-star.is-css-twinkle .dc-star__bloom,
    body.theme-sian3-lp .dc-star.is-twinkling .dc-star__bloom,
    body.theme-sian3-lp .lp-constellation.is-formed .dc-star .dc-star__bloom,
    body.theme-sian3-lp .lp-constellation.is-settling .dc-star .dc-star__bloom {
      transition: none !important;
    }
    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%;
      clip-path: none;
      background: #fff;
      box-shadow: 0 0 calc(var(--u) * 0.22) rgba(210, 230, 255, 0.5);
      opacity: 0 !important;
      z-index: 2;
      pointer-events: none;
    }
    body.theme-sian3-lp .dc-star__rays {
      position: absolute; left: 0; top: 0;
      opacity: 0 !important;
      visibility: hidden;
      pointer-events: none;
      z-index: 1;
    }
    body.theme-sian3-lp .dc-star__ray { position: absolute; left: 0; top: 0; pointer-events: none; }
    body.theme-sian3-lp .dc-star__ray--h,
    body.theme-sian3-lp .dc-star__ray--v,
    body.theme-sian3-lp .dc-star__ray--d1,
    body.theme-sian3-lp .dc-star__ray--d2 {
      width: 0; height: 0; margin: 0; opacity: 0; background: none; box-shadow: none;
    }
    /* 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__core,
    body.theme-sian3-lp .dc-star.is-live .dc-star__rays {
      animation: none !important;
      transition: none !important;
    }
    /* Formed twinkle — GSAP owns bloom (hq334); CSS animation must not fight inline tweens */
    body.theme-sian3-lp .lp-constellation.is-formed .dc-star.is-formed-twinkle.is-live:not(.is-spent) .dc-star__bloom,
    body.theme-sian3-lp .lp-constellation.is-settling .dc-star.is-formed-twinkle.is-live:not(.is-spent) .dc-star__bloom,
    body.theme-sian3-lp .lp-constellation.is-matching .dc-star.is-formed-twinkle.is-live:not(.is-charging):not(.is-spent) .dc-star__bloom {
      animation: none !important;
      transition: none !important;
      visibility: visible !important;
      transform-origin: 50% 50%;
      will-change: opacity, transform, filter;
    }
    /* Local lift off — radial wash reads as haze on formed stars */
    body.theme-sian3-lp .lp-constellation.is-formed .dc-star.is-live:not(.is-spent) .dc-star__bloom::after,
    body.theme-sian3-lp .lp-constellation.is-matching .dc-star.is-live:not(.is-charging):not(.is-spent) .dc-star__bloom::after {
      content: none;
    }
    body.theme-sian3-lp .lp-constellation.is-formed .dc-star.is-formed-twinkle,
    body.theme-sian3-lp .lp-constellation.is-settling .dc-star.is-formed-twinkle,
    body.theme-sian3-lp .lp-constellation.is-matching .dc-star.is-formed-twinkle:not(.is-charging) {
      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__core,
    body.theme-sian3-lp .lp-constellation.is-forming .dc-star.is-scattered .dc-star__rays {
      animation: none !important;
    }
    body.theme-sian3-lp .lp-constellation.is-forming .dc-star.is-scattered:not(.is-css-twinkle) .dc-star__bloom {
      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;
    }

    /* Sky / pre-form — readable but still softer than formed */
    body.theme-sian3-lp .lp-constellation.is-sky .dc-star.is-scattered,
    body.theme-sian3-lp .lp-constellation.is-forming:not(.is-assembling):not(.is-drawing) .dc-star.is-scattered {
      --bloom-o: 0.94;
      --star-o: 0.98;
    }
    body.theme-sian3-lp .lp-constellation.is-sky .dc-star.is-scattered .dc-star__rays {
      opacity: 0 !important;
      visibility: hidden !important;
    }
    body.theme-sian3-lp .lp-constellation.is-sky .dc-star.is-scattered .dc-star__core {
      opacity: 0 !important;
    }
    body.theme-sian3-lp .lp-constellation.is-sky .dc-star.is-scattered .dc-star__bloom,
    body.theme-sian3-lp .lp-constellation.is-forming:not(.is-assembling):not(.is-drawing) .dc-star.is-scattered .dc-star__bloom {
      filter: none;
      opacity: var(--bloom-o, 0.9);
      background: var(--star-sprite) center / contain no-repeat !important;
      box-shadow: none;
    }
    body.theme-sian3-lp .lp-constellation.is-sky .dc-star--major.is-scattered,
    body.theme-sian3-lp .lp-constellation.is-forming .dc-star--major.is-scattered {
      --star-bloom: calc(var(--u) * 6.35 * var(--sz, 1) * var(--bloom-mul, 1));
    }
    body.theme-sian3-lp .lp-constellation.is-sky .dc-star--mid.is-scattered,
    body.theme-sian3-lp .lp-constellation.is-forming .dc-star--mid.is-scattered {
      --star-scale: 1.12;
      --star-bloom: calc(var(--u) * 6.05 * var(--sz, 1) * var(--bloom-mul, 1));
    }
    body.theme-sian3-lp .lp-constellation.is-sky .dc-star--minor.is-scattered,
    body.theme-sian3-lp .lp-constellation.is-forming .dc-star--minor.is-scattered {
      --star-scale: 1.17;
      --star-bloom: calc(var(--u) * 6.15 * var(--sz, 1) * var(--bloom-mul, 1));
    }
    body.theme-sian3-lp .lp-constellation.is-sky .dc-star[data-node^="br"].is-scattered,
    body.theme-sian3-lp .lp-constellation.is-forming .dc-star[data-node^="br"].is-scattered {
      --star-bloom: calc(var(--u) * 6.48 * var(--sz, 1) * var(--bloom-mul, 1));
    }
    body.theme-sian3-lp .lp-constellation.is-sky .dc-star[data-node^="A"].is-scattered,
    body.theme-sian3-lp .lp-constellation.is-forming .dc-star[data-node^="A"].is-scattered {
      --star-scale: 1.1;
      --bloom-mul: 1.12;
      --star-bloom: calc(var(--u) * 6.72 * var(--sz, 1) * var(--bloom-mul, 1));
    }
    body.theme-sian3-lp .lp-constellation.is-drawing .dc-star,
    body.theme-sian3-lp .lp-constellation.is-drawing .dc-star.is-scattered {
      visibility: visible !important;
    }
    body.theme-sian3-lp .lp-constellation.is-settling .dc-star {
      opacity: 1 !important;
    }
    body.theme-sian3-lp .lp-constellation.is-drawing .dc-star .dc-star__bloom {
      visibility: visible !important;
      background: var(--star-sprite) center / contain no-repeat !important;
      box-shadow: none !important;
    }
    body.theme-sian3-lp .lp-constellation.is-settling .dc-star .dc-star__bloom {
      visibility: visible !important;
      background: var(--star-sprite) center / contain no-repeat !important;
      box-shadow: none !important;
    }
    body.theme-sian3-lp .lp-constellation.is-drawing .dc-star .dc-star__core,
    body.theme-sian3-lp .lp-constellation.is-settling .dc-star .dc-star__core {
      opacity: 0 !important;
      visibility: hidden !important;
    }
    body.theme-sian3-lp .lp-constellation.is-drawing .dc-star.is-scattered .dc-star__bloom,
    body.theme-sian3-lp .lp-constellation.is-assembling .dc-star:not(.is-css-twinkle):not(.is-formed-twinkle) .dc-star__bloom {
      filter: none !important;
      box-shadow: none;
    }
    body.theme-sian3-lp .lp-constellation.is-formed .dc-star .dc-star__bloom,
    body.theme-sian3-lp .lp-constellation.is-settling .dc-star .dc-star__bloom {
      transition: none !important;
    }

    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;
      filter: brightness(1.2) saturate(1.1);
      background: var(--star-sprite) center / contain no-repeat;
    }
    body.theme-sian3-lp .dc-star.is-charging .dc-star__rays {
      opacity: 0 !important;
      visibility: hidden;
    }
    body.theme-sian3-lp .dc-star.is-charging .dc-star__core {
      background: radial-gradient(circle at 40% 35%, #fff 0%, #e8f4ff 55%, #b8d8ff 100%);
      box-shadow:
        0 0 calc(var(--u) * 0.5) rgba(255, 255, 255, 0.95),
        0 0 calc(var(--u) * 1.3) rgba(150, 200, 255, 0.5);
    }
    /* Seat vacated while this star is the meteor — GSAP crossfade */
    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 */
    }
    body.theme-sian3-lp .lp-meteor {
      position: absolute;
      left: 0; top: 0;
      width: 20px; height: 20px;
      margin: 0;
      z-index: 13;
      pointer-events: none;
      opacity: 0;
      will-change: transform, opacity;
      backface-visibility: hidden;
      -webkit-backface-visibility: hidden;
      filter: saturate(1.22) brightness(1.18);
    }
    body.theme-sian3-lp .lp-meteor__core {
      position: absolute; left: 50%; top: 50%;
      width: 7.6px; height: 7.6px;
      margin: -3.8px 0 0 -3.8px;
      border-radius: 50%;
      background: radial-gradient(circle at 36% 32%, #fff 0%, #fff8e8 42%, #ffd080 100%);
      box-shadow:
        0 0 6px 2px rgba(255, 255, 255, 1),
        0 0 16px 6px rgba(255, 226, 158, 0.74),
        -2px 0 12px rgba(255, 210, 130, 0.48),
        -9px 0 22px rgba(255, 185, 90, 0.22);
      z-index: 6;
    }
    body.theme-sian3-lp .lp-meteor__glow {
      position: absolute; left: 50%; top: 50%;
      width: 29px; height: 29px;
      margin: -14.5px 0 0 -14.5px;
      border-radius: 50%;
      background: radial-gradient(circle,
        rgba(255, 246, 215, 0.5) 0%,
        rgba(255, 212, 130, 0.18) 38%,
        rgba(255, 170, 70, 0.06) 58%,
        transparent 72%);
      z-index: 1;
    }
    body.theme-sian3-lp .lp-meteor__trail {
      position: absolute; left: 50%; top: 50%;
      width: 104px; height: 2px;
      margin: -1px 0 0 -104px;
      border-radius: 999px;
      transform: scaleX(0.001);
      transform-origin: 100% 50%;
      opacity: 0;
      visibility: hidden;
      background: linear-gradient(90deg,
        rgba(255, 120, 40, 0) 0%,
        rgba(255, 150, 60, 0.11) 10%,
        rgba(255, 195, 105, 0.46) 38%,
        rgba(255, 235, 190, 0.94) 74%,
        rgba(255, 252, 245, 1) 92%,
        #fff 100%);
      -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 10%, #000 100%);
      mask-image: linear-gradient(90deg, transparent 0%, #000 10%, #000 100%);
      filter: blur(0.06px);
      will-change: transform, opacity;
      z-index: 4;
    }
    body.theme-sian3-lp .lp-meteor__trail--neck {
      width: 16px; height: 2.6px;
      margin: -1.3px 0 0 -16px;
      transform-origin: 100% 50%;
      visibility: hidden;
      border-radius: 999px;
      background: linear-gradient(90deg,
        rgba(255, 175, 80, 0.28) 0%,
        rgba(255, 230, 180, 0.92) 58%,
        #fff 100%);
      filter: blur(0.25px);
      z-index: 5;
    }
    body.theme-sian3-lp .lp-meteor__trail--mid {
      width: 88px; height: 3.6px;
      margin: -1.8px 0 0 -88px;
      transform-origin: 100% 50%;
      visibility: hidden;
      border-radius: 999px;
      filter: blur(1.75px);
      background: linear-gradient(90deg,
        rgba(255, 130, 45, 0) 0%,
        rgba(255, 165, 60, 0.15) 18%,
        rgba(255, 210, 120, 0.44) 52%,
        rgba(255, 240, 205, 0.8) 100%);
      -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 12%, #000 100%);
      mask-image: linear-gradient(90deg, transparent 0%, #000 12%, #000 100%);
      z-index: 3;
    }
    body.theme-sian3-lp .lp-meteor__trail--soft {
      width: 96px; height: 5.8px;
      margin: -2.9px 0 0 -96px;
      transform-origin: 100% 50%;
      visibility: hidden;
      border-radius: 999px;
      filter: blur(2.35px);
      background: linear-gradient(90deg,
        rgba(255, 110, 35, 0) 0%,
        rgba(255, 150, 55, 0.1) 22%,
        rgba(255, 195, 95, 0.34) 58%,
        rgba(255, 225, 170, 0.46) 100%);
      -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 14%, #000 100%);
      mask-image: linear-gradient(90deg, transparent 0%, #000 14%, #000 100%);
      z-index: 2;
    }
    body.theme-sian3-lp .lp-meteor__trail--flare {
      position: absolute; left: 50%; top: 50%;
      width: 88px; height: 0.85px;
      margin: -0.425px 0 0 -88px;
      border-radius: 999px;
      transform: scaleX(0.001);
      transform-origin: 100% 50%;
      opacity: 0;
      visibility: hidden;
      background: linear-gradient(90deg,
        transparent 0%,
        rgba(255, 230, 180, 0.24) 48%,
        rgba(255, 255, 255, 0.98) 100%);
      -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 14%, #000 100%);
      mask-image: linear-gradient(90deg, transparent 0%, #000 14%, #000 100%);
      filter: blur(0.1px);
      will-change: transform, opacity;
      z-index: 4;
    }
    body.theme-sian3-lp .lp-meteor__spark {
      position: absolute; left: 50%; top: 50%;
      width: 2.5px; height: 2.5px; margin: -1.25px 0 0 -1.25px;
      border-radius: 50%;
      background: rgba(255, 252, 240, 0.98);
      box-shadow: 0 0 5px rgba(255, 235, 180, 0.78);
      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__head,
    body.theme-sian3-lp .lp-meteor__head-glow,
    body.theme-sian3-lp .lp-meteor__tail { display: none !important; }
    body.theme-sian3-lp .lp-meteor__trail--flare { display: block; }
    body.theme-sian3-lp .lp-meteor__ember {
      position: absolute; left: 0; top: 0;
      width: 2.6px; height: 2.6px; margin: -1.3px 0 0 -1.3px;
      border-radius: 50%;
      background: rgba(255, 240, 200, 0.88);
      box-shadow: 0 0 5px rgba(255, 220, 160, 0.55);
      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: 17px; height: 17px;
        filter: saturate(1.08) brightness(1.05);
      }
      body.theme-sian3-lp .lp-meteor__core {
        width: 6px; height: 6px;
        margin: -3px 0 0 -3px;
      }
      body.theme-sian3-lp .lp-meteor__glow {
        width: 22px; height: 22px;
        margin: -11px 0 0 -11px;
      }
      body.theme-sian3-lp .lp-meteor__trail {
        width: 82px; height: 1.6px;
        margin: -0.8px 0 0 -82px;
      }
      body.theme-sian3-lp .lp-meteor__trail--neck {
        width: 12px; height: 2.2px;
        margin: -1.1px 0 0 -12px;
      }
      body.theme-sian3-lp .lp-meteor__trail--mid {
        width: 72px; height: 3px;
        margin: -1.5px 0 0 -72px;
      }
      body.theme-sian3-lp .lp-meteor__trail--soft {
        width: 78px; height: 5.2px;
        margin: -2.6px 0 0 -78px;
      }
      body.theme-sian3-lp .lp-meteor__trail--flare {
        width: 72px; height: 0.75px;
        margin: -0.38px 0 0 -72px;
      }
      body.theme-sian3-lp .lp-meteor__spark {
        width: 1.8px; height: 1.8px; margin: -0.9px 0 0 -0.9px;
      }
      body.theme-sian3-lp .lp-meteor__ember {
        width: 2.2px; height: 2.2px; margin: -1.1px 0 0 -1.1px;
      }
      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.8); transform: scale(0.96); }
      50% { opacity: calc(var(--o, 0.3) * 1.08); transform: scale(1.04); }
    }
    @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; }
    }

/* 링크·버튼 '안쪽' 요소(로고 img, 메뉴 글자 span 등)에도 손가락 커서.
   위의 `* { cursor: auto !important }` 가 자식 요소에 직접 걸려 상속을 끊기 때문에,
   마우스가 실제로 닿는 img·span 위에서는 기본 커서로 보였다. */
body.theme-sian3-lp a *,
body.theme-sian3-lp button *,
body.theme-sian3-lp [role="button"] *,
body.theme-sian3-lp label *,
body.theme-sian3-lp .s3-role *,
body.theme-sian3-lp .s3-step *,
html.s3-has-custom-cursor body.theme-sian3 a *,
html.s3-has-custom-cursor body.theme-sian3 button *,
html.s3-has-custom-cursor body.theme-sian3-lp a *,
html.s3-has-custom-cursor body.theme-sian3-lp button * {
  cursor: pointer !important;
}
body.theme-sian3-lp button:disabled,
body.theme-sian3-lp button:disabled * { cursor: not-allowed !important; }
