/* ===================== 서비스 페이지 v2 (sv2-) ===================== */
.sv2-season{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px 20px;margin-bottom:28px;box-shadow:var(--e1)}
.sv2-season-tag{font-family:var(--mono);font-size:12px;letter-spacing:.12em;background:var(--red);color:#fff;border-radius:var(--pill);padding:5px 12px}
.sv2-season b{font-size:16px}.sv2-season>span:not(.sv2-season-tag){color:var(--ink-3);font-size:15px}
.sv2-season a{margin-left:auto;display:inline-flex;align-items:center;gap:8px;font-weight:700;color:var(--red);text-decoration:none;font-size:15px}.sv2-season a svg{width:14px;height:14px}
.sv2-count{margin:26px 0 14px;font-size:14px;color:var(--ink-3)}.sv2-count b{color:var(--ink);font-family:var(--display);font-size:22px;margin-right:4px}
.sv2-empty{margin-top:24px;padding:28px;text-align:center;border:1px dashed var(--line);border-radius:var(--radius);color:var(--ink-2)}
.sv2-empty a{color:var(--red);font-weight:700}
/* 패키지 */
.sv2-packs{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.sv2-pack{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px;display:flex;flex-direction:column;gap:14px;box-shadow:var(--e1);position:relative}
.sv2-pk{font-family:var(--mono);font-size:12px;letter-spacing:.12em;color:var(--ink-3);display:flex;align-items:center;gap:8px}
.sv2-pk .sv2-soon{position:static}
.sv2-pack h3{font-size:var(--fs-card);font-weight:700;line-height:1.3}
.sv2-pack ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px;flex:1}
.sv2-pack li{display:flex;gap:10px;align-items:flex-start;font-size:15px;color:var(--ink-2);line-height:1.5}
.sv2-pack li i{flex:none;width:10px;height:10px;border-radius:50%;margin-top:7px}
.sv2-pack i.rws{background:var(--red)}.sv2-pack i.gl{background:#1F3A93}.sv2-pack i.un{background:var(--sun)}
.sv2-pack dl{margin:0;padding-top:12px;border-top:1px dashed var(--line);display:flex;gap:10px;font-size:14px}
.sv2-pack dt{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--ink-3)}.sv2-pack dd{margin:0;color:var(--ink-2)}
.sv2-pack .pill.ghost{border-color:var(--ink);color:var(--ink);justify-content:center}
.sv2-pack .pill.ghost:hover{background:var(--ink);color:#fff}
/* 역할별 대시보드 */
.sv2-dash{display:grid;grid-template-columns:300px 1fr;gap:20px;align-items:stretch}
.sv2-roles{display:flex;flex-direction:column;gap:10px;align-self:stretch}
.sv2-roles button{flex:1 1 0;align-content:center}
.sv2-red{font-style:normal;color:var(--red)}
.sv2-roles button{all:unset;display:grid;grid-template-columns:auto 1fr;gap:2px 12px;padding:18px 20px;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);cursor:pointer;font-family:var(--body);box-shadow:var(--e1);transition:all .2s ease}
.sv2-roles button em{font-family:var(--mono);font-style:normal;font-size:11px;color:var(--ink-3);grid-row:1/3;padding-top:4px}
.sv2-roles button b{font-size:16px;font-weight:700;color:var(--ink)}
.sv2-roles button span{font-size:13px;color:var(--ink-3)}
.sv2-roles button:hover{border-color:var(--ink)}
.sv2-roles button[aria-selected=true]{background:var(--ink);border-color:var(--ink);color:#fff}
.sv2-roles button[aria-selected=true] b{color:#fff}.sv2-roles button[aria-selected=true] span,.sv2-roles button[aria-selected=true] em{color:var(--navy-band-mute)}
.sv2-roles button:focus-visible{outline:3px solid var(--sun);outline-offset:2px}
.sv2-panels{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--e1);display:grid}
.sv2-panel{grid-area:1/1;visibility:hidden;padding:30px 32px 26px;display:flex;flex-direction:column}
.sv2-panel.on{visibility:visible;animation:sv2in .3s ease}
.sv2-panel .sv2-pfoot{margin-top:auto;padding-top:20px}
.sv2-ph h3{font-size:26px;font-weight:700;line-height:1.35;margin-top:10px}
.sv2-pcols{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:24px}
.sv2-pcol{border:1px solid var(--line);border-radius:var(--radius-sm);padding:18px}
.sv2-pcol em{display:block;font-family:var(--mono);font-style:normal;font-size:11px;letter-spacing:.12em;color:var(--ink-3);margin-bottom:12px}
.sv2-pcol ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.sv2-pcol li{font-size:15px;line-height:1.55;color:var(--ink-2);padding-left:16px;position:relative}
.sv2-pcol li::before{content:"";position:absolute;left:0;top:10px;width:6px;height:6px;border-radius:50%;background:var(--ink-3)}
.sv2-pcol.us{background:var(--red-tint);border-color:transparent}
.sv2-pcol.us em{color:var(--red-2)}
.sv2-pcol.us li{color:var(--ink);font-weight:500}
.sv2-pcol.us li::before{background:var(--red);width:8px;height:8px;top:9px;border-radius:2px}
.sv2-pfoot{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}
.sv2-pcols{margin-bottom:22px}
.sv2-pfoot b{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--ink-3);margin-bottom:4px}
.sv2-pfoot span{font-size:15px;color:var(--ink)}
.sv2-flow{list-style:none;margin:28px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.sv2-flow li{position:relative;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:16px 18px;display:flex;flex-direction:column;gap:2px}
.sv2-flow li em{font-family:var(--mono);font-style:normal;font-size:11px;letter-spacing:.12em;color:var(--red)}
.sv2-flow li b{font-family:var(--display);font-size:26px;font-weight:400;line-height:1.1}
.sv2-flow li span{font-size:13px;color:var(--ink-3)}
.sv2-flow li:not(:last-child)::after{content:"→";position:absolute;right:-12px;top:50%;transform:translateY(-50%);color:var(--ink-3);font-size:16px;z-index:1}

/* 모달 */
.sv2-modal{position:fixed;inset:0;z-index:120;background:rgba(15,23,42,.62);display:flex;align-items:center;justify-content:center;padding:20px}
.sv2-modal[hidden]{display:none}
.sv2-mbox{position:relative;width:min(560px,100%);background:var(--navy-band);color:var(--navy-band-ink);border-radius:var(--radius-lg);padding:34px 34px 30px;box-shadow:0 40px 80px -30px rgba(0,0,0,.6);animation:sv2in .3s ease}
.sv2-mclose{all:unset;position:absolute;top:14px;right:18px;font-size:28px;line-height:1;cursor:pointer;color:var(--navy-band-mute);padding:4px 8px}
.sv2-mclose:hover{color:#fff}
.sv2-mlab{display:inline-flex;font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--sun)}
.sv2-mbox h3{font-size:24px;line-height:1.35;font-weight:700;margin-top:10px}
.sv2-mbox p{font-size:16px;line-height:1.75;color:var(--navy-band-ink);margin-top:16px}
.sv2-mbox dl{display:grid;gap:6px;margin:16px 0 0;padding-top:14px;border-top:1px solid var(--navy-band-line)}
.sv2-mbox dl div{display:grid;grid-template-columns:44px 1fr;gap:8px;font-size:14px}
.sv2-mbox dt{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--navy-band-mute);padding-top:2px}.sv2-mbox dd{margin:0}
.sv2-mbox a{display:inline-flex;align-items:center;gap:8px;margin-top:20px;background:var(--sun);color:var(--ink);font-weight:700;text-decoration:none;font-size:15px;padding:11px 18px;border-radius:var(--pill)}
.sv2-mbox a i{width:10px;height:10px;border-right:2px solid currentColor;border-top:2px solid currentColor;transform:rotate(45deg) scale(.7)}
@keyframes sv2in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
/* 브랜드 프리젠테이션 */
.sv2-brand{padding-block:88px 80px;position:relative}
.sv2-brand.rws{--b1:var(--rw);--b2:#3A2670;--acc:#F2A93B;--btn:#F2A93B;--btnfg:#1B1230;--stage:linear-gradient(135deg,var(--rw),#2E1E5C)}
.sv2-brand.gl{--b1:var(--gl);--b2:#3F33B8;--acc:var(--gl);--btn:var(--gl);--btnfg:#fff;--stage:linear-gradient(135deg,var(--gl),#2F27A6)}
.sv2-brand.un{--b1:var(--ink);--b2:#1B2540;--acc:var(--sun);--btn:var(--sun);--btnfg:var(--ink);--stage:linear-gradient(135deg,#1B2540,var(--ink))}
.sv2-brand+.sv2-brand{border-top:1px solid var(--line)}
.sv2-brand.gl{background:var(--bg-2)}
.sv2-btop{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.sv2-bid{display:flex;align-items:center;gap:14px}
.sv2-bpin{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius-xs);padding:6px 12px;box-shadow:var(--e1)}
.sv2-bpin::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--red)}
.sv2-blogo{font-family:var(--display);font-size:20px;letter-spacing:.05em;color:var(--b1)}
.sv2-bbtns{display:flex;gap:10px}
.sv2-bbtns .pill{background:var(--btn);color:var(--btnfg);box-shadow:var(--e1)}
.sv2-bbtns .pill svg{width:14px;height:14px;flex:none}
.sv2-bbtns .pill.line{background:transparent;color:var(--ink);border-color:var(--ink);box-shadow:none}
.sv2-bbtns .pill.line:hover{background:var(--ink);color:#fff}
.sv2-bhead2{display:grid;grid-template-columns:1fr 1fr;gap:20px 48px;align-items:end;margin-top:34px}
.sv2-bhead2 h2{font-size:clamp(34px,4.6vw,56px);line-height:1.08;color:var(--ink)}
.sv2-bhead2 p{color:var(--ink-2);font-size:17px;max-width:30em;justify-self:end;text-align:right}
.sv2-stage{position:relative;margin-top:34px;height:400px;border-radius:var(--radius-lg);background:var(--stage);overflow:hidden;box-shadow:var(--e1h)}
.sv2-stage::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 80% at 80% 20%,rgba(255,255,255,.14),transparent 60%)}
.sv2-scene{position:absolute;inset:0;display:grid;grid-template-columns:1fr auto;align-items:center;gap:40px;padding:0 64px;--t:14s;--off:calc(var(--i) * 3.5s);pointer-events:none}
.sv2-sc-card{opacity:0;background:rgba(255,255,255,.96);color:var(--ink);border-radius:var(--radius);padding:30px 34px;max-width:560px;display:flex;flex-direction:column;gap:8px;box-shadow:0 30px 60px -30px rgba(0,0,0,.5);transform:translateX(-60px);animation:sv2card var(--t) infinite;animation-delay:var(--off)}
.sv2-sc-card em{font-family:var(--mono);font-style:normal;font-size:12px;letter-spacing:.14em;color:var(--b1)}
.sv2-sc-card b{font-size:clamp(24px,2.4vw,34px);line-height:1.25;font-weight:700;letter-spacing:-.01em}
.sv2-sc-card span{font-size:15px;color:var(--ink-2)}
@keyframes sv2card{0%{opacity:0;transform:translateX(-80px)}4%,21%{opacity:1;transform:translateX(0)}24.5%,100%{opacity:0;transform:translateX(80px)}}
.sv2-dots{position:absolute;left:64px;bottom:28px;display:flex;gap:8px}
.sv2-dots i{width:28px;height:4px;border-radius:4px;background:rgba(255,255,255,.28);overflow:hidden;position:relative}
.sv2-dots i::after{content:"";position:absolute;inset:0;background:#fff;transform:scaleX(0);transform-origin:left;animation:sv2dot 14s infinite;animation-delay:calc(var(--i) * 3.5s)}
@keyframes sv2dot{0%{transform:scaleX(0)}25%{transform:scaleX(1)}25.1%,100%{transform:scaleX(0)}}
.sv2-chips2{list-style:none;margin:22px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.sv2-chips2 li{font-size:14px;font-weight:600;color:var(--ink-2);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 16px;animation:sv2chip 14s infinite;animation-delay:calc(var(--i) * 3.5s);text-align:center}
@keyframes sv2chip{0%,25%{border-color:var(--b1);color:var(--ink);box-shadow:0 0 0 2px rgba(91,63,155,.25)}25.1%,100%{border-color:var(--line);color:var(--ink-2);box-shadow:none}}
@media (prefers-reduced-motion:reduce){.sv2-track,.sv2-sc-card,.sv2-sc-icon,.sv2-dots i::after,.sv2-chips2 li{animation:none!important}.sv2-scene:first-child{opacity:1}.sv2-scene:first-child .sv2-sc-card,.sv2-scene:first-child .sv2-sc-icon{opacity:1;transform:none}}


/* 장면 비주얼 공통: 14s 주기, 장면 오프셋 --off */
.sv2-vis{position:relative;width:340px;height:250px;display:grid;place-items:center;opacity:0;animation:sv2vis var(--t) infinite;animation-delay:var(--off);color:#fff}
@keyframes sv2vis{0%{opacity:0;transform:translateX(40px)}5%,21%{opacity:1;transform:none}24.5%,100%{opacity:0;transform:translateX(-30px)}}
.sv2-vis>b{position:absolute;bottom:0;left:50%;transform:translateX(-50%);font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:rgba(255,255,255,.75);white-space:nowrap}
.sv2-vis *{animation-delay:var(--off)!important}
/* 1 QR */
.v-qr .phone{width:150px;height:200px;border-radius:var(--radius);background:#fff;border:6px solid #1B1230;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}
.v-qr .qr{display:grid;grid-template-columns:repeat(5,14px);gap:3px}
.v-qr .qr i{width:14px;height:14px;background:#1B1230;border-radius:2px;opacity:0;animation:sv2qr var(--t) infinite;animation-delay:calc(var(--off) + var(--n) * .06s)!important}
.v-qr .qr i:nth-child(3n){background:var(--b1)}
@keyframes sv2qr{0%,4%{opacity:0;transform:scale(.4)}8%,25%{opacity:1;transform:none}26%,100%{opacity:0}}
.v-qr .phone b{animation-delay:calc(var(--off) + 1.2s)!important;position:static;transform:none;font-family:var(--body);font-size:13px;font-weight:700;color:#fff;background:var(--b1);padding:6px 14px;border-radius:var(--pill);letter-spacing:0;animation:sv2pop var(--t) infinite}
@keyframes sv2pop{0%,5%{opacity:0;transform:scale(.6)}8%,22%{opacity:1;transform:none}24%,100%{opacity:0}}
.v-qr .tap{position:absolute;right:38px;top:120px;width:22px;height:22px;border-radius:50%;border:3px solid var(--acc);animation:sv2tap var(--t) infinite}
@keyframes sv2tap{0%,10%{opacity:0;transform:scale(.5)}12%{opacity:1;transform:scale(1)}16%{opacity:0;transform:scale(2)}17%,100%{opacity:0}}
/* 2 미션 경로 */
.v-play svg{width:280px;height:190px;overflow:visible}
.v-play .path{fill:none;stroke:rgba(255,255,255,.6);stroke-width:3;stroke-dasharray:6 8;stroke-dashoffset:600;animation:sv2dash var(--t) infinite}
@keyframes sv2dash{0%,4%{stroke-dashoffset:600}20%,100%{stroke-dashoffset:0}}
.v-play .cp{fill:var(--acc);opacity:0;animation:sv2pop var(--t) infinite}
.v-play .cp:nth-of-type(2){animation-delay:calc(var(--off) + .6s)!important}.v-play .cp:nth-of-type(3){animation-delay:calc(var(--off) + 1.4s)!important}
.v-play .team circle{fill:#fff;stroke:var(--b1);stroke-width:3;offset-path:path("M20 140 C 70 40, 120 200, 170 80 S 240 60, 245 40");offset-distance:0%;animation:sv2walk var(--t) infinite}
.v-play .t2{animation-delay:calc(var(--off) + .25s)!important}.v-play .t3{animation-delay:calc(var(--off) + .5s)!important}
@keyframes sv2walk{0%,5%{offset-distance:0%;opacity:1}22%{offset-distance:100%;opacity:1}23%,100%{opacity:0}}
/* 3 노코드 블록 */
.v-tool{display:flex;flex-direction:column;justify-content:center;gap:10px;align-items:flex-start;padding-left:40px}
.v-tool .blk{width:200px;padding:12px 16px;border-radius:var(--radius-sm);background:#fff;color:var(--ink);font-weight:700;font-size:14px;border-left:6px solid var(--acc);opacity:0;transform:translateX(-40px);animation:sv2blk var(--t) infinite;box-shadow:0 12px 30px -16px rgba(0,0,0,.5)}
.v-tool .b2{animation-delay:calc(var(--off) + .3s)!important;width:170px}.v-tool .b3{animation-delay:calc(var(--off) + .6s)!important;width:220px}.v-tool .b4{animation-delay:calc(var(--off) + .9s)!important;width:150px}
@keyframes sv2blk{0%,4%{opacity:0;transform:translateX(-40px)}7%,22%{opacity:1;transform:none}24%,100%{opacity:0}}
.v-tool .cur{position:absolute;left:190px;top:40px;width:18px;height:18px;border-left:2px solid #fff;border-top:2px solid #fff;transform:rotate(-45deg) translate(0,0);animation:sv2cur var(--t) infinite}
@keyframes sv2cur{0%,5%{opacity:0;transform:rotate(-45deg) translate(-40px,-40px)}9%{opacity:1;transform:rotate(-45deg) translate(0,0)}12%{transform:rotate(-45deg) translate(20px,20px)}16%{transform:rotate(-45deg) translate(40px,40px)}20%{transform:rotate(-45deg) translate(60px,60px)}25%{opacity:1}26%,100%{opacity:0}}
/* 4 체크리스트 */
.v-check ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;width:250px}
.v-check li{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);border-radius:var(--radius-sm);padding:8px 12px;font-size:14px;font-weight:600;opacity:0;animation:sv2li var(--t) infinite;animation-delay:calc(var(--off) + var(--n) * .3s)!important}
.v-check li i{width:18px;height:18px;border-radius:50%;background:var(--acc);position:relative;flex:none}
.v-check li i::after{content:"";position:absolute;left:6px;top:3px;width:4px;height:8px;border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);transform:rotate(45deg)}
@keyframes sv2li{0%,4%{opacity:0;transform:translateX(20px)}7%,22%{opacity:1;transform:none}24%,100%{opacity:0}}
.v-check>b.pop{font-family:var(--display);font-size:20px;color:var(--acc);letter-spacing:0;opacity:0;animation:sv2pop var(--t) infinite;animation-delay:calc(var(--off) + 1.6s)!important}
.v-check .cnt{animation:sv2cnt5 var(--t) infinite;counter-reset:c var(--v,0)}
@keyframes sv2cnt5{0%,6%{--v:0}8%{--v:1}10%{--v:2}12%{--v:3}14%{--v:4}16%,100%{--v:5}}
/* 5 장바구니 */
.v-cart .chips{position:absolute;left:0;top:10px;display:flex;flex-direction:column;gap:6px}
.v-cart .chips i{font-style:normal;font-size:13px;font-weight:700;background:#fff;color:var(--b1);padding:6px 12px;border-radius:var(--pill);opacity:0;animation:sv2fly var(--t) infinite;animation-delay:calc(var(--off) + var(--n) * .3s)!important;box-shadow:0 8px 20px -10px rgba(0,0,0,.5)}
@keyframes sv2fly{0%,5%{opacity:0;transform:translate(0,0)}8%{opacity:1;transform:translate(0,0)}14%{opacity:1;transform:translate(150px,120px) scale(.6)}15%,100%{opacity:0;transform:translate(150px,120px) scale(.3)}}
.v-cart .cart{position:absolute;right:20px;bottom:30px;width:140px;height:110px;border-radius:var(--radius);background:rgba(255,255,255,.95);display:grid;place-items:center;color:var(--b1);animation:sv2bump var(--t) infinite}
.v-cart .cart span{width:60px;height:44px;border:4px solid currentColor;border-top:0;border-radius:0 0 12px 12px;position:relative}
.v-cart .cart span::before{content:"";position:absolute;left:-14px;top:-12px;width:20px;height:6px;background:currentColor;border-radius:3px}
.v-cart .cart b{position:static;transform:none;font-family:var(--body);font-size:13px;font-weight:700;color:var(--ink);letter-spacing:0}
@keyframes sv2bump{0%,8%{transform:none}10%,12%,14%,16%,18%{transform:scale(1.06)}11%,13%,15%,17%,19%,100%{transform:none}}
/* 6 알림 */
.v-bell .bell{width:120px;height:120px;border-radius:50%;background:#fff;color:var(--b1);display:grid;place-items:center;transform-origin:50% 10%;animation:sv2ring var(--t) infinite}
.v-bell .bell svg{width:60px;height:60px}
@keyframes sv2ring{0%,7%{transform:rotate(0)}9%{transform:rotate(14deg)}11%{transform:rotate(-12deg)}13%{transform:rotate(9deg)}15%{transform:rotate(-6deg)}17%,100%{transform:rotate(0)}}
.v-bell .days{position:absolute;right:10px;top:20px;display:flex;flex-direction:column;gap:8px}
.v-bell .days i{font-style:normal;font-family:var(--mono);font-size:13px;font-weight:600;background:var(--acc);color:#fff;padding:6px 12px;border-radius:var(--pill);opacity:0;animation:sv2li var(--t) infinite;animation-delay:calc(var(--off) + var(--n) * .5s)!important}
.v-bell .days i:last-child{background:var(--red)}
/* 7 서류 */
.v-doc .doc{width:200px;height:230px;background:#fff;border-radius:var(--radius-sm);padding:22px 20px;box-sizing:border-box;position:relative;color:var(--ink);box-shadow:0 20px 40px -20px rgba(0,0,0,.5)}
.v-doc .doc b{position:static;transform:none;font-family:var(--body);font-size:14px;font-weight:700;letter-spacing:0;color:var(--ink);display:block;margin-bottom:14px}
.v-doc .doc i{display:block;height:8px;border-radius:4px;background:#E4E7FF;margin-bottom:10px;width:0;animation:sv2line var(--t) infinite;animation-delay:calc(var(--off) + var(--n) * .35s)!important}
@keyframes sv2line{0%,6%{width:0}12%,100%{width:var(--w)}}
.v-doc .stamp{position:absolute;right:16px;bottom:16px;width:56px;height:56px;border:3px solid var(--red);color:var(--red);border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:15px;transform:rotate(-12deg) scale(2);opacity:0;animation:sv2stamp var(--t) infinite}
@keyframes sv2stamp{0%,16%{opacity:0;transform:rotate(-12deg) scale(2)}18%,25%{opacity:1;transform:rotate(-12deg) scale(1)}26%,100%{opacity:0}}
/* 8 스쿨샵 */
.v-bag .grid{display:grid;grid-template-columns:repeat(3,80px);gap:10px}
.v-bag .grid i{height:76px;border-radius:var(--radius-sm);background:#fff;display:grid;place-items:end center;padding-bottom:8px;box-sizing:border-box;opacity:0;animation:sv2pop var(--t) infinite;animation-delay:calc(var(--off) + var(--n) * .18s)!important;position:relative;overflow:hidden}
.v-bag .grid i::before{content:"";position:absolute;inset:8px 8px 26px;border-radius:var(--radius-xs);background:linear-gradient(135deg,#E4E7FF,#C9CEFF)}
.v-bag .grid em{font-style:normal;font-size:11px;font-weight:700;color:var(--ink)}
.v-bag>b{background:var(--sun);color:var(--ink);padding:4px 10px;border-radius:var(--pill);font-family:var(--body);font-weight:700;letter-spacing:0}
/* 9 나침반 */
.v-compass svg{width:200px;height:200px}
.v-compass .ring{fill:none;stroke:rgba(255,255,255,.5);stroke-width:3}
.v-compass .ticks line{stroke:rgba(255,255,255,.55);stroke-width:2}
.v-compass .needle{transform-origin:100px 100px;animation:sv2needle var(--t) infinite}
.v-compass .needle path{fill:var(--acc)}.v-compass .needle circle{fill:#fff}
@keyframes sv2needle{0%,5%{transform:rotate(0)}12%{transform:rotate(500deg)}17%{transform:rotate(410deg)}20%{transform:rotate(440deg)}22%,100%{transform:rotate(430deg)}}
.v-compass>b{font-family:var(--display);font-size:20px;color:var(--acc);letter-spacing:.3em}
/* 10 레벨 */
.v-layers{display:flex;flex-direction:column-reverse;justify-content:center;gap:6px}
.v-layers .lv{width:220px;padding:10px 16px;border-radius:var(--radius-sm);background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);font-weight:700;font-size:14px;display:flex;gap:12px;align-items:center;opacity:0;transform:translateY(20px);animation:sv2rise var(--t) infinite;animation-delay:calc(var(--off) + var(--n) * .35s)!important}
.v-layers .lv:nth-child(4){background:var(--acc);color:var(--ink);border-color:transparent}
.v-layers em{font-style:normal;font-family:var(--mono);font-size:11px;letter-spacing:.1em;opacity:.8}
@keyframes sv2rise{0%,4%{opacity:0;transform:translateY(20px)}7%,22%{opacity:1;transform:none}24%,100%{opacity:0}}
/* 11 시계 */
.v-clock svg{width:190px;height:190px;transform:rotate(-90deg);margin-bottom:26px}
.v-clock .face{fill:none;stroke:rgba(255,255,255,.25);stroke-width:10}
.v-clock .prog{fill:none;stroke:var(--acc);stroke-width:10;stroke-linecap:round;stroke-dasharray:540;stroke-dashoffset:540;animation:sv2prog var(--t) infinite}
@keyframes sv2prog{0%,5%{stroke-dashoffset:540}20%,100%{stroke-dashoffset:0}}
.v-clock .hand{stroke:#fff;stroke-width:5;stroke-linecap:round;transform-origin:100px 100px;animation:sv2hand var(--t) infinite}
@keyframes sv2hand{0%,5%{transform:rotate(0)}20%,100%{transform:rotate(360deg)}}
.v-clock circle:last-child{fill:#fff}
.v-clock>b.pop{font-family:var(--display);font-size:20px;color:var(--acc);letter-spacing:0;opacity:0;animation:sv2pop var(--t) infinite;animation-delay:calc(var(--off) + 1.8s)!important}
.v-clock .hrs{animation:sv2cnt15 var(--t) infinite}
@keyframes sv2cnt15{0%,5%{--v:0}20%,100%{--v:15}}
/* 12 네트워크 */
.v-share svg{width:280px;height:190px;overflow:visible}
.v-share .links line{stroke:rgba(255,255,255,.6);stroke-width:2;stroke-dasharray:200;stroke-dashoffset:200;animation:sv2link var(--t) infinite}
@keyframes sv2link{0%,6%{stroke-dashoffset:200}14%,100%{stroke-dashoffset:0}}
.v-share .nodes circle{fill:#fff;opacity:0;animation:sv2pop var(--t) infinite;animation-delay:calc(var(--off) + .6s + var(--n) * .25s)!important}
.v-share .nodes .c{fill:var(--acc);opacity:0;animation:sv2li var(--t) infinite;animation-delay:var(--off)!important}

.pc .brand.rp,.pm-top .brand.rp{color:var(--ink)}

/* 스테이지 장식: 빛 + 브랜드 패턴 + 워터마크 + 그레인 */
.sv2-deco{position:absolute;inset:0;pointer-events:none;overflow:hidden;border-radius:inherit}
.sv2-deco .glow{position:absolute;border-radius:50%;filter:blur(40px)}
.sv2-deco .glow.a{width:520px;height:520px;right:-140px;top:-220px;background:radial-gradient(circle,var(--glow1),transparent 62%)}
.sv2-deco .glow.b{width:420px;height:420px;left:-160px;bottom:-220px;background:radial-gradient(circle,var(--glow2),transparent 62%)}
.sv2-brand.rws{--glow1:rgba(242,169,59,.55);--glow2:rgba(255,120,180,.35);--pat:rgba(255,255,255,.16);--wm:rgba(255,255,255,.07)}
.sv2-brand.gl{--glow1:rgba(255,255,255,.45);--glow2:rgba(255,209,102,.4);--pat:rgba(255,255,255,.2);--wm:rgba(255,255,255,.08)}
.sv2-brand.un{--glow1:rgba(255,197,49,.38);--glow2:rgba(216,45,32,.3);--pat:rgba(245,239,230,.14);--wm:rgba(255,255,255,.06)}
.sv2-deco .pat{position:absolute;inset:0;width:100%;height:100%;color:var(--pat)}
.sv2-deco .wm{position:absolute;right:-.06em;bottom:-.28em;font-family:var(--display);font-size:clamp(120px,15vw,210px);line-height:1;letter-spacing:.02em;color:var(--wm);white-space:nowrap;font-weight:400}
.sv2-brand.gl .sv2-deco .wm{font-size:clamp(90px,10.5vw,150px)}
.sv2-deco .grain{position:absolute;inset:0;opacity:.22;mix-blend-mode:overlay;background-image:url("/assets/images/services/services_cta_grain.svg");background-size:160px 160px}
.sv2-stage::before{display:none}
.sv2-scene,.sv2-dots{position:absolute;z-index:2}
@media (max-width:768px){.sv2-deco .wm{font-size:80px}.sv2-deco .pat{opacity:.7}}
/* CTA 밴드 */
.sv2-ctasec{padding-block:56px 72px}
.sv2-ctaband{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;background:var(--red);color:#fff;border-radius:var(--radius);padding:34px 40px;position:relative;overflow:hidden;box-shadow:var(--e2)}
.sv2-ctaband::before{content:"";position:absolute;right:-60px;top:-80px;width:320px;height:320px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.18),transparent 65%);pointer-events:none}
.sv2-ctalab{font-family:var(--mono);font-size:12px;letter-spacing:.16em;color:#fff;opacity:.85}
.sv2-ctaband h2{font-size:clamp(34px,4.6vw,56px);line-height:1.15;margin-top:8px}
.sv2-ctaband p{font-size:15px;opacity:.9;margin-top:10px;max-width:34em}
.sv2-ctabtn{all:unset;position:relative;z-index:1;display:flex;align-items:center;background:#fff;color:var(--red);border-radius:var(--radius);padding:18px 64px 18px 24px;cursor:pointer;box-shadow:0 20px 40px -20px rgba(0,0,0,.5);transition:transform .2s ease,background .2s ease;font-family:var(--body)}
.sv2-ctabtn b{font-size:19px;font-weight:700}
.sv2-ctabtn i{position:absolute;right:22px;top:50%;width:14px;height:14px;border-right:3px solid currentColor;border-top:3px solid currentColor;transform:translateY(-50%) rotate(45deg);transition:transform .2s}
.sv2-ctabtn:hover{transform:translateY(-3px);background:var(--sun);color:var(--ink)}.sv2-ctabtn:hover i{transform:translateY(-50%) translateX(4px) rotate(45deg)}
.sv2-ctabtn:focus-visible{outline:3px solid var(--sun);outline-offset:3px}
.sv2-contact{display:grid;grid-template-columns:auto 1fr;gap:24px 40px;align-items:center;margin-top:20px;padding:18px 24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
.sv2-clinks{display:flex;gap:8px}
.sv2-clinks a{display:flex;flex-direction:column;text-decoration:none;color:inherit;padding:10px 16px;border-radius:var(--radius-sm);background:var(--bg-2);transition:transform .2s}
.sv2-clinks a:hover{transform:translateY(-3px)}
.sv2-clinks em{font-family:var(--mono);font-style:normal;font-size:11px;letter-spacing:.12em;color:var(--red)}
.sv2-clinks b{font-family:var(--display);font-weight:400;font-size:18px;line-height:1.1}
.sv2-cinfo{display:flex;flex-wrap:wrap;gap:8px 28px;font-size:14px;color:var(--ink-2);justify-content:flex-end}
.sv2-cinfo>span{display:flex;flex-direction:column;gap:1px;white-space:nowrap}
.sv2-cinfo em{font-family:var(--mono);font-style:normal;font-size:11px;letter-spacing:.12em;color:var(--ink-3)}
/* 폼 모달 */
.sv2-fbox{width:min(600px,100%)}
.sv2-fbox form{margin-top:22px;display:flex;flex-direction:column;gap:16px}
.sv2-fbox .f{display:flex;flex-direction:column;gap:8px;border:0;padding:0;margin:0}
.sv2-fbox label,.sv2-fbox legend{font-size:13px;font-weight:700;color:var(--navy-band-mute)}
.sv2-fbox textarea{font-family:var(--body);font-size:15px;padding:12px 14px;border:1px solid var(--navy-band-line);border-radius:var(--radius-sm);background:#fff;color:var(--ink);resize:vertical;min-height:96px}
.sv2-fbox input[type=text],.sv2-fbox select{font-family:var(--body);font-size:15px;padding:12px 14px;border:1px solid var(--navy-band-line);border-radius:var(--radius-sm);background:#fff;color:var(--ink)}
.sv2-fbox fieldset.f{flex-direction:row;flex-wrap:wrap;gap:8px 10px}
.sv2-fbox fieldset legend{width:100%;margin-bottom:6px}
.sv2-fbox fieldset label{width:auto;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;font-weight:500;font-size:14px;color:var(--navy-band-ink);background:rgba(255,255,255,.08);border:1px solid var(--navy-band-line);border-radius:var(--pill);padding:6px 12px;cursor:pointer}
.sv2-fbox fieldset label.on{background:var(--sun);color:var(--ink);border-color:transparent}
.sv2-fbox button.pill{align-self:flex-start;margin-top:4px}
.sv2-fnote{font-size:13px;color:var(--navy-band-mute);margin:0}
@media (max-width:768px){
  .sv2-packs{grid-template-columns:1fr 1fr}
  .sv2-dash,.sv2-bhead2,.sv2-ctaband,.sv2-contact{grid-template-columns:1fr}
  .sv2-cinfo{justify-content:flex-start}
  .sv2-bhead2 p{justify-self:start;text-align:left}
  .sv2-pcols{grid-template-columns:1fr}
  .sv2-flow{grid-template-columns:1fr 1fr}.sv2-flow li:not(:last-child)::after{display:none}
  .sv2-season a{margin-left:0}
  .sv2-roles{flex-direction:row;overflow-x:auto;padding-bottom:4px;height:auto}.sv2-roles button{min-width:220px;flex:none}
  .sv2-rowhead{padding-left:20px}
  .sv2-stage{height:360px}.sv2-scene{padding:0 24px;grid-template-columns:1fr;gap:12px;align-content:center}.sv2-vis{width:100%;height:120px;transform:scale(.6);transform-origin:center}
  .sv2-chips2{grid-template-columns:1fr 1fr}
  .sv2-brand{padding-block:64px}
}
@media (max-width:480px){
  .sv2-packs,.sv2-flow,.sv2-chips2{grid-template-columns:1fr}
  .sv2-clinks{flex-direction:column}
  .sv2-stage{height:300px}.sv2-sc-card{padding:20px 22px}
  .sv2-bbtns{width:100%}.sv2-bbtns .pill{flex:1;justify-content:center}
}




/* 프로그램 카탈로그 (홈 라이브러리 규격 재사용) */
.sv2-cat{padding-block:88px 96px}
.sv2-cat .center h2{font-size:clamp(34px,4.6vw,56px);line-height:1.1;margin-top:14px}
.sv2-cat p.l b{color:var(--ink);font-weight:700}
.sv2-cat .search{max-width:820px}
.sv2-pcount{font-size:13px;color:var(--ink-3);margin-top:22px;text-align:left}
.sv2-cat .grid5{margin-top:12px}
.sv2-cat .empty a{color:var(--red);font-weight:700}
.sv2-cat .pc.sv2-over{display:none}
.sv2-more{margin-top:22px}
.sv2-more .pill.ghost svg{width:14px;height:14px}
.sv2-more[hidden]{display:none}
.sv2-soon{font-family:var(--mono);font-size:11px;letter-spacing:.1em;padding:3px 9px;border-radius:var(--pill);background:var(--sun);color:var(--ink)}
/* 프로그램 상세 모달 (사이트 팔레트) */
.pm-box{background:var(--surface);color:var(--ink);width:min(640px,100%);padding:34px 36px 30px}
.pm-box .sv2-mclose{color:var(--ink-3)}.pm-box .sv2-mclose:hover{color:var(--ink)}
.pm-top{display:flex;gap:8px;align-items:center}
.pm-top .brand{font-family:var(--body);font-weight:700;font-size:12px;padding:4px 10px;border-radius:var(--radius-xs);background:var(--bg-2)}
.pm-top .brand.rw{color:var(--red)}.pm-top .brand.gl{color:var(--gl)}.pm-top .brand.ul{color:var(--ul-ink)}
.pm-name{font-size:clamp(24px,2.6vw,32px);line-height:1.25;font-weight:700;margin-top:14px;letter-spacing:-.01em}
.pm-meta{font-size:14px;color:var(--ink-3);margin-top:6px}
.pm-ansbox{margin-top:20px;padding:20px 22px;border-radius:var(--radius);background:var(--bg-2)}
.pm-ansbox em{display:block;font-family:var(--mono);font-style:normal;font-size:11px;letter-spacing:.14em;color:var(--red)}
.pm-ansbox b{display:block;font-size:17px;line-height:1.45;margin-top:8px}
.pm-ansbox p{font-size:15px;line-height:1.75;color:var(--ink-2);margin-top:12px}
.pm-dl{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0 0;padding-top:14px;border-top:1px dashed var(--line)}
.pm-dl div{display:flex;flex-direction:column;gap:2px;font-size:14px}
.pm-dl dt{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--ink-3)}.pm-dl dd{margin:0;color:var(--ink)}
.pm-btns{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.pm-btns .pill.line{color:var(--ink);border-color:var(--ink)}
.prev-note{max-width:1180px;margin:0 auto;padding:18px 20px 0;font-family:var(--mono);font-size:12px;letter-spacing:.12em;color:var(--red)}
.prev-gap{height:48px;background:repeating-linear-gradient(45deg,var(--bg-2),var(--bg-2) 10px,var(--bg) 10px,var(--bg) 20px)}
@media (max-width:768px){.pm-box{padding:24px 22px}.pm-dl{grid-template-columns:1fr}}
/* 화면 밖 스테이지 정지 */
.sv2-brand:not(.inview) .sv2-stage *,.sv2-brand:not(.inview) .sv2-chips2 li{animation-play-state:paused!important}
.sv2-bnote{margin-top:14px;font-size:13px;color:var(--ink-3);text-align:right}
/* AXIT 스트립 */
.sv2-axit{padding-block:40px}
.sv2-axit-row{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center}
.sv2-axit-row h2{font-family:var(--display);font-weight:400;font-size:clamp(34px,4.6vw,56px);line-height:1.15;margin-top:8px}
.sv2-axit-row p{color:var(--navy-band-mute);font-size:15px;margin-top:8px;max-width:44em}
@media (max-width:768px){
  .sv2-axit-row{grid-template-columns:1fr}
  /* 모바일: 마키 정지 + 가로 스크롤 */
  .sv2-stage{height:260px}
  .sv2-scene{grid-template-columns:1fr}
}
