    :root {
      --navy: #0F2A44;
      --navy-2: #163A5C;
      --blue: #3B8FD9;
      --blue-2: #1F6FB8;
      --gold: #F5C04A;
      --green: #03C75A;
      --green-2: #02B350;
      --yellow: #FEE500;
      --orange: #F26A21;
      --red: #F04452;
      --teal: #2A9D8F;
      --text: #1B2B3A;
      --body: #4A5B6B;
      --muted: #7A8A99;
      --line: #D9E4EC;
      --bg-a: #F6FAFC;
      --card: #E1EAF0;
    }
    * { box-sizing: border-box; margin: 0; padding: 0; }
    html { scroll-behavior: smooth; }
    body {
      font-family: "Pretendard Variable", Pretendard, -apple-system, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
      color: var(--text); background: var(--bg-a); line-height: 1.7; word-break: keep-all;
      -webkit-font-smoothing: antialiased;
    }
    a { color: inherit; text-decoration: none; }
    img, video { display: block; max-width: 100%; }
    .wrap { max-width: 1140px; margin: 0 auto; padding: 0 20px; }
    .narrow { max-width: 780px; margin: 0 auto; }
    .mid { max-width: 900px; margin: 0 auto; }

    /* ===== Header ===== */
    .header { position: sticky; top: 0; z-index: 50; background: rgba(36,52,70,.94); backdrop-filter: blur(8px); border-bottom: 1px solid rgba(255,255,255,.08); }
    .header .wrap { max-width: 1400px; display: flex; align-items: center; justify-content: space-between; height: 72px; gap: 20px; }
    .logo { display: flex; align-items: center; gap: 10px; color: #fff; font-size: 20px; font-weight: 700; flex: none; }
    .logo img { width: 36px; height: 36px; border-radius: 8px; }
    .gnb { display: flex; gap: 22px; font-size: 14.5px; font-weight: 600; color: rgba(255,255,255,.88); }
    .gnb a:hover { color: var(--gold); }
    .hbtn { display: inline-flex; align-items: center; gap: 8px; background: var(--green); color: #fff; font-weight: 700; font-size: 15px; padding: 11px 18px; border-radius: 10px; box-shadow: 0 6px 16px -6px rgba(3,199,90,.6); flex: none; }
    .hbtn:hover { background: var(--green-2); }

    /* ===== Hero ===== */
    .hero { position: relative; color: #fff; text-align: center; overflow: hidden; background: radial-gradient(ellipse at 15% 30%, #24476B, var(--navy) 60%); }
    /* 이미지 왼쪽에 들어간 글자가 보이지 않도록 오른쪽 인물 부분만 노출 */
    .hero .bg {
      position: absolute; top: -12px; bottom: -12px; right: -12px; left: 42%;
      background: url("hero4.jpg") right center / cover no-repeat; filter: blur(2px) saturate(.85);
      -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 40%); mask-image: linear-gradient(90deg, transparent 0%, #000 40%);
    }
    .hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20,38,58,.86) 0%, rgba(22,46,72,.82) 60%, rgba(15,42,68,.9) 100%); }
    .hero .wrap { position: relative; z-index: 1; padding: 64px 20px 56px; }
    .crumbs { font-size: 14px; color: rgba(255,255,255,.65); margin-bottom: 18px; }
    .crumbs a { color: #9CCBF5; }
    .crumbs a:hover { text-decoration: underline; }
    .crumbs i { font-style: normal; margin: 0 8px; opacity: .5; font-size: 12px; }
    .hero h1 { font-size: clamp(28px, 4vw, 40px); font-weight: 600; letter-spacing: -.02em; line-height: 1.35; }
    .hero .sub { margin-top: 14px; color: var(--gold); font-size: clamp(17px, 2vw, 20px); font-weight: 500; line-height: 1.55; }
    .hero .bar { width: 64px; height: 3px; border-radius: 3px; background: linear-gradient(90deg, transparent, var(--gold), transparent); margin: 22px auto; }
    .hero .desc { max-width: 820px; margin: 0 auto; font-size: 17px; color: rgba(255,255,255,.88); line-height: 1.85; }
    .dots { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px 22px; margin-top: 20px; font-size: 15px; color: rgba(255,255,255,.9); }
    .dots li { list-style: none; display: flex; align-items: center; gap: 8px; }
    .dots li::before { content: ""; width: 12px; height: 12px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 3px rgba(245,192,74,.25); }
    .pricebox { max-width: 620px; margin: 30px auto 0; padding: 4px; border-radius: 18px; background: linear-gradient(135deg, #8A6D2B, #F5C04A 40%, #8A6D2B); box-shadow: 0 16px 40px -18px rgba(0,0,0,.6); }
    .pricebox .in { background: rgba(20,32,44,.92); border-radius: 15px; padding: 16px 20px 14px; }
    .pricebox .top { display: flex; align-items: center; justify-content: center; gap: 14px; }
    .pricebox .chip { font-size: 12.5px; font-weight: 700; color: #F8D67F; border: 1px solid rgba(245,192,74,.5); background: rgba(245,192,74,.1); padding: 3px 12px; border-radius: 99px; }
    .pricebox .amt { font-size: clamp(28px, 4vw, 36px); font-weight: 600; letter-spacing: -.03em; }
    .pricebox .note { border-top: 1px solid rgba(255,255,255,.12); margin-top: 10px; padding-top: 10px; font-size: 13.5px; color: rgba(255,255,255,.75); }
    .alert { display: inline-flex; align-items: center; gap: 10px; margin-top: 20px; padding: 10px 20px; border-radius: 99px; background: rgba(10,20,30,.7); border: 2px solid rgba(255,255,255,.15); font-size: 15.5px; font-weight: 600; }
    .alert::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--red); animation: blink 1.4s infinite; }
    .alert em { font-style: normal; color: #3EE08A; }
    @keyframes blink { 50% { opacity: .3; } }
    .cta2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; max-width: 620px; margin: 16px auto 0; }
    .btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; font-weight: 700; font-size: 16.5px; padding: 16px 20px; border-radius: 10px; transition: transform .15s, filter .15s; }
    .btn:hover { transform: translateY(-2px); filter: brightness(1.05); }
    .btn.g { background: var(--green); color: #fff; box-shadow: 0 10px 24px -10px rgba(3,199,90,.8); }
    .btn.y { background: var(--yellow); color: #1B1B1B; box-shadow: 0 10px 24px -10px rgba(254,229,0,.7); }
    .btn.o { background: linear-gradient(180deg, #FF7A35, var(--orange)); color: #fff; border-radius: 99px; padding: 18px 40px; font-size: 18px; box-shadow: 0 14px 30px -12px rgba(242,106,33,.8); }
    .btn.dk { background: var(--navy); color: #fff; border-radius: 99px; padding: 12px 22px; font-size: 14.5px; flex: none; }
    .btn svg { width: 20px; height: 20px; flex: none; }

    /* ===== Sticky consult bar ===== */
    .consult { position: sticky; top: 72px; z-index: 40; padding: 12px 20px 0; }
    .consult .in { max-width: 920px; margin: 0 auto; background: var(--navy-2); color: #fff; border-radius: 16px; padding: 12px 14px 12px 24px; display: flex; align-items: center; justify-content: space-between; gap: 16px; box-shadow: 0 16px 30px -18px rgba(15,42,68,.8); }
    .consult strong { display: block; font-size: 16px; font-weight: 600; }
    .consult span { font-size: 13px; color: rgba(255,255,255,.65); }
    .consult .acts { display: flex; gap: 8px; }
    .consult .btn { padding: 12px 18px; font-size: 15px; }

    /* ===== Sections ===== */
    section.s { padding: 80px 0; }
    section.s.a { background: var(--bg-a); }
    section.s.b { background: linear-gradient(160deg, #EEF4F8, #E3ECF2); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
    .h2 { text-align: center; font-size: clamp(26px, 3.4vw, 38px); font-weight: 500; color: var(--navy); letter-spacing: -.025em; line-height: 1.35; }
    .lede { text-align: center; color: var(--body); font-size: 15.5px; margin-top: 10px; }
    .stack { margin-top: 36px; }

    .story li { list-style: none; padding: 26px 0 28px; border-bottom: 1px solid var(--line); }
    .story li:first-child { padding-top: 6px; }
    .story h3 { display: flex; align-items: center; gap: 12px; font-size: 19px; font-weight: 600; color: var(--navy); }
    .story h3::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--blue); flex: none; }
    .story p { margin-top: 10px; padding-left: 19px; color: var(--body); font-size: 15.5px; line-height: 1.95; }

    .vid-row { display: grid; grid-template-columns: 320px 1fr; gap: 40px; align-items: center; margin-top: 36px; }
    .player { position: relative; border-radius: 18px; overflow: hidden; background: #0B1622; aspect-ratio: 9/16; box-shadow: 0 24px 50px -24px rgba(15,42,68,.7); }
    .player video { width: 100%; height: 100%; object-fit: cover; }
    .player .play { position: absolute; inset: 0; display: grid; place-items: center; border: 0; cursor: pointer; background: linear-gradient(180deg, rgba(15,42,68,.1), rgba(15,42,68,.55)); }
    .player .play span { width: 76px; height: 76px; border-radius: 50%; background: rgba(255,255,255,.95); display: grid; place-items: center; box-shadow: 0 10px 30px rgba(0,0,0,.35); transition: transform .2s; }
    .player .play:hover span { transform: scale(1.08); }
    .player .play svg { width: 28px; height: 28px; fill: var(--navy); margin-left: 4px; }
    .player .play b { position: absolute; bottom: 18px; left: 0; right: 0; color: #fff; font-size: 14px; font-weight: 600; text-align: center; }
    .player.on .play { display: none; }
    .vid-text h3 { font-size: 22px; font-weight: 600; color: var(--navy); }
    .vid-text p { color: var(--body); margin-top: 10px; font-size: 15.5px; }
    .vid-text ol { list-style: none; margin-top: 18px; display: grid; gap: 10px; }
    .vid-text li { display: flex; gap: 12px; align-items: flex-start; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; font-size: 15px; color: var(--text); }
    .vid-text li b { flex: none; width: 26px; height: 26px; border-radius: 50%; background: var(--blue); color: #fff; font-size: 13px; display: grid; place-items: center; margin-top: 1px; }
    .notebox { margin-top: 22px; background: #F0F6FA; border-left: 4px solid var(--blue); border-radius: 0 12px 12px 0; padding: 16px 20px; color: var(--body); font-size: 14.5px; }

    .cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 36px; }
    .card { background: var(--card); border: 1px solid #D3DFE7; border-radius: 16px; padding: 24px 22px; }
    .card h3 { font-size: 17.5px; font-weight: 600; color: var(--navy); }
    .card p { margin-top: 10px; font-size: 14.5px; color: var(--body); line-height: 1.75; }
    .card.tip { background: #EAF4F2; border: 1px solid #CFE4E0; border-left: 4px solid var(--teal); }
    .card.tip h3 { color: #1F7A6E; }

    .sub-h { text-align: center; margin-top: 56px; font-size: 19px; color: var(--blue-2); font-weight: 600; }
    .sub-p { text-align: center; color: var(--muted); font-size: 14.5px; margin-top: 6px; }
    .links3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin: 24px auto 0; max-width: 880px; }
    .lk { position: relative; display: block; background: #F7FCFF; border: 1px solid #C9E4F5; border-left: 4px solid #7CC5EE; border-radius: 14px; padding: 20px 40px 18px 22px; transition: transform .15s, box-shadow .15s; }
    .lk:hover { transform: translateY(-2px); box-shadow: 0 12px 24px -16px rgba(59,143,217,.6); }
    .lk strong { display: block; font-size: 17px; font-weight: 600; color: var(--navy); }
    .lk span { display: block; margin-top: 4px; font-size: 13.5px; color: var(--muted); }
    .lk::after { content: "›"; position: absolute; right: 16px; top: 50%; transform: translateY(-50%); color: #9BB4C6; font-size: 20px; }
    .more { display: flex; justify-content: center; margin-top: 22px; }

    .urgent { background: radial-gradient(circle at 10% 20%, rgba(180,140,40,.25), transparent 40%), linear-gradient(120deg, #13202C, #0E2A2A 60%, #0F2238); color: #fff; padding: 64px 0; }
    .urgent .wrap { display: grid; grid-template-columns: 1.1fr .9fr; gap: 48px; align-items: center; }
    .urgent .tag { display: inline-flex; align-items: center; gap: 8px; color: var(--gold); border: 1px solid rgba(245,192,74,.5); background: rgba(245,192,74,.08); border-radius: 99px; padding: 6px 14px; font-size: 14px; font-weight: 600; }
    .urgent .tag::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--red); box-shadow: 0 0 0 3px rgba(240,68,82,.3); }
    .urgent h2 { margin-top: 20px; font-size: clamp(30px, 3.8vw, 42px); font-weight: 500; line-height: 1.4; letter-spacing: -.02em; }
    .urgent h2 u { text-decoration: none; color: #3EE08A; border-bottom: 4px solid var(--green); }
    .stages { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; align-items: center; gap: 8px; margin-top: 26px; }
    .stage { border-radius: 10px; padding: 12px 14px; font-size: 15.5px; font-weight: 600; }
    .stage small { display: block; font-size: 12.5px; font-weight: 500; margin-bottom: 2px; }
    .stage.s1 { border: 1.5px solid #18C46A; background: rgba(3,199,90,.08); }
    .stage.s1 small { color: #3EE08A; }
    .stage.s2 { border: 1.5px solid rgba(255,255,255,.2); background: rgba(255,255,255,.04); }
    .stage.s2 small { color: rgba(255,255,255,.6); }
    .stage.s3 { border: 1.5px solid rgba(240,68,82,.6); background: rgba(240,68,82,.1); }
    .stage.s3 small { color: #FF8A94; }
    .arrow { color: rgba(255,255,255,.5); }
    .prog { margin-top: 18px; height: 5px; border-radius: 5px; background: rgba(255,255,255,.12); overflow: hidden; }
    .prog i { display: block; width: 60%; height: 100%; background: linear-gradient(90deg, #18C46A, #F5C04A, #F04452); }
    .sure { border: 1px solid rgba(62,224,138,.35); background: rgba(3,199,90,.08); border-radius: 14px; padding: 18px 22px; display: flex; gap: 12px; }
    .sure b { display: block; font-size: 18px; font-weight: 600; }
    .sure span { font-size: 14.5px; color: rgba(255,255,255,.8); }
    .sure .ck { flex: none; width: 24px; height: 24px; border-radius: 50%; background: var(--green); display: grid; place-items: center; font-size: 13px; margin-top: 2px; color: #fff; }
    .bigcta { margin-top: 16px; display: flex; align-items: center; gap: 18px; background: var(--green); border-radius: 16px; padding: 20px 26px; box-shadow: 0 20px 40px -20px rgba(3,199,90,.9); transition: transform .15s; }
    .bigcta:hover { transform: translateY(-2px); }
    .bigcta .ic { width: 54px; height: 54px; border-radius: 50%; background: #fff; display: grid; place-items: center; flex: none; }
    .bigcta .ic svg { width: 26px; height: 26px; fill: var(--green); }
    .bigcta small { display: block; font-size: 13.5px; opacity: .9; }
    .bigcta strong { font-size: clamp(22px, 2.6vw, 28px); font-weight: 600; letter-spacing: -.02em; }
    .threes { display: flex; justify-content: center; gap: 30px; margin-top: 16px; font-size: 14.5px; color: rgba(255,255,255,.75); font-weight: 600; }

    .steps li { list-style: none; display: flex; gap: 22px; padding: 24px 0; border-bottom: 1px solid var(--line); }
    .steps .n { flex: none; width: 40px; height: 40px; border-radius: 50%; background: var(--blue); color: #fff; display: grid; place-items: center; font-size: 15px; margin-top: 2px; }
    .steps h3 { font-size: 18px; font-weight: 600; color: var(--navy); }
    .steps p { margin-top: 6px; font-size: 15px; color: var(--body); }

    .quote { margin-top: 30px; background: #fff; border: 1px solid var(--line); border-left: 4px solid var(--blue-2); border-radius: 14px; padding: 26px 28px; }
    .quote p { color: var(--text); font-size: 16px; line-height: 1.9; }
    .quote p + p { margin-top: 10px; }
    .quote cite { display: block; margin-top: 14px; font-style: normal; font-size: 13.5px; color: var(--muted); }

    .pnote { max-width: 720px; margin: 30px auto 0; background: #fff; border: 1px solid var(--line); border-left: 5px solid var(--blue); border-radius: 0 14px 14px 0; padding: 18px 24px; }
    .pnote small { color: var(--blue); font-size: 13px; }
    .pnote p { color: var(--body); font-size: 15.5px; margin-top: 4px; }
    .pnote b { color: var(--text); font-weight: 600; }
    .ptable { max-width: 880px; margin: 30px auto 0; border-radius: 18px; overflow: hidden; background: #fff; box-shadow: 0 20px 40px -26px rgba(15,42,68,.5); }
    .ptable .hd { display: flex; justify-content: space-between; padding: 14px 22px; background: linear-gradient(90deg, #102A44, #1D6AA5); color: #fff; font-size: 13.5px; }
    .prow { display: flex; align-items: center; gap: 14px; padding: 14px 22px; border-top: 1px solid #EDF2F6; border-left: 4px solid var(--c, #ccc); background: linear-gradient(90deg, var(--t, transparent), #fff 40%); }
    .prow .ic { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--t, #F3F6F9); border: 1px solid #E3EAF0; flex: none; }
    .prow .ic img { width: 28px; height: 28px; }
    .prow .nm { flex: 1; }
    .prow .nm strong { display: block; font-size: 16px; font-weight: 600; }
    .prow .nm span { font-size: 12.5px; color: var(--muted); }
    .prow .pr { font-size: 21px; font-weight: 600; color: #fff; background: linear-gradient(180deg, #1D5F96, #133F66); padding: 6px 16px; border-radius: 99px; letter-spacing: -.02em; white-space: nowrap; }
    .prow .pr.q { font-size: 14.5px; font-weight: 500; color: var(--body); background: #EEF2F6; padding: 7px 14px; }

    .order { background: linear-gradient(160deg, #EAF7F0, #E3F1EC); border-top: 1px solid #CDE7DA; border-bottom: 1px solid #CDE7DA; }
    .order .h2 { color: #0F4D33; }
    .fee3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; max-width: 960px; margin: 36px auto 0; }
    .fee { background: #fff; border: 1px solid #CDE7DA; border-top: 4px solid var(--green); border-radius: 16px; padding: 26px 24px; text-align: center; }
    .fee small { font-size: 14px; color: var(--muted); font-weight: 600; }
    .fee strong { display: block; font-size: 40px; font-weight: 700; color: #0B8F45; letter-spacing: -.03em; margin: 6px 0; }
    .fee p { font-size: 14.5px; color: var(--body); }
    .fee.main { background: var(--navy); border-color: var(--navy); border-top-color: var(--yellow); color: #fff; }
    .fee.main small { color: var(--yellow); }
    .fee.main strong { color: #fff; }
    .fee.main p { color: rgba(255,255,255,.8); }
    .compare { max-width: 960px; margin: 16px auto 0; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; background: #fff; border: 1px dashed #A8D5BD; border-radius: 14px; padding: 16px 22px; font-size: 15px; }
    .compare s { color: var(--muted); }
    .compare b { color: #0B8F45; }

    .expert { max-width: 880px; margin: 30px auto 0; border: 1.5px dashed #B9CCDA; border-radius: 16px; background: #F9FBFD; padding: 22px 24px; display: flex; gap: 20px; align-items: center; justify-content: space-between; }
    .expert p { color: var(--body); font-size: 15px; line-height: 1.85; }

    .faq { margin-top: 30px; }
    details { background: #fff; border: 1px solid var(--line); border-radius: 14px; margin-bottom: 10px; }
    summary { list-style: none; cursor: pointer; padding: 20px 56px 20px 24px; font-size: 17px; font-weight: 600; color: var(--navy); position: relative; }
    summary::-webkit-details-marker { display: none; }
    summary::after { content: ""; position: absolute; right: 24px; top: 50%; width: 9px; height: 9px; border-right: 2px solid #8BA3B6; border-bottom: 2px solid #8BA3B6; transform: translateY(-70%) rotate(45deg); transition: transform .2s; }
    details[open] summary::after { transform: translateY(-30%) rotate(-135deg); }
    details .ans { padding: 0 24px 22px; }
    details .ans b { display: block; font-weight: 600; color: var(--text); font-size: 15.5px; }
    details .ans p { color: var(--body); font-size: 15px; margin-top: 8px; }
    details .ans .loc { color: var(--blue-2); }
    .who { display: inline-block; font-size: 12px; font-weight: 700; padding: 2px 8px; border-radius: 6px; margin-right: 8px; vertical-align: 2px; }
    .who.c { background: #E6F1FB; color: var(--blue-2); }
    .who.w { background: #E3F6EC; color: #0B8F45; }

    .others { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-top: 30px; }
    .other { display: block; background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 18px 22px; transition: border-color .15s; }
    .other:hover { border-color: var(--blue); }
    .other strong { display: block; font-size: 16.5px; font-weight: 600; color: var(--navy); }
    .other span { display: block; font-size: 14px; color: var(--muted); margin-top: 4px; }
    .near { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-top: 26px; }
    .near a { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 16px 18px; }
    .near a strong { display: block; font-size: 15.5px; font-weight: 600; color: var(--navy); }
    .near a span { font-size: 13px; color: var(--muted); }
    .alllinks { display: flex; justify-content: center; gap: 10px; margin-top: 20px; flex-wrap: wrap; }
    .alllinks a { font-size: 14.5px; border: 1px solid #B8CCDA; border-radius: 99px; padding: 9px 20px; background: #fff; color: var(--navy); }

    footer { background: #13212E; color: rgba(255,255,255,.65); padding: 50px 0 110px; font-size: 14px; }
    footer strong { color: #fff; font-weight: 600; }
    footer .fl { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 14px 0; }
    footer .fl a:hover { color: #fff; }

    .mbar { display: none; }

    /* ===================== 시선을 끄는 효과 ===================== */
    .logo span { display: flex; flex-direction: column; line-height: 1.15; }
    .logo small { font-size: 11.5px; font-weight: 500; color: #9CCBF5; letter-spacing: -.01em; }

    /* 1) 초록 CTA: 숨쉬듯 커지며 링이 퍼짐 */
    @keyframes hm-pulse-g {
      0%, 100% { transform: scale(1); box-shadow: 0 7px 18px rgba(3,199,90,.22), 0 0 0 0 rgba(3,199,90,.45); }
      50% { transform: scale(1.045); box-shadow: 0 10px 26px rgba(3,199,90,.32), 0 0 0 11px rgba(3,199,90,0); }
    }
    /* 2) 주황·노랑 CTA 펄스 */
    @keyframes hm-pulse-o {
      0%, 100% { transform: scale(1); box-shadow: 0 12px 28px rgba(242,106,33,.32), 0 0 0 0 rgba(242,106,33,.45); }
      50% { transform: scale(1.04); box-shadow: 0 16px 34px rgba(242,106,33,.44), 0 0 0 14px rgba(242,106,33,0); }
    }
    @keyframes hm-pulse-y {
      0%, 100% { transform: scale(1); box-shadow: 0 10px 24px rgba(220,190,0,.3), 0 0 0 0 rgba(254,229,0,.55); }
      50% { transform: scale(1.04); box-shadow: 0 14px 30px rgba(220,190,0,.38), 0 0 0 12px rgba(254,229,0,0); }
    }
    .pulse-g { animation: hm-pulse-g 1.6s ease-in-out infinite; transform-origin: center; will-change: transform, box-shadow; }
    .pulse-o { animation: hm-pulse-o 2s ease-in-out infinite; transform-origin: center; will-change: transform, box-shadow; }
    .pulse-y { animation: hm-pulse-y 2s ease-in-out .5s infinite; transform-origin: center; will-change: transform, box-shadow; }
    .pulse-g:hover, .pulse-o:hover, .pulse-y:hover { animation-play-state: paused; }

    /* 3) 버튼 위를 지나가는 빛 */
    .sheen { position: relative; overflow: hidden; isolation: isolate; }
    .sheen::after { content: ""; position: absolute; top: 0; bottom: 0; left: -60%; width: 40%; z-index: 1; pointer-events: none; background: linear-gradient(100deg, transparent, rgba(255,255,255,.5), transparent); transform: skewX(-18deg); animation: hm-sheen 3.4s ease-in-out infinite; }
    @keyframes hm-sheen { 0% { left: -60%; } 45%, 100% { left: 140%; } }

    /* 4) 가격 박스: 빛나는 링 + 지나가는 광택 + 숫자 팝 */
    .pricebox { position: relative; overflow: hidden; isolation: isolate; animation: hm-price-glow 2s ease-in-out infinite; }
    @keyframes hm-price-glow {
      0%, 100% { box-shadow: 0 14px 34px rgba(0,0,0,.3), 0 0 0 0 rgba(245,192,74,.55); }
      50% { box-shadow: 0 18px 40px rgba(0,0,0,.36), 0 0 0 12px rgba(245,192,74,0); }
    }
    .pricebox::after { content: ""; position: absolute; top: 0; bottom: 0; left: -45%; width: 30%; z-index: 2; pointer-events: none; background: linear-gradient(100deg, transparent, rgba(255,240,200,.35), transparent); transform: skewX(-18deg); animation: hm-price-shine 3s ease-in-out infinite; }
    @keyframes hm-price-shine { 0% { left: -45%; } 60%, 100% { left: 130%; } }
    .pop { display: inline-block; transform-origin: center; animation: hm-pop 2s ease-in-out infinite; }
    @keyframes hm-pop { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.07); } }
    .prow .pr:not(.q) { transform-origin: center; animation: hm-pop-short 5s ease-in-out infinite; }
    .prow:nth-child(3) .pr { animation-delay: .25s; } .prow:nth-child(4) .pr { animation-delay: .5s; }
    .prow:nth-child(5) .pr { animation-delay: .75s; } .prow:nth-child(6) .pr { animation-delay: 1s; }
    @keyframes hm-pop-short { 0%, 10%, 26%, 100% { transform: scale(1); } 16%, 21% { transform: scale(1.08); } }

    /* 5) H1 강조 단어: 형광펜이 그어지는 효과 */
    .ink { white-space: nowrap; background: linear-gradient(transparent 62%, rgba(245,192,74,.55) 62%) no-repeat 0 0 / 0 100%; animation: hm-ink 1.1s .5s cubic-bezier(.2,.8,.2,1) forwards; padding: 0 2px; }
    @keyframes hm-ink { to { background-size: 100% 100%; } }

    /* 6) 증상 링크 카드: 순서대로 들썩 + 화살표 + 빛 */
    .lk { overflow: hidden; animation: hm-lift 4.2s ease-in-out infinite; }
    .lk em { position: relative; display: inline-flex; align-items: center; gap: 6px; margin-top: 10px; padding: 4px 10px; border-radius: 99px; background: #E3F1FB; color: var(--blue-2); font-size: 12.5px; font-style: normal; font-weight: 600; overflow: hidden; }
    .lk em::after { content: "→"; position: relative; z-index: 1; animation: hm-arrow 4.2s ease-in-out infinite; }
    .lk em::before { content: ""; position: absolute; inset: 0; background: linear-gradient(100deg, transparent 32%, rgba(255,255,255,.95) 50%, transparent 68%); transform: translateX(-120%); animation: hm-sweep 4.2s ease-in-out infinite; }
    .links3 .lk:nth-child(2), .links3 .lk:nth-child(2) em::after, .links3 .lk:nth-child(2) em::before { animation-delay: .28s; }
    .links3 .lk:nth-child(3), .links3 .lk:nth-child(3) em::after, .links3 .lk:nth-child(3) em::before { animation-delay: .56s; }
    .links3 .lk:nth-child(4), .links3 .lk:nth-child(4) em::after, .links3 .lk:nth-child(4) em::before { animation-delay: .84s; }
    .links3 .lk:nth-child(5), .links3 .lk:nth-child(5) em::after, .links3 .lk:nth-child(5) em::before { animation-delay: 1.12s; }
    .links3 .lk:nth-child(6), .links3 .lk:nth-child(6) em::after, .links3 .lk:nth-child(6) em::before { animation-delay: 1.4s; }
    @keyframes hm-lift { 0%, 58%, 100% { transform: translateY(0); } 67% { transform: translateY(-3px); box-shadow: 0 9px 18px rgba(47,128,237,.22); } 82% { transform: translateY(0); } }
    @keyframes hm-arrow { 0%, 58%, 100% { transform: translateX(0); } 69% { transform: translateX(5px); } 82% { transform: translateX(0); } }
    @keyframes hm-sweep { 0%, 58% { transform: translateX(-120%); } 80%, 100% { transform: translateX(120%); } }

    /* 7) 키워드 흐름 띠 (양방향) */
    .flow { background: #fff; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 26px 0; overflow: hidden; }
    .flow h2 { text-align: center; font-size: 15px; font-weight: 600; color: var(--blue-2); margin-bottom: 14px; }
    .flow-view { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
    .flow-row { display: flex; gap: 10px; width: max-content; padding: 5px 0; animation: hm-left 46s linear infinite; }
    .flow-row.rev { animation: hm-right 54s linear infinite; }
    .flow-view:hover .flow-row { animation-play-state: paused; }
    .flow-row a { flex: none; display: inline-flex; align-items: center; gap: 6px; padding: 9px 16px; border-radius: 99px; border: 1px solid #4AA3E0; background: #fff; color: #1A5F8F; font-size: 14.5px; font-weight: 600; white-space: nowrap; transition: background .15s, color .15s; }
    .flow-row a:hover { background: #1A5F8F; color: #fff; }
    .flow-row.rev a { border-color: #9ED9B9; color: #0B7A3E; }
    .flow-row.rev a:hover { background: #0B7A3E; color: #fff; }
    @keyframes hm-left { to { transform: translateX(-50%); } }
    @keyframes hm-right { from { transform: translateX(-50%); } to { transform: translateX(0); } }

    /* 8) 긴급 띠: 떠다니는 빛, 사이렌, 화살표, 경고 흔들림, 게이지 */
    .urgent { position: relative; overflow: hidden; isolation: isolate; }
    .urgent::before, .urgent::after { content: ""; position: absolute; z-index: -1; border-radius: 50%; pointer-events: none; }
    .urgent::before { left: -12%; top: -55%; width: 620px; height: 620px; background: radial-gradient(circle, rgba(255,170,50,.22), transparent 68%); animation: hm-drift 9s ease-in-out infinite alternate; }
    .urgent::after { right: -10%; bottom: -60%; width: 560px; height: 560px; background: radial-gradient(circle, rgba(0,215,104,.16), transparent 68%); animation: hm-drift 11s ease-in-out infinite alternate-reverse; }
    @keyframes hm-drift { to { transform: translate(60px, 40px) scale(1.1); } }
    .urgent .tag::before { animation: hm-siren 1.4s ease-out infinite; }
    @keyframes hm-siren { 0% { box-shadow: 0 0 0 0 rgba(255,90,69,.7); } 70%, 100% { box-shadow: 0 0 0 9px rgba(255,90,69,0); } }
    .arrow { display: inline-block; animation: hm-nudge 1.5s ease-in-out infinite; }
    @keyframes hm-nudge { 0%, 100% { transform: translateX(0); opacity: .5; } 50% { transform: translateX(4px); opacity: 1; } }
    .stage.s3 { animation: hm-shake 4.5s ease-in-out 2.4s infinite; }
    @keyframes hm-shake { 0%, 82%, 100% { transform: translateX(0); } 85% { transform: translateX(-3px); } 88% { transform: translateX(3px); } 91% { transform: translateX(-2px); } 94% { transform: translateX(2px); } }
    .prog i { width: 100%; transform-origin: left center; animation: hm-meter 4.5s cubic-bezier(.6,0,.4,1) infinite; }
    @keyframes hm-meter { 0% { transform: scaleX(.05); } 70%, 100% { transform: scaleX(1); } }
    .bigcta { position: relative; overflow: hidden; isolation: isolate; animation: hm-pulse-g 2s ease-out infinite; }
    .bigcta::after { content: ""; position: absolute; top: 0; bottom: 0; left: -60%; width: 40%; pointer-events: none; background: linear-gradient(100deg, transparent, rgba(255,255,255,.45), transparent); transform: skewX(-18deg); animation: hm-sheen 3.2s ease-in-out infinite; }
    .bigcta .ic svg { animation: hm-ring 2.6s ease-in-out infinite; }
    @keyframes hm-ring { 0%, 60%, 100% { transform: rotate(0); } 65% { transform: rotate(-14deg); } 70% { transform: rotate(12deg); } 75% { transform: rotate(-10deg); } 80% { transform: rotate(6deg); } 85% { transform: rotate(0); } }

    /* 9) 등장 애니메이션 (긴급 띠 / 카드) - JS가 있을 때만 숨김 */
    .js .rise { opacity: 0; transform: translateY(18px); transition: opacity .6s, transform .7s cubic-bezier(.2,.8,.2,1); }
    .js .rise.in { opacity: 1; transform: none; }
    .js .rise.d1 { transition-delay: .1s; } .js .rise.d2 { transition-delay: .25s; } .js .rise.d3 { transition-delay: .4s; } .js .rise.d4 { transition-delay: .55s; }

    /* 10) 카드 호버 */
    .card, .other, .near a, .fee { transition: transform .2s, box-shadow .2s, border-color .2s; }
    .card:hover, .other:hover, .near a:hover, .fee:hover { transform: translateY(-4px); box-shadow: 0 16px 30px -18px rgba(15,42,68,.45); }

    /* 11) 오더방 섹션 */
    .order-intro { max-width: 960px; margin: 34px auto 0; display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
    .oi { background: #fff; border: 1px solid #CDE7DA; border-radius: 16px; padding: 22px 24px; display: flex; gap: 14px; }
    .oi .ico { flex: none; width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; font-size: 22px; background: #E3F6EC; }
    .oi h3 { font-size: 17px; font-weight: 600; color: #0F4D33; }
    .oi p { font-size: 14.5px; color: var(--body); margin-top: 4px; }
    .fee3.four { grid-template-columns: repeat(4, 1fr); }

    /* 12) Google Play 다운로드 배지 */
    .gplay { display: inline-flex; align-items: center; gap: 12px; margin-top: 18px; padding: 10px 20px 10px 16px; border-radius: 12px; background: #000; color: #fff; border: 1px solid #3A3A3A; transition: transform .15s, box-shadow .15s; }
    .gplay:hover { transform: translateY(-2px); box-shadow: 0 12px 24px -12px rgba(0,0,0,.6); }
    .gplay svg { width: 28px; height: 28px; flex: none; }
    .gplay span { display: flex; flex-direction: column; line-height: 1.2; font-size: 17px; font-weight: 600; letter-spacing: -.01em; }
    .gplay small { font-size: 11.5px; font-weight: 500; color: rgba(255,255,255,.75); }
    .hero .gplay { margin-top: 14px; border-color: rgba(255,255,255,.3); }
    .hero .gplay.sheen::after { animation-delay: 1.2s; }
    .fee .z { display: inline-block; animation: hm-pop-short 5s ease-in-out infinite; }
    .fee3 .fee:nth-child(2) .z { animation-delay: .3s; } .fee3 .fee:nth-child(3) .z { animation-delay: .6s; }

    /* 움직임 줄이기 설정 시: 크게 움직이는 효과만 멈추고, 버튼 펄스·광택·가격 강조는 유지 */
    @media (prefers-reduced-motion: reduce) {
      .flow-row, .urgent::before, .urgent::after, .stage.s3, .lk, .arrow, .bigcta .ic svg { animation: none !important; }
      .flow-view { overflow-x: auto; }
    }

    @media (max-width: 1100px) { .gnb { display: none; } }
    @media (max-width: 900px) {
      .cards, .links3 { grid-template-columns: repeat(2, 1fr); }
      .urgent .wrap, .vid-row { grid-template-columns: 1fr; }
      .vid-row .player { max-width: 300px; margin: 0 auto; width: 100%; }
      .fee3 { grid-template-columns: 1fr; }
      .fee3.four { grid-template-columns: repeat(2, 1fr); }
      .near { grid-template-columns: repeat(2, 1fr); }
    }
    @media (max-width: 640px) {
      .header .wrap { height: 60px; }
      .hbtn { padding: 9px 14px; font-size: 14px; }
      .consult { top: 60px; padding: 8px 10px 0; }
      .consult .in { padding: 10px 10px 10px 16px; }
      .consult span { display: none; }
      .consult strong { font-size: 14px; }
      .consult .btn { padding: 10px 12px; font-size: 13.5px; }
      .consult .btn svg { display: none; }
      .hero .wrap { padding: 44px 16px 44px; }
      .hero .bg { left: -12px; background-position: 85% center; -webkit-mask-image: none; mask-image: none; }
      .hero .desc { font-size: 15.5px; text-align: left; }
      .cta2 { grid-template-columns: 1fr; }
      section.s { padding: 60px 0; }
      .cards, .links3, .others, .order-intro { grid-template-columns: 1fr; }
      .fee strong { font-size: 32px; }
      .logo { font-size: 18px; }
      .logo small { font-size: 10.5px; }
      .stages { grid-template-columns: 1fr; }
      .arrow { display: none; }
      .threes { gap: 14px; font-size: 13px; }
      .expert { flex-direction: column; align-items: flex-start; }
      .prow { padding: 12px 14px; }
      .prow .pr { font-size: 16px; padding: 5px 12px; }
      .mbar { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; padding: 8px 10px calc(8px + env(safe-area-inset-bottom)); background: rgba(19,33,46,.95); }
      .mbar a { text-align: center; padding: 14px; border-radius: 10px; font-weight: 700; font-size: 15px; }
      .mbar .g { background: var(--green); color: #fff; }
      .mbar .y { background: var(--yellow); color: #1B1B1B; }
    }

    /* ===== 생성기 추가 스타일 ===== */
    .gnb a.on { color: var(--gold); }
    .prow .ic .em, .sym-ic { font-size: 24px; line-height: 1; }
    .areas { background: #0F1B26; color: rgba(255,255,255,.7); padding: 54px 0 10px; }
    .areas h2 { color: #fff; font-size: 20px; font-weight: 600; }
    .areas > .wrap > p { font-size: 14px; margin-top: 6px; }
    .area-grp { display: grid; grid-template-columns: 120px 1fr; gap: 14px; padding: 16px 0; border-bottom: 1px solid rgba(255,255,255,.08); }
    .area-grp:last-child { border-bottom: 0; }
    .area-grp h3 { font-size: 15px; font-weight: 600; color: var(--gold); padding-top: 6px; }
    .area-grp div { display: flex; flex-wrap: wrap; gap: 8px; }
    .area-grp a { font-size: 14px; padding: 6px 13px; border-radius: 99px; border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.04); transition: background .15s, color .15s, border-color .15s; }
    .area-grp a:hover { background: rgba(255,255,255,.12); color: #fff; }
    .area-grp a.cur { background: var(--green); border-color: var(--green); color: #fff; }
    footer { padding-top: 34px; }
    @media (max-width: 640px) { .area-grp { grid-template-columns: 1fr; gap: 8px; } }

    .dated { margin-top: 18px; font-size: 13px; color: rgba(255,255,255,.6); }
    .dated time { white-space: nowrap; }
    .grp-title { text-align: center; margin-top: 40px; font-size: 18px; font-weight: 600; color: var(--blue-2); }
    .area-grp.light { border-bottom: 1px solid var(--line); }
    .area-grp.light h3 { color: var(--navy); }
    .area-grp.light a { color: var(--navy); border-color: #C9DCEA; background: #fff; }
    .area-grp.light a:hover { background: var(--navy); color: #fff; }
    .flow-row span { flex: none; display: inline-flex; align-items: center; padding: 9px 16px; border-radius: 99px; border: 1px solid #C9DCEA; background: #F7FBFE; color: #4A6A82; font-size: 14.5px; font-weight: 600; white-space: nowrap; }
    .flow-row.rev span { border-color: #CDEBDB; background: #F5FCF8; color: #2F7A55; }
    .flow-row .dup { display: contents; }
