/* 4안 B: 가운데 정렬 HERO. 큰 회사명/홈페이지가 롤링되고 아래에 분석이 나온다. */
.hero .sc2{position:relative;z-index:2;padding:72px 0 64px;display:flex;flex-direction:column;align-items:center;text-align:center}
.hero .eyebrow{justify-content:center}
.sc2-demo{width:100%;max-width:980px;margin-top:36px}
.sc2-form{display:grid;grid-template-columns:1fr 1fr auto;gap:14px;align-items:end;text-align:left}
.sc2-label{display:block;color:rgba(255,255,255,.7);font-size:13px;font-weight:700}
.sc2-roll{display:block;position:relative;overflow:hidden;box-sizing:border-box;width:100%;height:60px;margin-top:8px;border:1px solid rgba(255,255,255,.18);border-radius:12px;background:rgba(255,255,255,.07);color:#fff;font-size:22px;font-weight:800;letter-spacing:-.02em}
.sc2-url{color:#c6a6ff;font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;font-size:18px;font-weight:500;letter-spacing:0}
.sc2-roll span{position:absolute;inset:0;padding:0 20px;line-height:58px;white-space:nowrap}
/* 데모 전용 표시 버튼: 흰 알약 버튼과 다르게 보이고 눌리지 않는다 */
.sc2-go{display:flex;align-items:center;justify-content:center;box-sizing:border-box;height:60px;padding:0 30px;border-radius:12px;background:#7634CB;color:#fff;font-weight:800;font-size:17px;white-space:nowrap;pointer-events:none;user-select:none;transition:transform .15s,background .15s}
.sc2-go.is-press{transform:scale(.95);background:#5c24a5}
.sc-err{margin:10px 0 0;color:#b4233f;font-size:13px}
.sc2-out{width:100%;min-height:250px;margin-top:30px;display:grid;grid-template-columns:repeat(3,1fr);gap:14px;text-align:left}
.sc2-out>section,.sc2-out>.sc-empty{padding:16px 18px;border:1px solid rgba(255,255,255,.12);border-radius:14px;background:rgba(255,255,255,.05)}
.sc2-out>.sc-empty{grid-column:1/-1;margin:0;color:rgba(255,255,255,.7);font-size:14px;text-align:center}
.sc2-out h3{margin:0 0 8px;color:#c6a6ff;font-size:12px;font-weight:800;letter-spacing:.04em}
.sc2-out ul{margin:0;padding:0;list-style:none}
.sc2-out li{animation:sc-in .45s cubic-bezier(.16,.84,.44,1) both;position:relative;padding-left:14px;color:rgba(255,255,255,.88);font-size:13.5px;line-height:1.65}
.sc2-out li+li{margin-top:4px}
.sc2-out li:before{content:"-";position:absolute;left:2px;color:#a78bfa}
.sc-sk{height:12px;margin:0 0 10px;border-radius:6px;background:linear-gradient(90deg,rgba(255,255,255,.06) 25%,rgba(255,255,255,.16) 50%,rgba(255,255,255,.06) 75%);background-size:200% 100%;animation:sc-shimmer 1.2s linear infinite}
.sc-sk:nth-child(odd){width:90%}.sc-sk:nth-child(even){width:65%}
.sc-cta{grid-column:1/-1;justify-self:center;color:#e6d9ff;font-size:13px;font-weight:700;text-decoration:underline;text-underline-offset:3px}
.sc2-actions{display:flex;justify-content:center;gap:12px;margin-top:34px}
.sc-note{margin:16px 0 0;color:rgba(255,255,255,.55);font-size:11.5px}
@keyframes sc-in{from{opacity:0;transform:translateY(14px)}}
@keyframes sc-blink{50%{opacity:0}}
@keyframes sc-shimmer{to{background-position:-200% 0}}
@media(prefers-reduced-motion:reduce){.sc-sk,.sc2-out li{animation:none}}
@media(max-width:900px){.sc2-out{grid-template-columns:1fr;min-height:0}}
@media(max-width:700px){.sc2-form{grid-template-columns:1fr}.sc2-go{height:56px}}
@media(max-width:560px){.hero .sc2{padding:48px 0 30px}.sc2-actions{flex-direction:column;align-items:stretch}}

/* 체험 모달 (3안의 IMPACT 모달과 같은 흰 배경) */
.sc-modal{padding:0;border:0;border-radius:16px;width:calc(100% - 40px);max-width:940px;max-height:92vh;overflow:hidden;color:var(--ink);background:#fff;box-shadow:0 30px 70px rgba(0,0,0,.35)}
.sc-modal::backdrop{background:rgba(8,5,14,.6)}
.sc-modal-inner{position:relative;max-height:92vh;overflow-y:auto;overscroll-behavior-y:contain;padding:36px 34px 28px}
.sc-modal-x{position:absolute;top:12px;right:14px;width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:var(--g5);font-size:28px;line-height:1;cursor:pointer}
.sc-modal-x:hover{background:var(--g1)}
.sc-modal h3#m-title{margin:0;padding-right:40px;font-size:22px}
.m-sub{margin:6px 0 20px;color:var(--g5);font-size:14px}
.m-form{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end}
.m-form label{display:block;margin-bottom:6px;color:var(--g5);font-size:13px;font-weight:700}
.m-form input{display:block;width:100%;height:52px;padding:0 14px;border:1px solid var(--g3);border-radius:10px;background:#fff;color:var(--ink);font:inherit;font-size:15px}
.m-form input::placeholder{color:var(--g4)}
.m-form input:focus-visible{outline:2px solid var(--p);outline-offset:1px}
.m-form input[aria-invalid="true"]{border-color:#b4233f}
.m-form .btn{height:52px;white-space:nowrap}
.sc-modal .sc2-out{margin-top:22px;min-height:210px}
.sc-modal .sc2-out>section{border-color:var(--g2);background:var(--g1)}
.sc-modal .sc2-out>.sc-empty{color:var(--g4);background:none;border:1px dashed var(--g3)}
.sc-modal .sc2-out h3{color:var(--p)}
.sc-modal .sc2-out li{color:var(--ink)}
.sc-modal .sc2-out li:before{color:var(--pm)}
.sc-modal .sc-cta{color:var(--p)}
.sc-modal .sc-sk{background:linear-gradient(90deg,var(--g2) 25%,var(--g1) 50%,var(--g2) 75%);background-size:200% 100%}
.sc-modal .sc-note{color:var(--g4)}
@media(max-width:700px){.m-form{grid-template-columns:1fr}.sc-modal-inner{padding:30px 20px 22px}}

/* 히어로 전용: 흐르는 로그 + 핵심 칩 */
.sc2-demo .sc2-out{min-height:330px}
.sc2-demo .sc2-out>section{display:flex;flex-direction:column;padding:16px 18px 18px}
.sc2-out header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.sc2-out header h3{margin:0}
.sc2-out .st{display:inline-flex;align-items:center;gap:6px;color:rgba(255,255,255,.6);font-size:11px;font-weight:700}
.sc2-out .st i{width:6px;height:6px;border-radius:50%;background:currentColor}
.sc2-out .st:not(.done) i{animation:sc-blink 1s steps(1) infinite}
.sc2-out .st.done{color:#c6a6ff}
.sc2-out .st.done i{display:none}
.sc2-out .st.done b:before{content:"\2713";margin-right:4px}
.sc2-out .sc2-log{flex:1 1 0;display:flex;flex-direction:column;justify-content:flex-end;min-height:188px;overflow:hidden;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 38%);mask-image:linear-gradient(180deg,transparent 0,#000 38%)}
.sc2-out .sc2-log li{padding-left:14px;font-size:13px;line-height:1.6;opacity:.32;animation:sc-log .28s cubic-bezier(.16,.84,.44,1) backwards;transition:opacity .3s}
.sc2-out .sc2-log li+li{margin-top:3px}
.sc2-out .sc2-log li:nth-last-child(1){opacity:1}
.sc2-out .sc2-log li:nth-last-child(2){opacity:.7}
.sc2-out .sc2-log li:nth-last-child(3){opacity:.5}
.sc2-key{display:flex;flex-wrap:wrap;gap:8px;min-height:88px;margin-top:12px;align-content:flex-start}
.sc2-key p{flex:0 0 100%;margin:0;color:#c6a6ff;font-size:11px;font-weight:700}
.sc2-key span{display:inline-flex;align-items:center;padding:7px 12px;border:1px solid rgba(198,166,255,.4);border-radius:999px;background:rgba(157,109,255,.22);color:#f3ecff;font-size:13px;font-weight:800;animation:sc-pop .45s cubic-bezier(.16,.84,.44,1) backwards}
.sc2-roll:after{content:"";position:absolute;top:0;bottom:0;left:0;width:30%;background:linear-gradient(90deg,transparent,rgba(198,166,255,.28),transparent);opacity:0;pointer-events:none}
.sc2-form.busy .sc2-roll{border-color:#a78bfa}
.sc2-form.busy .sc2-roll:after{opacity:1;animation:sc-scan 1s linear infinite}
@keyframes sc-log{from{opacity:0;transform:translateY(8px)}}
@keyframes sc-pop{from{opacity:0;transform:scale(.88)}}
@keyframes sc-scan{from{transform:translateX(-100%)}to{transform:translateX(340%)}}
@media(prefers-reduced-motion:reduce){.sc2-out .sc2-log li,.sc2-key span,.sc2-form.busy .sc2-roll:after,.sc2-out .st:not(.done) i{animation:none}}


/* 서비스 소개 문구 + 박스 크기 고정 */
.hero .sc2 h1{margin:26px 0 16px;font-size:clamp(32px,4.4vw,52px);line-height:1.18;letter-spacing:-.035em}
.hero .sc2-lead{max-width:640px;font-size:16px;line-height:1.7}
.sc2-demo .sc2-out{min-height:0}
.sc2-demo .sc2-out>section{height:294px;overflow:hidden}
.sc2-out .sc2-log{min-height:0}
@media(max-width:900px){.sc2-demo .sc2-out>section{height:290px}}
@media(min-width:561px){.br-m{display:none}}
@media(max-width:560px){.hero .sc2-lead br{display:none}}

/* HERO 다음: 서비스 소개 */
.intro{padding:72px 0 64px;text-align:center;background:#fff}
.intro h2{margin:0;font-size:clamp(26px,3.2vw,38px);line-height:1.35;letter-spacing:-.04em}
.intro h2 em{color:var(--p);font-style:normal}
.intro p{margin:18px 0 0;color:var(--g5);font-size:16px;line-height:1.75}
@media(max-width:560px){.intro{padding:56px 0 48px}.intro p br{display:none}}

.hero:before{bottom:0}
@media(max-width:560px){.hero .sc2{padding:56px 0 56px}}

/* FlareLane식 구조: 큰 2줄 헤드라인 + CTA + 아래로 걸쳐 나오는 제품 화면 창 */
.hero .sc2 h1{margin:22px 0 18px;font-size:clamp(38px,5.6vw,72px);line-height:1.14;letter-spacing:-.04em}
.hero .sc2 h1 .acc{color:#c6a6ff}
.hero .sc2-lead{max-width:none;font-size:clamp(15px,1.6vw,18px)}
.hero .sc2-actions{margin-top:28px}
.sc2-win{width:100%;max-width:1040px;margin-top:52px;padding:0 24px 24px;border:1px solid rgba(255,255,255,.14);border-radius:16px;background:rgba(255,255,255,.04);box-shadow:0 30px 80px rgba(0,0,0,.45)}
.sc2-winbar{display:flex;align-items:center;gap:6px;margin:0 -24px;padding:13px 18px;border-bottom:1px solid rgba(255,255,255,.08)}
.sc2-winbar i{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.28)}
.sc2-winbar span{margin-left:8px;color:rgba(255,255,255,.55);font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}
.sc2-win .sc2-demo{max-width:none;margin-top:22px}
@media(max-width:560px){.hero .sc2 h1{font-size:34px}.sc2-win{padding:0 14px 16px;margin-top:36px}.sc2-winbar{margin:0 -14px}.hero .sc2-lead br{display:block}}

/* 서비스 소개 3D 스테이지 */
.intro-stage{position:relative;width:100%;max-width:640px;height:380px;margin:20px auto 0}
.intro-stage:before{content:"";position:absolute;left:50%;top:50%;width:min(360px,80%);aspect-ratio:1;border-radius:50%;background:var(--pl);transform:translate(-50%,-52%)}
.intro-stage canvas{position:relative;display:block;width:100%;height:100%}
.intro-chips{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin:6px 0 0}
.intro-chips button{min-height:40px;padding:0 18px;border:1px solid var(--g3);border-radius:999px;background:#fff;color:var(--g5);font:inherit;font-size:14px;font-weight:700;cursor:pointer;transition:background .25s,color .25s,border-color .25s,transform .15s}
.intro-chips button:hover{border-color:var(--pm);color:var(--pd)}
.intro-chips button:active{transform:scale(.97)}
.intro-chips button:focus-visible{outline:2px solid var(--p);outline-offset:2px}
.intro-chips button.on{border-color:var(--p);background:var(--p);color:#fff}
@media(max-width:560px){.intro-stage{height:300px}}

/* REAL IMPACT: 원인 -> 결과를 보여주는 애니메이션 카드 */
.imp-track{display:flex;gap:16px;overflow-x:auto;padding:4px 7% 8px;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;margin:0 -7%}
.imp-track::-webkit-scrollbar{display:none}
.imp-track:focus-visible{outline:2px solid #c6a6ff;outline-offset:4px;border-radius:14px}
.imp-card{flex:0 0 100%;scroll-snap-align:center;display:grid;grid-template-columns:1.15fr 1fr;gap:36px;align-items:center;padding:30px 36px;border:1px solid rgba(255,255,255,.12);border-radius:14px;background:rgba(255,255,255,.05)}
.imp-card h3{margin:14px 0 12px;color:#fff;font-size:28px;line-height:1.4;letter-spacing:-.02em}
.imp-card p{margin:0;color:rgba(255,255,255,.78);font-size:16px;line-height:1.75}
.imp-vis{position:relative;height:270px;border-radius:12px;background:rgba(255,255,255,.04);overflow:hidden}
.imp-card:not(.is-in) .imp-vis *{animation-play-state:paused}
/* A: 노출 범위 확장 */
/* B: 마진 vs 수수료 */
.imp-b{padding:26px 24px;display:flex;flex-direction:column;justify-content:center}
.imp-b .row{display:flex;justify-content:space-between;align-items:baseline;color:rgba(255,255,255,.8);font-size:13px}
.imp-b .row b{color:#fff;font-size:20px;letter-spacing:-.02em}
.imp-b .track{height:14px;margin:8px 0 18px;border-radius:7px;background:rgba(255,255,255,.08);overflow:hidden}
.imp-b .track:last-child{margin-bottom:0}
.imp-b .fill{height:100%;border-radius:7px;background:rgba(255,255,255,.28);transform-origin:left;animation:imp-fill 6s cubic-bezier(.16,.84,.44,1) infinite}
.imp-b .fill i{display:block;height:100%;border-radius:7px;background:rgba(255,255,255,.55)}
.imp-b .fill.new{background:rgba(167,139,250,.55);animation-delay:.5s}
.imp-b .fill.new i{background:#a78bfa}
/* C: 방문 전 비용 없음 */
.imp-c{padding:0 26px}
.imp-c ol{position:absolute;left:26px;right:26px;top:50%;margin:-42px 0 0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(3,1fr)}
.imp-c .line{position:absolute;left:calc(26px + 16.7%);right:calc(26px + 16.7%);top:calc(50% - 42px + 8px);height:2px;background:rgba(255,255,255,.14)}
.imp-c .line i{display:block;height:100%;background:#a78bfa;transform-origin:left;animation:imp-line 6s ease-in-out infinite}
.imp-c li{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;color:#fff;font-size:13px;font-weight:700}
.imp-c li em{width:16px;height:16px;border-radius:50%;background:#2a1f45;border:2px solid #a78bfa;animation:imp-dot 6s infinite}
.imp-c li:nth-child(2) em{animation-delay:1.5s}.imp-c li:nth-child(3) em{animation-delay:3s}
.imp-c li span{padding:3px 10px;border-radius:999px;background:rgba(255,255,255,.1);color:rgba(255,255,255,.8);font-size:12px;font-weight:700}
.imp-c li.last span{background:rgba(167,139,250,.28);color:#f3ecff}
/* D: 한 번 등록 -> 끝까지 */
@keyframes imp-fill{0%{transform:scaleX(0)}22%,88%{transform:scaleX(1)}100%{transform:scaleX(1);opacity:0}}
@keyframes imp-line{0%,5%{transform:scaleX(0)}55%,90%{transform:scaleX(1)}100%{transform:scaleX(1);opacity:.2}}
@keyframes imp-dot{0%,100%{background:#2a1f45}20%,85%{background:#a78bfa}}
@media(prefers-reduced-motion:reduce){.imp-vis *{animation:none!important}}
@media(max-width:900px){.imp-grid{grid-template-columns:1fr}}
@media(max-width:560px){.imp-d ol{gap:12px}.imp-d li{padding:10px 8px;font-size:12px}.imp-d li:not(:last-child):after{width:12px}.imp-card{padding:18px 18px 22px}}

/* IMPACT 카드 넘기기 */
.imp-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.imp-tabs button{min-height:40px;padding:0 18px;border:1px solid rgba(255,255,255,.2);border-radius:999px;background:rgba(255,255,255,.05);color:rgba(255,255,255,.8);font:inherit;font-size:14px;font-weight:700;cursor:pointer;transition:background .25s,color .25s,border-color .25s}
.imp-tabs button:hover{border-color:#a78bfa;color:#fff}
.imp-tabs button.on{border-color:#fff;background:#fff;color:#5c24a5}
.imp-tabs button:focus-visible,.imp-nav button:focus-visible{outline:2px solid #c6a6ff;outline-offset:2px}
.imp-tag{display:inline-block;padding:4px 12px;border-radius:999px;background:rgba(167,139,250,.25);color:#e6d9ff;font-size:12px;font-weight:800}
.imp-nav{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}
.imp-nav button{width:44px;height:44px;border:1px solid rgba(255,255,255,.22);border-radius:50%;background:rgba(255,255,255,.06);color:#fff;cursor:pointer;display:grid;place-items:center;transition:background .2s}
.imp-nav button:hover{background:rgba(255,255,255,.16)}
.imp-nav svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2}
.imp-card:not(.is-in){opacity:.55}
.imp-card{transition:opacity .35s}
@media(max-width:900px){.imp-card{grid-template-columns:1fr;gap:22px;padding:22px 22px 26px}.imp-card h3{font-size:22px}.imp-vis{height:230px}.imp-track{padding:4px 5% 8px;margin:0 -5%}}
@media(max-width:560px){.imp-tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.imp-tabs button{flex:none}}
.impact .section-head h2 em{color:#c6a6ff}

/* 노출 확대: 채널이 붙을수록 노출 범위가 넓어지고 고객 점이 켜진다 */
.imp-a .reach{position:absolute;left:4%;top:6%;width:92%;height:88%;border:1px solid rgba(198,166,255,.5);border-radius:50%;background:radial-gradient(closest-side,rgba(139,92,246,.3),rgba(139,92,246,.04));animation:imp-reach 7s ease-out infinite}
.imp-a .dot{position:absolute;width:7px;height:7px;margin:-3px 0 0 -3px;border-radius:50%;background:#a78bfa;animation:imp-lit 7s infinite}
.imp-a .core{position:absolute;z-index:3;left:50%;top:50%;width:66px;height:66px;margin:-33px 0 0 -33px;display:grid;place-items:center;border-radius:50%;background:#7634CB;color:#fff;font-size:13px;font-weight:800;box-shadow:0 0 0 6px rgba(139,92,246,.25)}
.imp-a .ch{position:absolute;z-index:3;width:76px;height:38px;display:grid;place-items:center;border-radius:10px;background:#fff;color:#5c24a5;font-size:13px;font-weight:800;animation:imp-pop 7s cubic-bezier(.16,.84,.44,1) infinite}
.imp-a .ch img{max-width:54px;max-height:22px}
.imp-a .c1{left:17%;top:20%;animation-delay:.9s}.imp-a .c2{right:17%;top:20%;animation-delay:1.5s}
.imp-a .c3{left:19%;bottom:24%;animation-delay:2.1s}.imp-a .c4{right:19%;bottom:24%;animation-delay:2.7s}
.imp-a .cap{position:absolute;z-index:3;left:0;right:0;bottom:12px;height:24px;text-align:center}
.imp-a .cap span{position:absolute;left:50%;transform:translateX(-50%);padding:4px 14px;border-radius:999px;background:rgba(14,9,24,.75);color:#fff;font-size:12.5px;font-weight:700;white-space:nowrap}
.imp-a .p1{opacity:0;animation:imp-p1 7s infinite}.imp-a .p2{animation:imp-p2 7s infinite;background:#7634CB}
@keyframes imp-reach{0%{transform:scale(.28);opacity:1}55%,88%{transform:scale(1);opacity:1}100%{transform:scale(1);opacity:0}}
@keyframes imp-lit{0%,6%{background:rgba(255,255,255,.22);transform:scale(1)}16%{background:#e6d9ff;transform:scale(1.7)}26%,88%{background:#a78bfa;transform:scale(1)}100%{background:rgba(255,255,255,.22)}}
@keyframes imp-pop{0%{opacity:0;transform:scale(.4)}9%,84%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.9)}}
@keyframes imp-p1{0%,28%{opacity:1}36%,100%{opacity:0}}
@keyframes imp-p2{0%,38%{opacity:0}46%,88%{opacity:1}100%{opacity:0}}
/* 운영 편의: 상품권이 등록에서 사용까지 한 흐름으로 이동한다 */
.imp-d .once{position:absolute;left:12.5%;top:26px;transform:translateX(-50%);padding:4px 12px;border-radius:999px;background:rgba(167,139,250,.28);color:#f3ecff;font-size:12px;font-weight:800;white-space:nowrap}
.imp-d ol{position:absolute;left:0;right:0;top:50%;margin:-28px 0 0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(4,1fr)}
.imp-d li{display:flex;flex-direction:column;align-items:center;gap:12px;color:#fff;font-size:13.5px;font-weight:800;text-align:center}
.imp-d li em{display:grid;place-items:center;width:44px;height:44px;border:2px solid #a78bfa;border-radius:50%;background:#7634CB;color:#fff;font-style:normal;font-size:20px;font-weight:800}
.imp-d li em:after{content:"\2713"}
.imp-d .line{position:absolute;left:12.5%;right:12.5%;top:calc(50% - 28px + 21px);height:3px;background:rgba(255,255,255,.14)}
.imp-d .line i{display:block;height:100%;background:#a78bfa;transform-origin:left;animation:imp-lf 8s linear infinite}
.imp-d .tok{position:absolute;z-index:2;left:87.5%;top:calc(50% - 28px - 20px);transform:translateX(-50%);width:66px;height:34px;display:grid;place-items:center;border-radius:8px;background:linear-gradient(135deg,#8b5cf6,#5b21b6);color:#fff;font-size:11px;font-weight:800;box-shadow:0 8px 18px rgba(0,0,0,.4);animation:imp-tok 8s ease-in-out infinite}
.imp-d .s1 em{animation:imp-e1 8s infinite}.imp-d .s2 em{animation:imp-e2 8s infinite}.imp-d .s3 em{animation:imp-e3 8s infinite}.imp-d .s4 em{animation:imp-e4 8s infinite}
@keyframes imp-tok{0%{left:12.5%;opacity:0;transform:translateX(-50%) scale(.6)}4%,12%{left:12.5%;opacity:1;transform:translateX(-50%) scale(1)}32%,40%{left:37.5%;opacity:1}60%,68%{left:62.5%;opacity:1}88%,94%{left:87.5%;opacity:1}100%{left:87.5%;opacity:0}}
@keyframes imp-lf{0%,12%{transform:scaleX(0)}88%,96%{transform:scaleX(1)}100%{transform:scaleX(1);opacity:0}}
@keyframes imp-e1{0%,5%{background:#2a1f45;border-color:rgba(255,255,255,.25);color:transparent}7%,96%{background:#7634CB;border-color:#a78bfa;color:#fff}100%{background:#2a1f45;border-color:rgba(255,255,255,.25);color:transparent}}
@keyframes imp-e2{0%,32%{background:#2a1f45;border-color:rgba(255,255,255,.25);color:transparent}34%,96%{background:#7634CB;border-color:#a78bfa;color:#fff}100%{background:#2a1f45;border-color:rgba(255,255,255,.25);color:transparent}}
@keyframes imp-e3{0%,60%{background:#2a1f45;border-color:rgba(255,255,255,.25);color:transparent}62%,96%{background:#7634CB;border-color:#a78bfa;color:#fff}100%{background:#2a1f45;border-color:rgba(255,255,255,.25);color:transparent}}
@keyframes imp-e4{0%,88%{background:#2a1f45;border-color:rgba(255,255,255,.25);color:transparent}90%,96%{background:#7634CB;border-color:#a78bfa;color:#fff}100%{background:#2a1f45;border-color:rgba(255,255,255,.25);color:transparent}}
@media(max-width:560px){.imp-d li{font-size:12px}.imp-d li em{width:38px;height:38px}.imp-a .ch{width:64px}.imp-a .c1{left:8%}.imp-a .c2{right:8%}.imp-a .c3{left:8%}.imp-a .c4{right:8%}}

/* 우측 하단 플로팅 버튼 */
.fab{position:fixed;z-index:40;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));display:inline-flex;align-items:center;gap:6px;height:52px;padding:0 22px;border:0;border-radius:999px;background:#7634CB;color:#fff;font:inherit;font-size:15px;font-weight:800;white-space:nowrap;cursor:pointer;box-shadow:0 12px 30px rgba(70,31,121,.4);opacity:0;visibility:hidden;transform:translateY(16px);transition:opacity .3s,transform .3s cubic-bezier(.16,.84,.44,1),visibility .3s,background .2s}
.fab.show{opacity:1;visibility:visible;transform:none}
.fab:hover{background:#5c24a5}
.fab:active{transform:scale(.97)}
.fab:focus-visible{outline:2px solid #fff;outline-offset:2px;box-shadow:0 0 0 4px #7634CB}
.fab svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;vertical-align:-4px}
.fab .t2{display:none}.fab[aria-expanded="true"] .t1{display:none}.fab[aria-expanded="true"] .t2{display:inline}
.fab[aria-expanded="true"]{opacity:1;visibility:visible;transform:none}
@media(prefers-reduced-motion:reduce){.fab{transition:none}}
@media(max-width:560px){.fab{right:16px;bottom:16px;height:48px;padding:0 18px;font-size:14px}}

/* 채널톡처럼 우측 하단에서 열리는 분석 패널 */
.sc-modal.widget{position:fixed;inset:auto max(20px,env(safe-area-inset-right)) 84px auto;margin:0;width:min(400px,calc(100vw - 32px));max-height:min(680px,calc(100vh - 112px));border-radius:18px;box-shadow:0 20px 60px rgba(30,15,60,.35),0 0 0 1px rgba(30,30,30,.06);z-index:41;animation:wg-in .3s cubic-bezier(.16,.84,.44,1)}
.sc-modal.widget .sc-modal-inner{max-height:min(680px,calc(100vh - 112px));padding:26px 20px 20px}
.sc-modal.widget h3#m-title{font-size:18px}
.sc-modal.widget .m-sub{font-size:13px;margin-bottom:16px}
.sc-modal.widget .m-form{grid-template-columns:1fr;gap:10px}
.sc-modal.widget .m-form .btn{width:100%}
.sc-modal.widget .sc2-out{grid-template-columns:1fr;min-height:0;margin-top:16px}
.sc-modal.widget .sc-modal-x{top:8px;right:10px}
@keyframes wg-in{from{opacity:0;transform:translateY(16px) scale(.98)}}
@media(prefers-reduced-motion:reduce){.sc-modal.widget{animation:none}}
@media(max-width:560px){.sc-modal.widget{inset:auto 16px 76px 16px;width:auto}}

/* 분석 후: 결과 아래에 문의하기 / 다시하기 */
.m-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.m-actions[hidden],.m-actions [hidden]{display:none}
.m-actions .btn{flex:1;height:52px;justify-content:center;white-space:nowrap}
.m-actions .btn.ghost{border:1px solid var(--g3);background:#fff;color:var(--g5)}
.m-actions .btn.ghost:hover{border-color:var(--p);color:var(--p)}
.m-form.moved{grid-template-columns:1fr 1fr}
.sc-modal.widget .m-form.moved{grid-template-columns:1fr}
.sc-modal .sc2-key{min-height:0;margin-top:14px}
.sc-modal .sc2-key p{color:var(--p)}
.sc-modal .sc2-key span{border-color:var(--pm);background:var(--pl);color:var(--pd)}
.sc-modal .sc2-out li{animation:sc-in .35s cubic-bezier(.16,.84,.44,1) backwards}

/* 서비스 소개: 1안/2안 전환 */
.intro-var{display:inline-flex;gap:4px;margin-top:22px;padding:4px;border:1px solid var(--g3);border-radius:999px;background:#fff}
.intro-var button{min-height:34px;padding:0 18px;border:0;border-radius:999px;background:transparent;color:var(--g5);font:inherit;font-size:13px;font-weight:800;cursor:pointer;transition:background .2s,color .2s}
.intro-var button:hover{color:var(--p)}
.intro-var button.on{background:var(--p);color:#fff}
.intro-var button:focus-visible{outline:2px solid var(--p);outline-offset:2px}
.intro-v1[hidden],.intro-v2[hidden]{display:none}
/* 2안: 발행 콘솔. 상품 정보가 상품권으로 발행되고 채널에 유통되는 과정을 보여준다 */
.intro-v2{margin-top:28px}
.cs{max-width:940px;margin:0 auto;border:1px solid rgba(255,255,255,.1);border-radius:16px;background:#120d1f;color:#fff;text-align:left;box-shadow:0 30px 70px rgba(30,15,60,.28);overflow:hidden}
.cs-bar{display:flex;align-items:center;gap:6px;padding:12px 18px;border-bottom:1px solid rgba(255,255,255,.08)}
.cs-bar i{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.28)}
.cs-bar span{margin-left:8px;color:rgba(255,255,255,.55);font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}
.cs-bar em{margin-left:auto;padding:3px 10px;border-radius:999px;background:rgba(157,109,255,.22);color:#e6d9ff;font-size:11px;font-style:normal;font-weight:700}
.cs-body{display:grid;grid-template-columns:1fr 30px 1.4fr 30px 1fr;align-items:stretch;padding:22px 22px 24px;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:32px 32px}
.cs-col h4{margin:0 0 12px;color:rgba(255,255,255,.6);font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;font-weight:500;letter-spacing:.04em}
.cs-col ul{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.cs-col li{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:46px;padding:0 14px;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:rgba(255,255,255,.04);color:rgba(255,255,255,.75);font-size:13.5px;font-weight:700;transition:border-color .25s,background .25s,color .25s}
.cs-col li.on{border-color:#a78bfa;background:rgba(139,92,246,.22);color:#fff}
#cs-ch li img{max-width:64px;max-height:20px;padding:3px 6px;border-radius:5px;background:#fff;box-sizing:content-box}
#cs-ch li span{color:inherit}
#cs-ch li b,#cs-post li b{padding:3px 10px;border-radius:999px;background:rgba(255,255,255,.08);color:rgba(255,255,255,.55);font-size:11px;font-weight:700;transition:background .25s,color .25s}
#cs-ch li.on b,#cs-post li.on b{background:#7634CB;color:#fff}
.cs-mid{padding:0 4px}
.cs-mid dl{margin:0 0 14px;display:grid;gap:6px}
.cs-mid dl div{display:grid;grid-template-columns:62px 1fr;align-items:center;gap:10px}
.cs-mid dt{color:rgba(255,255,255,.5);font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}
.cs-mid dd{margin:0;min-height:26px;padding:4px 10px;border-radius:6px;background:rgba(255,255,255,.05);color:#fff;font-size:13px;font-weight:600;line-height:1.5}
.cs-mid dd.in{animation:cs-in .35s cubic-bezier(.16,.84,.44,1) backwards}
.cs-voucher{position:relative;overflow:hidden;width:100%;max-width:300px;aspect-ratio:1.7;margin:0 auto 14px;padding:14px 16px;border:1px dashed rgba(255,255,255,.25);border-radius:12px;background:rgba(255,255,255,.04);opacity:.5;display:flex;flex-direction:column;transition:opacity .3s}
.cs-voucher small,.cs-voucher .k,.cs-voucher b,.cs-voucher strong,.cs-voucher code,.cs-voucher em{opacity:0;transition:opacity .3s .15s}
.cs-voucher small{font-size:15px;font-weight:800}
.cs-voucher .k{position:absolute;top:14px;right:16px;font-size:11px;font-weight:700}
.cs-voucher b{margin-top:auto;font-size:15px;line-height:1.3}
.cs-voucher strong{margin-top:4px;font-size:20px}
.cs-voucher code{margin-top:6px;color:rgba(255,255,255,.7);font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px}
.cs-voucher em{position:absolute;right:14px;bottom:14px;padding:3px 10px;border-radius:999px;background:#fff;color:#5c24a5;font-size:11px;font-style:normal;font-weight:800}
.cs-voucher.on{opacity:1;border:1px solid rgba(255,255,255,.2);background:linear-gradient(135deg,#8b5cf6,#5b21b6 65%,#461F79)}
.cs-voucher.on small,.cs-voucher.on .k,.cs-voucher.on b,.cs-voucher.on strong,.cs-voucher.on code,.cs-voucher.on em{opacity:1}
.cs-voucher.on:after{content:"";position:absolute;top:0;bottom:0;left:0;width:40%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);transform:translateX(-120%);animation:cs-shine .9s ease-out .1s 1 forwards}
.cs-steps{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.cs-steps li{display:block;min-height:0;padding:6px 0;border:0;border-top:2px solid rgba(255,255,255,.14);border-radius:0;background:none;color:rgba(255,255,255,.45);font-size:12px;font-weight:700;text-align:center;transition:color .25s,border-color .25s}
.cs-steps li.on{border-color:#a78bfa;color:#fff}
.cs-steps li.on:before{content:"\2713 "}
.cs-flow{position:relative;align-self:center;height:2px;margin-top:20px;background:rgba(255,255,255,.12);overflow:hidden}
.cs-flow:after,.fl:after{content:"";position:absolute;top:0;bottom:0;left:0;width:40%;background:linear-gradient(90deg,transparent,#a78bfa);transform:translateX(-100%)}
@keyframes cs-in{from{opacity:0;transform:translateY(6px)}}
@keyframes cs-shine{to{transform:translateX(320%)}}
@keyframes cs-run{to{transform:translateX(260%)}}
@media(prefers-reduced-motion:reduce){.cs-flow:after,.cs-voucher.on:after{animation:none}.cs-mid dd.in{animation:none}.cs-voucher,.cs-voucher *,.cs-col li,.cs-steps li,#cs-ch li b{transition:none!important}}
@media(max-width:760px){
  .cs-body{grid-template-columns:1fr;gap:16px;padding:18px 16px 20px}
  .cs-flow{display:none}
}

.hero .sc2 h1{font-size:clamp(32px,4.7vw,64px);text-wrap:balance}
@media(max-width:560px){.hero .sc2 h1{font-size:30px}}

.cs-col .cs-h2{margin-top:16px}
#cs-post li{min-height:52px}
#cs-post li span{line-height:1.3}
#cs-post li small{display:block;margin-top:2px;color:rgba(255,255,255,.5);font-size:11px;font-weight:600}

/* 가운데 패널이 발행 -> 사용 처리 -> 정산 화면으로 바뀐다 */
.cs-views{display:grid;margin-bottom:14px}
.cs-view{grid-area:1/1;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .35s,transform .45s cubic-bezier(.16,.84,.44,1),visibility .35s}
.cs-view.on{opacity:1;visibility:visible;transform:none}
.cs-view1,#cs-view1 .cs-voucher{margin-bottom:0}
.cs-use{display:grid;grid-template-columns:116px 1fr;gap:16px;align-items:start;padding:16px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:rgba(255,255,255,.04)}
.cs-use dl{margin:0}
.cs-use .mono{font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px}
.cs-use .st,.cs-set .sd{display:inline-block;padding:3px 12px;border-radius:999px;background:rgba(255,255,255,.1);color:rgba(255,255,255,.7);font-size:12px;font-weight:800;transition:background .25s,color .25s}
.cs-view.fin .st,.cs-view.fin .sd{background:#7634CB;color:#fff}
.cs-use dd.st{background:rgba(255,255,255,.1);min-height:0}
.qr{position:relative;overflow:hidden;width:116px;height:116px;padding:9px;display:grid;grid-template-columns:repeat(11,1fr);grid-template-rows:repeat(11,1fr);gap:1px;border-radius:10px;background:#fff}
.qr b{background:transparent}
.qr b.k{background:#1b1230}
.qr .scan{position:absolute;left:0;right:0;top:0;height:3px;background:#8b5cf6;box-shadow:0 0 10px 2px rgba(139,92,246,.7);animation:cs-scan 1.1s ease-in-out infinite alternate}
.cs-view.fin .qr .scan{display:none}
.cs-set{display:grid;gap:12px;padding:18px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:rgba(255,255,255,.04)}
.cs-set .r{display:grid;grid-template-columns:120px 1fr;align-items:center;gap:12px;color:rgba(255,255,255,.85);font-size:13px;font-weight:700}
.cs-set .r em{color:#c6a6ff;font-style:normal;font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}
.cs-set .bar{height:10px;border-radius:5px;background:rgba(255,255,255,.08);overflow:hidden}
.cs-set .bar i{display:block;height:100%;width:var(--w);border-radius:5px;background:#a78bfa;transform:scaleX(0);transform-origin:left;transition:transform .9s cubic-bezier(.16,.84,.44,1)}
.cs-view.on .cs-set .bar i{transform:scaleX(1)}
.cs-set .r:nth-child(2) .bar i{transition-delay:.25s;background:rgba(255,255,255,.5)}
.cs-set .r:nth-child(3) .bar i{transition-delay:.5s}
.cs-set .sd{justify-self:start}
@keyframes cs-scan{from{transform:translateY(0)}to{transform:translateY(112px)}}
@media(prefers-reduced-motion:reduce){.cs-view,.cs-set .bar i{transition:none!important}.qr .scan{animation:none}}
@media(max-width:760px){.cs-use{grid-template-columns:1fr}.cs-set .r{grid-template-columns:96px 1fr}}

/* 왼쪽: 소스를 나누지 않고, 등록 레코드 카드 하나가 현재 상품·서비스를 보여준다 */
.cs-src{overflow:hidden;border:1px solid rgba(255,255,255,.14);border-radius:12px;background:rgba(255,255,255,.04);transition:border-color .25s,background .25s}
.cs-src.on{border-color:#a78bfa;background:rgba(139,92,246,.14)}
.cs-src .top{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.08)}
.cs-src code{color:rgba(255,255,255,.6);font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}
.cs-src .st{padding:3px 10px;border-radius:999px;background:rgba(255,255,255,.1);color:rgba(255,255,255,.75);font-size:11px;font-weight:800;transition:background .25s,color .25s}
.cs-src.done .st{background:#7634CB;color:#fff}
.cs-src .prog{height:2px;background:rgba(255,255,255,.08)}
.cs-src .prog i{display:block;height:100%;background:#a78bfa;transform:scaleX(0);transform-origin:left;transition:transform 1.4s cubic-bezier(.16,.84,.44,1)}
.cs-src.go .prog i{transform:scaleX(1)}
.cs-src .k{display:inline-block;margin:16px 0 0 14px;padding:3px 10px;border-radius:999px;background:rgba(167,139,250,.25);color:#e6d9ff;font-size:11px;font-weight:800}
.cs-src .n{display:block;margin:8px 14px 0;font-size:17px;font-weight:800;line-height:1.35}
.cs-src dl{margin:14px 0 0;padding:12px 14px 14px;border-top:1px solid rgba(255,255,255,.08);display:grid;gap:8px}
.cs-src dl div{display:grid;grid-template-columns:62px 1fr;gap:8px;align-items:center}
.cs-src dt{color:rgba(255,255,255,.5);font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}
.cs-src dd{margin:0;color:rgba(255,255,255,.88);font-size:12.5px;font-weight:600}
@media(prefers-reduced-motion:reduce){.cs-src .prog i{transition:none}}

/* 등록 경로 3가지: POS 연동, 자사몰 연동, 직접 등록 */
#cs-methods{gap:6px}
#cs-methods li{min-height:48px;padding:0 12px;gap:10px}
#cs-methods li code{flex:none;width:40px;padding:3px 0;border-radius:5px;background:rgba(255,255,255,.08);color:rgba(255,255,255,.7);font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;text-align:center}
#cs-methods li.on code{background:#7634CB;color:#fff}
#cs-methods li span{flex:1;line-height:1.3;font-size:13px}
#cs-methods li small{display:block;margin-top:2px;color:rgba(255,255,255,.5);font-size:11px;font-weight:600}
#cs-methods li b{padding:3px 10px;border-radius:999px;background:rgba(255,255,255,.08);color:rgba(255,255,255,.55);font-size:11px;font-weight:700;white-space:nowrap;transition:background .25s,color .25s}
#cs-methods li.sync b{background:rgba(167,139,250,.3);color:#f3ecff}
#cs-methods li.done b{background:#7634CB;color:#fff}
.cs-down{position:relative;display:block;width:2px;height:16px;margin:6px auto;background:rgba(255,255,255,.14);overflow:hidden}
.cs-down:after{content:"";position:absolute;left:0;right:0;top:0;height:50%;background:linear-gradient(180deg,transparent,#a78bfa);transform:translateY(-100%)}
@keyframes cs-down{to{transform:translateY(200%)}}
@media(prefers-reduced-motion:reduce){.cs-down:after{animation:none}}

/* 등록 경로 버튼 */
#cs-methods li{padding:0}
#cs-methods li button{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;padding:0 12px;border:0;border-radius:10px;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}
#cs-methods li:hover{border-color:#a78bfa}
#cs-methods li:active{transform:scale(.99)}
#cs-methods li button:focus-visible{outline:2px solid #c6a6ff;outline-offset:-2px}
/* 정산 화면: 발행 화면과 같은 높이로 키우고 채널별 정산을 보여준다 */
.cs-view>.cs-set{height:100%;box-sizing:border-box;align-content:space-between;padding:20px 22px;gap:14px}
.cs-set .r{grid-template-columns:132px 1fr;font-size:14px}
.cs-set .bar{height:12px;border-radius:6px}
.cs-set .bar i{border-radius:6px}
.cs-set .chh{margin:2px 0 0;padding-top:12px;border-top:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.55);font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}
.cs-set .r.sm{font-size:12.5px;font-weight:600;color:rgba(255,255,255,.75)}
.cs-set .r.sm .bar{height:8px}
.cs-set .r.sm .bar i{background:rgba(167,139,250,.75)}
.cs-set .r.sm:nth-of-type(n) .bar i{transition-delay:.7s}
.cs-set .sd{padding:6px 16px;font-size:13px}


/* 사용 화면: 정산 화면과 같은 높이로 키우고, 확인 단계를 보여준다 */
.cs-view>.cs-use{height:100%;box-sizing:border-box;grid-template-columns:150px 1fr;align-content:space-between;gap:20px;padding:20px 22px}
.cs-use .qr{width:150px;height:150px;padding:11px}
.cs-use dl{display:grid;gap:12px;align-self:center}
.cs-use dl div{grid-template-columns:56px 1fr}
.cs-use dd{font-size:13.5px}
.cs-use .vs{grid-column:1/-1;margin:0;padding:14px 0 0;border-top:1px solid rgba(255,255,255,.1);list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.cs-use .vs li{padding:9px 0;border-radius:8px;background:rgba(255,255,255,.06);color:rgba(255,255,255,.55);font-size:12.5px;font-weight:700;text-align:center;transition:background .3s,color .3s}
.cs-view.on .vs li:nth-child(1){background:rgba(167,139,250,.3);color:#fff;transition-delay:.3s}
.cs-view.on .vs li:nth-child(2){background:rgba(167,139,250,.3);color:#fff;transition-delay:.9s}
.cs-view.fin .vs li:nth-child(3){background:#7634CB;color:#fff}
.cs-view.on .vs li:nth-child(1):before,.cs-view.on .vs li:nth-child(2):before,.cs-view.fin .vs li:nth-child(3):before{content:"\2713 "}
@keyframes cs-scan{from{transform:translateY(0)}to{transform:translateY(145px)}}
@media(prefers-reduced-motion:reduce){.cs-use .vs li{transition:none!important}}
@media(max-width:760px){.cs-view>.cs-use{grid-template-columns:1fr;justify-items:start}.cs-use .qr{width:130px;height:130px}.cs-use dl{width:100%}}

/* 사용 화면 레이아웃 보정 */
.cs-body{grid-template-columns:minmax(0,1fr) 30px minmax(0,1.4fr) 30px minmax(0,1fr)}
.cs-view>.cs-use{grid-template-columns:112px minmax(0,1fr);gap:18px}
.cs-use .qr{width:112px;height:112px;padding:8px}
.cs-use dl{gap:10px}
.cs-use dl div{grid-template-columns:1fr;gap:2px}
.cs-use dd:not(.st){padding:0;background:none;min-height:0;font-size:13.5px}
.cs-use dd.st{justify-self:start}
@keyframes cs-scan{from{transform:translateY(0)}to{transform:translateY(106px)}}
@media(max-width:760px){.cs-use .qr{width:112px;height:112px}}
.cs-use .vs li{display:block;min-height:0;padding:9px 0;border:0}

/* 흐름선: 평소엔 흐린 선만 보이고, 단계가 끝나는 순간 신호가 한 번 지나간다 */
.cs-col li{position:relative}
.fl{position:absolute;left:-30px;top:50%;width:30px;height:2px;margin-top:-1px;background:rgba(255,255,255,.14);overflow:hidden;pointer-events:none}
.cs-flow-l.fire:after,.fl.fire:after{animation:cs-run 1s ease-out 1 forwards}
.cs-down.fire:after{animation:cs-down 1s ease-out 1 forwards}
#cs-ch li.used b{background:rgba(255,255,255,.16);color:#fff}
@media(prefers-reduced-motion:reduce){.cs-flow-l.fire:after,.fl.fire:after,.cs-down.fire:after{animation:none}}

/* 모바일: 콘솔은 한 칸씩 세로로 (뒤쪽의 3칸 규칙에 덮이지 않게 마지막에 선언) */
@media(max-width:760px){
  .cs-body{grid-template-columns:minmax(0,1fr);gap:16px;padding:18px 16px 20px}
  .cs-flow,.cs-down{display:none}
}

/* 모바일: 세 칸 콘솔 대신 가운데 칸(상품권 한 장 + 등록>발행>유통>사용>정산 진행)만 보여줌 */
@media(max-width:760px){
  .cs-body>.cs-col:last-child,.cs-body>.cs-flow{display:none}
  .cs-body>.cs-col:first-child .cs-down,.cs-body>.cs-col:first-child .cs-src{display:none}
  .cs-body>.cs-col:first-child h4{margin-bottom:8px}
  #cs-methods{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  #cs-methods li{min-height:0;padding:0}
  #cs-methods li button{flex-direction:column;align-items:flex-start;gap:6px;width:100%;padding:10px 10px 9px}
  #cs-methods li button>span{display:block;font-size:12.5px;font-weight:700;line-height:1.3;text-align:left}
  #cs-methods li button>span small{display:none}
  #cs-methods li button>b{align-self:flex-start;font-size:10.5px}
}

/* 모바일: 유통 단계 = 상품권이 작아지고 오른쪽에 판매 채널이 차례로 튀어나와 선으로 연결됨 */
.cs-vwrap{position:relative;margin-bottom:14px}
.cs-vwrap .cs-voucher{margin-bottom:0}
.cs-dist{display:none}
@media(max-width:760px){
  .cs-voucher{transition:transform .6s cubic-bezier(.16,.84,.44,1),opacity .3s}
  .cs.dist .cs-voucher{transform:scale(.5);transform-origin:left center}
  .cs-dist{position:absolute;right:0;top:0;bottom:0;width:50%;display:flex;flex-direction:column;justify-content:center;gap:6px;pointer-events:none}
  .cs-dist span{position:relative;height:30px;margin-left:34px;border-radius:9px;border:1px solid rgba(167,139,250,.55);background:rgba(139,92,246,.16);color:inherit;display:grid;place-items:center;font-size:12px;font-weight:800;white-space:nowrap;opacity:0;transform:scale(.6) translateX(-16px);transition:opacity .25s ease,transform .4s cubic-bezier(.34,1.56,.64,1);transition-delay:0s}
  .cs-dist span:before{content:"";position:absolute;right:100%;top:50%;width:34px;height:2px;margin-top:-1px;background:linear-gradient(90deg,transparent,#a78bfa);transform:scaleX(0);transform-origin:left;transition:transform .3s ease}
  .cs.dist .cs-dist span{opacity:1;transform:none;transition-delay:calc(var(--i)*.16s + .45s)}
  .cs.dist .cs-dist span:before{transform:scaleX(1);transition-delay:calc(var(--i)*.16s + .55s)}
}
@media(prefers-reduced-motion:reduce){.cs-voucher,.cs-dist span,.cs-dist span:before{transition:none!important}}
@media(max-width:760px){.cs-dist span.lg{background:#fff;border-color:rgba(40,30,70,.12)}.cs-dist span.lg img{display:block;max-width:74px;max-height:18px;width:auto;height:auto}}

/* 사용 처리 3단계 글자가 칸을 넘지 않게 */
.cs-use .vs li{min-width:0;padding:9px 2px;white-space:nowrap;letter-spacing:-.02em}
@media(max-width:760px){.cs-use .vs{gap:6px}.cs-use .vs li{font-size:11.5px}}
@media(max-width:360px){.cs-use .vs li{font-size:10.5px}}

/* ===== 등록 방식별 애니메이션: POS는 자동 동기화, 자사몰은 웹사이트에서 상품 가져오기, 직접 등록은 입력 ===== */
.cs-src .via{margin:12px 14px 6px;min-height:40px}
.cs-src .via>div{display:none;align-items:center;gap:10px;font-size:11px;font-weight:700}
.cs-src[data-m="0"] .via .v0,.cs-src[data-m="1"] .via .v1{display:flex}
.cs-src .via b{flex:0 0 auto;padding:2px 7px;border-radius:5px;background:rgba(139,92,246,.22);font-family:'JetBrains Mono',ui-monospace,Menlo,monospace;font-size:10.5px}
.cs-src .via em{flex:0 0 auto;font-style:normal;opacity:.7;white-space:nowrap}
.cs-src .via .vz{flex:1;min-width:0;display:grid;gap:5px}
.cs-src .via .v0 i{position:relative;display:block;height:7px;border-radius:4px;background:rgba(139,92,246,.2);overflow:hidden}
.cs-src .via .v0 i:after{content:"";position:absolute;left:0;top:0;bottom:0;width:100%;border-radius:4px;background:#8b5cf6;transform:scaleX(0);transform-origin:left}
.cs-src.go .v0 i:after{animation:vz-fill .45s ease forwards}
.cs-src.go .v0 i:nth-child(2):after{animation-delay:.3s}.cs-src.go .v0 i:nth-child(3):after{animation-delay:.6s}
.cs-src .via .v1 .vz{grid-template-columns:repeat(3,1fr)}
.cs-src .via .v1 u{grid-column:1/-1;position:relative;display:block;height:14px;border-radius:7px;background:rgba(139,92,246,.18);overflow:hidden}
.cs-src .via .v1 u:after{content:"";position:absolute;top:0;bottom:0;left:0;width:40%;background:linear-gradient(90deg,transparent,#a78bfa,transparent);transform:translateX(-100%)}
.cs-src.go .v1 u:after{animation:vz-sweep .8s ease forwards}
.cs-src .via .v1 s{display:block;height:14px;border-radius:4px;background:#8b5cf6;opacity:0;transform:scale(.6)}
.cs-src.go .v1 s{animation:vz-pop .3s ease forwards}
.cs-src.go .v1 s:nth-child(2){animation-delay:.8s}.cs-src.go .v1 s:nth-child(3){animation-delay:1s}.cs-src.go .v1 s:nth-child(4){animation-delay:1.2s}
@keyframes vz-fill{to{transform:scaleX(1)}}
@keyframes vz-sweep{to{transform:translateX(260%)}}
@keyframes vz-pop{to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.cs-src .via i:after,.cs-src .via s{transform:none!important;opacity:1!important;animation:none!important}}
@media(max-width:760px){
  .cs-body>.cs-col:first-child .cs-src{display:block;margin-top:10px}
  .cs-body>.cs-col:first-child .cs-src .k,.cs-body>.cs-col:first-child .cs-src .n,.cs-body>.cs-col:first-child .cs-src dl,.cs-body>.cs-col:first-child .cs-src .prog{display:none}
}

.cs-src[data-m="2"] .via{display:none}
