/* 최종 조합 오버레이
   - 홈·Enterprise: theme-0(현행) 그대로. 단, 홈의 Launch/Gate 카드와 메뉴 점만 각 서비스 톤으로
   - Launch: theme-b 허브(라이트) 스타일 + Launch 전용 블록(스텝·질문·요금·CTA)을 라이트 벤토로
   - Gate: theme-a의 Gate 히어로 + 하단도 흑백 에디토리얼로 이어감 */

/* ---------- 공통: 메뉴 점 ---------- */
.final .dot.l{background:#0071E3;color:#fff}
.final .dot.g{background:#0A0A0A;color:#F5F5F0;border:1px solid #0A0A0A}

/* =========================================================
   홈(theme-0) 위의 서비스 카드 톤
   ========================================================= */
.theme-0.page-index.final .card.launch{background:#F5F5F7;border-color:transparent;border-radius:28px}
.theme-0.page-index.final .card.launch:hover{box-shadow:0 12px 32px rgba(0,0,0,.10)}
.theme-0.page-index.final .card.launch .icon.l{background:#0071E3;border-radius:14px}
.theme-0.page-index.final .card.launch .who{color:#0071E3}
.theme-0.page-index.final .card.launch li::before{border-color:#0071E3}
.theme-0.page-index.final .card.launch .tag.live{background:rgba(52,199,89,.14);color:#248A3D}
.theme-0.page-index.final .card.launch .btn{border-radius:999px;font-weight:500}
.theme-0.page-index.final .card.launch .btn-emerald{background:#0071E3}
.theme-0.page-index.final .card.launch .btn-emerald:hover{background:#0077ED}
.theme-0.page-index.final .card.launch .btn-line{color:#0071E3;border-color:#0071E3;background:transparent}
.theme-0.page-index.final .card.launch h3{letter-spacing:-.03em}

.theme-0.page-index.final .card.gate{background:#0A0A0A;color:#F5F5F0;border-color:#0A0A0A;border-radius:0}
.theme-0.page-index.final .card.gate h3{font-weight:900;text-transform:uppercase;letter-spacing:-.05em;font-size:1.8rem;color:transparent;-webkit-text-stroke:1.2px #F5F5F0}
.theme-0.page-index.final .card.gate .num,.theme-0.page-index.final .card.gate .url,.theme-0.page-index.final .card.gate .who{color:#8a8a82;font-family:"JetBrains Mono",ui-monospace,Menlo,monospace}
.theme-0.page-index.final .card.gate .desc,.theme-0.page-index.final .card.gate li{color:#b5b5ad}
.theme-0.page-index.final .card.gate li::before{border-color:#FFB400}
.theme-0.page-index.final .card.gate .icon.g{background:transparent;border:1px solid #F5F5F0;border-radius:0}
.theme-0.page-index.final .card.gate .tag.soon{background:transparent;color:#FFB400;border:1px solid #FFB400;border-radius:0}
.theme-0.page-index.final .card.gate .btn{border-radius:0}
.theme-0.page-index.final .card.gate .btn-dark{background:#F5F5F0;color:#0A0A0A}
.theme-0.page-index.final .card.gate .btn-dark:hover{background:#FFB400}
.theme-0.page-index.final .card.gate .btn-line{background:transparent;color:#F5F5F0;border-color:#555}
.theme-0.page-index.final .card.gate .btn-line:hover{border-color:#F5F5F0}
.theme-0.page-index.final .choose.l .go{color:#0071E3}
.theme-0.page-index.final .choose.g .go{color:#0A0A0A}

/* Enterprise 하단 '다른 서비스' 카드도 같은 톤 */
.ent.final .ent-others .card.launch .go{color:#0071E3}
.ent.final .ent-others .card.gate .go{color:#FFB400}

/* =========================================================
   LAUNCH — B 라이트 벤토
   ========================================================= */
.theme-b.page-launch-light .hero{background:
  radial-gradient(50% 60% at 50% 0%,rgba(0,113,227,.10),transparent 70%),var(--bg)}
.theme-b.page-launch-light .hero-chips{justify-content:center}
.theme-b.page-launch-light .chip{background:#fff;border:0;color:var(--label);box-shadow:var(--sh1);font-weight:500}
.theme-b.page-launch-light .chip-note{color:var(--label-3)}
.theme-b.page-launch-light .btn-emerald{background:var(--blue);color:#fff}
.theme-b.page-launch-light .btn-emerald:hover{background:var(--blue-h)}

/* 섹션 바탕 교차: 흰 섹션 위에는 회색 카드, 회색 섹션 위에는 흰 카드 */
.theme-b.page-launch-light .sec:not(.tint):not(.dark) .choose{background:#fff}
.theme-b.page-launch-light .choose .q{color:var(--blue);font-weight:600;font-size:.85rem}
.theme-b.page-launch-light .sec.tint{background:#fff}

/* 5단계 벤토: 1·2 / 3·4(강조) / 5 전체폭 */
.theme-b.page-launch-light .steps{grid-template-columns:1fr 1fr;gap:16px}
.theme-b.page-launch-light .step{grid-template-columns:1fr;border:0;border-radius:var(--r-xl);background:var(--bg);padding:30px}
.theme-b.page-launch-light .step.hl{background:linear-gradient(160deg,#EAF3FF,#F5F5F7 65%)}
.theme-b.page-launch-light .step:last-child{grid-column:1/-1;grid-template-columns:44px 1fr;gap:20px;align-items:start}
@media (max-width:720px){.theme-b.page-launch-light .steps{grid-template-columns:1fr}.theme-b.page-launch-light .step:last-child{grid-template-columns:1fr}}
.theme-b.page-launch-light .step .n{width:44px;height:44px;border-radius:12px;background:#fff;color:var(--blue);font-size:1.1rem;box-shadow:var(--sh1)}
.theme-b.page-launch-light .step.hl .n{background:var(--blue);color:#fff}
.theme-b.page-launch-light .step h3{font-size:1.3rem;letter-spacing:-.02em}
.theme-b.page-launch-light .step p{color:var(--label-2)}
.theme-b.page-launch-light .step .note{background:rgba(0,113,227,.08);color:var(--blue);border-radius:999px;font-weight:600}
.theme-b.page-launch-light .sec-fine{text-align:center;margin-left:auto;margin-right:auto}

/* 코드 리뷰 질문: 검정 섹션 + 다크 카드 (B 허브의 dark 섹션 톤) */
.theme-b.page-launch-light .qs div{background:#1C1C1E;border:0;border-radius:var(--r-lg);color:#F5F5F7}
.theme-b.page-launch-light .qs b{background:rgba(41,151,255,.18);color:#2997FF}
.theme-b.page-launch-light .sec-note{color:rgba(235,235,245,.6);margin-left:auto;margin-right:auto;text-align:center}

/* 요금 */
.theme-b.page-launch-light .plan{border:0;border-radius:var(--r-xl);background:var(--bg);padding:36px}
.theme-b.page-launch-light .plan.free{background:#fff;box-shadow:inset 0 0 0 1.5px var(--blue),var(--sh2)}
.theme-b.page-launch-light .plan .k{color:var(--blue)}
.theme-b.page-launch-light .plan.paid .k{color:var(--label-3)}
.theme-b.page-launch-light .plan h3{font-size:1.8rem;letter-spacing:-.03em}
.theme-b.page-launch-light .plan p,.theme-b.page-launch-light .plan li{color:var(--label-2)}
.theme-b.page-launch-light .plan li::before{color:var(--blue)}

/* 왜 만들었나 */
.theme-b.page-launch-light .why .eyebrow{display:block;text-align:left}
.theme-b.page-launch-light .quote{border-left-color:var(--blue);font-size:1.5rem;letter-spacing:-.02em}

/* CTA */
.theme-b.page-launch-light .cta{background:#fff;color:var(--label);border-radius:var(--r-xl);box-shadow:var(--sh2)}
.theme-b.page-launch-light .cta::before{background:radial-gradient(50% 90% at 50% 0%,rgba(0,113,227,.12),transparent 70%)}
.theme-b.page-launch-light .cta p,.theme-b.page-launch-light .cta .fine{color:var(--label-2)}
.theme-b.page-launch-light .cta .btn-ghost{color:var(--blue);border-color:var(--blue)}

/* =========================================================
   GATE — A 에디토리얼 Gate, 하단도 흑백으로 이어감
   ========================================================= */
main.theme-a.page-gate.final{display:block;background:#0A0A0A;color:#F5F5F0}
.theme-a.page-gate.final .hero{border-bottom:1px solid #2a2a2a}

.theme-a.page-gate.final .sec{background:#0A0A0A;border-bottom-color:#1c1c1c}
.theme-a.page-gate.final .eyebrow{color:#8a8a82}
.theme-a.page-gate.final .sec-head .display{color:#F5F5F0}
.theme-a.page-gate.final .two{border-top:0;gap:20px}
.theme-a.page-gate.final .two .card,.theme-a.page-gate.final .two .card.launch,.theme-a.page-gate.final .two .card + .card{background:#121212;color:#F5F5F0;padding:28px;border:1px solid #2a2a2a}
.theme-a.page-gate.final .two .card:hover{border-color:#F5F5F0}
.theme-a.page-gate.final .two .card h3,.theme-a.page-gate.final .two .card.launch h3{font-family:var(--serif);color:#F5F5F0}
.theme-a.page-gate.final .two .card:hover h3{color:#FFB400}
.theme-a.page-gate.final .card .num{color:#77776f}
.theme-a.page-gate.final .card .who,.theme-a.page-gate.final .card.launch .who{color:#a8a8a0}
.theme-a.page-gate.final .card .desc,.theme-a.page-gate.final .card.launch .desc{color:#a8a8a0}
.theme-a.page-gate.final .card .tag.live,.theme-a.page-gate.final .card.launch .tag.live{color:#F5F5F0;border-color:#F5F5F0}
.theme-a.page-gate.final .card .tag.live i,.theme-a.page-gate.final .card.launch .tag.live i{background:#FFB400}
.theme-a.page-gate.final .card .go,.theme-a.page-gate.final .two .card.launch .go{color:#FFB400}

/* Launch 본문 바탕·서체 (body가 아니라 main에 테마가 붙으므로) */
main.theme-b.final{display:block;background:var(--bg);color:var(--label);font-family:var(--sf);letter-spacing:-.01em}


/* =========================================================
   LAUNCH 히어로: 앱 화면 영상 배경 → 히어로만 다크, 본문은 라이트 벤토 유지
   ========================================================= */
.theme-b.page-launch-light .hero{background:#000;color:#F5F5F7;min-height:78vh;display:flex;align-items:center}
.theme-b.page-launch-light .hero video{display:block;opacity:1}
.theme-b.page-launch-light .hero .veil{display:block;background:
  radial-gradient(60% 55% at 50% 50%,rgba(0,0,0,.72),rgba(0,0,0,.35) 75%),
  linear-gradient(180deg,rgba(0,0,0,.25),rgba(0,0,0,.1) 40%,rgba(0,0,0,.6))}
.theme-b.page-launch-light .hero h1{color:#fff}
.theme-b.page-launch-light .hero .grad{background-image:linear-gradient(90deg,#2997FF,#8E7BFF 55%,#FF6FA3)}
.theme-b.page-launch-light .hero p.sub{color:rgba(235,235,245,.78)}
.theme-b.page-launch-light .hero .pill{color:#2997FF}
.theme-b.page-launch-light .hero .crumbs,.theme-b.page-launch-light .hero .crumbs a{color:rgba(235,235,245,.5)}
.theme-b.page-launch-light .hero .crumbs a:hover{color:#fff}
.theme-b.page-launch-light .hero .btn-ghost{color:#fff;border-color:rgba(255,255,255,.35);background:rgba(255,255,255,.06)}
.theme-b.page-launch-light .hero .btn-ghost:hover{background:rgba(255,255,255,.14)}
.theme-b.page-launch-light .hero .chip{background:rgba(255,255,255,.08);color:rgba(245,245,247,.9);box-shadow:none;backdrop-filter:blur(8px)}
.theme-b.page-launch-light .hero .chip-note{color:rgba(235,235,245,.5)}

/* =========================================================
   LAUNCH = B시안 Launch(다크 Pro + 그린) · main에만 적용
   ========================================================= */
main.theme-b.page-launch.final{background:#000;color:#F5F5F7}
.theme-b.page-launch.final .hero{min-height:78vh;display:flex;align-items:center}
.theme-b.page-launch.final .hero video{display:block;opacity:1}
.theme-b.page-launch.final .hero .veil{display:block;background:
  radial-gradient(60% 55% at 50% 50%,rgba(0,0,0,.72),rgba(0,0,0,.35) 75%),
  radial-gradient(60% 55% at 50% 0%,rgba(48,209,88,.18),transparent 70%),
  linear-gradient(180deg,rgba(0,0,0,.25),rgba(0,0,0,.1) 40%,rgba(0,0,0,.7))}
.theme-b.page-launch.final .hero h1{color:#fff}
.theme-b.page-launch.final .hero .btn-ghost{color:#fff;border-color:rgba(255,255,255,.35);background:rgba(255,255,255,.06)}
.theme-b.page-launch.final .hero .chip{background:rgba(28,28,30,.7);backdrop-filter:blur(8px)}
/* 5단계: 1·2 / 3·4(강조) / 5 전체폭 (빈칸 방지) */
.theme-b.page-launch.final .steps{grid-template-columns:1fr 1fr}
.theme-b.page-launch.final .step,.theme-b.page-launch.final .step.hl{grid-column:auto}
.theme-b.page-launch.final .step:last-child{grid-column:1/-1;grid-template-columns:44px 1fr;gap:20px;align-items:start}
@media (max-width:720px){.theme-b.page-launch.final .steps{grid-template-columns:1fr}.theme-b.page-launch.final .step:last-child{grid-template-columns:1fr}}

/* =========================================================
   홈 = B시안 홈(영상 없음). Gate 카드만 Gate 페이지 톤(A 에디토리얼 블랙)으로
   ========================================================= */
.theme-b.page-index.final .card.gate{background:#0A0A0A;color:#F5F5F0}
.theme-b.page-index.final .card.gate::after{display:none}
.theme-b.page-index.final .card.gate h3{background:none;-webkit-background-clip:border-box;background-clip:border-box;color:transparent;-webkit-text-stroke:1.2px #F5F5F0;font-weight:900;text-transform:uppercase;letter-spacing:-.05em}
.theme-b.page-index.final .card.gate .num,.theme-b.page-index.final .card.gate .url,.theme-b.page-index.final .card.gate .who{color:#8a8a82}
.theme-b.page-index.final .card.gate .desc,.theme-b.page-index.final .card.gate li{color:#b5b5ad}
.theme-b.page-index.final .card.gate li::before{border-color:#FFB400}
.theme-b.page-index.final .card.gate .icon.g{background:transparent;border:1px solid #F5F5F0}
.theme-b.page-index.final .card.gate .tag.soon{background:transparent;color:#FFB400;border:1px solid #FFB400}
.theme-b.page-index.final .card.gate .btn-dark{background:#F5F5F0;color:#0A0A0A}
.theme-b.page-index.final .card.gate .btn-line{color:#F5F5F0;border-color:#555}
.theme-b.page-index.final .strip a:nth-child(3){background:#0A0A0A;color:#F5F5F0}
.theme-b.page-index.final .strip a:nth-child(3) .n,.theme-b.page-index.final .strip a:nth-child(3) .d{color:#8a8a82}
.theme-b.page-index.final .choose.g .go{color:#0A0A0A}

/* Launch: 보조 버튼(무엇을 확인하나요 · 다른 서비스 보기)은 투명 라인 대신 흰 배경 — 영상 위에서도 보이게 */
.theme-b.page-launch.final .btn-ghost,.theme-b.page-launch.final .hero .btn-ghost,.theme-b.page-launch.final .cta .btn-ghost{background:#fff;color:#000;border-color:#fff;backdrop-filter:none}
.theme-b.page-launch.final .btn-ghost:hover,.theme-b.page-launch.final .hero .btn-ghost:hover,.theme-b.page-launch.final .cta .btn-ghost:hover{background:#E8E8ED;border-color:#E8E8ED;color:#000}

/* =========================================================
   그리드 · 여백 · 정렬 · 라운딩 시스템 (axlift.io Enterprise 실측값 기준)
   컨테이너 1280 · 좌우 24/32 · 카드 16 · 내부 12 · 버튼 6 · 큰 띠 24 · 배지 999
   정렬: 섹션 제목·본문 전부 좌측 정렬(Enterprise·Gate와 동일)
   ========================================================= */
.final{--r-card:16px;--r-inner:12px;--r-btn:6px;--r-band:24px;--pad-card:28px}
.final .wrap{max-width:1280px;padding-left:24px;padding-right:24px}
@media (min-width:1024px){.final .wrap{padding-left:32px;padding-right:32px}}

/* 정렬 */
.final .hero,.final .sec-head,.final .sec-fine,.final .sec-note{text-align:left!important}
.final .sec-head,.final .hero h1,.final .hero p.sub,.final .sec-fine,.final .sec-note,.final .strip,.final .soon-box{margin-left:0!important;margin-right:0!important}
.final .hero .btns,.final .hero-chips,.final .notify,.final .eta,.final .cta .btns{justify-content:flex-start!important}
.final .cta{text-align:left!important}
.final .cta p{margin-left:0!important}
.final .sec-head{max-width:760px;margin-bottom:48px}
.final .why .eyebrow{text-align:left}

/* 라운딩 */
.final .btn{border-radius:var(--r-btn)!important;font-weight:600!important;font-size:1rem!important;padding:12px 22px!important;letter-spacing:0!important}
.final .card .acts .btn{padding:11px 12px!important;font-size:.9rem!important}
.final .btn:hover{transform:translateY(-1px)}
.final .card,.final .choose,.final .step,.final .plan,.final .box,.final .mail,.final .qs div,.final .strip a,.final .journey > div,.final .stats > div,.final .dd-menu{border-radius:var(--r-card)!important}
.final .cta{border-radius:var(--r-band)!important}
.final .card .icon,.final .step .n,.final .dot,.final .dd-menu a{border-radius:var(--r-inner)!important}
.final .tag,.final .pill,.final .chip,.final .step .note,.final .eta span,.final .qs b{border-radius:999px!important}
.final .strip,.final .stats,.final .journey{border-radius:0!important;overflow:visible!important}
.hdr .nav .btn-sm{border-radius:var(--r-btn,6px)}
.final .hdr .nav .btn-sm{border-radius:6px}

/* 카드 안쪽 여백 통일 */
.final .card,.final .choose,.final .step,.final .plan,.final .box,.final .journey > div{padding:var(--pad-card)!important}
.final .svc .card:first-child{padding:var(--pad-card)!important}
@media (max-width:640px){.final{--pad-card:22px}}

/* Enterprise(원본 Tailwind) 정렬·라운딩 보정 — 내용·배치는 그대로 */
.ent.final main > section:first-of-type > .relative.z-10{width:100%}   /* flex 안에서 줄어들어 가운데로 밀리던 히어로 → 로고와 같은 좌측선 */
.ent.final .rounded{border-radius:6px}          /* 4px 잔여값 → 버튼과 동일 */
.ent.final .rounded-lg{border-radius:12px}      /* 8px 잔여값 → 내부 박스와 동일 */

/* =========================================================
   서비스 소개(홈) 보강판 — 가운데 정렬 · 여백 압축 · 미리보기 · 영상 밴드 · 인터랙션
   범위: main.theme-b.page-index.final (B 토큰 사용)
   ========================================================= */
.theme-b.page-index.final{--sec-y:72px}
@media (min-width:1024px){.theme-b.page-index.final{--sec-y:88px}}
.theme-b.page-index.final .sec{padding:var(--sec-y) 0}
.theme-b.page-index.final .sec-head{text-align:center!important;margin-left:auto!important;margin-right:auto!important;margin-bottom:40px;max-width:760px}
.theme-b.page-index.final .sec-head .lead{margin-left:auto;margin-right:auto}

/* 히어로 */
.theme-b.page-index.final .hx{text-align:center!important;padding:112px 0 56px;min-height:0;background:
  radial-gradient(60% 50% at 50% 0%,rgba(0,113,227,.10),transparent 70%),var(--bg)}
.theme-b.page-index.final .hx h1,.theme-b.page-index.final .hx p.sub{margin-left:auto!important;margin-right:auto!important}
.theme-b.page-index.final .hx .btns{justify-content:center!important}
.theme-b.page-index.final .hx .pill{display:inline-flex}

/* 미리보기 3종 */
.pv{margin-top:48px;display:grid;gap:16px;text-align:left;perspective:1200px}
@media (min-width:980px){.pv{grid-template-columns:1.15fr 1fr .8fr;align-items:stretch}}
.pv-card{display:flex;flex-direction:column;border-radius:var(--r-card);overflow:hidden;border:1px solid var(--sep);background:#fff;box-shadow:0 18px 40px -24px rgba(0,0,0,.28);transition:transform .25s ease,box-shadow .25s ease;will-change:transform}
.pv-card:hover{box-shadow:0 28px 60px -28px rgba(0,0,0,.38)}
.pv-card:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.pv-bar{display:flex;align-items:center;gap:6px;padding:10px 14px;border-bottom:1px solid var(--sep);font-size:.72rem;color:var(--label-3)}
.pv-bar i{width:9px;height:9px;border-radius:50%;background:#E5E5EA}
.pv-bar i:nth-child(1){background:#FF5F57}.pv-bar i:nth-child(2){background:#FEBC2E}.pv-bar i:nth-child(3){background:#28C840}
.pv-bar span{margin-left:8px}
.pv-body{flex:1;padding:18px;display:grid;gap:12px;align-content:start}
.pv-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 18px;border-top:1px solid var(--sep);font-size:.78rem;color:var(--label-2)}
.pv-tag{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.01em}
.pv-tag.e{background:rgba(0,113,227,.1);color:var(--blue)}
.pv-tag.l{background:rgba(48,209,88,.16);color:#1f8f3e}
.pv-tag.g{background:rgba(255,180,0,.16);color:#9a6a00}
/* Enterprise: 슬랙 대화 */
.msg{font-size:.84rem;line-height:1.55;color:var(--label);padding:10px 12px;border-radius:var(--r-inner);background:var(--bg)}
.msg b{display:block;font-size:.72rem;color:var(--label-3);margin-bottom:2px}
.msg.me{justify-self:end;max-width:88%;background:rgba(0,113,227,.08)}
.msg.bot{background:#F5F5F7}
.bars{display:flex;align-items:flex-end;gap:6px;height:84px;margin:10px 0 6px}
.bars span{flex:1;height:calc(var(--h) * 100%);min-height:10%;border-radius:6px 6px 2px 2px;background:linear-gradient(180deg,#2997FF,#0071E3);font-size:0;transform-origin:bottom}
.pv.play .bars span{animation:grow .8s cubic-bezier(.2,.9,.2,1) both}
.pv.play .bars span:nth-child(2){animation-delay:.06s}.pv.play .bars span:nth-child(3){animation-delay:.12s}.pv.play .bars span:nth-child(4){animation-delay:.18s}.pv.play .bars span:nth-child(5){animation-delay:.24s}.pv.play .bars span:nth-child(6){animation-delay:.3s}.pv.play .bars span:nth-child(7){animation-delay:.36s}
@keyframes grow{from{transform:scaleY(.08)}to{transform:scaleY(1)}}
.kpi{font-size:.78rem;color:var(--label-2)}
.kpi b{color:var(--label);font-variant-numeric:tabular-nums}
/* Launch: 진단 결과 (B 다크 톤) */
.pv-l{background:#0B0B0C;border-color:#1f1f22;color:#F5F5F7}
.pv-l .pv-bar,.pv-l .pv-foot{border-color:#1f1f22;color:rgba(235,235,245,.5)}
.pv-l .pv-foot .pv-tag.l{color:#30D158}
.pv-l .url{display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:.8rem;padding:9px 12px;border-radius:var(--r-inner);background:#1C1C1E;color:rgba(235,235,245,.85)}
.pv-l .url em{font-style:normal;font-size:.7rem;color:#30D158}
.prog{height:4px;border-radius:999px;background:#1C1C1E;overflow:hidden}
.prog i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#30D158,#40C8E0);transform-origin:left}
.pv.play .prog i{animation:fill 1.6s ease-out both}
@keyframes fill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.checks{display:grid;gap:6px}
.checks li{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:.8rem;padding:8px 10px;border-radius:var(--r-inner);background:#141416}
.checks b{font-weight:600;color:#F5F5F7}
.checks span{font-size:.7rem;font-weight:700;padding:2px 8px;border-radius:999px}
.checks .ok span{background:rgba(48,209,88,.16);color:#30D158}
.checks .warn span{background:rgba(255,159,10,.16);color:#FF9F0A}
.checks .bad span{background:rgba(255,69,58,.16);color:#FF453A}
.checks .idle span{background:#2C2C2E;color:rgba(235,235,245,.55)}
.pv.play .checks li{animation:pop .45s ease-out both}
.pv.play .checks li:nth-child(1){animation-delay:.3s}.pv.play .checks li:nth-child(2){animation-delay:.55s}.pv.play .checks li:nth-child(3){animation-delay:.8s}.pv.play .checks li:nth-child(4){animation-delay:1.05s}.pv.play .checks li:nth-child(5){animation-delay:1.3s}
@keyframes pop{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
/* Gate: 에디토리얼 블랙 */
.pv-g{background:#0A0A0A;border-color:#1c1c1c;color:#F5F5F0}
.pv-g .pv-bar,.pv-g .pv-foot{border-color:#1c1c1c;color:#8a8a82}
.pv-g .pv-foot .pv-tag.g{color:#FFB400}
.pv-g .pv-body{place-content:center;text-align:center;min-height:180px}
.gate-word{font-weight:900;font-size:clamp(2.8rem,6vw,4.2rem);letter-spacing:-.06em;line-height:1;color:transparent;-webkit-text-stroke:1.5px #F5F5F0;background:linear-gradient(90deg,transparent 0 40%,rgba(255,180,0,.9) 50%,transparent 60% 100%) no-repeat;background-size:250% 100%;-webkit-background-clip:text;background-clip:text;animation:sweep 4s ease-in-out infinite}
@keyframes sweep{from{background-position:130% 0}to{background-position:-30% 0}}
.lock{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:.78rem;color:#8a8a82}
@media (prefers-reduced-motion:reduce){.pv.play *,.gate-word{animation:none!important}.pv-card{transition:none}}

/* 연동 도구 마퀴 */
.marq{overflow:hidden;border-block:1px solid var(--sep);background:#fff;padding:14px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marq-track{display:flex;width:max-content;animation:marq 38s linear infinite}
.marq:hover .marq-track{animation-play-state:paused}
.marq-row{display:flex;gap:10px;padding-right:10px}
.marq-row span{white-space:nowrap;font-size:.86rem;font-weight:600;color:var(--label-2);padding:6px 14px;border-radius:999px;background:var(--bg)}
@keyframes marq{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.marq-track{animation:none;flex-wrap:wrap;width:auto;justify-content:center}.marq-row[aria-hidden]{display:none}.marq-row{flex-wrap:wrap;justify-content:center}}

/* 서비스 카드 스포트라이트 */
.spot{position:relative;isolation:isolate}
.spot::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:-1;opacity:0;transition:opacity .25s;background:radial-gradient(360px circle at var(--mx,50%) var(--my,0%),rgba(0,113,227,.10),transparent 60%)}
.spot:hover::before{opacity:1}
.spot.launch::before{background:radial-gradient(360px circle at var(--mx,50%) var(--my,0%),rgba(48,209,88,.20),transparent 60%)}
.spot.gate::before{background:radial-gradient(360px circle at var(--mx,50%) var(--my,0%),rgba(255,180,0,.16),transparent 60%)}
.theme-b.page-index.final .svc{align-items:stretch}

/* 영상 밴드 */
.vband{position:relative;overflow:hidden;background:#020617;color:#F5F5F7;padding:var(--sec-y) 0}
.vb-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.vb-veil{position:absolute;inset:0;background:radial-gradient(70% 70% at 50% 45%,rgba(2,6,23,.55),rgba(2,6,23,.85))}
.vband .wrap{position:relative;z-index:1}
.vband .eyebrow{color:#7cc4ff}
.vband .lead{color:rgba(235,235,245,.75)}
.vband .display{color:#fff}
.vband .grad{background-image:linear-gradient(90deg,#7cc4ff,#a99cff 55%,#ff8fb8)}
.vb-grid{display:grid;gap:16px}
@media (min-width:860px){.vb-grid{grid-template-columns:repeat(3,1fr)}}
.vb-item{border-radius:var(--r-card);padding:var(--pad-card);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);text-align:left;transition:background .2s,transform .2s}
.vb-item:hover{background:rgba(255,255,255,.1);transform:translateY(-2px)}
.vb-item .k{font-size:.72rem;font-weight:700;letter-spacing:.08em;color:rgba(235,235,245,.5)}
.vb-item h3{margin-top:8px;font-size:1.25rem;letter-spacing:-.02em}
.vb-item p{margin-top:8px;font-size:.93rem;line-height:1.7;color:rgba(235,235,245,.72)}
.vb-toggle{position:absolute;right:24px;bottom:-40px;font:inherit;font-size:.75rem;font-weight:600;color:rgba(235,235,245,.8);background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:var(--r-btn);padding:6px 10px;cursor:pointer}
@media (min-width:1024px){.vb-toggle{right:32px}}
.vb-toggle:hover{background:rgba(255,255,255,.16)}
.vb-toggle:focus-visible{outline:2px solid #7cc4ff;outline-offset:2px}

/* 상황 선택 탭 */
.fit{max-width:980px;margin:0 auto}
.seg{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;border-radius:var(--r-inner);background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.06)}
.seg button{font:inherit;font-size:.92rem;font-weight:600;color:var(--label-2);background:transparent;border:0;border-radius:var(--r-btn);padding:12px 10px;cursor:pointer;transition:background .2s,color .2s;line-height:1.35}
.seg button:hover{color:var(--label)}
.seg button[aria-selected="true"]{background:var(--label);color:#fff}
.seg button:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
@media (max-width:720px){.seg{grid-template-columns:1fr}}
.fit-panel{margin-top:16px;border-radius:var(--r-card);background:#fff;padding:32px;text-align:left;box-shadow:0 1px 2px rgba(0,0,0,.05);animation:pop .35s ease-out}
@media (max-width:640px){.fit-panel{padding:22px}}
.fp-head h3{margin-top:10px;font-size:clamp(1.3rem,2.4vw,1.7rem);font-weight:700;letter-spacing:-.03em}
.fp-head p{margin-top:8px;color:var(--label-2)}
.flow{margin:24px 0 0;padding:0;list-style:none;display:grid;gap:12px;counter-reset:f}
@media (min-width:760px){.flow{grid-template-columns:repeat(3,1fr)}.flow.five{grid-template-columns:repeat(5,1fr)}}
.flow li{position:relative;border-radius:var(--r-inner);background:var(--bg);padding:18px}
.flow b{font-size:.72rem;font-weight:700;letter-spacing:.06em;color:var(--blue);text-transform:uppercase}
.flow span{display:block;margin-top:6px;font-weight:700;letter-spacing:-.01em}
.flow em{display:block;margin-top:6px;font-style:normal;font-size:.84rem;line-height:1.6;color:var(--label-2)}
.flow.five b{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:999px;background:rgba(48,209,88,.16);color:#1f8f3e;letter-spacing:0}
.gate-strip{margin-top:20px;display:flex;flex-wrap:wrap;gap:8px}
.gate-strip span{font-size:.82rem;color:var(--label-2);padding:6px 12px;border-radius:999px;background:var(--bg)}
.fp-acts{margin-top:24px;display:flex;flex-wrap:wrap;gap:10px}

/* 숫자 타일 */
.nums{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
@media (min-width:860px){.nums{grid-template-columns:repeat(4,1fr)}}
.nums > div{border-radius:var(--r-card);background:#fff;padding:26px 18px;text-align:center}
.nums b{display:block;font-size:clamp(1.8rem,3.4vw,2.4rem);font-weight:700;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.nums > div > span{display:block;margin-top:6px;font-size:.84rem;color:var(--label-2);line-height:1.5}
.theme-b.page-index.final #about{background:var(--bg)}
.theme-b.page-index.final #about .two.mt{margin-top:16px}
.theme-b.page-index.final #about .box{background:#fff}

/* 문의 메일 3열 */
.mails{display:grid;gap:12px}
@media (min-width:860px){.mails{grid-template-columns:repeat(3,1fr)}}
.mails .mail{margin:0!important;background:var(--bg)}
.theme-b.page-index.final #contact{background:#fff}
/* 홈 서비스 카드: 3열 한 줄 (세로 길이 압축) */
@media (min-width:980px){
  .theme-b.page-index.final .svc{grid-template-columns:repeat(3,1fr)}
  .theme-b.page-index.final .svc .card:first-child{grid-column:auto}
  .theme-b.page-index.final .svc .card:first-child ul{grid-template-columns:1fr;gap:8px;margin-top:18px;flex:1}
  .theme-b.page-index.final .svc .card:first-child .acts{max-width:none}
}
.theme-b.page-index.final .svc .card h3{font-size:1.6rem}
/* 영상 밴드: 지구본이 보이도록 암막 완화 (글자 영역만 살짝 어둡게) */
.vb-veil{background:radial-gradient(60% 55% at 50% 30%,rgba(2,6,23,.55),rgba(2,6,23,.2) 70%),linear-gradient(180deg,rgba(2,6,23,.35),rgba(2,6,23,.15) 45%,rgba(2,6,23,.6))}
.vb-item{background:rgba(2,6,23,.45)}
.vb-item:hover{background:rgba(2,6,23,.6)}
.vb-veil{background:linear-gradient(180deg,rgba(2,6,23,.25),rgba(2,6,23,.1) 40%,rgba(2,6,23,.45)),rgba(2,6,23,.2)}
.vband .display,.vband .lead{text-shadow:0 2px 18px rgba(2,6,23,.6)}
/* 모바일·태블릿: 미리보기 3종을 옆으로 넘기는 캐러셀 (히어로 길이 압축) */
@media (max-width:979px){
  .pv{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;margin-left:-24px;margin-right:-24px;padding:4px 24px 12px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .pv::-webkit-scrollbar{display:none}
  .pv-card{flex:0 0 min(86%,420px);scroll-snap-align:center}
}
.kpi b{display:inline;margin:0;font-size:inherit;font-weight:700}
/* 히어로 미리보기 3종: 가로 폭 동일(1:1:1) · 높이도 동일 */
@media (min-width:980px){.pv{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}}
.pv-card{min-width:0}
/* 좌우 배치 강제: 900px 이상 3열 그리드, 그 미만은 좌우 스와이프 (미리보기 · 서비스 카드 공통) */
@media (min-width:900px){
  .pv,.theme-b.page-index.final .svc{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;overflow:visible;margin-left:0;margin-right:0;padding:0}
  .pv-card,.theme-b.page-index.final .svc .card{flex:none}
  .theme-b.page-index.final .svc .card:first-child{grid-column:auto}
  .theme-b.page-index.final .svc .card:first-child ul{grid-template-columns:1fr;gap:8px;margin-top:18px;flex:1}
}
@media (max-width:899px){
  .pv,.theme-b.page-index.final .svc{display:flex!important;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;margin-left:-24px;margin-right:-24px;padding:4px 24px 14px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .pv::-webkit-scrollbar,.theme-b.page-index.final .svc::-webkit-scrollbar{display:none}
  .pv-card,.theme-b.page-index.final .svc .card{flex:0 0 min(86%,400px);scroll-snap-align:center}
  .theme-b.page-index.final .svc .card:first-child ul{grid-template-columns:1fr}
}
/* 3열 요소는 좁은 화면에서도 가능한 한 가로로 */
@media (min-width:720px){
  .vb-grid,.mails{grid-template-columns:repeat(3,minmax(0,1fr))}
  .nums{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (max-width:719px){
  .vb-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;margin-left:-24px;margin-right:-24px;padding:4px 24px 14px;scrollbar-width:none}
  .vb-grid::-webkit-scrollbar{display:none}
  .vb-item{flex:0 0 min(82%,340px);scroll-snap-align:center}
}
/* 3열 좌우 배치를 720px부터 (프로토타입 창·태블릿 폭에서도 가로 3개) */
@media (min-width:720px){
  .pv,.theme-b.page-index.final .svc{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;overflow:visible!important;margin-left:0!important;margin-right:0!important;padding:0!important;gap:12px!important}
  .pv-card,.theme-b.page-index.final .svc .card{flex:none!important}
  .theme-b.page-index.final .svc .card:first-child{grid-column:auto!important}
  .vb-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;overflow:visible!important;margin:0!important;padding:0!important}
  .vb-item{flex:none!important}
}
@media (min-width:720px) and (max-width:1023px){
  .theme-b.page-index.final{--pad-card:18px}
  .pv-body{padding:12px;gap:8px}
  .pv-foot{padding:10px 12px;font-size:.7rem}
  .pv-foot > span:last-child{display:none}
  .msg{font-size:.76rem;padding:8px 10px}
  .bars{height:60px;gap:4px}
  .checks li{font-size:.72rem;padding:6px 8px}
  .checks span{font-size:.62rem;padding:2px 6px}
  .pv-l .url{font-size:.7rem;padding:7px 9px}
  .gate-word{font-size:2.4rem}
  .theme-b.page-index.final .svc .card h3{font-size:1.2rem}
  .theme-b.page-index.final .svc .card .desc{font-size:.86rem}
  .theme-b.page-index.final .svc .card li{font-size:.8rem}
  .theme-b.page-index.final .svc .card .acts{grid-template-columns:1fr}
  .vb-item h3{font-size:1.05rem}
  .vb-item p{font-size:.84rem}
}
/* 상황 선택 탭: 서비스명 + 상황 2줄 · 미선택도 또렷하게 · 선택 탭은 아래 패널을 가리킴 */
.seg{background:transparent;box-shadow:none;padding:0;gap:12px}
.seg button{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;padding:16px 18px;border-radius:var(--r-inner);background:#fff;border:1.5px solid #D2D2D7;color:var(--label);transition:border-color .2s,background .2s,color .2s,transform .2s}
.seg button em{font-style:normal;font-size:.74rem;font-weight:700;letter-spacing:.02em;color:var(--blue)}
.seg button span{font-size:1rem;font-weight:700;letter-spacing:-.01em;line-height:1.35}
.seg button:hover{border-color:var(--label);transform:translateY(-1px)}
.seg button[aria-selected="true"]{background:var(--label);border-color:var(--label);color:#fff}
.seg button[aria-selected="true"] em{color:#7cc4ff}
.seg button[aria-selected="true"]::after{content:"";position:absolute;left:50%;bottom:-9px;width:16px;height:16px;background:var(--label);transform:translateX(-50%) rotate(45deg);border-radius:3px}
.seg button#fit-t2 em{color:#1f8f3e}.seg button#fit-t2[aria-selected="true"] em{color:#30D158}
.seg button#fit-t3 em{color:#9a6a00}.seg button#fit-t3[aria-selected="true"] em{color:#FFB400}
.fit-panel{margin-top:20px;border:1.5px solid var(--label)}
@media (max-width:719px){.seg button[aria-selected="true"]::after{display:none}}

/* =========================================================
   홈: Gate 블루 톤 (Launch=블랙+그린과 구분)
   ========================================================= */
.theme-b.page-index.final .card.gate{background:linear-gradient(160deg,#0B1B4A 0%,#1640B8 100%)!important;color:#F5F7FF;border-color:transparent}
.theme-b.page-index.final .card.gate h3{-webkit-text-stroke:1.2px #fff}
.theme-b.page-index.final .card.gate .num,.theme-b.page-index.final .card.gate .url,.theme-b.page-index.final .card.gate .who{color:rgba(225,233,255,.72)}
.theme-b.page-index.final .card.gate .desc,.theme-b.page-index.final .card.gate li{color:rgba(235,240,255,.86)}
.theme-b.page-index.final .card.gate li::before{border-color:#8FB4FF}
.theme-b.page-index.final .card.gate .icon.g{border-color:#fff;color:#fff}
.theme-b.page-index.final .card.gate .tag.soon{color:#fff;border-color:rgba(255,255,255,.6);background:rgba(255,255,255,.1)}
.theme-b.page-index.final .card.gate .btn-dark{background:#fff;color:#0B1B4A}
.theme-b.page-index.final .card.gate .btn-dark:hover{background:#DDE7FF}
.theme-b.page-index.final .card.gate .btn-line{color:#fff;border-color:rgba(255,255,255,.55)}
.spot.gate::before{background:radial-gradient(360px circle at var(--mx,50%) var(--my,0%),rgba(143,180,255,.28),transparent 60%)}
.pv-g{background:linear-gradient(160deg,#0B1B4A 0%,#1640B8 100%);border-color:#1b3a8f;color:#F5F7FF}
.pv-g .pv-bar,.pv-g .pv-foot{border-color:rgba(255,255,255,.14);color:rgba(225,233,255,.7)}
.pv-g .pv-foot .pv-tag.g,.pv-tag.g{background:rgba(143,180,255,.2);color:#1640B8}
.pv-g .pv-foot .pv-tag.g{color:#CFE0FF}
.pv-g .gate-word{-webkit-text-stroke-color:#fff;background-image:linear-gradient(90deg,transparent 0 40%,rgba(143,200,255,.95) 50%,transparent 60% 100%)}
.pv-g .lock{color:rgba(225,233,255,.8)}
.seg button#fit-t3 em{color:#1640B8}.seg button#fit-t3[aria-selected="true"] em{color:#8FB4FF}
.fit-panel .pv-tag.g{background:rgba(22,64,184,.1);color:#1640B8}

/* =========================================================
   Gate 상세: 블루 톤 (홈 Gate 카드와 동일 #0B1B4A → #1640B8)
   ========================================================= */
main.theme-a.page-gate.final{background:#0B1B4A;color:#F5F7FF}
.theme-a.page-gate.final .hero{background:
  radial-gradient(70% 60% at 80% 20%,rgba(96,150,255,.35),transparent 65%),
  linear-gradient(160deg,#0B1B4A 0%,#12318F 55%,#1640B8 100%);color:#F5F7FF;border-bottom:1px solid rgba(255,255,255,.12)}
.theme-a.page-gate.final .hero .grid-bg{opacity:.08}
.theme-a.page-gate.final .hero .grad{-webkit-text-stroke:2px #fff}
.theme-a.page-gate.final .hero p.sub{color:rgba(225,233,255,.8)}
.theme-a.page-gate.final .pill{border-color:rgba(255,255,255,.7);color:#fff}
.theme-a.page-gate.final .pill i{background:#8FB4FF}
.theme-a.page-gate.final .crumbs,.theme-a.page-gate.final .crumbs a{color:rgba(225,233,255,.6)}
.theme-a.page-gate.final .crumbs a:hover{color:#fff}
.theme-a.page-gate.final .hero .btn-white{background:#fff;color:#0B1B4A;border-color:#fff}
.theme-a.page-gate.final .hero .btn-white:hover{background:#DDE7FF}
.theme-a.page-gate.final .hero .btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
.theme-a.page-gate.final .hero .btn-ghost:hover{background:rgba(255,255,255,.12);color:#fff}
.theme-a.page-gate.final .eta span{color:rgba(225,233,255,.8);border-color:rgba(255,255,255,.3)}
.theme-a.page-gate.final .sec{background:#0B1B4A;border-bottom-color:rgba(255,255,255,.08)}
.theme-a.page-gate.final .eyebrow{color:#8FB4FF}
.theme-a.page-gate.final .two .card,.theme-a.page-gate.final .two .card.launch,.theme-a.page-gate.final .two .card + .card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);color:#F5F7FF}
.theme-a.page-gate.final .two .card:hover{border-color:#8FB4FF;background:rgba(255,255,255,.09)}
.theme-a.page-gate.final .two .card:hover h3{color:#CFE0FF}
.theme-a.page-gate.final .card .num{color:rgba(225,233,255,.55)}
.theme-a.page-gate.final .card .who,.theme-a.page-gate.final .card .desc,.theme-a.page-gate.final .card.launch .who,.theme-a.page-gate.final .card.launch .desc{color:rgba(225,233,255,.78)}
.theme-a.page-gate.final .card .tag.live,.theme-a.page-gate.final .card.launch .tag.live{color:#fff;border-color:rgba(255,255,255,.5)}
.theme-a.page-gate.final .card .tag.live i,.theme-a.page-gate.final .card.launch .tag.live i{background:#8FB4FF}
.theme-a.page-gate.final .card .go,.theme-a.page-gate.final .two .card.launch .go{color:#8FB4FF}
/* 다른 페이지에서 Gate로 가는 카드·탭 링크 색도 블루로 */
.ent.final .ent-others .card.gate .go{color:#1640B8}
.page-launch.final .card.gate .go{color:#8FB4FF}

/* =========================================================
   Gate 블루를 토스 톤으로 (밝은 #3182F6 → #1B64DA · 하단은 라이트 그레이 #F2F4F6)
   ========================================================= */
.final{--toss:#3182F6;--toss-d:#1B64DA;--toss-ink:#191F28;--toss-gray:#F2F4F6;--toss-sub:#4E5968}
/* 홈 Gate 카드·미리보기 */
.theme-b.page-index.final .card.gate{background:linear-gradient(160deg,#3182F6 0%,#1B64DA 100%)!important}
.theme-b.page-index.final .card.gate li::before{border-color:#fff}
.theme-b.page-index.final .card.gate .num,.theme-b.page-index.final .card.gate .url,.theme-b.page-index.final .card.gate .who{color:rgba(255,255,255,.8)}
.theme-b.page-index.final .card.gate .desc,.theme-b.page-index.final .card.gate li{color:rgba(255,255,255,.92)}
.theme-b.page-index.final .card.gate .btn-dark{color:var(--toss-d)}
.theme-b.page-index.final .card.gate .btn-dark:hover{background:#E8F3FF}
.pv-g{background:linear-gradient(160deg,#3182F6 0%,#1B64DA 100%);border-color:#2a74e8}
.pv-g .pv-bar,.pv-g .pv-foot{border-color:rgba(255,255,255,.2);color:rgba(255,255,255,.8)}
.pv-g .pv-foot .pv-tag.g{background:rgba(255,255,255,.2);color:#fff}
.pv-g .gate-word{background-image:linear-gradient(90deg,transparent 0 40%,rgba(255,255,255,.95) 50%,transparent 60% 100%)}
.pv-g .lock{color:rgba(255,255,255,.88)}
.pv-tag.g,.fit-panel .pv-tag.g{background:#E8F3FF;color:var(--toss-d)}
.seg button#fit-t3 em{color:var(--toss)}.seg button#fit-t3[aria-selected="true"] em{color:#90C2FF}
.spot.gate::before{background:radial-gradient(360px circle at var(--mx,50%) var(--my,0%),rgba(255,255,255,.22),transparent 60%)}

/* Gate 상세: 밝은 토스 블루 히어로 + 라이트 하단 */
main.theme-a.page-gate.final{background:var(--toss-gray);color:var(--toss-ink)}
.theme-a.page-gate.final .hero{background:
  radial-gradient(60% 60% at 85% 15%,rgba(255,255,255,.22),transparent 60%),
  linear-gradient(160deg,#3182F6 0%,#1B64DA 100%);border-bottom:0}
.theme-a.page-gate.final .hero .grid-bg{opacity:.06}
.theme-a.page-gate.final .hero p.sub{color:rgba(255,255,255,.9)}
.theme-a.page-gate.final .pill{border-color:rgba(255,255,255,.8);background:rgba(255,255,255,.12)}
.theme-a.page-gate.final .pill i{background:#fff}
.theme-a.page-gate.final .crumbs,.theme-a.page-gate.final .crumbs a{color:rgba(255,255,255,.75)}
.theme-a.page-gate.final .hero .btn-white{color:var(--toss-d)}
.theme-a.page-gate.final .hero .btn-white:hover{background:#E8F3FF}
.theme-a.page-gate.final .hero .btn-ghost{border-color:rgba(255,255,255,.7)}
.theme-a.page-gate.final .eta span{color:#fff;border-color:rgba(255,255,255,.45)}
.theme-a.page-gate.final .sec{background:var(--toss-gray);border-bottom:0}
.theme-a.page-gate.final .eyebrow{color:var(--toss)}
.theme-a.page-gate.final .sec-head .display{color:var(--toss-ink)}
.theme-a.page-gate.final .two .card,.theme-a.page-gate.final .two .card.launch,.theme-a.page-gate.final .two .card + .card{background:#fff;border:1px solid #E5E8EB;color:var(--toss-ink)}
.theme-a.page-gate.final .two .card:hover{border-color:var(--toss);background:#fff;box-shadow:0 8px 24px -12px rgba(49,130,246,.35)}
.theme-a.page-gate.final .two .card h3,.theme-a.page-gate.final .two .card.launch h3{color:var(--toss-ink)}
.theme-a.page-gate.final .two .card:hover h3{color:var(--toss)}
.theme-a.page-gate.final .card .num{color:#8B95A1}
.theme-a.page-gate.final .card .who,.theme-a.page-gate.final .card .desc,.theme-a.page-gate.final .card.launch .who,.theme-a.page-gate.final .card.launch .desc{color:var(--toss-sub)}
.theme-a.page-gate.final .card .tag.live,.theme-a.page-gate.final .card.launch .tag.live{color:var(--toss-d);border-color:#C9E2FF;background:#E8F3FF}
.theme-a.page-gate.final .card .tag.live i,.theme-a.page-gate.final .card.launch .tag.live i{background:var(--toss)}
.theme-a.page-gate.final .card .go,.theme-a.page-gate.final .two .card.launch .go{color:var(--toss)}
.ent.final .ent-others .card.gate .go{color:var(--toss)}

/* Gate 상세: 밝은 블루 위 상단 메뉴 대비 보정 */
.page-gate-shell .hdr:not(.solid) .logo span{color:#fff}
.page-gate-shell .hdr:not(.solid) .nav a[aria-current="page"]{color:#fff;text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:2px}
.page-gate-shell .hdr:not(.solid) .nav .nav-soon{color:rgba(255,255,255,.75)}

/* =========================================================
   Launch: 제미나이 느낌 그라데이션 (블루 → 퍼플 → 핑크)
   ========================================================= */
.final{--gem:linear-gradient(90deg,#4F8BFF 0%,#9B7BFF 50%,#E26D9E 100%);--gem-d:linear-gradient(135deg,#4F8BFF 0%,#9B7BFF 55%,#E26D9E 100%);--gem-1:#4F8BFF;--gem-2:#9B7BFF;--gem-3:#E26D9E}
/* 텍스트 그라데이션 */
.theme-b.page-launch.final .grad,.theme-b.page-launch.final .hero .grad{background-image:var(--gem)!important}
.theme-b.page-launch.final .eyebrow,.theme-b.page-launch.final .hero .pill,.theme-b.page-launch.final .choose .q,.theme-b.page-launch.final .plan .k{background:var(--gem);-webkit-background-clip:text;background-clip:text;color:transparent!important}
.theme-b.page-launch.final .plan.paid .k{background:none;color:rgba(235,235,245,.45)!important}
/* 버튼 */
.theme-b.page-launch.final .btn-emerald{background:var(--gem-d)!important;color:#fff!important;border:0}
.theme-b.page-launch.final .btn-emerald:hover{filter:brightness(1.08)}
/* 히어로 영상 위 광원 */
.theme-b.page-launch.final .hero .veil{background:
  radial-gradient(60% 55% at 50% 50%,rgba(0,0,0,.72),rgba(0,0,0,.35) 75%),
  radial-gradient(55% 50% at 20% 0%,rgba(79,139,255,.28),transparent 70%),
  radial-gradient(55% 50% at 85% 10%,rgba(226,109,158,.22),transparent 70%),
  linear-gradient(180deg,rgba(0,0,0,.25),rgba(0,0,0,.1) 40%,rgba(0,0,0,.7))!important}
/* 스텝 */
.theme-b.page-launch.final .step .n{background:#1C1C1E;color:#fff;position:relative}
.theme-b.page-launch.final .step .n::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1.5px;background:var(--gem-d);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}
.theme-b.page-launch.final .step.hl{background:linear-gradient(160deg,rgba(79,139,255,.22),rgba(155,123,255,.14) 45%,#1C1C1E 80%)!important}
.theme-b.page-launch.final .step.hl .n{background:var(--gem-d);color:#fff}
.theme-b.page-launch.final .step.hl .n::before{display:none}
.theme-b.page-launch.final .step .note{background:rgba(155,123,255,.16);color:#C9B8FF}
/* 질문·요금·인용·CTA */
.theme-b.page-launch.final .qs b{background:var(--gem-d);color:#fff}
.theme-b.page-launch.final .plan.free{box-shadow:none;position:relative}
.theme-b.page-launch.final .plan.free::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1.5px;background:var(--gem-d);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
.theme-b.page-launch.final .plan li::before{color:var(--gem-2)}
.theme-b.page-launch.final .quote{border-left:3px solid;border-image:linear-gradient(180deg,#4F8BFF,#9B7BFF,#E26D9E) 1}
.theme-b.page-launch.final .inline-link{color:#A99CFF}
.theme-b.page-launch.final .cta::before{background:radial-gradient(45% 90% at 25% 0%,rgba(79,139,255,.3),transparent 70%),radial-gradient(45% 90% at 80% 0%,rgba(226,109,158,.24),transparent 70%)!important}
.theme-b.page-launch.final .card.launch .go{color:#A99CFF}

/* 홈: Launch 카드 · 미리보기 · 탭 */
.theme-b.page-index.final .card.launch .who{background:var(--gem);-webkit-background-clip:text;background-clip:text;color:transparent}
.theme-b.page-index.final .card.launch .icon.l{background:var(--gem-d);color:#fff}
.theme-b.page-index.final .card.launch li::before{border-color:var(--gem-2)}
.theme-b.page-index.final .card.launch .tag.live{background:rgba(155,123,255,.18);color:#C9B8FF}
.theme-b.page-index.final .card.launch .tag.live i{background:var(--gem-2)}
.theme-b.page-index.final .card.launch .btn-dark{background:var(--gem-d)!important;color:#fff}
.theme-b.page-index.final .card.launch .btn-line{color:#C9B8FF;border-color:rgba(155,123,255,.6)}
.spot.launch::before{background:radial-gradient(360px circle at var(--mx,50%) var(--my,0%),rgba(155,123,255,.26),transparent 60%)}
.prog i{background:var(--gem)}
.pv-l .url em{color:#A99CFF}
.pv-tag.l,.pv-l .pv-foot .pv-tag.l{background:rgba(155,123,255,.18);color:#7B5CE0}
.pv-l .pv-foot .pv-tag.l{color:#C9B8FF}
.flow.five b{background:var(--gem-d);color:#fff}
.seg button#fit-t2 em{background:var(--gem);-webkit-background-clip:text;background-clip:text;color:transparent}
.seg button#fit-t2[aria-selected="true"] em{background:linear-gradient(90deg,#8FB4FF,#C9B8FF,#FF9CC2);-webkit-background-clip:text;background-clip:text;color:transparent}

/* =========================================================
   Launch 전체: 제미나이 그라데이션 애니메이션
   ========================================================= */
.final{--gem-flow:linear-gradient(90deg,#4F8BFF 0%,#9B7BFF 25%,#E26D9E 50%,#9B7BFF 75%,#4F8BFF 100%)}
@keyframes gemFlow{0%{background-position:0% 50%}100%{background-position:200% 50%}}
@keyframes auroraDrift{0%{transform:translate3d(-4%,-2%,0) rotate(0deg) scale(1)}50%{transform:translate3d(4%,3%,0) rotate(8deg) scale(1.08)}100%{transform:translate3d(-2%,5%,0) rotate(-6deg) scale(1.02)}}
@keyframes glowPulse{0%,100%{opacity:.75}50%{opacity:1}}

/* 1) 페이지 전체 배경 오로라 (스크롤해도 뒤에 고정) */
main.theme-b.page-launch.final{position:relative;isolation:isolate;background:#000}
main.theme-b.page-launch.final::before{content:"";position:fixed;inset:-25%;z-index:-1;pointer-events:none;
  background:
    radial-gradient(35% 30% at 18% 28%,rgba(79,139,255,.26),transparent 70%),
    radial-gradient(35% 32% at 82% 38%,rgba(155,123,255,.22),transparent 70%),
    radial-gradient(40% 34% at 50% 88%,rgba(226,109,158,.20),transparent 70%);
  animation:auroraDrift 16s ease-in-out infinite alternate,glowPulse 8s ease-in-out infinite}
.theme-b.page-launch.final .sec,.theme-b.page-launch.final .sec.dark{background:transparent!important}
.theme-b.page-launch.final .sec.tint{background:rgba(255,255,255,.025)!important}
.theme-b.page-launch.final .choose,.theme-b.page-launch.final .step,.theme-b.page-launch.final .plan,.theme-b.page-launch.final .qs div,.theme-b.page-launch.final .cta{background-color:rgba(28,28,30,.72)!important;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.theme-b.page-launch.final .step.hl{background:linear-gradient(160deg,rgba(79,139,255,.24),rgba(155,123,255,.14) 45%,rgba(28,28,30,.72) 80%)!important}

/* 2) 흐르는 그라데이션 텍스트 */
.theme-b.page-launch.final .grad,.theme-b.page-launch.final .hero .grad,
.theme-b.page-launch.final .eyebrow,.theme-b.page-launch.final .hero .pill,
.theme-b.page-launch.final .choose .q,.theme-b.page-launch.final .plan.free .k{
  background-image:var(--gem-flow)!important;background-size:200% 100%!important;-webkit-background-clip:text!important;background-clip:text!important;color:transparent!important;animation:gemFlow 6s linear infinite}

/* 3) 흐르는 그라데이션 면 (버튼·번호·배지) */
.theme-b.page-launch.final .btn-emerald,.theme-b.page-launch.final .step.hl .n,.theme-b.page-launch.final .qs b{background-image:var(--gem-flow)!important;background-size:200% 100%!important;animation:gemFlow 5s linear infinite}
.theme-b.page-launch.final .btn-emerald{box-shadow:0 8px 28px -10px rgba(155,123,255,.65)}

/* 4) 흐르는 그라데이션 테두리 */
.theme-b.page-launch.final .step .n::before,.theme-b.page-launch.final .plan.free::before{background-image:var(--gem-flow)!important;background-size:200% 100%!important;animation:gemFlow 5s linear infinite}
.theme-b.page-launch.final .quote{border-image:none;border-left:0;position:relative;padding-left:22px}
.theme-b.page-launch.final .quote::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;border-radius:3px;background:var(--gem-flow);background-size:100% 200%;animation:gemFlowY 5s linear infinite}
@keyframes gemFlowY{0%{background-position:50% 0%}100%{background-position:50% 200%}}

/* 5) 히어로·CTA 광원도 천천히 움직이게 */
.theme-b.page-launch.final .hero::after{content:"";position:absolute;inset:-20%;z-index:1;pointer-events:none;
  background:radial-gradient(30% 35% at 25% 20%,rgba(79,139,255,.22),transparent 70%),radial-gradient(30% 35% at 78% 25%,rgba(226,109,158,.18),transparent 70%);
  animation:auroraDrift 12s ease-in-out infinite alternate;mix-blend-mode:screen}
.theme-b.page-launch.final .hero .wrap{z-index:2}
.theme-b.page-launch.final .cta::before{animation:auroraDrift 10s ease-in-out infinite alternate}

@media (prefers-reduced-motion:reduce){
  main.theme-b.page-launch.final::before,.theme-b.page-launch.final .hero::after,.theme-b.page-launch.final .cta::before,
  .theme-b.page-launch.final .grad,.theme-b.page-launch.final .eyebrow,.theme-b.page-launch.final .hero .pill,.theme-b.page-launch.final .choose .q,.theme-b.page-launch.final .plan.free .k,
  .theme-b.page-launch.final .btn-emerald,.theme-b.page-launch.final .step.hl .n,.theme-b.page-launch.final .qs b,
  .theme-b.page-launch.final .step .n::before,.theme-b.page-launch.final .plan.free::before,.theme-b.page-launch.final .quote::before{animation:none!important}
}

/* 서비스 소개 영상 밴드: 영상은 더 어둡게, 글자는 더 밝게 */
.vb-veil{background:linear-gradient(180deg,rgba(2,6,23,.55),rgba(2,6,23,.4) 45%,rgba(2,6,23,.7)),rgba(2,6,23,.25)!important}
.vband .eyebrow{color:#A8D8FF}
.vband .display{color:#fff}
.vband .grad{background-image:linear-gradient(90deg,#9DD3FF,#C4B8FF 55%,#FFB3CF)}
.vband .lead{color:rgba(255,255,255,.92)}
.vb-item{background:rgba(2,6,23,.55)}
.vb-item .k{color:rgba(255,255,255,.7)}
.vb-item h3{color:#fff}
.vb-item p{color:rgba(255,255,255,.88)}

/* =========================================================
   서비스 소개(홈) 브랜드 컬러 통일 — 로고 인디고 + axlift 인디고→스카이 그라데이션
   메인/활성/면 처리를 한 체계로 (서비스 카드 고유색은 유지)
   ========================================================= */
.final{--brand:#6366F1;--brand-d:#4F46E5;--brand-sky:#38BDF8;--brand-soft:#EEF0FF;--brand-line:#C7CAFF;
  --brand-grad:linear-gradient(90deg,#6366F1 0%,#7C6CF6 45%,#38BDF8 100%);
  --brand-grad-d:linear-gradient(135deg,#5B5BF0 0%,#7C6CF6 45%,#2FA8EE 100%)}

/* 상단 메뉴 CTA (전 페이지 공통 메뉴이므로 전체 적용) */
.final .hdr .nav .btn-sm,.final .hdr.solid .nav .btn-sm{background:var(--brand-grad-d)!important;color:#fff!important;border:0;box-shadow:0 6px 18px -8px rgba(99,102,241,.6)}
.final .hdr .nav .btn-sm:hover{filter:brightness(1.07)}
.final .hdr.solid .nav a[aria-current="page"],.final .hdr .nav a[aria-current="page"]{color:var(--brand)}
.final .drawer .drawer-cta{background:var(--brand-grad-d)}
.final .drawer a[aria-current="page"]{color:var(--brand)}

/* 버튼: 주 = 그라데이션 / 보조 = 인디고 라인 */
.theme-b.page-index.final .btn-dark,.theme-b.page-index.final .btn-white{background:var(--brand-grad-d)!important;color:#fff!important;border:0!important;box-shadow:0 8px 22px -12px rgba(99,102,241,.7)}
.theme-b.page-index.final .btn-dark:hover,.theme-b.page-index.final .btn-white:hover{filter:brightness(1.07)}
.theme-b.page-index.final .btn-line{background:#fff!important;color:var(--brand-d)!important;border:1.5px solid var(--brand-line)!important}
.theme-b.page-index.final .btn-line:hover{border-color:var(--brand)!important;background:var(--brand-soft)!important}
/* 서비스 카드 안 버튼은 각 서비스 톤 유지 */
.theme-b.page-index.final .card.launch .btn-dark{background:var(--gem-d)!important;box-shadow:none}
.theme-b.page-index.final .card.launch .btn-line{background:transparent!important;color:#C9B8FF!important;border-color:rgba(155,123,255,.6)!important}
.theme-b.page-index.final .card.gate .btn-dark{background:#fff!important;color:#1B64DA!important;box-shadow:none}
.theme-b.page-index.final .card.gate .btn-line{background:transparent!important;color:#fff!important;border-color:rgba(255,255,255,.55)!important}

/* 텍스트 강조·라벨 */
.theme-b.page-index.final .grad,.theme-b.page-index.final .grad-dark{background-image:var(--brand-grad)!important}
.theme-b.page-index.final .eyebrow,.theme-b.page-index.final .hx .pill{color:var(--brand)}
.theme-b.page-index.final .card:not(.launch):not(.gate) .who{color:var(--brand)}
.theme-b.page-index.final .card:not(.launch):not(.gate) li::before{border-color:var(--brand)}
.theme-b.page-index.final .card .icon.e{background:var(--brand-grad-d)}
.theme-b.page-index.final .box .lnk,.theme-b.page-index.final .mail span[aria-hidden]{color:var(--brand)}
.theme-b.page-index.final .mail:hover{box-shadow:0 0 0 1.5px var(--brand-line)}

/* 히어로 바탕 · 미리보기(Enterprise) */
.theme-b.page-index.final .hx{background:
  radial-gradient(45% 45% at 30% 0%,rgba(99,102,241,.14),transparent 70%),
  radial-gradient(45% 45% at 75% 5%,rgba(56,189,248,.12),transparent 70%),var(--bg)}
.bars span{background:var(--brand-grad-d)!important}
.msg.me{background:var(--brand-soft)}
.pv-tag.e,.fit-panel .pv-tag.e{background:var(--brand-soft);color:var(--brand-d)}
.pv-card:focus-visible{outline-color:var(--brand)}

/* 활성 상태: 상황 선택 탭 */
.seg button:hover{border-color:var(--brand)}
.seg button[aria-selected="true"]{background:var(--brand-grad-d)!important;border-color:transparent!important;color:#fff}
.seg button[aria-selected="true"]::after{background:#7C6CF6}
.seg button em,.seg button#fit-t1 em{color:var(--brand)}
.seg button[aria-selected="true"] em,.seg button#fit-t2[aria-selected="true"] em,.seg button#fit-t3[aria-selected="true"] em{background:none!important;-webkit-background-clip:border-box!important;background-clip:border-box!important;color:rgba(255,255,255,.85)!important}
.seg button:focus-visible{outline-color:var(--brand)}
.fit-panel{border:1.5px solid var(--brand-line)}
.flow b{color:var(--brand)}
.flow.five b{background:var(--brand-grad-d)}

/* 숫자 타일 */
.nums b{background:var(--brand-grad);-webkit-background-clip:text;background-clip:text;color:transparent}

/* 영상 밴드 강조색도 브랜드 */
.vband .eyebrow{color:#A5B4FC}
.vband .grad{background-image:linear-gradient(90deg,#A5B4FC,#C4B5FD 45%,#7DD3FC)!important}
.vb-item:hover{border-color:rgba(165,180,252,.55)}
.spot:not(.launch):not(.gate)::before{background:radial-gradient(360px circle at var(--mx,50%) var(--my,0%),rgba(99,102,241,.12),transparent 60%)}

/* =========================================================
   Launch: 맥 시리 활성화 느낌의 화면 가장자리 그라데이션 글로우
   ========================================================= */
@property --siri-a{syntax:"<angle>";inherits:false;initial-value:0deg}
@keyframes siriSpin{to{--siri-a:360deg}}
@keyframes siriBreath{0%,100%{opacity:.55}50%{opacity:.95}}
@keyframes siriIn{from{opacity:0;transform:scale(1.03)}to{opacity:1;transform:none}}
.page-launch-shell::before,.page-launch-shell::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:70;
  background:conic-gradient(from var(--siri-a),#4F8BFF,#9B7BFF,#E26D9E,#FF9F6B,#E26D9E,#9B7BFF,#4F8BFF);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
/* 선명한 테두리 라인 */
.page-launch-shell::before{padding:3px;animation:siriSpin 5s linear infinite,siriIn 1.2s cubic-bezier(.2,.8,.2,1) both}
/* 안쪽으로 번지는 부드러운 빛 */
.page-launch-shell::after{padding:28px;filter:blur(22px);animation:siriSpin 5s linear infinite,siriBreath 4s ease-in-out infinite,siriIn 1.6s cubic-bezier(.2,.8,.2,1) both;transition:padding .4s ease}
/* 주 버튼에 마우스를 올리면 더 강하게 반응 */
.page-launch-shell:has(.btn-emerald:hover)::after{padding:44px;animation:siriSpin 2.5s linear infinite;opacity:1}
.page-launch-shell:has(.btn-emerald:hover)::before{animation:siriSpin 2.5s linear infinite;padding:4px}
@media (max-width:719px){.page-launch-shell::after{padding:18px;filter:blur(14px)}.page-launch-shell::before{padding:2px}}
@media (prefers-reduced-motion:reduce){.page-launch-shell::before,.page-launch-shell::after{animation:none!important;opacity:.7}}

/* =========================================================
   Launch 시리 글로우 v2: 선 없이, 가장자리에서 빛이 흐르는 그라데이션
   ::before = 회전하는 컬러 빛(강한 블러) · ::after = 떠다니는 컬러 덩어리 · 둘 다 가운데로 갈수록 투명
   ========================================================= */
@keyframes siriDrift{
  0%{background-position:0% 0%,100% 0%,100% 100%,0% 100%}
  25%{background-position:50% 0%,100% 60%,40% 100%,0% 30%}
  50%{background-position:100% 0%,100% 100%,0% 100%,0% 0%}
  75%{background-position:100% 50%,50% 100%,0% 50%,40% 0%}
  100%{background-position:0% 0%,100% 0%,100% 100%,0% 100%}}
@keyframes siriGlow{0%,100%{opacity:.7}50%{opacity:1}}
.page-launch-shell::before,.page-launch-shell::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:70;padding:0;
  -webkit-mask:radial-gradient(135% 125% at 50% 50%,transparent 56%,rgba(0,0,0,.55) 74%,#000 96%);
  mask:radial-gradient(135% 125% at 50% 50%,transparent 56%,rgba(0,0,0,.55) 74%,#000 96%);
  -webkit-mask-composite:source-over;mask-composite:add;transition:-webkit-mask .6s ease,mask .6s ease,opacity .6s ease}
/* 회전하는 빛 */
.page-launch-shell::before{inset:-12%;
  background:conic-gradient(from var(--siri-a) at 50% 50%,#4F8BFF,#8E7BFF,#E26D9E,#FF9F6B,#FFD36E,#E26D9E,#8E7BFF,#4F8BFF);
  filter:blur(60px) saturate(1.3);opacity:.9;
  animation:siriSpin 9s linear infinite,siriIn 1.6s cubic-bezier(.2,.8,.2,1) both}
/* 떠다니는 컬러 덩어리 (다른 속도로 섞여서 자연스럽게) */
.page-launch-shell::after{
  background:
    radial-gradient(28% 34% at 50% 50%,rgba(79,139,255,.95),transparent 70%),
    radial-gradient(26% 32% at 50% 50%,rgba(155,123,255,.9),transparent 70%),
    radial-gradient(30% 34% at 50% 50%,rgba(226,109,158,.9),transparent 70%),
    radial-gradient(24% 30% at 50% 50%,rgba(255,159,107,.85),transparent 70%);
  background-size:70% 70%,65% 65%,72% 72%,60% 60%;background-repeat:no-repeat;
  filter:blur(40px);mix-blend-mode:screen;
  animation:siriDrift 14s ease-in-out infinite,siriGlow 5s ease-in-out infinite,siriIn 2s cubic-bezier(.2,.8,.2,1) both}
/* 주 버튼 hover: 빛이 안쪽으로 더 번지며 빨라짐 */
.page-launch-shell:has(.btn-emerald:hover)::before,.page-launch-shell:has(.btn-emerald:hover)::after{
  -webkit-mask:radial-gradient(135% 125% at 50% 50%,transparent 44%,rgba(0,0,0,.6) 66%,#000 92%);
  mask:radial-gradient(135% 125% at 50% 50%,transparent 44%,rgba(0,0,0,.6) 66%,#000 92%);padding:0}
.page-launch-shell:has(.btn-emerald:hover)::before{animation:siriSpin 4s linear infinite;opacity:1}
@media (max-width:719px){.page-launch-shell::before{filter:blur(40px)}.page-launch-shell::after{filter:blur(28px)}}
@media (prefers-reduced-motion:reduce){.page-launch-shell::before,.page-launch-shell::after{animation:none!important;opacity:.75}}
/* v2.1: 사각형 가장자리 기준 페이드 (네 변 모두 고르게, 안쪽으로 부드럽게 사라짐) */
.page-launch-shell::before,.page-launch-shell::after{
  -webkit-mask:linear-gradient(90deg,#000 0,rgba(0,0,0,.35) 7%,transparent 16%,transparent 84%,rgba(0,0,0,.35) 93%,#000 100%),linear-gradient(180deg,#000 0,rgba(0,0,0,.35) 8%,transparent 18%,transparent 82%,rgba(0,0,0,.35) 92%,#000 100%);
  mask:linear-gradient(90deg,#000 0,rgba(0,0,0,.35) 7%,transparent 16%,transparent 84%,rgba(0,0,0,.35) 93%,#000 100%),linear-gradient(180deg,#000 0,rgba(0,0,0,.35) 8%,transparent 18%,transparent 82%,rgba(0,0,0,.35) 92%,#000 100%);
  -webkit-mask-composite:source-over;mask-composite:add}
.page-launch-shell::before{inset:0;filter:blur(38px) saturate(1.35);opacity:.95}
.page-launch-shell::after{filter:blur(30px)}
.page-launch-shell:has(.btn-emerald:hover)::before,.page-launch-shell:has(.btn-emerald:hover)::after{
  -webkit-mask:linear-gradient(90deg,#000 0,rgba(0,0,0,.45) 11%,transparent 24%,transparent 76%,rgba(0,0,0,.45) 89%,#000 100%),linear-gradient(180deg,#000 0,rgba(0,0,0,.45) 12%,transparent 26%,transparent 74%,rgba(0,0,0,.45) 88%,#000 100%);
  mask:linear-gradient(90deg,#000 0,rgba(0,0,0,.45) 11%,transparent 24%,transparent 76%,rgba(0,0,0,.45) 89%,#000 100%),linear-gradient(180deg,#000 0,rgba(0,0,0,.45) 12%,transparent 26%,transparent 74%,rgba(0,0,0,.45) 88%,#000 100%);
  -webkit-mask-composite:source-over;mask-composite:add}
@media (max-width:719px){.page-launch-shell::before{filter:blur(26px)}.page-launch-shell::after{filter:blur(20px)}}
/* 강도 한 단계 낮춤 — 상단 메뉴 가독성 유지 */
.page-launch-shell::before{opacity:.78}
@keyframes siriGlow{0%,100%{opacity:.5}50%{opacity:.8}}
.page-launch-shell:has(.btn-emerald:hover)::before{opacity:.95}

/* =========================================================
   Launch: 제미나이 앱 시작 화면의 하단 그라데이션 모션 (시리 가장자리 글로우 대체)
   ::before = 흐르는 그라데이션을 점무늬(하프톤)로 드러냄 · ::after = 아래에서 번지는 색 빛
   화면 하단에 고정 · 클릭 방해 없음 · 헤더(50) 아래
   ========================================================= */
@keyframes gemRise{from{opacity:0;transform:translateY(38%) scaleY(.7)}to{opacity:1;transform:none}}
@keyframes gemBreath{0%,100%{transform:scaleY(1)}50%{transform:scaleY(1.14)}}
@keyframes gemSway{0%{background-position:0% 100%,100% 100%,50% 100%}50%{background-position:30% 100%,70% 100%,60% 100%}100%{background-position:10% 100%,90% 100%,40% 100%}}
.page-launch-shell::before,.page-launch-shell::after{content:"";position:fixed;left:0;right:0;top:auto;bottom:0;inset:auto 0 0 0;pointer-events:none;z-index:40;padding:0;filter:none;opacity:1;transition:none;transform-origin:50% 100%;mix-blend-mode:screen;
  -webkit-mask:none;mask:none}
/* 점무늬: 흐르는 제미나이 그라데이션 ∩ 점 격자 ∩ 위로 사라지는 물결 모양 */
.page-launch-shell::before{height:52vh;
  background:linear-gradient(90deg,#4F8BFF 0%,#8E7BFF 30%,#C77DFF 50%,#8E7BFF 70%,#4F8BFF 100%);background-size:200% 100%;
  -webkit-mask:radial-gradient(circle,#000 0 1.1px,transparent 1.8px) 0 0/9px 9px,radial-gradient(120% 95% at 50% 100%,#000 0%,rgba(0,0,0,.55) 38%,transparent 72%);
  -webkit-mask-composite:source-in;
  mask:radial-gradient(circle,#000 0 1.1px,transparent 1.8px) 0 0/9px 9px,radial-gradient(120% 95% at 50% 100%,#000 0%,rgba(0,0,0,.55) 38%,transparent 72%);
  mask-composite:intersect;
  opacity:.9;
  animation:gemRise 1.8s cubic-bezier(.2,.8,.2,1) both,gemFlow 8s linear infinite,gemBreath 6s ease-in-out 1.8s infinite}
/* 부드러운 색 빛 */
.page-launch-shell::after{height:48vh;
  background:
    radial-gradient(55% 75% at 50% 100%,rgba(79,139,255,.55),transparent 70%),
    radial-gradient(50% 70% at 50% 100%,rgba(155,123,255,.5),transparent 70%),
    radial-gradient(35% 55% at 50% 100%,rgba(226,109,158,.32),transparent 70%);
  background-size:120% 100%,110% 100%,100% 100%;background-repeat:no-repeat;
  filter:blur(24px);opacity:.85;
  animation:gemRise 2s cubic-bezier(.2,.8,.2,1) both,gemSway 12s ease-in-out infinite alternate,gemBreath 7s ease-in-out 2s infinite}
/* 주 버튼 hover: 빛이 조금 더 올라옴 */
.page-launch-shell:has(.btn-emerald:hover)::before{height:62vh;opacity:1}
.page-launch-shell:has(.btn-emerald:hover)::after{height:58vh;opacity:1}
@media (max-width:719px){.page-launch-shell::before{height:42vh}.page-launch-shell::after{height:38vh}}
@media (prefers-reduced-motion:reduce){.page-launch-shell::before,.page-launch-shell::after{animation:none!important}}

/* =========================================================
   Launch 하단 제미나이 모션 → 배경으로 (콘텐츠 뒤) · 블러 강화
   main(isolation) 안의 z-index:-1 층: ::before = 색 빛, ::after = 점무늬
   ========================================================= */
.page-launch-shell::before,.page-launch-shell::after{content:none!important}
main.theme-b.page-launch.final::before,main.theme-b.page-launch.final::after{content:"";position:fixed;left:0;right:0;bottom:0;top:auto;inset:auto 0 0 0;z-index:-1;pointer-events:none;transform-origin:50% 100%}
/* 색 빛 (강한 블러) */
main.theme-b.page-launch.final::before{height:70vh;
  background:
    radial-gradient(55% 75% at 50% 100%,rgba(79,139,255,.75),transparent 70%),
    radial-gradient(50% 70% at 50% 100%,rgba(155,123,255,.7),transparent 70%),
    radial-gradient(38% 60% at 50% 100%,rgba(226,109,158,.45),transparent 70%);
  background-size:130% 100%,115% 100%,100% 100%;background-repeat:no-repeat;
  filter:blur(56px) saturate(1.2);opacity:.9;
  animation:gemRise 2s cubic-bezier(.2,.8,.2,1) both,gemSway 12s ease-in-out infinite alternate,gemBreath 7s ease-in-out 2s infinite!important}
/* 점무늬 (살짝 블러해 부드러운 빛 입자로) */
main.theme-b.page-launch.final::after{height:58vh;
  background:linear-gradient(90deg,#4F8BFF 0%,#8E7BFF 30%,#C77DFF 50%,#8E7BFF 70%,#4F8BFF 100%);background-size:200% 100%;
  -webkit-mask:radial-gradient(circle,#000 0 1.2px,transparent 2px) 0 0/10px 10px,radial-gradient(120% 95% at 50% 100%,#000 0%,rgba(0,0,0,.5) 40%,transparent 74%);
  -webkit-mask-composite:source-in;
  mask:radial-gradient(circle,#000 0 1.2px,transparent 2px) 0 0/10px 10px,radial-gradient(120% 95% at 50% 100%,#000 0%,rgba(0,0,0,.5) 40%,transparent 74%);
  mask-composite:intersect;
  filter:blur(1.4px);opacity:.8;
  animation:gemRise 1.8s cubic-bezier(.2,.8,.2,1) both,gemFlow 8s linear infinite,gemBreath 6s ease-in-out 1.8s infinite}
/* 영상 히어로 안쪽은 그대로, 본문 섹션은 투명해서 배경이 비침 (이미 적용) · 카드 반투명 유리 */
.theme-b.page-launch.final .choose,.theme-b.page-launch.final .step,.theme-b.page-launch.final .plan,.theme-b.page-launch.final .qs div,.theme-b.page-launch.final .cta{background-color:rgba(20,20,24,.62)!important;backdrop-filter:blur(18px) saturate(1.2);-webkit-backdrop-filter:blur(18px) saturate(1.2)}
@media (max-width:719px){main.theme-b.page-launch.final::before{height:55vh;filter:blur(40px)}main.theme-b.page-launch.final::after{height:45vh}}
@media (prefers-reduced-motion:reduce){main.theme-b.page-launch.final::before,main.theme-b.page-launch.final::after{animation:none!important}}

/* =========================================================
   1) Launch 하단 빛: 컬러 변화 + 영역 축소
   ========================================================= */
@keyframes gemHueGlow{0%{filter:blur(56px) saturate(1.25) hue-rotate(0deg)}33%{filter:blur(56px) saturate(1.35) hue-rotate(55deg)}66%{filter:blur(56px) saturate(1.3) hue-rotate(-40deg)}100%{filter:blur(56px) saturate(1.25) hue-rotate(0deg)}}
@keyframes gemHueDots{0%{filter:blur(1.4px) hue-rotate(0deg)}33%{filter:blur(1.4px) hue-rotate(55deg)}66%{filter:blur(1.4px) hue-rotate(-40deg)}100%{filter:blur(1.4px) hue-rotate(0deg)}}
main.theme-b.page-launch.final::before{height:42vh;
  animation:gemRise 2s cubic-bezier(.2,.8,.2,1) both,gemSway 12s ease-in-out infinite alternate,gemBreath 7s ease-in-out 2s infinite,gemHueGlow 14s ease-in-out infinite!important}
main.theme-b.page-launch.final::after{height:36vh;
  animation:gemRise 1.8s cubic-bezier(.2,.8,.2,1) both,gemFlow 8s linear infinite,gemBreath 6s ease-in-out 1.8s infinite,gemHueDots 14s ease-in-out infinite!important}
@media (max-width:719px){main.theme-b.page-launch.final::before{height:34vh}main.theme-b.page-launch.final::after{height:28vh}}

/* =========================================================
   2) Siri 가장자리 빛: AXlift 전 페이지 공통 (html 가상요소 · 좁은 영역 · 강한 블러 · 색 변화)
   ========================================================= */
@keyframes siriHueA{0%{filter:blur(64px) saturate(1.35) hue-rotate(0deg)}50%{filter:blur(64px) saturate(1.45) hue-rotate(70deg)}100%{filter:blur(64px) saturate(1.35) hue-rotate(0deg)}}
@keyframes siriHueB{0%{filter:blur(48px) hue-rotate(0deg)}50%{filter:blur(48px) hue-rotate(-60deg)}100%{filter:blur(48px) hue-rotate(0deg)}}
:root:has(body.final)::before,:root:has(body.final)::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:45;
  -webkit-mask:linear-gradient(90deg,#000 0,rgba(0,0,0,.3) 4%,transparent 9%,transparent 91%,rgba(0,0,0,.3) 96%,#000 100%),linear-gradient(180deg,#000 0,rgba(0,0,0,.3) 5%,transparent 11%,transparent 89%,rgba(0,0,0,.3) 95%,#000 100%);
  -webkit-mask-composite:source-over;
  mask:linear-gradient(90deg,#000 0,rgba(0,0,0,.3) 4%,transparent 9%,transparent 91%,rgba(0,0,0,.3) 96%,#000 100%),linear-gradient(180deg,#000 0,rgba(0,0,0,.3) 5%,transparent 11%,transparent 89%,rgba(0,0,0,.3) 95%,#000 100%);
  mask-composite:add}
/* 회전하는 빛 */
:root:has(body.final)::before{
  background:conic-gradient(from var(--siri-a) at 50% 50%,#4F8BFF,#8E7BFF,#E26D9E,#FF9F6B,#FFD36E,#E26D9E,#8E7BFF,#4F8BFF);
  opacity:.6;animation:siriSpin 10s linear infinite,siriHueA 16s ease-in-out infinite,siriIn 1.6s cubic-bezier(.2,.8,.2,1) both}
/* 떠다니는 색 덩어리 */
:root:has(body.final)::after{
  background:
    radial-gradient(28% 34% at 50% 50%,rgba(79,139,255,.9),transparent 70%),
    radial-gradient(26% 32% at 50% 50%,rgba(155,123,255,.85),transparent 70%),
    radial-gradient(30% 34% at 50% 50%,rgba(226,109,158,.85),transparent 70%),
    radial-gradient(24% 30% at 50% 50%,rgba(255,159,107,.8),transparent 70%);
  background-size:70% 70%,65% 65%,72% 72%,60% 60%;background-repeat:no-repeat;
  opacity:.5;animation:siriDrift 16s ease-in-out infinite,siriHueB 20s ease-in-out infinite,siriIn 2s cubic-bezier(.2,.8,.2,1) both}
@media (max-width:719px){:root:has(body.final)::before{opacity:.5}:root:has(body.final)::after{opacity:.4}}
@media (prefers-reduced-motion:reduce){:root:has(body.final)::before,:root:has(body.final)::after,main.theme-b.page-launch.final::before,main.theme-b.page-launch.final::after{animation:none!important}}
/* 시리 가장자리 빛 v3: 얇게 · 블러 강화 · 경계 없이 번지게 (다단계 페이드) */
@keyframes siriHueA{0%{filter:blur(90px) saturate(1.4) hue-rotate(0deg)}50%{filter:blur(90px) saturate(1.5) hue-rotate(70deg)}100%{filter:blur(90px) saturate(1.4) hue-rotate(0deg)}}
@keyframes siriHueB{0%{filter:blur(70px) hue-rotate(0deg)}50%{filter:blur(70px) hue-rotate(-60deg)}100%{filter:blur(70px) hue-rotate(0deg)}}
:root:has(body.final)::before,:root:has(body.final)::after{inset:-6%;
  -webkit-mask:
    linear-gradient(90deg,#000 0%,rgba(0,0,0,.78) 6.5%,rgba(0,0,0,.5) 8%,rgba(0,0,0,.28) 9.5%,rgba(0,0,0,.12) 11%,rgba(0,0,0,.04) 12.5%,transparent 14%,transparent 86%,rgba(0,0,0,.04) 87.5%,rgba(0,0,0,.12) 89%,rgba(0,0,0,.28) 90.5%,rgba(0,0,0,.5) 92%,rgba(0,0,0,.78) 93.5%,#000 100%),
    linear-gradient(180deg,#000 0%,rgba(0,0,0,.78) 6.5%,rgba(0,0,0,.5) 8%,rgba(0,0,0,.28) 9.5%,rgba(0,0,0,.12) 11%,rgba(0,0,0,.04) 12.5%,transparent 14%,transparent 86%,rgba(0,0,0,.04) 87.5%,rgba(0,0,0,.12) 89%,rgba(0,0,0,.28) 90.5%,rgba(0,0,0,.5) 92%,rgba(0,0,0,.78) 93.5%,#000 100%);
  -webkit-mask-composite:source-over;
  mask:
    linear-gradient(90deg,#000 0%,rgba(0,0,0,.78) 6.5%,rgba(0,0,0,.5) 8%,rgba(0,0,0,.28) 9.5%,rgba(0,0,0,.12) 11%,rgba(0,0,0,.04) 12.5%,transparent 14%,transparent 86%,rgba(0,0,0,.04) 87.5%,rgba(0,0,0,.12) 89%,rgba(0,0,0,.28) 90.5%,rgba(0,0,0,.5) 92%,rgba(0,0,0,.78) 93.5%,#000 100%),
    linear-gradient(180deg,#000 0%,rgba(0,0,0,.78) 6.5%,rgba(0,0,0,.5) 8%,rgba(0,0,0,.28) 9.5%,rgba(0,0,0,.12) 11%,rgba(0,0,0,.04) 12.5%,transparent 14%,transparent 86%,rgba(0,0,0,.04) 87.5%,rgba(0,0,0,.12) 89%,rgba(0,0,0,.28) 90.5%,rgba(0,0,0,.5) 92%,rgba(0,0,0,.78) 93.5%,#000 100%);
  mask-composite:add}
:root:has(body.final)::before{opacity:.7}
:root:has(body.final)::after{opacity:.55}
@media (max-width:719px){:root:has(body.final)::before,:root:has(body.final)::after{inset:-8%}}

/* =========================================================
   가장자리 빛 → 콘텐츠 '아래'로 (연하게)
   원리: html은 배경 없음 → body 배경이 캔버스에 칠해짐 → :root 가상요소 z-index:-1 이
   캔버스 위·본문 아래에 그려짐. 섹션 배경을 살짝 투명하게 해서 아래 빛이 은은하게 비침.
   ========================================================= */
html:has(body.final){background:transparent}
:root:has(body.final)::before,:root:has(body.final)::after{z-index:-1}
:root:has(body.final)::before{opacity:.75}
:root:has(body.final)::after{opacity:.6}
/* 페이지 바탕색은 body가 담당 */
body.page-index-shell{background:#F5F5F7}
body.page-gate-shell{background:#F2F4F6}
body.page-launch-shell{background:#000}
/* 홈 */
main.theme-b.page-index.final{background:transparent!important}
.theme-b.page-index.final .hx{background:radial-gradient(45% 45% at 30% 0%,rgba(99,102,241,.14),transparent 70%),radial-gradient(45% 45% at 75% 5%,rgba(56,189,248,.12),transparent 70%),rgba(245,245,247,.72)!important}
.theme-b.page-index.final .marq{background:rgba(255,255,255,.72)}
.theme-b.page-index.final .sec,.theme-b.page-index.final #about{background:rgba(245,245,247,.72)!important}
.theme-b.page-index.final .sec.tint,.theme-b.page-index.final #contact{background:rgba(255,255,255,.72)!important}
/* Gate */
main.theme-a.page-gate.final{background:transparent!important}
.theme-a.page-gate.final .sec{background:rgba(242,244,246,.72)!important}
/* Launch: main 검정 → 투명(바탕은 body #000), 하단 제미나이 층은 main 안에서 그대로 */
main.theme-b.page-launch.final{background:transparent!important}
/* Enterprise(원본 Tailwind): 본문 섹션 바탕만 살짝 투명 */
.ent.final main > section.bg-white{background-color:rgba(255,255,255,.72)!important}
.ent.final main > section.bg-ax-ink-50{background-color:rgba(248,250,252,.72)!important}
.ent.final .ent-others{background:rgba(255,255,255,.72)!important}
/* Launch는 섹션이 투명이라 더 진하게 보임 → 한 단계 연하게 */
:root:has(body.page-launch-shell)::before{opacity:.42}
:root:has(body.page-launch-shell)::after{opacity:.32}
/* 가장자리 빛 v5: 색 강하게 · 더 얇게 · 블러 더 */
@keyframes siriHueA{0%{filter:blur(120px) saturate(1.8) hue-rotate(0deg)}50%{filter:blur(120px) saturate(1.9) hue-rotate(70deg)}100%{filter:blur(120px) saturate(1.8) hue-rotate(0deg)}}
@keyframes siriHueB{0%{filter:blur(95px) saturate(1.6) hue-rotate(0deg)}50%{filter:blur(95px) saturate(1.7) hue-rotate(-60deg)}100%{filter:blur(95px) saturate(1.6) hue-rotate(0deg)}}
:root:has(body.final)::before,:root:has(body.final)::after{
  -webkit-mask:
    linear-gradient(90deg,#000 0%,#000 5.4%,rgba(0,0,0,.62) 6.1%,rgba(0,0,0,.34) 6.8%,rgba(0,0,0,.15) 7.5%,rgba(0,0,0,.05) 8.2%,transparent 9%,transparent 91%,rgba(0,0,0,.05) 91.8%,rgba(0,0,0,.15) 92.5%,rgba(0,0,0,.34) 93.2%,rgba(0,0,0,.62) 93.9%,#000 94.6%,#000 100%),
    linear-gradient(180deg,#000 0%,#000 5.4%,rgba(0,0,0,.62) 6.1%,rgba(0,0,0,.34) 6.8%,rgba(0,0,0,.15) 7.5%,rgba(0,0,0,.05) 8.2%,transparent 9%,transparent 91%,rgba(0,0,0,.05) 91.8%,rgba(0,0,0,.15) 92.5%,rgba(0,0,0,.34) 93.2%,rgba(0,0,0,.62) 93.9%,#000 94.6%,#000 100%);
  -webkit-mask-composite:source-over;
  mask:
    linear-gradient(90deg,#000 0%,#000 5.4%,rgba(0,0,0,.62) 6.1%,rgba(0,0,0,.34) 6.8%,rgba(0,0,0,.15) 7.5%,rgba(0,0,0,.05) 8.2%,transparent 9%,transparent 91%,rgba(0,0,0,.05) 91.8%,rgba(0,0,0,.15) 92.5%,rgba(0,0,0,.34) 93.2%,rgba(0,0,0,.62) 93.9%,#000 94.6%,#000 100%),
    linear-gradient(180deg,#000 0%,#000 5.4%,rgba(0,0,0,.62) 6.1%,rgba(0,0,0,.34) 6.8%,rgba(0,0,0,.15) 7.5%,rgba(0,0,0,.05) 8.2%,transparent 9%,transparent 91%,rgba(0,0,0,.05) 91.8%,rgba(0,0,0,.15) 92.5%,rgba(0,0,0,.34) 93.2%,rgba(0,0,0,.62) 93.9%,#000 94.6%,#000 100%);
  mask-composite:add}
:root:has(body.final)::before{opacity:1}
:root:has(body.final)::after{opacity:.85}
:root:has(body.page-launch-shell)::before{opacity:.7}
:root:has(body.page-launch-shell)::after{opacity:.55}
/* 가장자리(테두리) 빛: Gate·Launch에서는 끔 — 홈·AXlift(Enterprise)만 */
:root:has(body.page-launch-shell)::before,:root:has(body.page-launch-shell)::after,
:root:has(body.page-gate-shell)::before,:root:has(body.page-gate-shell)::after{content:none!important;display:none!important}

/* 푸터: 배경은 가장자리 빛 '아래', 글자는 위 → 빛이 푸터 배경 위로 보임
   (footer 는 쌓임맥락을 만들지 않게 z-index 없이 relative, 배경은 z-index:-2 가상요소로) */
body.final footer{position:relative;background:transparent!important;background-color:transparent!important}
body.final footer::before{content:"";position:absolute;inset:0;z-index:-2;background:#020617;pointer-events:none}
/* Launch 하단 제미나이 빛: 영역 축소 (42/36vh → 26/22vh) */
main.theme-b.page-launch.final::before{height:26vh}
main.theme-b.page-launch.final::after{height:22vh}
@media (max-width:719px){main.theme-b.page-launch.final::before{height:22vh}main.theme-b.page-launch.final::after{height:18vh}}
/* Launch 하단 CTA 박스: 내부 빛 이펙트 제거, 단색 카드 */
.theme-b.page-launch.final .cta::before,.theme-b.page-launch.final .cta::after{content:none!important;display:none!important;animation:none!important}
.theme-b.page-launch.final .cta{background:#141418!important;background-image:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;border:1px solid rgba(255,255,255,.08)}
/* Launch 하단 제미나이 빛: 컬러 50% 약하게 */
main.theme-b.page-launch.final::before{opacity:.45!important}
main.theme-b.page-launch.final::after{opacity:.4!important}

/* 가장자리 빛을 영상 '위'에도 — 영상·암막을 루트 쌓임순서의 음수 층(-3/-2)으로 내려 빛(-1) 아래에 둠.
   섹션 자체 배경은 투명(영상이 덮음), 텍스트 래퍼는 z-index 양수라 그대로 위 */
.theme-b.page-index.final .vband{background:transparent!important;isolation:auto}
.theme-b.page-index.final .vb-video{z-index:-3}
.theme-b.page-index.final .vb-veil{z-index:-2}
.ent.final main > section:first-of-type{background-color:transparent!important}
.ent.final main > section:first-of-type > video{z-index:-3}
.ent.final main > section:first-of-type > div[aria-hidden="true"]{z-index:-2}

/* 롤링 띠배너: 깨끗하게 — 불투명 흰 바탕, 끝 페이드는 칩에만 */
.theme-b.page-index.final .marq{background:#fff!important;-webkit-mask-image:none;mask-image:none;position:relative;z-index:1}
.marq-track{-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.marq{-webkit-mask-image:none!important;mask-image:none!important}
.marq-track{width:100%;overflow:hidden}
.marq-track > .marq-row{flex:none;animation:marq 38s linear infinite}
.marq:hover .marq-row{animation-play-state:paused}
.marq-track{animation:none!important}
@media (prefers-reduced-motion:reduce){.marq-track > .marq-row{animation:none}}
/* 띠배너 롤링 구조 원복 + 끝 페이드는 흰 그라데이션 덮개로 (마스크 없이) */
.marq-track{width:max-content!important;overflow:visible!important;-webkit-mask-image:none!important;mask-image:none!important;animation:marq 38s linear infinite!important}
.marq-track > .marq-row{animation:none!important}
.marq:hover .marq-track{animation-play-state:paused!important}
.theme-b.page-index.final .marq{overflow:hidden}
.theme-b.page-index.final .marq::before,.theme-b.page-index.final .marq::after{content:"";position:absolute;top:0;bottom:0;width:80px;z-index:2;pointer-events:none}
.theme-b.page-index.final .marq::before{left:0;background:linear-gradient(90deg,#fff,rgba(255,255,255,0))}
.theme-b.page-index.final .marq::after{right:0;background:linear-gradient(270deg,#fff,rgba(255,255,255,0))}
@media (prefers-reduced-motion:reduce){.marq-track{animation:none!important}}
/* 블러 2배 */
@keyframes siriHueA{0%{filter:blur(240px) saturate(1.8) hue-rotate(0deg)}50%{filter:blur(240px) saturate(1.9) hue-rotate(70deg)}100%{filter:blur(240px) saturate(1.8) hue-rotate(0deg)}}
@keyframes siriHueB{0%{filter:blur(190px) saturate(1.6) hue-rotate(0deg)}50%{filter:blur(190px) saturate(1.7) hue-rotate(-60deg)}100%{filter:blur(190px) saturate(1.6) hue-rotate(0deg)}}
@keyframes gemHueGlow{0%{filter:blur(112px) saturate(1.25) hue-rotate(0deg)}33%{filter:blur(112px) saturate(1.35) hue-rotate(55deg)}66%{filter:blur(112px) saturate(1.3) hue-rotate(-40deg)}100%{filter:blur(112px) saturate(1.25) hue-rotate(0deg)}}
@keyframes gemHueDots{0%{filter:blur(2.8px) hue-rotate(0deg)}33%{filter:blur(2.8px) hue-rotate(55deg)}66%{filter:blur(2.8px) hue-rotate(-40deg)}100%{filter:blur(2.8px) hue-rotate(0deg)}}
/* 블러가 커진 만큼 빛 층을 화면 밖으로 더 넓혀 가장자리 색이 비지 않게 */
:root:has(body.final)::before,:root:has(body.final)::after{inset:-14%}

/* 마스크 재계산 (inset -14% 기준, 화면 안쪽 ~3%) */
:root:has(body.final)::before,:root:has(body.final)::after{-webkit-mask:linear-gradient(90deg,#000 0.00%,#000 10.94%,rgba(0,0,0,0.62) 11.41%,rgba(0,0,0,0.34) 11.88%,rgba(0,0,0,0.15) 12.34%,rgba(0,0,0,0.05) 12.81%,transparent 13.28%,transparent 86.72%,rgba(0,0,0,0.05) 87.19%,rgba(0,0,0,0.15) 87.66%,rgba(0,0,0,0.34) 88.12%,rgba(0,0,0,0.62) 88.59%,#000 89.06%,#000 100.00%),linear-gradient(180deg,#000 0.00%,#000 10.94%,rgba(0,0,0,0.62) 11.41%,rgba(0,0,0,0.34) 11.88%,rgba(0,0,0,0.15) 12.34%,rgba(0,0,0,0.05) 12.81%,transparent 13.28%,transparent 86.72%,rgba(0,0,0,0.05) 87.19%,rgba(0,0,0,0.15) 87.66%,rgba(0,0,0,0.34) 88.12%,rgba(0,0,0,0.62) 88.59%,#000 89.06%,#000 100.00%);-webkit-mask-composite:source-over;mask:linear-gradient(90deg,#000 0.00%,#000 10.94%,rgba(0,0,0,0.62) 11.41%,rgba(0,0,0,0.34) 11.88%,rgba(0,0,0,0.15) 12.34%,rgba(0,0,0,0.05) 12.81%,transparent 13.28%,transparent 86.72%,rgba(0,0,0,0.05) 87.19%,rgba(0,0,0,0.15) 87.66%,rgba(0,0,0,0.34) 88.12%,rgba(0,0,0,0.62) 88.59%,#000 89.06%,#000 100.00%),linear-gradient(180deg,#000 0.00%,#000 10.94%,rgba(0,0,0,0.62) 11.41%,rgba(0,0,0,0.34) 11.88%,rgba(0,0,0,0.15) 12.34%,rgba(0,0,0,0.05) 12.81%,transparent 13.28%,transparent 86.72%,rgba(0,0,0,0.05) 87.19%,rgba(0,0,0,0.15) 87.66%,rgba(0,0,0,0.34) 88.12%,rgba(0,0,0,0.62) 88.59%,#000 89.06%,#000 100.00%);mask-composite:add}
/* 영상이 늦게 뜨거나 실패해도 회색 바탕이 비치지 않게 — 영상 요소 자체에 어두운 바탕 */
.theme-b.page-index.final .vb-video{background:#020617}
.ent.final main > section:first-of-type > video{background:#020617}

/* =========================================================
   성능 개편: 끊김 제거
   - filter(blur·hue) 애니메이션 / @property 회전 / 배경 위치 애니메이션 / backdrop-filter 전부 제거
   - 모든 움직임은 transform·opacity 만 사용 (GPU 합성, 매 프레임 다시 그리지 않음)
   ========================================================= */

/* 1) 가장자리 빛 (홈·Enterprise): 가장자리 근처에만 놓인 부드러운 원형 그라데이션 두 장을 교차 페이드 */
@keyframes edgeDriftA{0%{transform:translate3d(-1.2%,-1%,0) scale(1)}50%{transform:translate3d(1%,1.2%,0) scale(1.03)}100%{transform:translate3d(-.6%,.8%,0) scale(1.01)}}
@keyframes edgeDriftB{0%{transform:translate3d(1%,1%,0) scale(1.02)}50%{transform:translate3d(-1.2%,-.8%,0) scale(1)}100%{transform:translate3d(.6%,-1%,0) scale(1.03)}}
@keyframes edgeFadeA{0%,100%{opacity:.95}50%{opacity:.35}}
@keyframes edgeFadeB{0%,100%{opacity:.3}50%{opacity:.9}}
:root:has(body.final)::before,:root:has(body.final)::after{
  inset:-3%!important;filter:none!important;-webkit-mask:none!important;mask:none!important;
  will-change:transform,opacity;backface-visibility:hidden}
:root:has(body.final)::before{
  background:
    radial-gradient(13% 42% at 0% 22%,rgba(79,139,255,1),transparent 72%),
    radial-gradient(13% 42% at 100% 68%,rgba(226,109,158,1),transparent 72%),
    radial-gradient(42% 16% at 28% 0%,rgba(155,123,255,1),transparent 72%),
    radial-gradient(42% 16% at 74% 100%,rgba(255,159,107,1),transparent 72%),
    radial-gradient(13% 38% at 0% 80%,rgba(155,123,255,1),transparent 72%),
    radial-gradient(13% 38% at 100% 18%,rgba(79,139,255,1),transparent 72%)!important;
  animation:edgeDriftA 14s ease-in-out infinite alternate,edgeFadeA 11s ease-in-out infinite!important}
:root:has(body.final)::after{
  background:
    radial-gradient(13% 42% at 0% 60%,rgba(226,109,158,1),transparent 72%),
    radial-gradient(13% 42% at 100% 30%,rgba(155,123,255,1),transparent 72%),
    radial-gradient(42% 16% at 70% 0%,rgba(255,211,110,1),transparent 72%),
    radial-gradient(42% 16% at 30% 100%,rgba(79,139,255,1),transparent 72%)!important;
  background-size:auto!important;
  animation:edgeDriftB 16s ease-in-out infinite alternate,edgeFadeB 11s ease-in-out infinite!important}

/* 2) Launch 하단 제미나이 빛: 색 띠를 옆으로 미끄러뜨려 색 변화 (블러 없이) */
@keyframes bandSlide{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
@keyframes bandBreath{0%,100%{opacity:.42}50%{opacity:.6}}
main.theme-b.page-launch.final::before{
  left:0!important;right:auto!important;width:300%!important;height:26vh!important;filter:none!important;
  background:linear-gradient(90deg,#4F8BFF 0%,#9B7BFF 16.66%,#E26D9E 33.33%,#4F8BFF 50%,#9B7BFF 66.66%,#E26D9E 83.33%,#4F8BFF 100%)!important;background-size:100% 100%!important;
  -webkit-mask:linear-gradient(0deg,#000 0%,rgba(0,0,0,.55) 35%,rgba(0,0,0,.18) 70%,transparent 100%)!important;
  mask:linear-gradient(0deg,#000 0%,rgba(0,0,0,.55) 35%,rgba(0,0,0,.18) 70%,transparent 100%)!important;
  will-change:transform,opacity;
  animation:bandSlide 24s linear infinite,bandBreath 7s ease-in-out infinite!important}
/* 점무늬: 정적 (움직임은 투명도만) */
@keyframes dotsBreath{0%,100%{opacity:.28}50%{opacity:.45}}
main.theme-b.page-launch.final::after{height:22vh!important;filter:none!important;
  background:linear-gradient(90deg,#4F8BFF,#9B7BFF 50%,#E26D9E)!important;background-size:100% 100%!important;
  will-change:opacity;animation:gemRise 1.6s cubic-bezier(.2,.8,.2,1) both,dotsBreath 6s ease-in-out 1.6s infinite!important}
@media (max-width:719px){main.theme-b.page-launch.final::before{height:22vh!important}main.theme-b.page-launch.final::after{height:18vh!important}}

/* 3) 무거운 합성 효과 제거 */
.theme-b.page-launch.final .choose,.theme-b.page-launch.final .step,.theme-b.page-launch.final .plan,.theme-b.page-launch.final .qs div,.theme-b.page-launch.final .cta{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background-color:rgba(22,22,26,.88)!important}
.theme-b.page-launch.final .hero::after{mix-blend-mode:normal!important;will-change:transform}
.vb-item{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.pv-card{will-change:auto}

@media (prefers-reduced-motion:reduce){:root:has(body.final)::before,:root:has(body.final)::after,main.theme-b.page-launch.final::before,main.theme-b.page-launch.final::after{animation:none!important}}
/* 가장자리 빛이 비쳐 보이도록 섹션 바탕 불투명도 72% → 55%, 빛 폭 약간 확장 */
.theme-b.page-index.final .hx{background:radial-gradient(45% 45% at 30% 0%,rgba(99,102,241,.14),transparent 70%),radial-gradient(45% 45% at 75% 5%,rgba(56,189,248,.12),transparent 70%),rgba(245,245,247,.55)!important}
.theme-b.page-index.final .sec,.theme-b.page-index.final #about{background:rgba(245,245,247,.55)!important}
.theme-b.page-index.final .sec.tint,.theme-b.page-index.final #contact{background:rgba(255,255,255,.55)!important}
.ent.final main > section.bg-white{background-color:rgba(255,255,255,.55)!important}
.ent.final main > section.bg-ax-ink-50{background-color:rgba(248,250,252,.55)!important}
.ent.final .ent-others{background:rgba(255,255,255,.55)!important}
@keyframes edgeFadeA{0%,100%{opacity:1}50%{opacity:.6}}
@keyframes edgeFadeB{0%,100%{opacity:.6}50%{opacity:1}}

/* =========================================================
   가장자리 시리 빛 v6 — 회전하는 원형 그라데이션(transform만) + 정적 가장자리 마스크
   블러 필터 없음 · 콘텐츠 아래(z-index:-1) · 홈·Enterprise만(site.js가 삽입)
   ========================================================= */
:root:has(body.final)::before,:root:has(body.final)::after{content:none!important;display:none!important}
@keyframes edgeSpin{to{transform:rotate(360deg)}}
@keyframes edgeSpinRev{to{transform:rotate(-360deg)}}
@keyframes edgePulse{0%,100%{opacity:.8}50%{opacity:1}}
.edge-glow{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;
  --m:linear-gradient(90deg,#000 0,rgba(0,0,0,.6) 16px,rgba(0,0,0,.28) 38px,rgba(0,0,0,.1) 62px,rgba(0,0,0,.03) 84px,transparent 104px,transparent calc(100% - 104px),rgba(0,0,0,.03) calc(100% - 84px),rgba(0,0,0,.1) calc(100% - 62px),rgba(0,0,0,.28) calc(100% - 38px),rgba(0,0,0,.6) calc(100% - 16px),#000 100%),
      linear-gradient(180deg,#000 0,rgba(0,0,0,.6) 16px,rgba(0,0,0,.28) 38px,rgba(0,0,0,.1) 62px,rgba(0,0,0,.03) 84px,transparent 104px,transparent calc(100% - 104px),rgba(0,0,0,.03) calc(100% - 84px),rgba(0,0,0,.1) calc(100% - 62px),rgba(0,0,0,.28) calc(100% - 38px),rgba(0,0,0,.6) calc(100% - 16px),#000 100%);
  -webkit-mask:var(--m);-webkit-mask-composite:source-over;mask:var(--m);mask-composite:add;
  animation:edgePulse 5s ease-in-out infinite}
.edge-glow i{position:absolute;left:50%;top:50%;width:160vmax;height:160vmax;margin:-80vmax 0 0 -80vmax;border-radius:50%;will-change:transform;backface-visibility:hidden}
.edge-glow i:nth-child(1){background:conic-gradient(from 0deg,#4F8BFF,#A855F7,#F472B6,#FB923C,#FACC15,#F472B6,#A855F7,#38BDF8,#4F8BFF);animation:edgeSpin 9s linear infinite}
.edge-glow i:nth-child(2){background:conic-gradient(from 90deg,rgba(56,189,248,.0),rgba(56,189,248,.85),rgba(168,85,247,0) 25%,rgba(244,114,182,.85) 50%,rgba(244,114,182,0) 62%,rgba(79,139,255,.85) 80%,rgba(56,189,248,0));mix-blend-mode:normal;opacity:.7;animation:edgeSpinRev 13s linear infinite}
@media (max-width:719px){.edge-glow{--m:linear-gradient(90deg,#000 0,rgba(0,0,0,.5) 10px,rgba(0,0,0,.18) 26px,transparent 56px,transparent calc(100% - 56px),rgba(0,0,0,.18) calc(100% - 26px),rgba(0,0,0,.5) calc(100% - 10px),#000 100%),linear-gradient(180deg,#000 0,rgba(0,0,0,.5) 10px,rgba(0,0,0,.18) 26px,transparent 56px,transparent calc(100% - 56px),rgba(0,0,0,.18) calc(100% - 26px),rgba(0,0,0,.5) calc(100% - 10px),#000 100%)}}
@media (prefers-reduced-motion:reduce){.edge-glow,.edge-glow i{animation:none!important}}

/* Launch 하단 색 띠: 흐름 속도 2배로 움직임이 보이게 */
main.theme-b.page-launch.final::before{animation:bandSlide 12s linear infinite,bandBreath 5s ease-in-out infinite!important}

/* 테두리 두께 75% (104→78px, 모바일 56→42px) */
.edge-glow{--m:linear-gradient(90deg,#000 0,rgba(0,0,0,.6) 12px,rgba(0,0,0,.28) 28.5px,rgba(0,0,0,.1) 46.5px,rgba(0,0,0,.03) 63px,transparent 78px,transparent calc(100% - 78px),rgba(0,0,0,.03) calc(100% - 63px),rgba(0,0,0,.1) calc(100% - 46.5px),rgba(0,0,0,.28) calc(100% - 28.5px),rgba(0,0,0,.6) calc(100% - 12px),#000 100%),linear-gradient(180deg,#000 0,rgba(0,0,0,.6) 12px,rgba(0,0,0,.28) 28.5px,rgba(0,0,0,.1) 46.5px,rgba(0,0,0,.03) 63px,transparent 78px,transparent calc(100% - 78px),rgba(0,0,0,.03) calc(100% - 63px),rgba(0,0,0,.1) calc(100% - 46.5px),rgba(0,0,0,.28) calc(100% - 28.5px),rgba(0,0,0,.6) calc(100% - 12px),#000 100%)}
@media (max-width:719px){.edge-glow{--m:linear-gradient(90deg,#000 0,rgba(0,0,0,.5) 7.5px,rgba(0,0,0,.18) 19.5px,transparent 42px,transparent calc(100% - 42px),rgba(0,0,0,.18) calc(100% - 19.5px),rgba(0,0,0,.5) calc(100% - 7.5px),#000 100%),linear-gradient(180deg,#000 0,rgba(0,0,0,.5) 7.5px,rgba(0,0,0,.18) 19.5px,transparent 42px,transparent calc(100% - 42px),rgba(0,0,0,.18) calc(100% - 19.5px),rgba(0,0,0,.5) calc(100% - 7.5px),#000 100%)}}

/* =========================================================
   Launch 하단: 다색 물결 그라데이션 (transform만)
   타일(150vw)을 가로 반복한 300% 띠를 -50% 이동 → 끊김 없는 무한 흐름
   ========================================================= */
main.theme-b.page-launch.final::before{content:none!important;display:none!important}
@keyframes waveL{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
@keyframes waveR{from{transform:translate3d(-50%,0,0)}to{transform:translate3d(0,0,0)}}
@keyframes waveHeave{0%,100%{transform:scaleY(1)}50%{transform:scaleY(1.22)}}
.gem-wave{position:fixed;left:0;right:0;bottom:0;height:30vh;z-index:-1;pointer-events:none;overflow:hidden;opacity:.62;
  transform-origin:50% 100%;animation:waveHeave 7s ease-in-out infinite;
  -webkit-mask:linear-gradient(0deg,#000 0%,rgba(0,0,0,.7) 30%,rgba(0,0,0,.3) 62%,transparent 100%);
  mask:linear-gradient(0deg,#000 0%,rgba(0,0,0,.7) 30%,rgba(0,0,0,.3) 62%,transparent 100%)}
.gem-wave i{position:absolute;left:0;bottom:0;width:300%;height:100%;background-repeat:repeat-x;background-size:50% 100%;will-change:transform;backface-visibility:hidden}
/* 물결 1: 파랑·보라·핑크·주황·하늘·보라 */
.gem-wave i:nth-child(1){
  background-image:
    radial-gradient(9% 70% at 8% 100%,rgba(79,139,255,.95),transparent 72%),
    radial-gradient(10% 95% at 25% 100%,rgba(168,85,247,.9),transparent 72%),
    radial-gradient(9% 62% at 42% 100%,rgba(244,114,182,.9),transparent 72%),
    radial-gradient(10% 88% at 58% 100%,rgba(251,146,60,.85),transparent 72%),
    radial-gradient(9% 70% at 75% 100%,rgba(56,189,248,.9),transparent 72%),
    radial-gradient(10% 92% at 92% 100%,rgba(168,85,247,.88),transparent 72%);
  animation:waveL 16s linear infinite}
/* 물결 2: 하늘·핑크·노랑·파랑·민트·핑크 (반대 방향, 다른 속도) */
.gem-wave i:nth-child(2){opacity:.75;
  background-image:
    radial-gradient(11% 80% at 0% 100%,rgba(34,211,238,.9),transparent 72%),
    radial-gradient(10% 60% at 17% 100%,rgba(244,114,182,.9),transparent 72%),
    radial-gradient(11% 90% at 34% 100%,rgba(250,204,21,.75),transparent 72%),
    radial-gradient(10% 66% at 50% 100%,rgba(79,139,255,.9),transparent 72%),
    radial-gradient(11% 86% at 67% 100%,rgba(52,211,153,.8),transparent 72%),
    radial-gradient(10% 70% at 84% 100%,rgba(236,72,153,.85),transparent 72%),
    radial-gradient(11% 80% at 100% 100%,rgba(34,211,238,.9),transparent 72%);
  animation:waveR 23s linear infinite}
/* 물결 3: 넓고 옅은 바탕 빛 (느리게) */
.gem-wave i:nth-child(3){opacity:.55;
  background-image:
    radial-gradient(22% 55% at 12% 100%,rgba(99,102,241,.8),transparent 75%),
    radial-gradient(22% 60% at 50% 100%,rgba(217,70,239,.7),transparent 75%),
    radial-gradient(22% 55% at 88% 100%,rgba(14,165,233,.75),transparent 75%);
  animation:waveL 34s linear infinite}
@media (max-width:719px){.gem-wave{height:24vh}}
@media (prefers-reduced-motion:reduce){.gem-wave,.gem-wave i{animation:none!important}}
/* 점무늬 층은 물결 위에서 유지 (높이 맞춤) */
main.theme-b.page-launch.final::after{height:24vh!important}
/* 성능: 마스크 있는 틀은 정지, 높이 출렁임은 안쪽 층의 이동에 합침 */
.gem-wave{animation:none!important;transform:none!important;contain:strict}
@keyframes waveL{0%{transform:translate3d(0,0,0) scaleY(1)}50%{transform:translate3d(-25%,0,0) scaleY(1.18)}100%{transform:translate3d(-50%,0,0) scaleY(1)}}
@keyframes waveR{0%{transform:translate3d(-50%,0,0) scaleY(1.12)}50%{transform:translate3d(-25%,0,0) scaleY(.92)}100%{transform:translate3d(0,0,0) scaleY(1.12)}}
.gem-wave i{transform-origin:50% 100%}
/* 성능 재조정: 확대(scaleY) 제거 → 순수 가로 이동만 (그라데이션 재래스터 방지) */
.gem-wave{contain:none!important}
@keyframes waveL{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
@keyframes waveR{from{transform:translate3d(-50%,0,0)}to{transform:translate3d(0,0,0)}}

/* Launch 하단: 음파 블러 웨이브 캔버스 (이전 물결·점무늬 제거) */
.gem-wave{display:none!important}
main.theme-b.page-launch.final::after{content:none!important;display:none!important}
.sound-wave{position:fixed;left:0;bottom:0;width:100%;height:34vh;z-index:-1;pointer-events:none;opacity:.75;
  image-rendering:auto;
  -webkit-mask:linear-gradient(0deg,#000 0%,#000 35%,rgba(0,0,0,.5) 70%,transparent 100%);
  mask:linear-gradient(0deg,#000 0%,#000 35%,rgba(0,0,0,.5) 70%,transparent 100%)}
@media (max-width:719px){.sound-wave{height:26vh}}
.sound-wave{opacity:.9;-webkit-mask:linear-gradient(0deg,rgba(0,0,0,.35) 0%,#000 25%,#000 60%,transparent 100%);mask:linear-gradient(0deg,rgba(0,0,0,.35) 0%,#000 25%,#000 60%,transparent 100%)}
/* Launch 카드: 거의 불투명하게 → 웨이브는 카드 뒤·사이로만 은은하게 */
.theme-b.page-launch.final .choose,.theme-b.page-launch.final .step,.theme-b.page-launch.final .plan,.theme-b.page-launch.final .qs div{background-color:rgba(22,22,26,.97)!important}
.theme-b.page-launch.final .step.hl{background:linear-gradient(160deg,#1c2442 0%,#1d1b2e 45%,#17171c 80%)!important}

/* Gate 정식 소개(gi) 반영 */
.theme-b.page-index.final .card.gate .tag.live,.ent.final .ent-others .card.gate .tag.live{background:rgba(255,255,255,.18);color:#fff;border:1px solid rgba(255,255,255,.4)}
.ent.final .ent-others .card.gate .tag.live{background:#E8F3FF;color:#1B64DA;border-color:#C9E2FF}
.ent.final .ent-others .card.gate .tag.live i{background:#3182F6}
.theme-b.page-index.final .card.gate .tag.live i{background:#fff}
.pv-g .lock{font-size:.8rem;color:rgba(255,255,255,.9)}
/* Gate 페이지 하단 문의 띠 */
.gi-root .gi-cta-band{padding:72px 0 96px;background:var(--bg)}
.gi-root .gi-cta-band .wrap{max-width:1280px;margin:0 auto;padding:40px 32px;border-radius:24px;background:linear-gradient(160deg,#3182F6,#1B64DA);color:#fff;text-align:left}
.gi-root .gi-cta-band h2{font-size:clamp(1.5rem,3vw,2.1rem);letter-spacing:-.03em;color:#fff}
.gi-root .gi-cta-band p{margin-top:10px;color:rgba(255,255,255,.88)}
.gi-root .gi-cta-band .btn{margin-top:24px;background:#fff!important;color:#1B64DA!important;border:0}
@media (max-width:720px){.gi-root .gi-cta-band .wrap{margin:0 16px;padding:28px 22px}}
.gi-root .gi-cta-band{padding:72px 32px 96px}
.gi-root .gi-cta-band .wrap{max-width:1216px}
@media (max-width:720px){.gi-root .gi-cta-band{padding:56px 16px 72px}.gi-root .gi-cta-band .wrap{margin:0}}
/* Gate 글자: 외곽선 → 면(흰색 채움) */
.theme-b.page-index.final .card.gate h3,.theme-0.page-index.final .card.gate h3{color:#fff!important;-webkit-text-stroke:0!important;background:none!important;-webkit-background-clip:border-box!important;background-clip:border-box!important;text-transform:none;letter-spacing:-.03em;font-weight:700}
.pv-g .gate-word{color:#fff!important;-webkit-text-stroke:0!important;background:none!important;-webkit-background-clip:border-box!important;background-clip:border-box!important;animation:none!important;text-shadow:0 6px 24px rgba(0,0,0,.18)}

/* Gate 상단 블루 히어로 (면 채움 글자) */
.gi-root{padding-top:0!important}
.gi-root .gi-blue-hero{position:relative;overflow:hidden;padding:150px 0 96px;color:#fff;
  background:radial-gradient(60% 60% at 85% 15%,rgba(255,255,255,.22),transparent 60%),linear-gradient(160deg,#3182F6 0%,#1B64DA 100%)}
.gi-root .gi-blue-hero .wrap{max-width:1280px;margin:0 auto;padding:0 32px}
@media (max-width:720px){.gi-root .gi-blue-hero{padding:112px 0 64px}.gi-root .gi-blue-hero .wrap{padding:0 24px}}
.gbh-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.6);background:rgba(255,255,255,.12);font-size:.78rem;font-weight:700;letter-spacing:.06em}
.gbh-pill i{width:7px;height:7px;border-radius:50%;background:#fff}
.gbh-title{margin-top:20px;font-size:clamp(3rem,10vw,8.5rem)!important;font-weight:900!important;line-height:.95!important;letter-spacing:-.05em!important;color:#fff!important;-webkit-text-stroke:0!important}
.gbh-sub{margin-top:24px;max-width:620px;font-size:clamp(1rem,1.6vw,1.2rem);line-height:1.75;color:rgba(255,255,255,.92)}
.gbh-btns{margin-top:32px;display:flex;flex-wrap:wrap;gap:12px}
.gi-root .gi-blue-hero .btn-white{background:#fff!important;color:#1B64DA!important;border:0}
.gi-root .gi-blue-hero .btn-ghost{background:transparent!important;color:#fff!important;border:1.5px solid rgba(255,255,255,.7)!important}
.gi-root .gi-blue-hero .btn-ghost:hover{background:rgba(255,255,255,.12)!important}
.gbh-chips{margin-top:28px;display:flex;flex-wrap:wrap;gap:8px}
.gbh-chips span{font-size:.82rem;color:#fff;padding:6px 12px;border-radius:999px;border:1px dashed rgba(255,255,255,.55)}
/* 블루 히어로 위에서는 메뉴를 투명→스크롤 시 흰색 */
.page-gate-shell .hdr:not(.solid) .logo,.page-gate-shell .hdr:not(.solid) .nav a{color:#fff}
.page-gate-shell .hdr:not(.solid) .logo span{color:#fff}
.page-gate-shell .hdr:not(.solid) .nav a[aria-current="page"]{color:#fff;text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:2px}
.page-gate-shell .hdr:not(.solid) .menu-btn{color:#fff}

/* 홈 Gate 미리보기: 작동 방식 미니 화면 (예시) */
.pv-g .pv-body{place-content:start!important;text-align:left!important;min-height:0!important;gap:9px!important}
.gq,.ga{font-size:.82rem;line-height:1.5;padding:9px 11px;border-radius:var(--r-inner,12px)}
.gq{justify-self:end;max-width:92%;background:#fff;color:#191F28;font-weight:600}
.ga{background:rgba(255,255,255,.14);color:#fff}
.gq b,.ga b{display:block;font-size:.66rem;font-weight:600;opacity:.65;margin-bottom:2px}
.gflow{display:flex;align-items:center;gap:6px}
.gn{flex:none;font-size:.68rem;font-weight:700;padding:6px 8px;border-radius:8px;background:rgba(255,255,255,.14);color:#fff;white-space:nowrap;line-height:1.2;text-align:center}
.gn.gate{background:#fff;color:#1B64DA;padding:6px 10px}
.gn small{display:block;font-size:.58rem;font-weight:600;opacity:.75}
.gl{position:relative;flex:1;height:2px;background:rgba(255,255,255,.35);border-radius:2px;overflow:hidden;min-width:14px}
.gl i{position:absolute;top:-2px;left:0;width:10px;height:6px;border-radius:3px;background:#fff;box-shadow:0 0 8px #fff;animation:gflow 1.8s linear infinite}
.gl + .gn + .gl i{animation-delay:.9s}
@keyframes gflow{from{transform:translateX(-12px)}to{transform:translateX(120px)}}
.glog{display:grid;gap:5px;margin:0;padding:0;list-style:none}
.glog li{display:flex;justify-content:space-between;align-items:center;font-size:.72rem;padding:6px 10px;border-radius:8px;background:rgba(0,0,0,.12);color:#fff}
.glog em{font-style:normal;font-size:.64rem;font-weight:700;padding:2px 8px;border-radius:999px}
.glog .ok{background:#E8F3FF;color:#1B64DA}
.glog .no{background:rgba(255,255,255,.18);color:#FFD0D0}
.pv.play .pv-g .gq,.pv.play .pv-g .gflow,.pv.play .pv-g .ga,.pv.play .pv-g .glog li{animation:pop .45s ease-out both}
.pv.play .pv-g .gq{animation-delay:.2s}.pv.play .pv-g .gflow{animation-delay:.5s}.pv.play .pv-g .ga{animation-delay:.85s}
.pv.play .pv-g .glog li:nth-child(1){animation-delay:1.15s}.pv.play .pv-g .glog li:nth-child(2){animation-delay:1.35s}
@media (min-width:720px) and (max-width:1023px){.gq,.ga{font-size:.72rem}.gn{font-size:.6rem;padding:5px 6px}.glog li{font-size:.64rem}}
@media (prefers-reduced-motion:reduce){.gl i{animation:none}}

/* =========================================================
   Gate 상세 디자인 보강 (내용·문구는 원본 그대로, 시각 구조만)
   ========================================================= */
.gi-root{--gb:#3182F6;--gbd:#1B64DA;--gsoft:#E8F3FF;--gline:#E5E8EB;--gink:#191F28;--gsub:#4E5968}
.gi-root .gi-eyebrow{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;background:var(--gsoft);color:var(--gbd);font-size:.8rem;font-weight:700;letter-spacing:.02em}
.gi-root .gi-eyebrow::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--gb)}

/* 1) 세 가지 방식: 3단계 진행 카드 */
.gi-root .gi-comparison-title{margin-top:56px;font-size:clamp(1.4rem,2.6vw,1.9rem)!important}
.gi-root .gi-ways-list{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:24px;border:0!important}
.gi-root .gi-way{position:relative;display:flex!important;flex-direction:column;gap:14px;padding:28px!important;border:1px solid var(--gline)!important;border-radius:20px!important;background:#fff!important;box-shadow:0 10px 30px -18px rgba(25,31,40,.25);transition:transform .2s,box-shadow .2s}
.gi-root .gi-way:hover{transform:translateY(-3px);box-shadow:0 18px 40px -20px rgba(49,130,246,.35)}
.gi-root .gi-way:nth-child(2){background:linear-gradient(180deg,#fff,#F4F9FF)!important}
.gi-root .gi-way-title{display:flex!important;flex-direction:column;gap:10px;grid-template-columns:none!important}
.gi-root .gi-sequence{align-self:flex-start;display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:30px;padding:0 12px;border-radius:999px;background:#F2F4F6;color:var(--gsub);font-size:.8rem!important;font-weight:800!important}
.gi-root .gi-way h3{font-size:1.25rem!important;line-height:1.4!important;color:var(--gink)}
.gi-root .gi-way-body{display:flex;flex-direction:column;gap:16px;flex:1}
.gi-root .gi-way-body p{color:var(--gsub);font-size:.95rem;line-height:1.75}
.gi-root .gi-work-chain{display:flex!important;flex-wrap:wrap;gap:6px;margin-top:auto;padding:0!important;border:0!important}
.gi-root .gi-work-chain span{position:relative;display:inline-flex;align-items:center;padding:6px 12px;border-radius:999px;background:#F2F4F6;color:var(--gink);font-size:.8rem;font-weight:600;border:0!important}
.gi-root .gi-work-chain span:not(:last-child)::after{content:"→";margin-left:8px;color:#8B95A1;font-weight:700}
.gi-root .gi-work-chain span::before{display:none!important}
/* 03 / Gate 카드 강조 */
.gi-root .gi-way.gi-with-gate{background:linear-gradient(160deg,#3182F6,#1B64DA)!important;border-color:transparent!important;box-shadow:0 20px 44px -18px rgba(27,100,218,.6)}
.gi-root .gi-way.gi-with-gate h3,.gi-root .gi-way.gi-with-gate .gi-way-body p{color:#fff!important}
.gi-root .gi-way.gi-with-gate .gi-way-body p{opacity:.92}
.gi-root .gi-way.gi-with-gate .gi-sequence{background:#fff!important;color:var(--gbd)!important}
.gi-root .gi-way.gi-with-gate .gi-work-chain span{background:rgba(255,255,255,.18);color:#fff}
.gi-root .gi-way.gi-with-gate .gi-work-chain span:not(:last-child)::after{color:rgba(255,255,255,.75)}
/* 카드 사이 화살표 */
.gi-root .gi-way:not(:last-child)::after{content:"";position:absolute;top:50%;right:-17px;width:14px;height:14px;border-top:2.5px solid #C5CCD6;border-right:2.5px solid #C5CCD6;transform:translateY(-50%) rotate(45deg);z-index:2}
@media (max-width:900px){.gi-root .gi-ways-list{grid-template-columns:1fr}.gi-root .gi-way:not(:last-child)::after{top:auto;bottom:-15px;right:50%;transform:translateX(50%) rotate(135deg)}}

/* 2) 결론 문장: 큰 띠 */
.gi-root .gi-intro-conclusion{margin-top:40px!important;padding:40px 32px!important;border-radius:24px;background:#fff;border:1px solid var(--gline);text-align:center;font-size:clamp(1.2rem,2.4vw,1.7rem)!important;line-height:1.55!important;color:var(--gsub);box-shadow:0 10px 30px -20px rgba(25,31,40,.2)}
.gi-root .gi-intro-conclusion strong{display:inline-block;margin-top:6px;font-size:1.15em;font-weight:800;background:linear-gradient(90deg,#3182F6,#6366F1);-webkit-background-clip:text;background-clip:text;color:transparent!important}

/* 3) 관리자 / 직원 역할 카드 */
.gi-root .gi-use-roles{display:grid!important;grid-template-columns:1fr 1fr;gap:20px;position:relative}
.gi-root .gi-use-roles article{position:relative;padding:28px 28px 28px!important;border-radius:20px;background:#fff;border:1px solid var(--gline);box-shadow:0 10px 30px -18px rgba(25,31,40,.22)}
.gi-root .gi-use-roles article::before{content:"";display:block;width:48px;height:48px;border-radius:14px;margin-bottom:16px;background:var(--gsoft) center/24px no-repeat}
.gi-root .gi-use-roles article:nth-child(1)::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231B64DA' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cellipse cx='12' cy='5' rx='8' ry='3'/%3E%3Cpath d='M4 5v6c0 1.7 3.6 3 8 3s8-1.3 8-3V5'/%3E%3Cpath d='M4 11v6c0 1.7 3.6 3 8 3s8-1.3 8-3v-6'/%3E%3C/svg%3E")}
.gi-root .gi-use-roles article:nth-child(2)::before{background-color:var(--gb);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z'/%3E%3C/svg%3E")}
.gi-root .gi-role-label{display:inline-block;padding:4px 10px;border-radius:8px;background:#F2F4F6;color:var(--gsub);font-size:.76rem;font-weight:700}
.gi-root .gi-use-roles h3{margin-top:12px;font-size:1.2rem!important;color:var(--gink)}
.gi-root .gi-use-roles p{margin-top:8px;color:var(--gsub);font-size:.95rem;line-height:1.75}
.gi-root .gi-use-roles::after{content:"Gate";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:8px 14px;border-radius:999px;background:linear-gradient(135deg,#3182F6,#1B64DA);color:#fff;font-size:.8rem;font-weight:800;box-shadow:0 8px 20px -8px rgba(27,100,218,.7);z-index:2}
@media (max-width:760px){.gi-root .gi-use-roles{grid-template-columns:1fr}.gi-root .gi-use-roles::after{display:none}}

/* 4) 후속 질문: 채팅처럼 */
.gi-root .gi-followup-example{display:flex!important;flex-direction:column;gap:12px;max-width:760px;margin:24px auto 0!important;padding:28px!important;border-radius:20px;background:#fff;border:1px solid var(--gline);grid-template-columns:none!important}
.gi-root .gi-followup-example p{max-width:86%;padding:14px 18px;border-radius:18px;line-height:1.6;font-size:.95rem}
.gi-root .gi-followup-example p:first-child{align-self:flex-end;background:var(--gb);color:#fff;border-bottom-right-radius:6px}
.gi-root .gi-followup-example p:first-child strong{color:#fff!important;font-size:1.02rem}
.gi-root .gi-followup-example p:last-child{align-self:flex-start;background:#F2F4F6;color:var(--gink);border-bottom-left-radius:6px}

/* 5) 연결 다이어그램·조회 기록·업무 문서: 카드 입체감 */
.gi-root .gi-network-comparison figure{padding:22px;border-radius:20px;background:#fff;border:1px solid var(--gline);box-shadow:0 10px 30px -20px rgba(25,31,40,.2)}
.gi-root .gi-network-comparison figure:last-child{border-color:#C9E2FF;box-shadow:0 16px 40px -20px rgba(49,130,246,.45)}
.gi-root .gi-audit-example{border-radius:20px!important;box-shadow:0 16px 40px -22px rgba(25,31,40,.28)}
.gi-root .gi-context-paper{border-radius:18px!important;box-shadow:0 20px 44px -22px rgba(25,31,40,.3);transform:rotate(-1deg)}

/* 6) 도입 준비: 번호 카드 2×2 */
.gi-root .gi-preparation-list{display:grid!important;grid-template-columns:1fr 1fr;gap:16px;counter-reset:prep;border:0!important;padding:0!important}
.gi-root .gi-preparation-list li{counter-increment:prep;position:relative;padding:26px 26px 24px 26px!important;border:1px solid var(--gline)!important;border-radius:18px;background:#fff;transition:transform .2s,box-shadow .2s,border-color .2s}
.gi-root .gi-preparation-list li:hover{transform:translateY(-2px);border-color:#C9E2FF!important;box-shadow:0 14px 30px -18px rgba(49,130,246,.4)}
.gi-root .gi-preparation-list li::before{content:counter(prep,decimal-leading-zero);display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;margin-bottom:14px;border-radius:12px;background:linear-gradient(135deg,#3182F6,#1B64DA);color:#fff;font-weight:800;font-size:.9rem}
.gi-root .gi-preparation-list h3{font-size:1.1rem!important;color:var(--gink)}
.gi-root .gi-preparation-list p{margin-top:6px;color:var(--gsub);font-size:.92rem;line-height:1.7}
@media (max-width:760px){.gi-root .gi-preparation-list{grid-template-columns:1fr}}

/* =========================================================
   Launch 하단: 제미나이 앱 시작 화면 스타일 (사용자 녹화 참고)
   ========================================================= */
.sound-wave,.gem-wave{display:none!important}
@keyframes gemUp{from{opacity:0;transform:translate3d(0,40%,0)}to{opacity:1;transform:none}}
@keyframes gemGlowBreath{0%,100%{opacity:.75}50%{opacity:1}}
@keyframes gemDotsBreath{0%,100%{opacity:.7}50%{opacity:1}}
@keyframes gemColorFlow{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
.gem-fx{position:fixed;left:0;right:0;bottom:0;height:22vh;z-index:-1;pointer-events:none;overflow:hidden;animation:gemUp 1.6s cubic-bezier(.2,.8,.2,1) both}
/* 아래에서 번지는 빛: 양옆이 높고 가운데는 낮게 */
.gem-glow{position:absolute;inset:0;will-change:opacity;animation:gemGlowBreath 6s ease-in-out 1.6s infinite;
  background:
    radial-gradient(38% 120% at 10% 115%,rgba(120,105,255,.85),transparent 70%),
    radial-gradient(38% 120% at 90% 115%,rgba(70,125,255,.85),transparent 70%),
    radial-gradient(70% 70% at 50% 125%,rgba(92,110,255,.9),transparent 72%)}
/* 하프톤 점: 점 격자와 물결 모양 마스크는 고정, 안쪽 색 띠만 흐름 */
.gem-dots{position:absolute;inset:0;will-change:opacity;animation:gemDotsBreath 5s ease-in-out 1.6s infinite;
  -webkit-mask:radial-gradient(circle,#000 0 1.15px,transparent 1.7px) 0 0/8px 8px,radial-gradient(90% 115% at 50% 115%,#000 0%,rgba(0,0,0,.6) 38%,rgba(0,0,0,.18) 62%,transparent 80%);
  -webkit-mask-composite:source-in;
  mask:radial-gradient(circle,#000 0 1.15px,transparent 1.7px) 0 0/8px 8px,radial-gradient(90% 115% at 50% 115%,#000 0%,rgba(0,0,0,.6) 38%,rgba(0,0,0,.18) 62%,transparent 80%);
  mask-composite:intersect}
.gem-dots i{position:absolute;top:0;left:0;width:200%;height:100%;will-change:transform;
  background:linear-gradient(90deg,#4F8BFF 0%,#8B7BFF 12.5%,#B58CFF 25%,#8B7BFF 37.5%,#4F8BFF 50%,#8B7BFF 62.5%,#B58CFF 75%,#8B7BFF 87.5%,#4F8BFF 100%);
  animation:gemColorFlow 9s linear infinite}
/* 가운데 위쪽을 어둡게 누르는 아치 (영상의 검은 반원) */
.gem-arch{position:absolute;inset:0;background:radial-gradient(34% 70% at 50% -8%,#000 55%,rgba(0,0,0,.6) 70%,transparent 82%)}
@media (max-width:719px){.gem-fx{height:18vh}.gem-dots{-webkit-mask-size:7px 7px,100% 100%;mask-size:7px 7px,100% 100%}}
@media (prefers-reduced-motion:reduce){.gem-fx,.gem-glow,.gem-dots,.gem-dots i{animation:none!important}}

/* =========================================================
   Gate 흐름도 고도화
   ========================================================= */
/* ① 세 가지 방식: 진행 트랙 + 사람/AI 칩 */
.gi-root .gi-ways-track{display:grid;grid-template-columns:auto 1fr auto 1fr auto;align-items:center;gap:0;margin:28px 0 8px;padding:0 calc((100% - 40px)/6 - 22px)}
.gi-root .gi-ways-track span{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#fff;border:2px solid #D1D6DB;color:#8B95A1;font-weight:800;font-size:.9rem;position:relative;z-index:1}
.gi-root .gi-ways-track span.on{background:linear-gradient(135deg,#3182F6,#1B64DA);border-color:transparent;color:#fff;box-shadow:0 0 0 6px rgba(49,130,246,.18)}
.gi-root .gi-ways-track i{height:4px;border-radius:4px;background:linear-gradient(90deg,#D1D6DB,#9CC3FF)}
.gi-root .gi-ways-track i:last-of-type{background:linear-gradient(90deg,#9CC3FF,#3182F6)}
.gi-root .gi-ways-track span:nth-child(3){border-color:#9CC3FF;color:#3182F6}
.gi-root .gi-chip-legend{display:flex;justify-content:flex-end;gap:14px;margin:10px 0 0;font-size:.8rem;color:var(--gsub)}
.gi-root .gi-chip-legend span{display:inline-flex;align-items:center;gap:6px}
.gi-root .gi-chip-legend span::before{content:"";width:12px;height:12px;border-radius:4px}
.gi-root .gi-chip-legend .h::before{background:#E5E8EB}
.gi-root .gi-chip-legend .ai::before{background:linear-gradient(135deg,#3182F6,#6366F1)}
.gi-root .gi-way:not(:last-child)::after{display:none}
.gi-root .gi-ways-list{margin-top:14px}
.gi-root .gi-work-chain span.gi-chip-h{background:#EEF0F3;color:#4E5968}
.gi-root .gi-work-chain span.gi-chip-ai{background:linear-gradient(135deg,#3182F6,#6366F1);color:#fff}
.gi-root .gi-way.gi-with-gate .gi-work-chain span.gi-chip-h{background:rgba(255,255,255,.2);color:#fff}
.gi-root .gi-way.gi-with-gate .gi-work-chain span.gi-chip-ai{background:#fff;color:#1B64DA}
.gi-root .gi-work-chain span:not(:last-child)::after{content:"→";margin-left:8px;opacity:.6}
@media (max-width:900px){.gi-root .gi-ways-track{display:none}}

/* ② 사용 방식: 관리자 → Gate → 직원 연결 흐름도 */
.gi-root .gi-flow3{display:grid;grid-template-columns:minmax(0,1fr) 120px 220px 120px minmax(0,1.15fr);align-items:center;gap:0;margin-top:32px}
.gi-root .gi-fnode{position:relative;align-self:stretch;padding:26px;border-radius:20px;background:#fff;border:1px solid var(--gline);box-shadow:0 12px 32px -20px rgba(25,31,40,.25)}
.gi-root .gi-ficon{width:48px;height:48px;border-radius:14px;margin-bottom:14px;background:var(--gsoft) center/24px no-repeat}
.gi-root .gi-fadmin .gi-ficon{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231B64DA' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cellipse cx='12' cy='5' rx='8' ry='3'/%3E%3Cpath d='M4 5v6c0 1.7 3.6 3 8 3s8-1.3 8-3V5'/%3E%3Cpath d='M4 11v6c0 1.7 3.6 3 8 3s8-1.3 8-3v-6'/%3E%3C/svg%3E")}
.gi-root .gi-fuser .gi-ficon{background-color:var(--gb);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z'/%3E%3C/svg%3E")}
.gi-root .gi-fnode h3{margin-top:12px;font-size:1.15rem!important;color:var(--gink);line-height:1.45!important}
.gi-root .gi-fnode p{margin-top:8px;color:var(--gsub);font-size:.9rem;line-height:1.7}
.gi-root .gi-fchecks{margin:14px 0 0;padding:0;list-style:none;display:grid;gap:8px}
.gi-root .gi-fchecks li{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;background:#F7F8FA;font-size:.85rem;font-weight:600;color:var(--gink)}
.gi-root .gi-fchecks li::before{content:"";flex:none;width:18px;height:18px;border-radius:50%;background:var(--gb) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-9'/%3E%3C/svg%3E") center/11px no-repeat}
/* 연결선 */
.gi-root .gi-flink{position:relative;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}
.gi-root .gi-flink span{font-size:.74rem;font-weight:700;color:var(--gbd);background:var(--gsoft);padding:4px 10px;border-radius:999px;white-space:nowrap}
.gi-root .gi-flink i{position:relative;display:block;width:100%;height:3px;border-radius:3px;background:linear-gradient(90deg,#C9E2FF,#3182F6);overflow:hidden}
.gi-root .gi-flink i::before{content:"";position:absolute;top:-2px;left:0;width:18px;height:7px;border-radius:4px;background:#fff;box-shadow:0 0 10px 2px rgba(49,130,246,.9);animation:giDot 2.2s linear infinite}
.gi-root .gi-flink:last-of-type i::before{animation-delay:1.1s}
.gi-root .gi-flink i::after{content:"";position:absolute;right:-1px;top:50%;width:9px;height:9px;border-top:3px solid #3182F6;border-right:3px solid #3182F6;transform:translateY(-50%) rotate(45deg)}
@keyframes giDot{from{transform:translateX(-20px)}to{transform:translateX(130px)}}
/* Gate 허브 */
.gi-root .gi-fhub{position:relative;padding:24px 18px;border-radius:24px;background:linear-gradient(160deg,#3182F6,#1B64DA);color:#fff;text-align:center;box-shadow:0 22px 50px -18px rgba(27,100,218,.65),0 0 0 8px rgba(49,130,246,.1)}
.gi-root .gi-fhub-mark{font-size:1.7rem;font-weight:900;letter-spacing:-.04em}
.gi-root .gi-fhub ul{margin:14px 0 0;padding:0;list-style:none;display:grid;gap:7px}
.gi-root .gi-fhub li{padding:7px 10px;border-radius:10px;background:rgba(255,255,255,.16);font-size:.8rem;font-weight:700}
/* 직원 카드 안 대화 */
.gi-root .gi-fchat{margin-top:16px;padding:14px;border-radius:14px;background:#F7F8FA;display:flex;flex-direction:column;gap:8px}
.gi-root .gi-fchat .q{align-self:flex-end;max-width:85%;padding:9px 13px;border-radius:14px 14px 4px 14px;background:var(--gb);color:#fff;font-size:.85rem;font-weight:600}
.gi-root .gi-fchat .a{align-self:flex-start;max-width:90%;padding:9px 13px;border-radius:14px 14px 14px 4px;background:#fff;border:1px solid var(--gline);color:var(--gink);font-size:.83rem;line-height:1.55}
.gi-root .gi-fchat .a b{display:flex;align-items:center;gap:6px;font-size:.7rem;color:var(--gbd);margin-bottom:3px}
.gi-root .gi-fchat .a b::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--gb)}
.gi-root .gi-flow-note{margin:28px auto 0;max-width:760px;padding:18px 24px;border-radius:16px;background:#fff;border:1px dashed #9CC3FF;text-align:center;font-weight:700;color:var(--gink);font-size:1.02rem;line-height:1.6}
/* 좁은 화면: 세로 흐름 */
@media (max-width:1000px){
  .gi-root .gi-flow3{grid-template-columns:1fr;gap:0}
  .gi-root .gi-flink{height:84px;flex-direction:row}
  .gi-root .gi-flink i{width:3px;height:100%;background:linear-gradient(180deg,#C9E2FF,#3182F6)}
  .gi-root .gi-flink i::before{width:7px;height:18px;left:-2px;top:0;animation-name:giDotV}
  .gi-root .gi-flink i::after{right:auto;left:50%;top:auto;bottom:-1px;transform:translateX(-50%) rotate(135deg)}
  .gi-root .gi-fhub{max-width:320px;justify-self:center;width:100%}
}
@keyframes giDotV{from{transform:translateY(-20px)}to{transform:translateY(90px)}}
@media (prefers-reduced-motion:reduce){.gi-root .gi-flink i::before{animation:none}}

/* Launch 하단: 컬러가 살아 움직이게 — 다색 띠 빠르게 흐름 + 빛 3색 교차 */
.gem-dots i{background:linear-gradient(90deg,#4F8BFF 0%,#22D3EE 8%,#8B7BFF 16%,#F472B6 25%,#FB923C 33%,#8B7BFF 41%,#4F8BFF 50%,#22D3EE 58%,#8B7BFF 66%,#F472B6 75%,#FB923C 83%,#8B7BFF 91%,#4F8BFF 100%)!important;animation:gemColorFlow 4s linear infinite!important}
@keyframes gemTone1{0%,100%{opacity:1}33%{opacity:.15}66%{opacity:.3}}
@keyframes gemTone2{0%,100%{opacity:.15}33%{opacity:1}66%{opacity:.25}}
@keyframes gemTone3{0%,100%{opacity:.2}33%{opacity:.2}66%{opacity:1}}
.gem-glow{animation:none!important;opacity:1!important;background:none!important}
.gem-glow::before,.gem-glow::after,.gem-fx::before{content:"";position:absolute;inset:0;will-change:opacity}
.gem-glow::before{background:radial-gradient(38% 120% at 10% 115%,rgba(99,102,241,.9),transparent 70%),radial-gradient(38% 120% at 90% 115%,rgba(59,130,246,.9),transparent 70%),radial-gradient(70% 70% at 50% 125%,rgba(92,110,255,.9),transparent 72%);animation:gemTone1 6s ease-in-out infinite}
.gem-glow::after{background:radial-gradient(38% 120% at 10% 115%,rgba(34,211,238,.85),transparent 70%),radial-gradient(38% 120% at 90% 115%,rgba(168,85,247,.9),transparent 70%),radial-gradient(70% 70% at 50% 125%,rgba(56,189,248,.8),transparent 72%);animation:gemTone2 6s ease-in-out infinite}
.gem-fx::before{z-index:0;background:radial-gradient(38% 120% at 10% 115%,rgba(244,114,182,.85),transparent 70%),radial-gradient(38% 120% at 90% 115%,rgba(251,146,60,.8),transparent 70%),radial-gradient(70% 70% at 50% 125%,rgba(217,70,239,.75),transparent 72%);animation:gemTone3 6s ease-in-out infinite}
.gem-glow,.gem-dots,.gem-arch{z-index:1}
.gem-dots{animation-duration:3s!important}
@media (prefers-reduced-motion:reduce){.gem-glow::before,.gem-glow::after,.gem-fx::before{animation:none!important}}

/* Gate 사용 방식 하단 정리: 요약 카드 + 캡션 한 줄 정렬 */
.gi-root .gi-flow-note{display:flex;align-items:center;gap:14px;max-width:none;margin:24px 0 0;padding:18px 22px;border:1px solid #D6E6FF;border-radius:16px;background:#fff;text-align:left;font-size:1rem;font-weight:700;color:var(--gink);box-shadow:0 8px 24px -18px rgba(49,130,246,.4)}
.gi-root .gi-flow-note::before{content:"";flex:none;width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,#3182F6,#1B64DA) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z'/%3E%3Cpath d='M8 9h8M8 13h5'/%3E%3C/svg%3E") center/18px no-repeat}
.gi-root .gi-flow-note br{display:none}
@media (max-width:720px){.gi-root .gi-flow-note br{display:inline}}
#use .gi-caption{margin:10px 0 0!important;padding-left:2px;font-size:.8rem!important;color:#8B95A1!important;text-align:left}
/* 관리자 카드 빈 공간: 체크리스트를 아래로 붙여 양쪽 카드 균형 */
.gi-root .gi-fnode{display:flex;flex-direction:column}
.gi-root .gi-fadmin .gi-fchecks{margin-top:auto;padding-top:18px}
.gi-root .gi-fnode .gi-role-label,.gi-root .gi-fnode .gi-ficon{align-self:flex-start}

/* Launch 하단: 블러감 약 2배 (필터 없이 점 가장자리·빛 번짐 폭 확대) */
.gem-dots{
  -webkit-mask:radial-gradient(circle,#000 0,rgba(0,0,0,.75) .9px,rgba(0,0,0,.35) 2.1px,rgba(0,0,0,.1) 3.2px,transparent 4px) 0 0/9px 9px,radial-gradient(95% 125% at 50% 118%,#000 0%,rgba(0,0,0,.55) 32%,rgba(0,0,0,.25) 55%,rgba(0,0,0,.08) 74%,transparent 90%)!important;
  -webkit-mask-composite:source-in!important;
  mask:radial-gradient(circle,#000 0,rgba(0,0,0,.75) .9px,rgba(0,0,0,.35) 2.1px,rgba(0,0,0,.1) 3.2px,transparent 4px) 0 0/9px 9px,radial-gradient(95% 125% at 50% 118%,#000 0%,rgba(0,0,0,.55) 32%,rgba(0,0,0,.25) 55%,rgba(0,0,0,.08) 74%,transparent 90%)!important;
  mask-composite:intersect!important}
.gem-glow::before{background:radial-gradient(48% 150% at 10% 118%,rgba(99,102,241,.8),rgba(99,102,241,.35) 45%,transparent 82%),radial-gradient(48% 150% at 90% 118%,rgba(59,130,246,.8),rgba(59,130,246,.35) 45%,transparent 82%),radial-gradient(85% 95% at 50% 130%,rgba(92,110,255,.8),rgba(92,110,255,.3) 50%,transparent 85%)!important}
.gem-glow::after{background:radial-gradient(48% 150% at 10% 118%,rgba(34,211,238,.75),rgba(34,211,238,.3) 45%,transparent 82%),radial-gradient(48% 150% at 90% 118%,rgba(168,85,247,.8),rgba(168,85,247,.32) 45%,transparent 82%),radial-gradient(85% 95% at 50% 130%,rgba(56,189,248,.7),rgba(56,189,248,.28) 50%,transparent 85%)!important}
.gem-fx::before{background:radial-gradient(48% 150% at 10% 118%,rgba(244,114,182,.75),rgba(244,114,182,.3) 45%,transparent 82%),radial-gradient(48% 150% at 90% 118%,rgba(251,146,60,.7),rgba(251,146,60,.28) 45%,transparent 82%),radial-gradient(85% 95% at 50% 130%,rgba(217,70,239,.65),rgba(217,70,239,.25) 50%,transparent 85%)!important}
.gem-arch{background:radial-gradient(36% 78% at 50% -12%,#000 45%,rgba(0,0,0,.55) 66%,rgba(0,0,0,.2) 80%,transparent 92%)!important}
.gem-fx{-webkit-mask:linear-gradient(0deg,#000 0%,#000 55%,rgba(0,0,0,.5) 80%,transparent 100%);mask:linear-gradient(0deg,#000 0%,#000 55%,rgba(0,0,0,.5) 80%,transparent 100%)}

/* Gate 상단: 디지털 그리드 영상 + 토스 블루 톤 */
.gi-root .gi-blue-hero{background:#0B2A6B}
.gi-root .gi-blue-hero .gbh-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;background:#0B2A6B}
.gi-root .gi-blue-hero .gbh-veil{position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg,rgba(27,100,218,.82) 0%,rgba(27,100,218,.55) 45%,rgba(49,130,246,.25) 100%),linear-gradient(180deg,rgba(49,130,246,.25),rgba(11,42,107,.35))}
.gi-root .gi-blue-hero .wrap{position:relative;z-index:2}
.gi-root .gi-blue-hero .gbh-title{text-shadow:0 8px 40px rgba(6,24,70,.45)}

/* Launch 하단: 쉐입도 흐르게 (각 층이 서로 다른 속도·방향으로 이동·출렁) */
@keyframes dotsSway{0%{transform:translate3d(-6%,0,0) scaleY(.88)}50%{transform:translate3d(4%,0,0) scaleY(1.12)}100%{transform:translate3d(7%,0,0) scaleY(.95)}}
@keyframes glowSwayA{0%{transform:translate3d(-9%,4%,0) scale(1)}50%{transform:translate3d(6%,-3%,0) scale(1.12)}100%{transform:translate3d(10%,2%,0) scale(1.02)}}
@keyframes glowSwayB{0%{transform:translate3d(8%,-2%,0) scale(1.1)}50%{transform:translate3d(-7%,3%,0) scale(.96)}100%{transform:translate3d(-10%,-3%,0) scale(1.08)}}
@keyframes glowSwayC{0%{transform:translate3d(0,5%,0) scale(.95)}50%{transform:translate3d(-8%,-4%,0) scale(1.15)}100%{transform:translate3d(9%,1%,0) scale(1)}}
@keyframes archSway{0%{transform:translate3d(-14%,0,0) scaleX(.85)}50%{transform:translate3d(6%,4%,0) scaleX(1.15)}100%{transform:translate3d(15%,-2%,0) scaleX(.95)}}
.gem-dots{left:-15%!important;right:-15%!important;will-change:transform,opacity;transform-origin:50% 100%;
  animation:gemDotsBreath 3s ease-in-out infinite,dotsSway 7s ease-in-out infinite alternate!important}
.gem-glow::before{left:-12%;right:-12%;transform-origin:50% 100%;will-change:transform,opacity;animation:gemTone1 6s ease-in-out infinite,glowSwayA 8s ease-in-out infinite alternate!important}
.gem-glow::after{left:-12%;right:-12%;transform-origin:50% 100%;will-change:transform,opacity;animation:gemTone2 6s ease-in-out infinite,glowSwayB 10s ease-in-out infinite alternate!important}
.gem-fx::before{left:-12%;right:-12%;transform-origin:50% 100%;will-change:transform,opacity;animation:gemTone3 6s ease-in-out infinite,glowSwayC 9s ease-in-out infinite alternate!important}
.gem-arch{left:-20%!important;right:-20%!important;will-change:transform;animation:archSway 9s ease-in-out infinite alternate}
@media (prefers-reduced-motion:reduce){.gem-dots,.gem-glow::before,.gem-glow::after,.gem-fx::before,.gem-arch{animation:none!important}}

/* 홈 상단·콘텐츠 여백 확대 */
.theme-b.page-index.final .hx{padding:160px 0 104px!important}
.theme-b.page-index.final .hx h1{margin-top:32px!important}
.theme-b.page-index.final .hx p.sub{margin-top:30px!important}
.theme-b.page-index.final .hx .btns{margin-top:48px!important}
.theme-b.page-index.final .pv{margin-top:80px!important}
.theme-b.page-index.final{--sec-y:88px}
@media (min-width:1024px){.theme-b.page-index.final{--sec-y:112px}}
.theme-b.page-index.final .sec-head{margin-bottom:56px!important}
.theme-b.page-index.final .sec-head p,.theme-b.page-index.final .sec-head .lead{margin-top:20px}
@media (max-width:719px){.theme-b.page-index.final .hx{padding:120px 0 72px!important}.theme-b.page-index.final .pv{margin-top:56px!important}.theme-b.page-index.final .sec-head{margin-bottom:40px!important}}

/* =========================================================
   Launch 하단 v2: 흐르는 블러 웨이브 (쉐입 자체가 파도처럼 이동)
   블러가 들어간 SVG 물결을 마스크로(한 번만 그려짐) → 층을 가로 이동만 = 가볍게
   ========================================================= */
.gem-glow,.gem-dots,.gem-arch,.gem-fx::before{display:none!important}
.gem-fx{height:26vh!important}
.gem-fx .gw{position:absolute;left:0;bottom:0;width:200%;height:100%;will-change:transform;backface-visibility:hidden;
  -webkit-mask-repeat:repeat-x;mask-repeat:repeat-x;-webkit-mask-size:50% 100%;mask-size:50% 100%;-webkit-mask-position:0 100%;mask-position:0 100%}
@keyframes gwL{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
@keyframes gwR{from{transform:translate3d(-50%,0,0)}to{transform:translate3d(0,0,0)}}
@keyframes gwBreath{0%,100%{opacity:var(--o1)}50%{opacity:var(--o2)}}
.gem-fx .gw1{--o1:.55;--o2:.85;-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201200%20260'%20preserveAspectRatio='none'%3E%3Cdefs%3E%3Cfilter%20id='b'%20x='-10%25'%20y='-60%25'%20width='120%25'%20height='220%25'%3E%3CfeGaussianBlur%20stdDeviation='16'/%3E%3C/filter%3E%3C/defs%3E%3Cpath%20d='M0%20120%20C200%2065%20400%2065%20600%20120%20S1000%20175%201200%20120%20V260%20H0Z'%20fill='white'%20filter='url%28%23b%29'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201200%20260'%20preserveAspectRatio='none'%3E%3Cdefs%3E%3Cfilter%20id='b'%20x='-10%25'%20y='-60%25'%20width='120%25'%20height='220%25'%3E%3CfeGaussianBlur%20stdDeviation='16'/%3E%3C/filter%3E%3C/defs%3E%3Cpath%20d='M0%20120%20C200%2065%20400%2065%20600%20120%20S1000%20175%201200%20120%20V260%20H0Z'%20fill='white'%20filter='url%28%23b%29'/%3E%3C/svg%3E");
  background:linear-gradient(90deg,#4F8BFF 0%,#8B7BFF 12.5%,#F472B6 25%,#8B7BFF 37.5%,#4F8BFF 50%,#8B7BFF 62.5%,#F472B6 75%,#8B7BFF 87.5%,#4F8BFF 100%);
  animation:gwL 9s linear infinite,gwBreath 5s ease-in-out infinite}
.gem-fx .gw2{--o1:.4;--o2:.7;-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201200%20260'%20preserveAspectRatio='none'%3E%3Cdefs%3E%3Cfilter%20id='b'%20x='-10%25'%20y='-60%25'%20width='120%25'%20height='220%25'%3E%3CfeGaussianBlur%20stdDeviation='20'/%3E%3C/filter%3E%3C/defs%3E%3Cpath%20d='M0%20150%20C200%20110%20400%20110%20600%20150%20S1000%20190%201200%20150%20V260%20H0Z'%20fill='white'%20filter='url%28%23b%29'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201200%20260'%20preserveAspectRatio='none'%3E%3Cdefs%3E%3Cfilter%20id='b'%20x='-10%25'%20y='-60%25'%20width='120%25'%20height='220%25'%3E%3CfeGaussianBlur%20stdDeviation='20'/%3E%3C/filter%3E%3C/defs%3E%3Cpath%20d='M0%20150%20C200%20110%20400%20110%20600%20150%20S1000%20190%201200%20150%20V260%20H0Z'%20fill='white'%20filter='url%28%23b%29'/%3E%3C/svg%3E");
  background:linear-gradient(90deg,#22D3EE 0%,#6366F1 16.6%,#A855F7 33.3%,#22D3EE 50%,#6366F1 66.6%,#A855F7 83.3%,#22D3EE 100%);
  animation:gwR 13s linear infinite,gwBreath 7s ease-in-out infinite}
/* 점무늬 물결: 점 격자 ∩ 물결 */
.gem-fx .gw3{--o1:.5;--o2:.9;
  -webkit-mask-image:radial-gradient(circle,#000 0,rgba(0,0,0,.75) .9px,rgba(0,0,0,.35) 2.1px,transparent 3.6px),url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201200%20260'%20preserveAspectRatio='none'%3E%3Cdefs%3E%3Cfilter%20id='b'%20x='-10%25'%20y='-60%25'%20width='120%25'%20height='220%25'%3E%3CfeGaussianBlur%20stdDeviation='10'/%3E%3C/filter%3E%3C/defs%3E%3Cpath%20d='M0%20135%20C200%2087%20400%2087%20600%20135%20S1000%20183%201200%20135%20V260%20H0Z'%20fill='white'%20filter='url%28%23b%29'/%3E%3C/svg%3E");
  mask-image:radial-gradient(circle,#000 0,rgba(0,0,0,.75) .9px,rgba(0,0,0,.35) 2.1px,transparent 3.6px),url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201200%20260'%20preserveAspectRatio='none'%3E%3Cdefs%3E%3Cfilter%20id='b'%20x='-10%25'%20y='-60%25'%20width='120%25'%20height='220%25'%3E%3CfeGaussianBlur%20stdDeviation='10'/%3E%3C/filter%3E%3C/defs%3E%3Cpath%20d='M0%20135%20C200%2087%20400%2087%20600%20135%20S1000%20183%201200%20135%20V260%20H0Z'%20fill='white'%20filter='url%28%23b%29'/%3E%3C/svg%3E");
  -webkit-mask-size:9px 9px,50% 100%;mask-size:9px 9px,50% 100%;-webkit-mask-repeat:repeat,repeat-x;mask-repeat:repeat,repeat-x;
  -webkit-mask-composite:source-in;mask-composite:intersect;
  background:linear-gradient(90deg,#8B7BFF 0%,#4F8BFF 12.5%,#22D3EE 25%,#F472B6 37.5%,#8B7BFF 50%,#4F8BFF 62.5%,#22D3EE 75%,#F472B6 87.5%,#8B7BFF 100%);
  animation:gwL 6s linear infinite,gwBreath 4s ease-in-out infinite}
@media (max-width:719px){.gem-fx{height:20vh!important}}
@media (prefers-reduced-motion:reduce){.gem-fx .gw{animation:none!important}}

/* 웨이브 이음새 제거(세로 방향만 블러) · 파고 확대 · 밝기 낮춤 */
.gem-fx .gw1{--o1:.38;--o2:.6;-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201200%20260'%20preserveAspectRatio='none'%3E%3Cdefs%3E%3Cfilter%20id='b'%20x='0'%20y='-60%25'%20width='100%25'%20height='220%25'%3E%3CfeGaussianBlur%20stdDeviation='0%2022'/%3E%3C/filter%3E%3C/defs%3E%3Cpath%20d='M0%20135%20C200%2060%20400%2060%20600%20135%20S1000%20210%201200%20135%20V260%20H0Z'%20fill='white'%20filter='url%28%23b%29'/%3E%3C/svg%3E")!important;mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201200%20260'%20preserveAspectRatio='none'%3E%3Cdefs%3E%3Cfilter%20id='b'%20x='0'%20y='-60%25'%20width='100%25'%20height='220%25'%3E%3CfeGaussianBlur%20stdDeviation='0%2022'/%3E%3C/filter%3E%3C/defs%3E%3Cpath%20d='M0%20135%20C200%2060%20400%2060%20600%20135%20S1000%20210%201200%20135%20V260%20H0Z'%20fill='white'%20filter='url%28%23b%29'/%3E%3C/svg%3E")!important}
.gem-fx .gw2{--o1:.28;--o2:.48;-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201200%20260'%20preserveAspectRatio='none'%3E%3Cdefs%3E%3Cfilter%20id='b'%20x='0'%20y='-60%25'%20width='100%25'%20height='220%25'%3E%3CfeGaussianBlur%20stdDeviation='0%2026'/%3E%3C/filter%3E%3C/defs%3E%3Cpath%20d='M0%20160%20C200%20100%20400%20100%20600%20160%20S1000%20220%201200%20160%20V260%20H0Z'%20fill='white'%20filter='url%28%23b%29'/%3E%3C/svg%3E")!important;mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201200%20260'%20preserveAspectRatio='none'%3E%3Cdefs%3E%3Cfilter%20id='b'%20x='0'%20y='-60%25'%20width='100%25'%20height='220%25'%3E%3CfeGaussianBlur%20stdDeviation='0%2026'/%3E%3C/filter%3E%3C/defs%3E%3Cpath%20d='M0%20160%20C200%20100%20400%20100%20600%20160%20S1000%20220%201200%20160%20V260%20H0Z'%20fill='white'%20filter='url%28%23b%29'/%3E%3C/svg%3E")!important}
.gem-fx .gw3{--o1:.35;--o2:.65;
  -webkit-mask-image:radial-gradient(circle,#000 0,rgba(0,0,0,.75) .9px,rgba(0,0,0,.35) 2.1px,transparent 3.6px),url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201200%20260'%20preserveAspectRatio='none'%3E%3Cdefs%3E%3Cfilter%20id='b'%20x='0'%20y='-60%25'%20width='100%25'%20height='220%25'%3E%3CfeGaussianBlur%20stdDeviation='0%2014'/%3E%3C/filter%3E%3C/defs%3E%3Cpath%20d='M0%20150%20C200%2082%20400%2082%20600%20150%20S1000%20218%201200%20150%20V260%20H0Z'%20fill='white'%20filter='url%28%23b%29'/%3E%3C/svg%3E")!important;
  mask-image:radial-gradient(circle,#000 0,rgba(0,0,0,.75) .9px,rgba(0,0,0,.35) 2.1px,transparent 3.6px),url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201200%20260'%20preserveAspectRatio='none'%3E%3Cdefs%3E%3Cfilter%20id='b'%20x='0'%20y='-60%25'%20width='100%25'%20height='220%25'%3E%3CfeGaussianBlur%20stdDeviation='0%2014'/%3E%3C/filter%3E%3C/defs%3E%3Cpath%20d='M0%20150%20C200%2082%20400%2082%20600%20150%20S1000%20218%201200%20150%20V260%20H0Z'%20fill='white'%20filter='url%28%23b%29'/%3E%3C/svg%3E")!important}
.gem-fx{height:30vh!important}
@media (max-width:719px){.gem-fx{height:22vh!important}}

/* 점박이 균일 + 컬러 블러 강화 */
.gem-fx .gw1{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201200%20260'%20preserveAspectRatio='none'%3E%3Cdefs%3E%3Cfilter%20id='b'%20x='0'%20y='-80%25'%20width='100%25'%20height='260%25'%3E%3CfeGaussianBlur%20stdDeviation='0%2044'/%3E%3C/filter%3E%3C/defs%3E%3Cpath%20d='M0%20135%20C200%2060%20400%2060%20600%20135%20S1000%20210%201200%20135%20V260%20H0Z'%20fill='white'%20filter='url%28%23b%29'/%3E%3C/svg%3E")!important;mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201200%20260'%20preserveAspectRatio='none'%3E%3Cdefs%3E%3Cfilter%20id='b'%20x='0'%20y='-80%25'%20width='100%25'%20height='260%25'%3E%3CfeGaussianBlur%20stdDeviation='0%2044'/%3E%3C/filter%3E%3C/defs%3E%3Cpath%20d='M0%20135%20C200%2060%20400%2060%20600%20135%20S1000%20210%201200%20135%20V260%20H0Z'%20fill='white'%20filter='url%28%23b%29'/%3E%3C/svg%3E")!important}
.gem-fx .gw2{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201200%20260'%20preserveAspectRatio='none'%3E%3Cdefs%3E%3Cfilter%20id='b'%20x='0'%20y='-80%25'%20width='100%25'%20height='260%25'%3E%3CfeGaussianBlur%20stdDeviation='0%2052'/%3E%3C/filter%3E%3C/defs%3E%3Cpath%20d='M0%20160%20C200%20100%20400%20100%20600%20160%20S1000%20220%201200%20160%20V260%20H0Z'%20fill='white'%20filter='url%28%23b%29'/%3E%3C/svg%3E")!important;mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201200%20260'%20preserveAspectRatio='none'%3E%3Cdefs%3E%3Cfilter%20id='b'%20x='0'%20y='-80%25'%20width='100%25'%20height='260%25'%3E%3CfeGaussianBlur%20stdDeviation='0%2052'/%3E%3C/filter%3E%3C/defs%3E%3Cpath%20d='M0%20160%20C200%20100%20400%20100%20600%20160%20S1000%20220%201200%20160%20V260%20H0Z'%20fill='white'%20filter='url%28%23b%29'/%3E%3C/svg%3E")!important}
.gem-fx .gw3{opacity:.62!important;animation:gwL 6s linear infinite!important;
  -webkit-mask-image:radial-gradient(circle,#000 0,rgba(0,0,0,.7) .8px,rgba(0,0,0,.4) 2px,rgba(0,0,0,.15) 3.4px,transparent 4.8px),url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201200%20260'%20preserveAspectRatio='none'%3E%3Cdefs%3E%3Cfilter%20id='b'%20x='0'%20y='-80%25'%20width='100%25'%20height='260%25'%3E%3CfeGaussianBlur%20stdDeviation='0%2030'/%3E%3C/filter%3E%3C/defs%3E%3Cpath%20d='M0%20110%20C200%2055%20400%2055%20600%20110%20S1000%20165%201200%20110%20V260%20H0Z'%20fill='white'%20filter='url%28%23b%29'/%3E%3C/svg%3E")!important;mask-image:radial-gradient(circle,#000 0,rgba(0,0,0,.7) .8px,rgba(0,0,0,.4) 2px,rgba(0,0,0,.15) 3.4px,transparent 4.8px),url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201200%20260'%20preserveAspectRatio='none'%3E%3Cdefs%3E%3Cfilter%20id='b'%20x='0'%20y='-80%25'%20width='100%25'%20height='260%25'%3E%3CfeGaussianBlur%20stdDeviation='0%2030'/%3E%3C/filter%3E%3C/defs%3E%3Cpath%20d='M0%20110%20C200%2055%20400%2055%20600%20110%20S1000%20165%201200%20110%20V260%20H0Z'%20fill='white'%20filter='url%28%23b%29'/%3E%3C/svg%3E")!important;
  -webkit-mask-size:10px 10px,50% 100%!important;mask-size:10px 10px,50% 100%!important}

/* Gate: 하단 요약 문장 가운데 정렬 · 배경 회색 → 밝게 */
.gi-root .gi-flow-note{justify-content:center;text-align:center}
.gi-root .gi-flow-note::before{display:none}
body.page-gate-shell{background:#FAFCFF!important}
.gi-root{--bg:#FAFCFF!important;background:#FAFCFF!important}
.gi-root .gi-cta-band{background:#FAFCFF!important}

/* Launch 하단 빛: 콘텐츠 위로 자연스럽게 덮이는 오버레이 (screen 합성 · 밝기 낮춤 · 위로 긴 페이드) */
.gem-fx{position:fixed!important;z-index:40!important;pointer-events:none!important;mix-blend-mode:screen;opacity:.55;
  -webkit-mask:linear-gradient(0deg,#000 0%,rgba(0,0,0,.85) 30%,rgba(0,0,0,.45) 60%,rgba(0,0,0,.15) 82%,transparent 100%)!important;
  mask:linear-gradient(0deg,#000 0%,rgba(0,0,0,.85) 30%,rgba(0,0,0,.45) 60%,rgba(0,0,0,.15) 82%,transparent 100%)!important}
/* main 의 쌓임맥락 밖으로 꺼내야 콘텐츠 위에 뜸 → main isolation 해제(자식 z-1 레이어는 없음) */
main.theme-b.page-launch.final{isolation:auto!important}

/* Launch 하단 v4: 제미나이식 유기적 빛 — 점 격자 제거, 부드러운 빛 덩어리 5개가 서로 다른 느린 주기로
   부풀고·가라앉고·흘러가며 겹침(ease-in-out 다지점 경로 → 강약이 있는 살아있는 움직임). transform/opacity만 */
.gem-fx{height:34vh!important;overflow:hidden}
.gem-fx .gw{display:none!important}
.gem-fx .gb,.gem-fx .orb{position:absolute;pointer-events:none;will-change:transform,opacity;backface-visibility:hidden}
/* 바닥 기본광: 두 색 층 교차 페이드로 색이 천천히 바뀜 */
.gem-fx .gb{left:-10%;right:-10%;bottom:0;height:70%}
.gem-fx .gb1{background:radial-gradient(60% 100% at 30% 100%,rgba(66,133,244,.75),rgba(66,133,244,.25) 55%,transparent 80%),radial-gradient(55% 90% at 78% 100%,rgba(155,114,203,.7),rgba(155,114,203,.2) 55%,transparent 80%);animation:gbA 14s ease-in-out infinite}
.gem-fx .gb2{background:radial-gradient(55% 95% at 25% 100%,rgba(217,101,112,.6),rgba(217,101,112,.18) 55%,transparent 80%),radial-gradient(60% 100% at 72% 100%,rgba(56,189,248,.65),rgba(56,189,248,.2) 55%,transparent 80%);animation:gbB 14s ease-in-out infinite}
@keyframes gbA{0%,100%{opacity:.9;transform:translate3d(-2%,0,0) scaleY(1)}50%{opacity:.35;transform:translate3d(2%,0,0) scaleY(.85)}}
@keyframes gbB{0%,100%{opacity:.3;transform:translate3d(2%,0,0) scaleY(.85)}50%{opacity:.85;transform:translate3d(-2%,0,0) scaleY(1)}}
/* 빛 덩어리: 가장자리가 투명으로 녹는 원형 그라데이션(블러 필터 없이 블러처럼) */
.gem-fx .orb{bottom:-55%;width:58vw;height:150%;border-radius:50%;transform-origin:50% 100%}
.gem-fx .o1{left:-12vw;background:radial-gradient(closest-side,rgba(66,133,244,.85),rgba(66,133,244,.35) 45%,transparent);animation:orb1 19s cubic-bezier(.45,0,.55,1) infinite}
.gem-fx .o2{left:18vw;background:radial-gradient(closest-side,rgba(155,114,203,.8),rgba(155,114,203,.3) 45%,transparent);animation:orb2 23s cubic-bezier(.45,0,.55,1) infinite}
.gem-fx .o3{left:42vw;background:radial-gradient(closest-side,rgba(217,101,112,.7),rgba(217,101,112,.25) 45%,transparent);animation:orb3 27s cubic-bezier(.45,0,.55,1) infinite}
.gem-fx .o4{left:62vw;background:radial-gradient(closest-side,rgba(56,189,248,.8),rgba(56,189,248,.3) 45%,transparent);animation:orb4 21s cubic-bezier(.45,0,.55,1) infinite}
.gem-fx .o5{left:28vw;width:70vw;background:radial-gradient(closest-side,rgba(99,102,241,.7),rgba(99,102,241,.22) 50%,transparent);animation:orb5 31s cubic-bezier(.45,0,.55,1) infinite}
/* 각 덩어리가 다른 박자로: 크게 부풀었다(숨 들이쉼) 천천히 가라앉고, 좌우로 느리게 떠돎 */
@keyframes orb1{0%,100%{transform:translate3d(0,8%,0) scale(.85);opacity:.55}30%{transform:translate3d(9vw,-6%,0) scale(1.12);opacity:.95}60%{transform:translate3d(4vw,4%,0) scale(.95);opacity:.7}80%{transform:translate3d(-3vw,-2%,0) scale(1.04);opacity:.85}}
@keyframes orb2{0%,100%{transform:translate3d(0,-4%,0) scale(1.05);opacity:.8}25%{transform:translate3d(-7vw,6%,0) scale(.88);opacity:.5}55%{transform:translate3d(6vw,-8%,0) scale(1.15);opacity:.95}80%{transform:translate3d(2vw,3%,0) scale(.95);opacity:.65}}
@keyframes orb3{0%,100%{transform:translate3d(0,6%,0) scale(.9);opacity:.5}35%{transform:translate3d(8vw,-5%,0) scale(1.1);opacity:.85}65%{transform:translate3d(-6vw,-9%,0) scale(1.18);opacity:.75}85%{transform:translate3d(-2vw,4%,0) scale(.92);opacity:.55}}
@keyframes orb4{0%,100%{transform:translate3d(0,-6%,0) scale(1.1);opacity:.9}30%{transform:translate3d(-9vw,5%,0) scale(.9);opacity:.55}60%{transform:translate3d(-4vw,-7%,0) scale(1.14);opacity:.9}85%{transform:translate3d(3vw,2%,0) scale(.98);opacity:.7}}
@keyframes orb5{0%,100%{transform:translate3d(-6vw,10%,0) scale(.95);opacity:.4}50%{transform:translate3d(8vw,-4%,0) scale(1.12);opacity:.75}}
@media (max-width:719px){.gem-fx{height:24vh!important}.gem-fx .orb{width:90vw}.gem-fx .o5{width:110vw}}
@media (prefers-reduced-motion:reduce){.gem-fx .gb,.gem-fx .orb{animation:none!important}}

/* Launch 하단: 아주 작은 점 격자 오버레이 (정지 · 빛이 그 아래로 흘러 점이 은은하게 반짝이는 느낌) */
.gem-fx::after{content:"";position:absolute;inset:0;z-index:5;pointer-events:none;
  background-image:radial-gradient(circle,rgba(255,255,255,.55) 0 .6px,transparent 1.1px);background-size:5px 5px;
  -webkit-mask:linear-gradient(0deg,rgba(0,0,0,.9),rgba(0,0,0,.5) 40%,transparent 85%);mask:linear-gradient(0deg,rgba(0,0,0,.9),rgba(0,0,0,.5) 40%,transparent 85%);opacity:.5}
@media (max-width:719px){.gem-fx::after{background-size:4px 4px}}

/* Gate 다이어그램 데이터 빛 흐름 */
.gi-root .gi-network > svg .gi-flow path{fill:none;vector-effect:none;stroke-linecap:round;stroke-dasharray:9 111;stroke-dashoffset:9;animation:giFlow 2.4s cubic-bezier(.45,0,.35,1) infinite}
@keyframes giFlow{from{stroke-dashoffset:9}to{stroke-dashoffset:-100}}
.gi-root .gi-network > svg .gi-flow .gf-glow{stroke:rgba(139,149,161,.22);stroke-width:6}
.gi-root .gi-network > svg .gi-flow .gf-core{stroke:rgba(139,149,161,.75);stroke-width:1.6}
.gi-root .gi-network > svg .gi-flow.is-gate .gf-glow{stroke:rgba(49,130,246,.28);stroke-width:8}
.gi-root .gi-network > svg .gi-flow.is-gate .gf-core{stroke:#1B64DA;stroke-width:2.6}
.gi-root .gi-network > svg .gi-flow.is-gate{mix-blend-mode:normal}
/* Gate 상자: 빛이 모일 때 은은한 광륜 호흡 (opacity만) */
.gi-root .gi-network-gate{position:absolute;isolation:isolate}
.gi-root .gi-network-gate::after{content:"";position:absolute;inset:-10px;border-radius:18px;z-index:-1;pointer-events:none;
  background:radial-gradient(closest-side,rgba(49,130,246,.45),rgba(49,130,246,.12) 70%,transparent);opacity:.3;animation:giHalo 2.4s ease-in-out infinite}
@keyframes giHalo{0%,100%{opacity:.25;transform:scale(.96)}55%{opacity:1;transform:scale(1.06)}}
@media (prefers-reduced-motion:reduce){.gi-root .gi-network > svg .gi-flow,.gi-root .gi-network-gate::after{display:none}}

/* Gate 빛 흐름 v2: 깔끔하게 — 글로우 제거, 가는 한 줄기 빛, 한 박자 안무 + 쉼 */
.gi-root .gi-network > svg .gi-flow path{stroke-dasharray:16 220;stroke-dashoffset:16;stroke-width:1.8;stroke-linecap:round;animation:none}
.gi-root .gi-network > svg .gi-flow .gf-direct{stroke:rgba(139,149,161,.55);stroke-width:1.5;animation:gfDirect 9s cubic-bezier(.5,0,.3,1) infinite}
@keyframes gfDirect{0%{stroke-dashoffset:16}28%,100%{stroke-dashoffset:-100}}
.gi-root .gi-network > svg .gi-flow .gf-in{stroke:#3182F6;animation:gfIn 4.2s cubic-bezier(.55,0,.25,1) infinite}
.gi-root .gi-network > svg .gi-flow .gf-out{stroke:#3182F6;animation:gfOut 4.2s cubic-bezier(.55,0,.25,1) infinite}
@keyframes gfIn{0%{stroke-dashoffset:16}34%,100%{stroke-dashoffset:-100}}
@keyframes gfOut{0%,40%{stroke-dashoffset:16}74%,100%{stroke-dashoffset:-100}}
.gi-root .gi-network-gate::after{inset:-6px;border-radius:16px;background:none;box-shadow:0 0 0 1px rgba(49,130,246,.35),0 0 24px 2px rgba(49,130,246,.35);animation:gfHalo 4.2s cubic-bezier(.55,0,.25,1) infinite}
@keyframes gfHalo{0%,26%{opacity:0;transform:scale(.97)}37%{opacity:1;transform:scale(1)}60%,100%{opacity:0;transform:scale(1.03)}}
.gi-root .gi-network .gi-gate-lines path{opacity:.38}
.gi-root .gi-network > svg .gi-flow .gf-in,.gi-root .gi-network > svg .gi-flow .gf-out{stroke:#1B64DA;stroke-width:2.4}

/* Gate 빛 흐름 v3: 한 줄씩 차례로 도착 · 도착 순간 Gate 테두리 점등 · 데이터 박스도 수신 순간 점등 */
.gi-root .gi-network > svg .gi-flow .gf-in{animation:gfIn3 7.2s cubic-bezier(.5,0,.3,1) infinite both}
.gi-root .gi-network > svg .gi-flow .gf-out{animation:gfOut3 3.6s cubic-bezier(.5,0,.3,1) infinite both}
@keyframes gfIn3{0%{stroke-dashoffset:16}11.1%,100%{stroke-dashoffset:-100}}
@keyframes gfOut3{0%{stroke-dashoffset:16}22.2%,100%{stroke-dashoffset:-100}}
/* Gate 상자 테두리: 1.2초마다(도착 순간) 빛나는 링이 번쩍였다 퍼지며 사라짐 */
.gi-root .gi-network-gate::after{inset:-5px;border-radius:15px;background:none;
  box-shadow:0 0 0 1.5px #3182F6,0 0 18px 1px rgba(49,130,246,.45);animation:gfRing 1.2s cubic-bezier(.3,0,.2,1) infinite}
@keyframes gfRing{0%,62%{opacity:0;transform:scale(.985)}68%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.045)}}
.gi-root .gi-network-gate{animation:gfBump 1.2s cubic-bezier(.3,0,.2,1) infinite}
@keyframes gfBump{0%,62%,100%{transform:translate(-50%,-50%) scale(1)}70%{transform:translate(-50%,-50%) scale(1.025)}}
/* 데이터 박스: 빛이 닿는 순간 파란 테두리 점등 */
.gi-root .gi-node.gf-target{position:relative}
.gi-root .gi-node.gf-target::after{content:"";position:absolute;inset:-1px;border-radius:inherit;pointer-events:none;
  box-shadow:0 0 0 1.5px #3182F6,0 6px 18px -6px rgba(49,130,246,.5);opacity:0;animation:gfHit 3.6s ease-out infinite;animation-delay:var(--gfd,0s)}
@keyframes gfHit{0%{opacity:1}28%,100%{opacity:0}}
@media (prefers-reduced-motion:reduce){.gi-root .gi-network-gate,.gi-root .gi-node.gf-target::after{animation:none}}

/* 개별 연결(회색)도 같은 박자: 도구가 1.2초마다 하나씩, 세 데이터로 각각 따로 연결 → 데이터 박스 회색 점등 */
.gi-root .gi-network > svg .gi-flow .gf-direct{stroke:rgba(107,118,132,.7);stroke-width:1.8;animation:gfIn3 7.2s cubic-bezier(.5,0,.3,1) infinite both}
.gi-root .gi-node.gf-target.gf-gray::after{box-shadow:0 0 0 1.5px rgba(107,118,132,.55),0 6px 16px -8px rgba(25,31,40,.25);animation:gfHitG 1.2s ease-out infinite;animation-delay:var(--gfd,0s)}
@keyframes gfHitG{0%{opacity:1}55%,100%{opacity:0}}

/* Gate 상자: 컬러 그라데이션 + 데이터가 들어올 때마다 빛 띠가 훑고 지나감(읽는 느낌) */
.gi-root .gi-network-gate{background:linear-gradient(135deg,#3B8BFF 0%,#2A6FEF 45%,#5B5BF0 100%)!important;overflow:visible}
.gi-root .gi-network-gate::before{content:"";position:absolute;inset:0;border-radius:inherit;z-index:-1;pointer-events:none;
  background:linear-gradient(100deg,transparent 0 35%,rgba(94,234,212,.0) 38%,rgba(125,211,252,.75) 46%,rgba(196,181,253,.8) 52%,rgba(244,114,182,.45) 57%,transparent 64% 100%) no-repeat;
  background-size:300% 100%;background-position:120% 0;animation:gfScan 1.2s cubic-bezier(.4,0,.2,1) infinite}
@keyframes gfScan{0%,64%{background-position:120% 0;opacity:0}70%{opacity:1}100%{background-position:-20% 0;opacity:.2}}
/* 읽는 동안 글자 미세 반짝 */
.gi-root .gi-network-gate strong{animation:gfRead 1.2s ease-out infinite}
@keyframes gfRead{0%,64%{text-shadow:none}72%{text-shadow:0 0 12px rgba(255,255,255,.8)}100%{text-shadow:none}}
@media (prefers-reduced-motion:reduce){.gi-root .gi-network-gate::before,.gi-root .gi-network-gate strong{animation:none}}

/* 빛 흐름 v4: 하나씩 천천히 — 왼쪽 선 18개를 1.6초 간격으로 한 줄씩(1.4초 이동), 오른쪽 도구 6개를 2.4초 간격(1.3초씩 이동) */
.gi-root .gi-network > svg .gi-flow .gf-direct{animation:gfDirSlow 28.8s cubic-bezier(.45,0,.25,1) infinite both}
@keyframes gfDirSlow{0%{stroke-dashoffset:16}4.86%,100%{stroke-dashoffset:-100}}
.gi-root .gi-node.gf-target.gf-gray::after{animation:gfHitG2 4.8s ease-out infinite both;animation-delay:var(--gfd,0s)}
@keyframes gfHitG2{0%{opacity:1}20%,100%{opacity:0}}
.gi-root .gi-network > svg .gi-flow .gf-in{animation:gfIn4 14.4s cubic-bezier(.45,0,.25,1) infinite both}
.gi-root .gi-network > svg .gi-flow .gf-out{animation:gfOut4 7.2s cubic-bezier(.45,0,.25,1) infinite both}
@keyframes gfIn4{0%{stroke-dashoffset:16}9.03%,100%{stroke-dashoffset:-100}}
@keyframes gfOut4{0%{stroke-dashoffset:16}18.06%,100%{stroke-dashoffset:-100}}
.gi-root .gi-network-gate{animation:gfBump4 2.4s ease-in-out infinite}
.gi-root .gi-network-gate::after{animation:gfRing4 2.4s ease-out infinite}
.gi-root .gi-network-gate::before{animation:gfScan4 2.4s cubic-bezier(.4,0,.2,1) infinite}
.gi-root .gi-network-gate strong{animation:gfRead4 2.4s ease-out infinite}
@keyframes gfRing4{0%,50%{opacity:0;transform:scale(.985)}56%{opacity:1;transform:scale(1)}90%,100%{opacity:0;transform:scale(1.045)}}
@keyframes gfBump4{0%,50%,100%{transform:translate(-50%,-50%) scale(1)}60%{transform:translate(-50%,-50%) scale(1.025)}}
@keyframes gfScan4{0%,50%{background-position:120% 0;opacity:0}58%{opacity:1}92%,100%{background-position:-20% 0;opacity:0}}
@keyframes gfRead4{0%,52%{text-shadow:none}62%{text-shadow:0 0 12px rgba(255,255,255,.8)}90%,100%{text-shadow:none}}
.gi-root .gi-node.gf-target:not(.gf-gray)::after{animation:gfHit4 7.2s ease-out infinite both;animation-delay:var(--gfd,0s)}
@keyframes gfHit4{0%{opacity:1}14%,100%{opacity:0}}

/* 빛 흐름 v5: 아주 천천히 — 왼쪽 3초 간격(2.6초 이동)·오른쪽 4초 간격(2.4초씩 이동) · Gate 상자는 커지지 않고 그라데이션이 계속 흐름 */
.gi-root .gi-network > svg .gi-flow .gf-direct{animation:gfDir5 54s cubic-bezier(.45,0,.25,1) infinite both}
@keyframes gfDir5{0%{stroke-dashoffset:16}4.81%,100%{stroke-dashoffset:-100}}
.gi-root .gi-node.gf-target.gf-gray::after{animation:gfHitG5 9s ease-out infinite both;animation-delay:var(--gfd,0s)}
@keyframes gfHitG5{0%{opacity:1}22%,100%{opacity:0}}
.gi-root .gi-network > svg .gi-flow .gf-in{animation:gfIn5 24s cubic-bezier(.45,0,.25,1) infinite both}
.gi-root .gi-network > svg .gi-flow .gf-out{animation:gfOut5 12s cubic-bezier(.45,0,.25,1) infinite both}
@keyframes gfIn5{0%{stroke-dashoffset:16}10%,100%{stroke-dashoffset:-100}}
@keyframes gfOut5{0%{stroke-dashoffset:16}20%,100%{stroke-dashoffset:-100}}
.gi-root .gi-node.gf-target:not(.gf-gray)::after{animation:gfHit5 12s ease-out infinite both;animation-delay:var(--gfd,0s)}
@keyframes gfHit5{0%{opacity:1}16%,100%{opacity:0}}
/* Gate 상자: 크기 변화 없음 · 면 그라데이션이 천천히 흐름 · 도착 때 테두리만 은은히 */
.gi-root .gi-network-gate{animation:none!important;transform:translate(-50%,-50%)}
.gi-root .gi-network-gate strong{animation:none!important}
.gi-root .gi-network-gate::before{background:linear-gradient(115deg,#2F7BF5 0%,#5B5BF0 22%,#2FA8EE 45%,#7C6CF6 68%,#3182F6 85%,#2FA8EE 100%) no-repeat;
  background-size:320% 100%;opacity:1;animation:gfFlow5 16s ease-in-out infinite alternate!important}
@keyframes gfFlow5{from{background-position:0% 0}to{background-position:100% 0}}
.gi-root .gi-network-gate::after{animation:gfRing5 4s ease-in-out infinite!important}
@keyframes gfRing5{0%,50%{opacity:0;transform:none}62%{opacity:.9;transform:none}95%,100%{opacity:0;transform:none}}
/* 오른쪽 5초 간격: 들어감→Gate→데이터가 끝난 뒤 다음 도구 시작(겹침 없음) */
.gi-root .gi-network > svg .gi-flow .gf-in{animation:gfIn6 30s cubic-bezier(.45,0,.25,1) infinite both}
.gi-root .gi-network > svg .gi-flow .gf-out{animation:gfOut6 15s cubic-bezier(.45,0,.25,1) infinite both}
@keyframes gfIn6{0%{stroke-dashoffset:16}8%,100%{stroke-dashoffset:-100}}
@keyframes gfOut6{0%{stroke-dashoffset:16}16%,100%{stroke-dashoffset:-100}}
.gi-root .gi-node.gf-target:not(.gf-gray)::after{animation:gfHit6 15s ease-out infinite both;animation-delay:var(--gfd,0s)}
@keyframes gfHit6{0%{opacity:1}13%,100%{opacity:0}}
.gi-root .gi-network-gate::after{animation:gfRing6 5s ease-in-out infinite!important}
@keyframes gfRing6{0%,40%{opacity:0;transform:none}50%{opacity:.9;transform:none}85%,100%{opacity:0;transform:none}}

/* 홈 가장자리 빛: 더 얇고(78→46px) 연하게(55%) */
body.page-index-shell .edge-glow,body.ent.final .edge-glow{opacity:.55;--m:linear-gradient(90deg,#000 0,rgba(0,0,0,.55) 7px,rgba(0,0,0,.24) 17px,rgba(0,0,0,.08) 28px,rgba(0,0,0,.02) 38px,transparent 46px,transparent calc(100% - 46px),rgba(0,0,0,.02) calc(100% - 38px),rgba(0,0,0,.08) calc(100% - 28px),rgba(0,0,0,.24) calc(100% - 17px),rgba(0,0,0,.55) calc(100% - 7px),#000 100%),linear-gradient(180deg,#000 0,rgba(0,0,0,.55) 7px,rgba(0,0,0,.24) 17px,rgba(0,0,0,.08) 28px,rgba(0,0,0,.02) 38px,transparent 46px,transparent calc(100% - 46px),rgba(0,0,0,.02) calc(100% - 38px),rgba(0,0,0,.08) calc(100% - 28px),rgba(0,0,0,.24) calc(100% - 17px),rgba(0,0,0,.55) calc(100% - 7px),#000 100%)}
@media (max-width:719px){body.page-index-shell .edge-glow,body.ent.final .edge-glow{--m:linear-gradient(90deg,#000 0,rgba(0,0,0,.45) 5px,rgba(0,0,0,.15) 13px,transparent 26px,transparent calc(100% - 26px),rgba(0,0,0,.15) calc(100% - 13px),rgba(0,0,0,.45) calc(100% - 5px),#000 100%),linear-gradient(180deg,#000 0,rgba(0,0,0,.45) 5px,rgba(0,0,0,.15) 13px,transparent 26px,transparent calc(100% - 26px),rgba(0,0,0,.15) calc(100% - 13px),rgba(0,0,0,.45) calc(100% - 5px),#000 100%)}}
body.page-index-shell .edge-glow,body.ent.final .edge-glow{animation:edgePulseSoft 5s ease-in-out infinite}
@keyframes edgePulseSoft{0%,100%{opacity:.42}50%{opacity:.55}}

/* Launch 하단 빛 v5: 커졌다 작아지는 반복 1.2배 빠르게 · 최대 크기↓(1.18→1.0) · 최소 크기↓(.85→.55) */
.gem-fx .o1{animation:orb1b 15.8s cubic-bezier(.45,0,.55,1) infinite!important}
.gem-fx .o2{animation:orb2b 19.2s cubic-bezier(.45,0,.55,1) infinite!important}
.gem-fx .o3{animation:orb3b 22.5s cubic-bezier(.45,0,.55,1) infinite!important}
.gem-fx .o4{animation:orb4b 17.5s cubic-bezier(.45,0,.55,1) infinite!important}
.gem-fx .o5{animation:orb5b 25.8s cubic-bezier(.45,0,.55,1) infinite!important}
.gem-fx .gb1{animation-duration:11.7s!important}.gem-fx .gb2{animation-duration:11.7s!important}
@keyframes orb1b{0%,100%{transform:translate3d(0,10%,0) scale(.55);opacity:.5}30%{transform:translate3d(9vw,-4%,0) scale(.98);opacity:.95}60%{transform:translate3d(4vw,6%,0) scale(.62);opacity:.65}80%{transform:translate3d(-3vw,0,0) scale(.85);opacity:.85}}
@keyframes orb2b{0%,100%{transform:translate3d(0,-2%,0) scale(.9);opacity:.8}25%{transform:translate3d(-7vw,8%,0) scale(.56);opacity:.5}55%{transform:translate3d(6vw,-5%,0) scale(1);opacity:.95}80%{transform:translate3d(2vw,5%,0) scale(.65);opacity:.65}}
@keyframes orb3b{0%,100%{transform:translate3d(0,8%,0) scale(.58);opacity:.5}35%{transform:translate3d(8vw,-3%,0) scale(.92);opacity:.85}65%{transform:translate3d(-6vw,-6%,0) scale(1);opacity:.75}85%{transform:translate3d(-2vw,6%,0) scale(.6);opacity:.55}}
@keyframes orb4b{0%,100%{transform:translate3d(0,-4%,0) scale(.95);opacity:.9}30%{transform:translate3d(-9vw,8%,0) scale(.55);opacity:.55}60%{transform:translate3d(-4vw,-4%,0) scale(.98);opacity:.9}85%{transform:translate3d(3vw,4%,0) scale(.7);opacity:.7}}
@keyframes orb5b{0%,100%{transform:translate3d(-6vw,12%,0) scale(.6);opacity:.4}50%{transform:translate3d(8vw,-2%,0) scale(.96);opacity:.75}}

/* Launch 하단 빛 v6: 컬러 다양화 — 블루·마젠타·오렌지·민트·핑크·시안·옐로 7색, 바닥광도 4색 교차 */
.gem-fx .o1{background:radial-gradient(closest-side,rgba(66,133,244,.9),rgba(66,133,244,.35) 45%,transparent)!important}
.gem-fx .o2{background:radial-gradient(closest-side,rgba(217,70,239,.85),rgba(217,70,239,.3) 45%,transparent)!important}
.gem-fx .o3{background:radial-gradient(closest-side,rgba(251,146,60,.8),rgba(251,146,60,.28) 45%,transparent)!important}
.gem-fx .o4{background:radial-gradient(closest-side,rgba(45,212,191,.8),rgba(45,212,191,.28) 45%,transparent)!important}
.gem-fx .o5{background:radial-gradient(closest-side,rgba(244,114,182,.75),rgba(244,114,182,.25) 50%,transparent)!important}
.gem-fx .o6{left:6vw;background:radial-gradient(closest-side,rgba(56,189,248,.8),rgba(56,189,248,.28) 45%,transparent);animation:orb3b 20.4s cubic-bezier(.45,0,.55,1) infinite -7s}
.gem-fx .o7{left:74vw;width:44vw;background:radial-gradient(closest-side,rgba(250,204,21,.6),rgba(250,204,21,.2) 45%,transparent);animation:orb2b 23.6s cubic-bezier(.45,0,.55,1) infinite -11s}
.gem-fx .gb1{background:radial-gradient(60% 100% at 25% 100%,rgba(66,133,244,.7),rgba(66,133,244,.22) 55%,transparent 80%),radial-gradient(55% 90% at 80% 100%,rgba(251,146,60,.6),rgba(251,146,60,.18) 55%,transparent 80%)!important}
.gem-fx .gb2{background:radial-gradient(55% 95% at 22% 100%,rgba(217,70,239,.6),rgba(217,70,239,.18) 55%,transparent 80%),radial-gradient(60% 100% at 75% 100%,rgba(45,212,191,.6),rgba(45,212,191,.18) 55%,transparent 80%)!important}
@media (max-width:719px){.gem-fx .o6,.gem-fx .o7{width:80vw}}

/* Gate 빛 흐름 v6: 도착 → 데이터 빛이 Gate 테두리를 한 바퀴(1.6초) 돌며 면 그라데이션 색이 바뀜 → 오른쪽 데이터로 나감
   한 도구당 6.5초: 이동 2.4 · 한 바퀴 1.6 · 나감 2.4 */
.gi-root .gi-network > svg .gi-flow .gf-in{animation:gfIn7 39s cubic-bezier(.45,0,.25,1) infinite both}
@keyframes gfIn7{0%{stroke-dashoffset:16}6.15%,100%{stroke-dashoffset:-100}}
.gi-root .gi-network > svg .gi-flow .gf-out{animation:gfOut7 19.5s cubic-bezier(.45,0,.25,1) infinite both}
@keyframes gfOut7{0%{stroke-dashoffset:16}12.3%,100%{stroke-dashoffset:-100}}
.gi-root .gi-node.gf-target:not(.gf-gray)::after{animation:gfHit7 19.5s ease-out infinite both;animation-delay:var(--gfd,0s)}
@keyframes gfHit7{0%{opacity:1}9%,100%{opacity:0}}
.gi-root .gi-network-gate .gf-loop{position:absolute;left:-4px;top:-4px;width:calc(100% + 8px);height:calc(100% + 8px);overflow:visible;pointer-events:none;z-index:2}
.gi-root .gi-network-gate .gf-loop rect{fill:none;stroke:url(#gfLoopG);stroke-width:2.4;stroke-linecap:round;stroke-dasharray:26 74;stroke-dashoffset:0;opacity:0;
  animation:gfLoop 6.5s linear infinite}
@keyframes gfLoop{0%,36.9%{stroke-dashoffset:0;opacity:0}39%{opacity:1}59.5%{opacity:1}61.5%,100%{stroke-dashoffset:-100;opacity:0}}
/* 도는 동안 면 그라데이션 색이 이동, 나머지 시간에 천천히 되돌아옴 */
.gi-root .gi-network-gate::before{animation:gfFace 6.5s ease-in-out infinite!important}
@keyframes gfFace{0%,36.9%{background-position:0% 0}61.5%{background-position:100% 0}100%{background-position:0% 0}}
/* 테두리 점멸 링은 끄고, 도는 동안만 은은한 광 */
.gi-root .gi-network-gate::after{animation:gfGlow7 6.5s ease-in-out infinite!important;box-shadow:0 0 22px 2px rgba(124,108,246,.35)!important}
@keyframes gfGlow7{0%,36.9%{opacity:0;transform:none}48%{opacity:1;transform:none}64%,100%{opacity:0;transform:none}}
@media (prefers-reduced-motion:reduce){.gi-root .gi-network-gate .gf-loop{display:none}}
.gi-root .gi-network-gate .gf-loop rect{stroke-width:2.8}

/* 데이터 수신 강조: 테두리 대신 면(배경)으로 — 회색 쪽은 연회색, Gate 쪽은 연블루 그라데이션 */
.gi-root .gi-node.gf-target{isolation:isolate}
.gi-root .gi-node.gf-target::after{z-index:-1;inset:0;box-shadow:none!important;background:linear-gradient(135deg,#DCEBFF,#E9E4FF)}
.gi-root .gi-node.gf-target.gf-gray::after{background:#E9ECF0}

/* 데이터 박스: 평상시 = 라인만(면 없음), 받을 때만 = 면으로 채워짐 */
.gi-root .gi-network .gi-right .gi-node{background:transparent}
.gi-root .gi-node.gf-target::after{background:linear-gradient(135deg,#3182F6,#5B5BF0)}
.gi-root .gi-node.gf-target.gf-gray::after{background:#D5DAE0}
/* 파란 면일 때 글자 흰색 (면 타이밍과 동일) */
.gi-root .gi-node.gf-target:not(.gf-gray),.gi-root .gi-node.gf-target:not(.gf-gray) small{animation:gfTxt7 19.5s ease-out infinite both;animation-delay:var(--gfd,0s)}
@keyframes gfTxt7{0%{color:#fff}9%,100%{color:inherit}}
.gi-root .gi-node.gf-target:not(.gf-gray) small{animation-name:gfTxtS7}
@keyframes gfTxtS7{0%{color:rgba(255,255,255,.85)}9%,100%{color:var(--muted)}}
/* 가속감 복원: 천천히 출발 → 중간에 빠르게 → 부드럽게 도착 */
.gi-root .gi-network > svg .gi-flow .gf-in,.gi-root .gi-network > svg .gi-flow .gf-out,.gi-root .gi-network > svg .gi-flow .gf-direct{animation-timing-function:cubic-bezier(.78,0,.16,1)!important}
.gi-root .gi-network-gate .gf-loop rect{animation-timing-function:cubic-bezier(.65,0,.25,1)}
/* 시작 전 대기 중엔 면이 보이지 않도록 (fill-mode none) */
.gi-root .gi-node.gf-target::after,.gi-root .gi-node.gf-target:not(.gf-gray),.gi-root .gi-node.gf-target:not(.gf-gray) small{animation-fill-mode:none!important}

/* Launch 하단 빛 더 연하게 (콘텐츠 집중): 전체 .55 → .32, 점 격자도 낮춤 */
.gem-fx{opacity:.32!important}
.gem-fx::after{opacity:.35}

/* 홈 히어로 ① 막대그래프 연출: 탄성 있게 하나씩 자람 · 평균선 · 최고값 말풍선 */
.pv-e .bars{position:relative}
.pv-e .bars span{position:relative}
.pv.play .pv-e .bars span{animation:none}
.pv-e .bars.run span{animation:barPop .9s cubic-bezier(.34,1.5,.5,1) both;animation-delay:calc(var(--i,0) * .11s)}
.pv-e .bars span:nth-child(1){--i:0}.pv-e .bars span:nth-child(2){--i:1}.pv-e .bars span:nth-child(3){--i:2}.pv-e .bars span:nth-child(4){--i:3}.pv-e .bars span:nth-child(5){--i:4}.pv-e .bars span:nth-child(6){--i:5}.pv-e .bars span:nth-child(7){--i:6}
@keyframes barPop{0%{transform:scaleY(0);opacity:.3}60%{opacity:1}100%{transform:scaleY(1);opacity:1}}
.pv-e .bars span:not(.is-peak){filter:none;opacity:.78}
.pv-e .bars span.is-peak{background:linear-gradient(180deg,#7C6CF6,#2FA8EE)!important;box-shadow:0 6px 16px -6px rgba(99,102,241,.7)}
.pv-e .bars span.is-peak::after{content:attr(data-v);position:absolute;left:50%;bottom:calc(100% + 6px);transform:translate(-50%,4px);opacity:0;white-space:nowrap;
  font-size:10.5px;font-weight:700;color:#fff;background:#1D1D1F;padding:3px 7px;border-radius:6px;line-height:1.2}
.pv-e .bars.run span.is-peak::after{animation:tipIn .45s cubic-bezier(.2,.9,.2,1) 1.25s both}
@keyframes tipIn{from{opacity:0;transform:translate(-50%,4px)}to{opacity:1;transform:translate(-50%,0)}}
.bars-avg{position:absolute;left:-2px;right:-2px;height:0;border-top:1.5px dashed rgba(99,102,241,.55);pointer-events:none;opacity:0;transform:scaleX(0);transform-origin:left}
.bars-avg em{position:absolute;right:0;top:-15px;font-style:normal;font-size:9.5px;font-weight:700;color:#6366F1;letter-spacing:.02em}
.pv-e .bars.run .bars-avg{animation:avgIn .7s cubic-bezier(.2,.9,.2,1) .95s both}
@keyframes avgIn{from{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}

/* 홈 히어로 ② Launch 진단: 항목이 하나씩 검사 → 컬러 점등 */
.pv.play .pv-l .checks li{animation:none}
.pv-l.seq .prog i{animation:none!important;transform:scaleX(0);transition:transform .6s cubic-bezier(.4,0,.2,1)}
.pv-l.seq .checks li{transition:background .35s ease,opacity .35s ease;opacity:.5}
.pv-l.seq .checks li span{background:#2C2C2E!important;color:rgba(235,235,245,.45)!important;transition:background .35s ease,color .35s ease}
.pv-l.seq .checks li.scan{opacity:1;background:#1C1C22}
.pv-l.seq .checks li.scan span{color:#C7D2FE!important;background:rgba(99,102,241,.22)!important;animation:scanBlink .6s ease-in-out infinite alternate}
@keyframes scanBlink{from{opacity:.55}to{opacity:1}}
.pv-l.seq .checks li.on{opacity:1}
.pv-l.seq .checks li.on span{animation:badgeOn .5s cubic-bezier(.34,1.6,.5,1) both}
@keyframes badgeOn{0%{transform:scale(.7)}100%{transform:scale(1)}}
.pv-l.seq .checks li.ok.on span{background:rgba(48,209,88,.18)!important;color:#30D158!important}
.pv-l.seq .checks li.warn.on span{background:rgba(255,159,10,.18)!important;color:#FF9F0A!important}
.pv-l.seq .checks li.bad.on span{background:rgba(255,69,58,.18)!important;color:#FF453A!important}
.pv-l.seq .checks li.idle.on span{background:#2C2C2E!important;color:rgba(235,235,245,.6)!important}
.pv-l.seq .checks li.ok.on{background:linear-gradient(90deg,rgba(48,209,88,.10),#141416 60%)}
.pv-l.seq .checks li.warn.on{background:linear-gradient(90deg,rgba(255,159,10,.10),#141416 60%)}
.pv-l.seq .checks li.bad.on{background:linear-gradient(90deg,rgba(255,69,58,.12),#141416 60%)}
.pv-l .url em.done{color:#30D158}
.pv-e .bars{margin-top:26px}
/* 막대 자라기: .pv.play 규칙(animation:none)보다 우선하도록 */
.pv .pv-e .bars.run span{animation:barPop .9s cubic-bezier(.34,1.5,.5,1) both!important;animation-delay:calc(var(--i,0) * .11s)!important}

/* Launch 하단: 위쪽 컬러는 그대로(연하게), 맨 바닥만 더 밝게 — 흐림 층과 바닥 광을 분리 */
.gem-fx{opacity:1!important}
.gem-fx .gfx-soft{position:absolute;inset:0;opacity:.32}
.gem-fx::after{opacity:.35}
.gem-fx .gfx-floor{position:absolute;left:0;right:0;bottom:0;height:22%;pointer-events:none;will-change:opacity;
  background:linear-gradient(0deg,rgba(255,255,255,.22) 0%,rgba(255,255,255,0) 100%),
    linear-gradient(90deg,rgba(66,133,244,.75),rgba(217,70,239,.7) 25%,rgba(251,146,60,.65) 50%,rgba(45,212,191,.7) 75%,rgba(56,189,248,.75));
  -webkit-mask:linear-gradient(0deg,#000 0%,rgba(0,0,0,.55) 45%,transparent 100%);mask:linear-gradient(0deg,#000 0%,rgba(0,0,0,.55) 45%,transparent 100%);
  opacity:.85;animation:floorBreath 7s ease-in-out infinite}
@keyframes floorBreath{0%,100%{opacity:.7}50%{opacity:.95}}
@media (prefers-reduced-motion:reduce){.gem-fx .gfx-floor{animation:none}}

/* GNB 선택 상태: 모든 페이지에 Gate처럼 언더라인 */
.final .hdr .nav a[aria-current="page"],.hdr .nav a[aria-current="page"]{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:2px}

/* Launch 바닥 광 v2: 일자 띠 대신 — 바닥에 밝은 빛 웅덩이 5개가 각자 부풀고·가라앉고·떠돌며 강약이 생김 */
.gem-fx .gfx-floor{height:30%!important;background:none!important;-webkit-mask:none!important;mask:none!important;opacity:1!important;animation:none!important}
.gem-fx .gfx-floor b{position:absolute;bottom:-60%;height:140%;border-radius:50%;transform-origin:50% 100%;will-change:transform,opacity}
.gem-fx .gfx-floor .f1{left:-8%;width:42%;background:radial-gradient(closest-side,rgba(66,133,244,.85),rgba(66,133,244,.3) 50%,transparent);animation:fl1 9.5s cubic-bezier(.45,0,.55,1) infinite}
.gem-fx .gfx-floor .f2{left:16%;width:36%;background:radial-gradient(closest-side,rgba(217,70,239,.8),rgba(217,70,239,.28) 50%,transparent);animation:fl2 12s cubic-bezier(.45,0,.55,1) infinite}
.gem-fx .gfx-floor .f3{left:38%;width:34%;background:radial-gradient(closest-side,rgba(251,146,60,.75),rgba(251,146,60,.25) 50%,transparent);animation:fl3 10.5s cubic-bezier(.45,0,.55,1) infinite}
.gem-fx .gfx-floor .f4{left:58%;width:38%;background:radial-gradient(closest-side,rgba(45,212,191,.8),rgba(45,212,191,.28) 50%,transparent);animation:fl1 13s cubic-bezier(.45,0,.55,1) infinite -5s}
.gem-fx .gfx-floor .f5{left:76%;width:36%;background:radial-gradient(closest-side,rgba(56,189,248,.85),rgba(56,189,248,.3) 50%,transparent);animation:fl2 11s cubic-bezier(.45,0,.55,1) infinite -3s}
@keyframes fl1{0%,100%{transform:translate3d(0,0,0) scale(.7,.55);opacity:.55}35%{transform:translate3d(5vw,0,0) scale(1.05,1);opacity:1}70%{transform:translate3d(-3vw,0,0) scale(.85,.7);opacity:.7}}
@keyframes fl2{0%,100%{transform:translate3d(0,0,0) scale(1,.95);opacity:.95}40%{transform:translate3d(-5vw,0,0) scale(.7,.5);opacity:.5}75%{transform:translate3d(3vw,0,0) scale(.95,.85);opacity:.85}}
@keyframes fl3{0%,100%{transform:translate3d(0,0,0) scale(.8,.6);opacity:.6}50%{transform:translate3d(4vw,0,0) scale(1.08,1.05);opacity:1}}
@media (max-width:719px){.gem-fx .gfx-floor b{width:60%!important}}
@media (prefers-reduced-motion:reduce){.gem-fx .gfx-floor b{animation:none}}

/* Gate 상단 블루: 더 밝게 + 그라데이션 색이 천천히 바뀜 (두 층 교차 페이드 · opacity만) */
.gi-root .gi-blue-hero{background:#2F7BF5}
.gi-root .gi-blue-hero .gbh-veil{background:linear-gradient(115deg,rgba(49,130,246,.9) 0%,rgba(79,155,255,.66) 45%,rgba(124,108,246,.42) 100%)!important}
.gi-root .gi-blue-hero .gbh-veil::before,.gi-root .gi-blue-hero .gbh-veil::after{content:"";position:absolute;inset:0;will-change:opacity}
.gi-root .gi-blue-hero .gbh-veil::before{background:linear-gradient(115deg,rgba(47,168,238,.92) 0%,rgba(59,130,246,.62) 50%,rgba(99,102,241,.45) 100%);animation:gbhA 12s ease-in-out infinite}
.gi-root .gi-blue-hero .gbh-veil::after{background:linear-gradient(115deg,rgba(91,91,240,.88) 0%,rgba(49,130,246,.6) 50%,rgba(56,189,248,.45) 100%);animation:gbhB 12s ease-in-out infinite}
@keyframes gbhA{0%,100%{opacity:0}33%{opacity:1}66%{opacity:0}}
@keyframes gbhB{0%,33%,100%{opacity:0}66%{opacity:1}}
.gi-root .gi-blue-hero .gbh-title{text-shadow:0 8px 40px rgba(20,50,140,.35)}
@media (prefers-reduced-motion:reduce){.gi-root .gi-blue-hero .gbh-veil::before,.gi-root .gi-blue-hero .gbh-veil::after{animation:none}}

/* Gate 상단 v2: 그라데이션 자체가 흐르며 색이 바뀜(큰 그라데이션 판이 천천히 이동·회전) + 더 밝게 */
.gi-root .gi-blue-hero{background:#4A8DFF}
.gi-root .gi-blue-hero .gbh-veil{overflow:hidden;background:rgba(59,130,246,.35)!important}
.gi-root .gi-blue-hero .gbh-veil::before{inset:auto;left:-50%;top:-50%;width:200%;height:200%;opacity:.92!important;
  background:linear-gradient(120deg,#3B8BFF 0%,#38BDF8 18%,#6366F1 34%,#4F9BFF 50%,#818CF8 66%,#22D3EE 82%,#3B8BFF 100%)!important;
  animation:gbhMove 14s ease-in-out infinite alternate!important}
@keyframes gbhMove{0%{transform:translate3d(-18%,-10%,0) rotate(0deg)}50%{transform:translate3d(12%,6%,0) rotate(8deg)}100%{transform:translate3d(20%,-8%,0) rotate(-6deg)}}
/* 빛 덩어리: 밝은 하늘·라벤더 광이 천천히 떠돌며 밝기 강약 */
.gi-root .gi-blue-hero .gbh-veil::after{inset:auto;left:-20%;top:-30%;width:140%;height:160%;opacity:1!important;
  background:radial-gradient(35% 40% at 25% 40%,rgba(186,230,253,.55),transparent 70%),radial-gradient(30% 35% at 75% 60%,rgba(196,181,253,.5),transparent 70%)!important;
  animation:gbhGlow 11s ease-in-out infinite alternate!important}
@keyframes gbhGlow{0%{transform:translate3d(-6%,4%,0) scale(1)}100%{transform:translate3d(8%,-6%,0) scale(1.12)}}
.gi-root .gi-blue-hero .gbh-video{opacity:.35}
/* 민트·블루·퍼플 계열 */
.gi-root .gi-blue-hero .gbh-veil::before{background:linear-gradient(120deg,#2DD4BF 0%,#38BDF8 16%,#3B82F6 32%,#8B5CF6 48%,#5EEAD4 64%,#60A5FA 80%,#A78BFA 100%)!important}
.gi-root .gi-blue-hero .gbh-veil::after{background:radial-gradient(35% 40% at 25% 40%,rgba(153,246,228,.5),transparent 70%),radial-gradient(30% 35% at 75% 60%,rgba(196,181,253,.55),transparent 70%)!important}

/* Gate 상단 v3: 영상은 그대로 보이게 · 메쉬 그라데이션(부드럽게 녹는 빛 덩어리 4개)이 영상 위를 천천히 흐름
   선형 띠 제거 → 경계 없음. 각 덩어리는 여러 단계로 서서히 투명해지는 원형 그라데이션 */
.gi-root .gi-blue-hero{background:#1E5FD9}
.gi-root .gi-blue-hero .gbh-video{opacity:1}
.gi-root .gi-blue-hero .gbh-veil{background:linear-gradient(90deg,rgba(30,95,217,.55) 0%,rgba(30,95,217,.28) 50%,rgba(30,95,217,.12) 100%)!important}
.gi-root .gi-blue-hero .gbh-veil::before,.gi-root .gi-blue-hero .gbh-veil::after{inset:auto!important;left:-25%!important;top:-35%!important;width:150%!important;height:170%!important;opacity:1!important}
.gi-root .gi-blue-hero .gbh-veil::before{
  background:
    radial-gradient(closest-side at 22% 38%,rgba(45,212,191,.62),rgba(45,212,191,.42) 30%,rgba(45,212,191,.18) 58%,rgba(45,212,191,.05) 80%,transparent),
    radial-gradient(closest-side at 70% 62%,rgba(139,92,246,.6),rgba(139,92,246,.4) 30%,rgba(139,92,246,.16) 58%,rgba(139,92,246,.04) 80%,transparent)!important;
  background-size:60% 70%,55% 65%!important;background-repeat:no-repeat!important;background-position:10% 30%,85% 70%!important;
  animation:meshA 16s cubic-bezier(.45,0,.55,1) infinite alternate!important}
.gi-root .gi-blue-hero .gbh-veil::after{
  background:
    radial-gradient(closest-side,rgba(56,189,248,.55),rgba(56,189,248,.36) 30%,rgba(56,189,248,.14) 58%,rgba(56,189,248,.04) 80%,transparent),
    radial-gradient(closest-side,rgba(99,102,241,.5),rgba(99,102,241,.32) 30%,rgba(99,102,241,.12) 58%,rgba(99,102,241,.03) 80%,transparent)!important;
  background-size:55% 65%,60% 70%!important;background-repeat:no-repeat!important;background-position:70% 20%,25% 85%!important;
  animation:meshB 21s cubic-bezier(.45,0,.55,1) infinite alternate!important}
@keyframes meshA{0%{transform:translate3d(-8%,4%,0) scale(1)}50%{transform:translate3d(6%,-6%,0) scale(1.1)}100%{transform:translate3d(10%,5%,0) scale(.95)}}
@keyframes meshB{0%{transform:translate3d(8%,-4%,0) scale(1.05)}50%{transform:translate3d(-7%,5%,0) scale(.95)}100%{transform:translate3d(-10%,-6%,0) scale(1.1)}}
/* 조금 더 밝게: 베일을 밝은 블루로 */
.gi-root .gi-blue-hero .gbh-veil{background:linear-gradient(90deg,rgba(74,141,255,.55) 0%,rgba(74,141,255,.3) 50%,rgba(94,234,212,.12) 100%)!important}

/* Gate 상단 v4: 빛(라이트닝) 강화 · 영상 속도에 맞춰 더 빠르고 크게 흐름 */
.gi-root .gi-blue-hero .gbh-veil::before,.gi-root .gi-blue-hero .gbh-veil::after{display:none!important}
.gi-root .gi-blue-hero .gbh-veil{overflow:hidden;background:linear-gradient(90deg,rgba(40,110,235,.5) 0%,rgba(40,110,235,.22) 55%,rgba(40,110,235,.08) 100%)!important}
.gi-root .gi-blue-hero .gl{position:absolute;border-radius:50%;mix-blend-mode:screen;will-change:transform,opacity;pointer-events:none}
.gi-root .gi-blue-hero .gl1{width:62vw;height:62vw;left:-12vw;top:-30vw;background:radial-gradient(closest-side,rgba(45,212,191,.95),rgba(45,212,191,.6) 28%,rgba(45,212,191,.26) 52%,rgba(45,212,191,.07) 75%,transparent);animation:gl1 9s cubic-bezier(.45,0,.55,1) infinite}
.gi-root .gi-blue-hero .gl2{width:56vw;height:56vw;left:48vw;top:-10vw;background:radial-gradient(closest-side,rgba(139,92,246,.95),rgba(139,92,246,.58) 28%,rgba(139,92,246,.24) 52%,rgba(139,92,246,.06) 75%,transparent);animation:gl2 11s cubic-bezier(.45,0,.55,1) infinite}
.gi-root .gi-blue-hero .gl3{width:50vw;height:50vw;left:18vw;top:8vw;background:radial-gradient(closest-side,rgba(56,189,248,.9),rgba(56,189,248,.55) 28%,rgba(56,189,248,.22) 52%,rgba(56,189,248,.06) 75%,transparent);animation:gl3 7.5s cubic-bezier(.45,0,.55,1) infinite}
.gi-root .gi-blue-hero .gl4{width:44vw;height:44vw;left:66vw;top:14vw;background:radial-gradient(closest-side,rgba(94,234,212,.85),rgba(94,234,212,.5) 28%,rgba(94,234,212,.2) 52%,rgba(94,234,212,.05) 75%,transparent);animation:gl4 8.5s cubic-bezier(.45,0,.55,1) infinite}
.gi-root .gi-blue-hero .gl5{width:48vw;height:48vw;left:-6vw;top:12vw;background:radial-gradient(closest-side,rgba(99,102,241,.9),rgba(99,102,241,.55) 28%,rgba(99,102,241,.22) 52%,rgba(99,102,241,.05) 75%,transparent);animation:gl5 10s cubic-bezier(.45,0,.55,1) infinite}
@keyframes gl1{0%,100%{transform:translate3d(0,0,0) scale(.9);opacity:.75}30%{transform:translate3d(22vw,8vw,0) scale(1.2);opacity:1}65%{transform:translate3d(8vw,14vw,0) scale(.8);opacity:.6}}
@keyframes gl2{0%,100%{transform:translate3d(0,0,0) scale(1.1);opacity:.9}35%{transform:translate3d(-24vw,10vw,0) scale(.8);opacity:.6}70%{transform:translate3d(-8vw,-4vw,0) scale(1.25);opacity:1}}
@keyframes gl3{0%,100%{transform:translate3d(0,0,0) scale(.8);opacity:.55}50%{transform:translate3d(26vw,-10vw,0) scale(1.2);opacity:1}}
@keyframes gl4{0%,100%{transform:translate3d(0,0,0) scale(1);opacity:.8}40%{transform:translate3d(-30vw,-6vw,0) scale(1.25);opacity:1}75%{transform:translate3d(-12vw,6vw,0) scale(.8);opacity:.55}}
@keyframes gl5{0%,100%{transform:translate3d(0,0,0) scale(1.05);opacity:.7}45%{transform:translate3d(20vw,-12vw,0) scale(.85);opacity:.95}}
/* 대각선 광선: 4.5초에 한 번 빠르게 훑고 지나감 */
.gi-root .gi-blue-hero .gbeam{position:absolute;top:-20%;bottom:-20%;left:0;width:45%;mix-blend-mode:screen;pointer-events:none;will-change:transform,opacity;
  background:linear-gradient(100deg,transparent 0%,rgba(153,246,228,.0) 30%,rgba(153,246,228,.28) 42%,rgba(255,255,255,.42) 50%,rgba(196,181,253,.28) 58%,rgba(196,181,253,0) 70%,transparent 100%);
  transform:translate3d(-120%,0,0) skewX(-12deg);animation:gbeam 6.5s cubic-bezier(.55,0,.25,1) infinite 1.2s}
@keyframes gbeam{0%{transform:translate3d(-120%,0,0) skewX(-12deg);opacity:0}8%{opacity:1}55%{transform:translate3d(260%,0,0) skewX(-12deg);opacity:1}60%,100%{transform:translate3d(260%,0,0) skewX(-12deg);opacity:0}}
@media (max-width:720px){.gi-root .gi-blue-hero .gl{width:110vw!important;height:110vw!important}}
@media (prefers-reduced-motion:reduce){.gi-root .gi-blue-hero .gl,.gi-root .gi-blue-hero .gbeam{animation:none}}

/* Gate 상단 텍스트: 본문·그래픽의 "Gate"와 같은 서체·굵기로 통일 (시스템 서체 700 · 자간 -0.04em) */
.gi-root .gi-blue-hero,.gi-root .gi-blue-hero *{font-family:-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Noto Sans KR","Malgun Gothic",sans-serif!important}
.gi-root .gi-blue-hero .gbh-title{font-weight:700!important;letter-spacing:-.04em!important;line-height:1!important}
.gi-root .gi-blue-hero .gbh-sub{letter-spacing:-.01em}
.gi-root .gi-blue-hero .gbh-title{font-weight:800!important}

/* 상단 라벨 삭제 후 그리드 정렬: 세 서비스 페이지 제목 시작선 통일 (좌 110px = 로고 · 위 160px) · 제목→설명 간격 24px */
.ent.final h1.ax-display{margin-top:21px!important}
.gi-root .gi-blue-hero{padding-top:160px!important}
.gi-root .gi-blue-hero .gbh-title{margin-top:0!important}
.gi-root .gi-blue-hero .gbh-sub{margin-top:24px!important}
.page-launch-shell .hero.launch .display{margin-top:-4px!important}
.page-launch-shell .hero.launch .sub{margin-top:24px!important}
@media (max-width:720px){.gi-root .gi-blue-hero{padding-top:112px!important}}
/* 실측 보정: 데스크톱 제목 시작 160px · 모바일 120px로 세 페이지 동일 */
.ent.final h1.ax-display{margin-top:31px!important}
.page-launch-shell .hero.launch .display{margin-top:20px!important}
@media (max-width:720px){
  .ent.final h1.ax-display{margin-top:11px!important}
  .page-launch-shell .hero.launch .display{margin-top:-20px!important}
  .gi-root .gi-blue-hero{padding-top:120px!important}
}
/* AXlift 히어로: 세로 가운데 정렬 대신 상단 기준(160/120px)으로 — 화면 높이와 무관하게 세 페이지 동일 */
.ent.final main > section:first-of-type{align-items:flex-start!important}
.ent.final main > section:first-of-type > .ax-fade-up{padding-top:160px!important;padding-bottom:96px!important;width:100%}
.ent.final h1.ax-display{margin-top:0!important}
@media (max-width:720px){.ent.final main > section:first-of-type > .ax-fade-up{padding-top:120px!important;padding-bottom:64px!important}.ent.final h1.ax-display{margin-top:0!important}}
/* Gate 히어로 좌우 여백 = 헤더와 같은 규칙 (24px · 1024px↑ 32px) */
.gi-root .gi-blue-hero .wrap{padding-left:24px!important;padding-right:24px!important}
@media (min-width:1024px){.gi-root .gi-blue-hero .wrap{padding-left:32px!important;padding-right:32px!important}}
/* AXlift 히어로 높이 = 내용 + 위 160 / 아래 96 (영상 영역이 내용에 맞게) — Gate·Launch와 동일 규칙 */
.ent.final main > section:first-of-type{min-height:0!important}
/* Launch 히어로도 같은 규칙: 높이 = 내용 + 위 160 / 아래 96 (모바일 120 / 64) */
.page-launch-shell .hero.launch{min-height:0!important;align-items:flex-start!important;padding-bottom:96px!important}
@media (max-width:720px){.page-launch-shell .hero.launch{padding-bottom:64px!important}}
.gi-root .gi-blue-hero{padding-bottom:96px!important}
@media (max-width:720px){.gi-root .gi-blue-hero{padding-bottom:64px!important}}

/* 홈 하단 탭: 활성 탭 그라데이션 제거 → 브랜드 단색 */
.seg button[aria-selected="true"]{background:#5B5BF0!important;background-image:none!important}
.seg button[aria-selected="true"]::after{background:#5B5BF0!important}

/* Gate 상단 v5: 흰 광선 제거 → 오로라 리본 2줄(길고 부드러운 빛의 띠가 천천히 휘어 흐름) + 깊이감 비네트 */
.gi-root .gi-blue-hero .gbeam{display:none!important}
.gi-root .gi-blue-hero .gaur{position:absolute;left:-30%;width:160%;height:46%;border-radius:50%;mix-blend-mode:screen;pointer-events:none;will-change:transform,opacity;transform-origin:50% 50%}
.gi-root .gi-blue-hero .ga1{top:6%;
  background:radial-gradient(50% 50% at 50% 50%,rgba(94,234,212,.55) 0%,rgba(56,189,248,.32) 35%,rgba(99,102,241,.12) 62%,transparent 80%);
  animation:aur1 18s cubic-bezier(.45,0,.55,1) infinite}
.gi-root .gi-blue-hero .ga2{top:42%;height:40%;
  background:radial-gradient(50% 50% at 50% 50%,rgba(167,139,250,.5) 0%,rgba(96,165,250,.3) 38%,rgba(45,212,191,.1) 64%,transparent 80%);
  animation:aur2 23s cubic-bezier(.45,0,.55,1) infinite}
@keyframes aur1{0%,100%{transform:translate3d(-6%,0,0) rotate(-9deg) scaleY(.7);opacity:.7}50%{transform:translate3d(6%,6%,0) rotate(-3deg) scaleY(1.1);opacity:1}}
@keyframes aur2{0%,100%{transform:translate3d(5%,4%,0) rotate(7deg) scaleY(1);opacity:.85}50%{transform:translate3d(-7%,-5%,0) rotate(2deg) scaleY(.65);opacity:.55}}
/* 비네트: 가장자리를 살짝 눌러 빛이 가운데서 떠오르는 깊이감 · 텍스트 쪽(좌하단) 대비 확보 */
.gi-root .gi-blue-hero .gvig{position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(120% 90% at 60% 35%,transparent 45%,rgba(10,30,90,.38) 100%),linear-gradient(90deg,rgba(12,40,120,.28),transparent 55%)}
/* 빛 덩어리 움직임을 조금 더 우아하게(느리게·부드럽게) */
.gi-root .gi-blue-hero .gl1{animation-duration:13s}.gi-root .gi-blue-hero .gl2{animation-duration:16s}.gi-root .gi-blue-hero .gl3{animation-duration:11s}
.gi-root .gi-blue-hero .gl4{animation-duration:14s}.gi-root .gi-blue-hero .gl5{animation-duration:15s}
@media (prefers-reduced-motion:reduce){.gi-root .gi-blue-hero .gaur{animation:none}}

/* Gate 상단 v6: WebGL 메쉬 그라데이션이 영상 위를 흐름 (기존 빛 덩어리·오로라는 메쉬가 켜지면 숨김) */
.gi-root .gi-blue-hero .gmesh{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}
.gi-root .gi-blue-hero.has-mesh .gl,.gi-root .gi-blue-hero.has-mesh .gaur{display:none}
.gi-root .gi-blue-hero.has-mesh .gbh-veil{background:none!important}
.gi-root .gi-blue-hero.has-mesh .gvig{background:linear-gradient(90deg,rgba(10,30,100,.34),rgba(10,30,100,.08) 55%,transparent),radial-gradient(130% 100% at 60% 30%,transparent 55%,rgba(8,24,80,.3) 100%)}

/* Gate 상단 v7: 단순 컬러 그라데이션 오버레이 모션 — 영상은 선명하게, 색만 흐름
   gtint = 영상의 밝기는 그대로 두고 색조만 입힘(color 합성) · gwash = 얇은 컬러 막 · 둘 다 넓은 선형 그라데이션을 좌우로 천천히 이동 */
.gi-root .gi-blue-hero .gl,.gi-root .gi-blue-hero .gaur,.gi-root .gi-blue-hero .gbeam,.gi-root .gi-blue-hero .gmesh{display:none!important}
.gi-root .gi-blue-hero .gbh-veil{background:none!important;overflow:hidden}
.gi-root .gi-blue-hero .gbh-video{opacity:1!important}
.gi-root .gi-blue-hero .gtint,.gi-root .gi-blue-hero .gwash{position:absolute;top:0;bottom:0;left:0;width:300%;pointer-events:none;will-change:transform;
  background:linear-gradient(110deg,#2DD4BF 0%,#38BDF8 14%,#3B82F6 28%,#6366F1 42%,#8B5CF6 56%,#3B82F6 70%,#22D3EE 84%,#2DD4BF 100%);
  animation:gtFlow 16s cubic-bezier(.45,0,.55,1) infinite alternate}
.gi-root .gi-blue-hero .gtint{mix-blend-mode:color;opacity:.85}
.gi-root .gi-blue-hero .gwash{opacity:.38;animation-delay:-5s}
@keyframes gtFlow{from{transform:translate3d(0,0,0)}to{transform:translate3d(-66.666%,0,0)}}
.gi-root .gi-blue-hero .gvig{background:linear-gradient(90deg,rgba(8,26,90,.35),rgba(8,26,90,.1) 50%,transparent 80%)!important}
@media (prefers-reduced-motion:reduce){.gi-root .gi-blue-hero .gtint,.gi-root .gi-blue-hero .gwash{animation:none}}
/* 합성 버그 수정: 베일이 z-index로 쌓임 맥락을 만들면 color 합성이 영상과 섞이지 못함 → z-index:auto (DOM 순서상 영상 위) */
.gi-root .gi-blue-hero .gbh-veil{z-index:auto!important;isolation:auto!important}

/* Gate 상단 v8: 세련·밝게 — 스크린 합성(어두운 영상은 컬러로, 빛줄기는 더 하얗게 빛남) + 두 방향 그라데이션이 서로 다른 속도로 흘러 색이 2차원으로 섞임 */
.gi-root .gi-blue-hero{background:#0B1026!important}
.gi-root .gi-blue-hero .gtint{mix-blend-mode:screen!important;opacity:.92!important;
  background:linear-gradient(115deg,#14B8A6 0%,#0EA5E9 17%,#3B82F6 34%,#6366F1 50%,#8B5CF6 66%,#3B82F6 83%,#14B8A6 100%)!important;
  animation:gtFlow 18s cubic-bezier(.45,0,.55,1) infinite alternate!important}
.gi-root .gi-blue-hero .gwash{mix-blend-mode:soft-light!important;opacity:.7!important;left:0;top:0;width:100%!important;height:300%!important;
  background:linear-gradient(180deg,#A5F3FC 0%,#C7D2FE 25%,#F0ABFC 45%,#99F6E4 65%,#BFDBFE 85%,#A5F3FC 100%)!important;
  animation:gwFlow 23s cubic-bezier(.45,0,.55,1) infinite alternate!important}
@keyframes gwFlow{from{transform:translate3d(0,0,0)}to{transform:translate3d(0,-66.666%,0)}}
/* 위쪽이 살짝 더 밝게 뜨는 광택 + 텍스트 쪽만 은은하게 눌러 가독성 */
.gi-root .gi-blue-hero .gvig{background:linear-gradient(180deg,rgba(255,255,255,.10),transparent 45%),linear-gradient(90deg,rgba(15,30,90,.22),transparent 55%)!important}
.gi-root .gi-blue-hero .gwash{opacity:.45!important}
.gi-root .gi-blue-hero .gvig{background:linear-gradient(180deg,rgba(255,255,255,.08),transparent 45%),linear-gradient(90deg,rgba(20,35,110,.34),rgba(20,35,110,.12) 50%,transparent 75%)!important}
.gi-root .gi-blue-hero .gbh-title,.gi-root .gi-blue-hero .gbh-sub{text-shadow:0 2px 24px rgba(15,30,100,.28)}

/* Gate 상단 v9: 깊고 채도 높은 컬러 · 더 빠르게 · 방향이 자유롭게 바뀜
   두 그라데이션 판(화면의 3배 크기)이 각자 다른 경로로 이동+회전 → 흐르는 방향이 계속 바뀜. 스크린 합성으로 영상 빛줄기 살림, 곱하기 층으로 깊이 */
.gi-root .gi-blue-hero{background:#070B1E!important}
.gi-root .gi-blue-hero .gtint,.gi-root .gi-blue-hero .gwash{left:-100%!important;top:-100%!important;width:300%!important;height:300%!important;transform-origin:50% 50%}
.gi-root .gi-blue-hero .gtint{mix-blend-mode:screen!important;opacity:.82!important;
  background:linear-gradient(115deg,#0F766E 0%,#0284C7 14%,#1D4ED8 28%,#4338CA 42%,#7C3AED 56%,#1D4ED8 70%,#0891B2 84%,#0F766E 100%)!important;
  animation:gtRoam 11s cubic-bezier(.45,0,.55,1) infinite!important}
.gi-root .gi-blue-hero .gwash{mix-blend-mode:screen!important;opacity:.55!important;
  background:linear-gradient(35deg,transparent 0%,rgba(45,212,191,.55) 16%,transparent 32%,rgba(139,92,246,.6) 50%,transparent 66%,rgba(56,189,248,.55) 82%,transparent 100%)!important;
  animation:gwRoam 8s cubic-bezier(.45,0,.55,1) infinite!important}
@keyframes gtRoam{0%,100%{transform:translate3d(-12%,-6%,0) rotate(0deg)}25%{transform:translate3d(10%,-14%,0) rotate(35deg)}50%{transform:translate3d(14%,10%,0) rotate(-20deg)}75%{transform:translate3d(-14%,12%,0) rotate(28deg)}}
@keyframes gwRoam{0%,100%{transform:translate3d(12%,8%,0) rotate(0deg)}30%{transform:translate3d(-14%,4%,0) rotate(-40deg)}60%{transform:translate3d(-6%,-14%,0) rotate(25deg)}85%{transform:translate3d(10%,-6%,0) rotate(-15deg)}}
/* 깊이: 좌하단·가장자리를 곱하기로 눌러 대비 ↑ (텍스트 가독성도 확보) */
.gi-root .gi-blue-hero .gvig{mix-blend-mode:multiply;background:radial-gradient(120% 100% at 70% 20%,#fff 35%,rgba(40,50,110,.9) 100%),linear-gradient(90deg,rgba(60,70,140,.85),#fff 60%)!important;opacity:.6}
.gi-root .gi-blue-hero .gbh-title,.gi-root .gi-blue-hero .gbh-sub{text-shadow:0 2px 24px rgba(5,10,40,.35)}

/* Gate 상단 v10: 그라데이션 전부 제거 — 배경은 영상만 (사용자 지시 2026-09-29) */
.gi-root .gi-blue-hero .gbh-veil,.gi-root .gi-blue-hero .gtint,.gi-root .gi-blue-hero .gwash,.gi-root .gi-blue-hero .gvig,
.gi-root .gi-blue-hero .gl,.gi-root .gi-blue-hero .gaur,.gi-root .gi-blue-hero .gbeam,.gi-root .gi-blue-hero .gmesh{display:none!important}
.gi-root .gi-blue-hero{background:#0B1a4a!important}
.gi-root .gi-blue-hero .gbh-video{opacity:1!important;filter:none!important}
.gi-root .gi-blue-hero .gbh-title,.gi-root .gi-blue-hero .gbh-sub{text-shadow:0 2px 20px rgba(5,15,50,.4)}

/* Gate "데이터로 일하는 세 가지 방식": 1단계 레드(별로) · 2단계 워닝(아직 번거로움) · 3단계 블루(Gate) + 상태 칩 */
.gi-root .gi-way-title{display:flex!important;flex-wrap:wrap;align-items:center;gap:8px}
.gi-root .gi-way-title h3{flex-basis:100%;margin-top:6px}
.gi-root .gi-way-chip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:999px;font-size:.76rem;font-weight:700;letter-spacing:-.01em}
.gi-root .gi-way-chip::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.gi-root .gi-chip-bad{background:#FFEEF0;color:#E42939}
.gi-root .gi-chip-warn{background:#FFF4E0;color:#D97706}
.gi-root .gi-chip-good{background:#fff;color:#1B64DA;box-shadow:0 2px 8px -2px rgba(0,0,0,.15)}
/* 카드 상단 컬러 라인 + 번호 색 */
.gi-root .gi-way{overflow:hidden}
.gi-root .gi-way::before{content:"";position:absolute;left:0;right:0;top:0;height:4px}
.gi-root .gi-ways-list > .gi-way:nth-child(1)::before{background:#F04452}
.gi-root .gi-ways-list > .gi-way:nth-child(2)::before{background:#FFA51F}
.gi-root .gi-ways-list > .gi-way:nth-child(1) .gi-sequence{background:#FFEEF0!important;color:#E42939!important}
.gi-root .gi-ways-list > .gi-way:nth-child(2) .gi-sequence{background:#FFF4E0!important;color:#D97706!important}
/* 위 단계 트랙도 같은 색 흐름: 레드 → 워닝 → 블루 */
.gi-root .gi-ways-track span:nth-child(1){border-color:#F04452!important;color:#E42939!important;background:#FFF5F6!important}
.gi-root .gi-ways-track span:nth-child(3){border-color:#FFA51F!important;color:#D97706!important;background:#FFFAF0!important}
.gi-root .gi-ways-track i:first-of-type{background:linear-gradient(90deg,#F04452,#FFA51F)!important}
.gi-root .gi-ways-track i:last-of-type{background:linear-gradient(90deg,#FFA51F,#3182F6)!important}
/* 첫 후킹 문장 강조 */
.gi-root .gi-blue-hero .gbh-hook{display:inline-block;margin-bottom:6px;font-size:clamp(1.25rem,2.2vw,1.6rem);font-weight:700;letter-spacing:-.02em;color:#fff}
.gi-root .gi-way .gi-way-title{flex-direction:row!important;height:auto!important;min-height:0!important;align-content:flex-start}

/* 세 가지 방식 v2: 단계 색을 카드 전체에 — 1 레드(별로) · 2 워닝(아쉬움) · 3 블루(Gate) 가 한눈에 구분되게 */
.gi-root .gi-ways-list > .gi-way:nth-child(1){background:linear-gradient(180deg,#FFF1F2 0%,#FFFFFF 70%)!important;border:1.5px solid #FBC4CA!important;box-shadow:0 14px 34px -22px rgba(240,68,82,.45)!important}
.gi-root .gi-ways-list > .gi-way:nth-child(2){background:linear-gradient(180deg,#FFF6E6 0%,#FFFFFF 70%)!important;border:1.5px solid #FBD9A0!important;box-shadow:0 14px 34px -22px rgba(255,165,31,.45)!important}
.gi-root .gi-ways-list > .gi-way:nth-child(1)::before,.gi-root .gi-ways-list > .gi-way:nth-child(2)::before{height:6px}
/* 제목 색으로도 단계 표시 */
.gi-root .gi-ways-list > .gi-way:nth-child(1) h3{color:#B4232F!important}
.gi-root .gi-ways-list > .gi-way:nth-child(2) h3{color:#A35A00!important}
/* 상태 칩: 아이콘(✕ / ! / ✓) + 진한 면 */
.gi-root .gi-way-chip{height:28px;padding:0 12px 0 8px;font-size:.8rem}
.gi-root .gi-way-chip::before{content:"";width:16px;height:16px;border-radius:50%;display:grid;place-items:center;font-size:10px;font-weight:900;line-height:16px;text-align:center}
.gi-root .gi-chip-bad{background:#F04452;color:#fff}
.gi-root .gi-chip-bad::before{content:"✕";background:#fff;color:#F04452}
.gi-root .gi-chip-warn{background:#FFA51F;color:#fff}
.gi-root .gi-chip-warn::before{content:"!";background:#fff;color:#E08A00}
.gi-root .gi-chip-good{background:#fff;color:#1B64DA}
.gi-root .gi-chip-good::before{content:"✓";background:#1B64DA;color:#fff}
/* 하단 작업 칩도 단계 색 톤 */
.gi-root .gi-ways-list > .gi-way:nth-child(1) .gi-work-chain span{background:#FFE4E7!important;color:#B4232F!important}
.gi-root .gi-ways-list > .gi-way:nth-child(1) .gi-work-chain span:not(:last-child)::after{color:#F04452}
.gi-root .gi-ways-list > .gi-way:nth-child(2) .gi-work-chain span.gi-chip-h{background:#FFEFD2!important;color:#A35A00!important}
.gi-root .gi-ways-list > .gi-way:nth-child(2) .gi-work-chain span:not(:last-child)::after{color:#E08A00}
/* Gate 카드: 더 선명한 블루 + 살짝 띄움 */
.gi-root .gi-way.gi-with-gate{transform:translateY(-6px);box-shadow:0 24px 50px -22px rgba(27,100,218,.65)!important}

/* 초반 후킹 강조 (문구 그대로, 위계·강조만) */
.gi-root .gi-blue-hero .gbh-hook{font-size:clamp(1.5rem,3vw,2.25rem)!important;font-weight:800!important;letter-spacing:-.03em!important;margin-bottom:10px!important;line-height:1.3}
.gi-root .gi-blue-hero .gbh-sub{font-size:clamp(1.02rem,1.5vw,1.18rem)!important;line-height:1.7!important}
/* 인트로 질문: 크게 + 형광펜 */
.gi-root .gi-hero-copy{font-size:clamp(1.15rem,2vw,1.45rem)!important;font-weight:700!important;color:var(--gink)!important;line-height:1.6!important;letter-spacing:-.02em}
.gi-root .gi-hero-copy mark{background:linear-gradient(transparent 58%,rgba(240,68,82,.22) 58%);color:inherit;padding:0 2px}
.gi-root .gi-product-definition{font-size:clamp(1rem,1.5vw,1.12rem)!important;line-height:1.75!important}
.gi-root .gi-product-definition strong{color:#1B64DA;font-weight:800}
/* 단계 설명 속 '귀찮은 부분'과 'Gate의 이점' 강조 */
.gi-root .gi-way em.gi-pain{font-style:normal;font-weight:700}
.gi-root .gi-ways-list > .gi-way:nth-child(1) em.gi-pain{color:#D42A3A;background:linear-gradient(transparent 62%,rgba(240,68,82,.18) 62%)}
.gi-root .gi-ways-list > .gi-way:nth-child(2) em.gi-pain{color:#B86200;background:linear-gradient(transparent 62%,rgba(255,165,31,.24) 62%)}
.gi-root .gi-way em.gi-gain{font-style:normal;font-weight:800;color:#fff;background:linear-gradient(transparent 62%,rgba(255,255,255,.22) 62%)}
/* Gate 상자 면 색 변화·광은 gf-run일 때만 → JS가 선과 같은 순간에 재시작 */
.gi-root .gi-network-gate:not(.gf-run)::before,.gi-root .gi-network-gate:not(.gf-run)::after{animation:none!important}

/* 단계 이름(타이틀형 설명): 카드 상단 + 트랙 원 아래 */
.gi-root .gi-way-name{flex-basis:100%;margin:10px 0 -2px!important;font-size:.92rem!important;font-weight:800!important;letter-spacing:-.01em}
.gi-root .gi-ways-list > .gi-way:nth-child(1) .gi-way-name{color:#E42939}
.gi-root .gi-ways-list > .gi-way:nth-child(2) .gi-way-name{color:#D97706}
.gi-root .gi-way.gi-with-gate .gi-way-name{color:#DCEBFF}
.gi-root .gi-ways-track{margin-bottom:34px!important}
.gi-root .gi-ways-track span b{position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);white-space:nowrap;font-size:.82rem;font-weight:700;color:var(--gsub)}
.gi-root .gi-ways-track span:nth-child(1) b{color:#E42939}
.gi-root .gi-ways-track span:nth-child(3) b{color:#D97706}
.gi-root .gi-ways-track span.on b{color:#1B64DA}
.gi-root .gi-way-name{font-size:1rem!important}.gi-root .gi-ways-track span b{font-size:.9rem}

/* 블루 카드: 이점 문구 밑줄을 민트로 선명하게 */
.gi-root .gi-way em.gi-gain{background:linear-gradient(transparent 60%,rgba(94,234,212,.55) 60%)!important;color:#fff}
/* 블루 카드 작업 칩: 흰 칩 뒤 화살표가 흰색이라 안 보이던 문제 → 블루 */
.gi-root .gi-way.gi-with-gate .gi-work-chain span.gi-chip-ai:not(:last-child)::after{color:#1B64DA!important}
.gi-root .gi-way.gi-with-gate .gi-work-chain span.gi-chip-h:not(:last-child)::after{color:rgba(255,255,255,.85)!important}

/* 조회 기록: 이름 옆 소속 팀 */
.gi-root .gi-audit-person h3{display:flex;align-items:center;gap:8px}
.gi-root .gi-audit-person .gi-team{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;background:#F2F4F6;color:#4E5968;font-size:.75rem;font-weight:600}
.gi-root .gi-audit-person .gi-team{height:24px;padding:0 10px;font-size:.8rem}
