/* 띠링 상품 설계기 — 모바일 우선 · 질문은 한 화면에 하나 · 결과는 대시보드 */
:root{--acc:#6C5CFF;--acc-2:#8C7EFF;--acc-ink:#5B4AF0;--soft:#F2F0FF;--ink:#141520;--sub:#626573;--mut:#9A9CAB;
  --line:#E6E5EF;--bg:#FFFFFF;--tint:#F7F7FC;--night:#12131B;--red:#E8384F;--ok:#14A06E}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:Pretendard,-apple-system,'Apple SD Gothic Neo','Malgun Gothic',sans-serif;color:var(--ink);background:var(--tint);
  line-height:1.6;letter-spacing:-.02em;word-break:keep-all;-webkit-font-smoothing:antialiased;min-height:100vh}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--acc-2);outline-offset:2px}
[hidden]{display:none!important}
.top{position:sticky;top:0;z-index:5;background:rgba(247,247,252,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);
  display:flex;align-items:center;gap:10px;padding:12px 20px calc(12px) ;padding-top:calc(12px + env(safe-area-inset-top,0px))}
.brand{display:flex;align-items:center;gap:8px;font-weight:900;font-size:15px}
.brand i{font-style:normal;width:26px;height:26px;border-radius:8px;background:var(--acc);color:#fff;display:grid;place-items:center;font-size:13px}
.beta{font-size:10.5px;font-weight:900;color:var(--acc-ink);background:var(--soft);border-radius:6px;padding:2px 7px}
.screen{max-width:720px;margin:0 auto;padding:32px 20px 100px}
.eyebrow{display:block;font-size:12px;font-weight:800;letter-spacing:.14em;color:var(--acc-ink);margin-bottom:12px}
.h{font-size:clamp(24px,5.6vw,32px);font-weight:900;letter-spacing:-.04em;line-height:1.3;text-wrap:balance}
.sub{font-size:15px;color:var(--sub);margin-top:8px}
.fine{font-size:12.5px;color:var(--mut);margin-top:14px}
.btn{border:0;border-radius:14px;padding:15px 22px;font-weight:900;font-size:16px;transition:.15s}
.btn.pri{background:var(--acc);color:#fff;box-shadow:0 10px 26px rgba(108,92,255,.3)}
.btn.pri:hover{background:var(--acc-ink)}
.btn.pri:disabled{opacity:.5;box-shadow:none;cursor:default}
.btn.ghost{background:#fff;color:var(--ink);border:1px solid var(--line)}
.btn.ghost:hover{border-color:var(--acc-2)}
/* 랜딩 */
.land{padding-top:28px}
.land h1{font-size:clamp(32px,8vw,50px);font-weight:900;letter-spacing:-.05em;line-height:1.25;text-wrap:balance}
.land h1 em{font-style:normal;color:var(--acc)}
.lead{font-size:17px;color:var(--sub);margin-top:22px}
.chain{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin-top:12px;counter-reset:c}
.chain li{counter-increment:c;font-size:14.5px;font-weight:800;background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px 12px;display:flex;align-items:center;gap:6px}
.chain li::before{content:counter(c);font-size:11px;font-weight:900;color:#fff;background:var(--acc);width:18px;height:18px;border-radius:5px;display:grid;place-items:center}
.lead+.land-cta{margin-top:30px}
.chain+.lead{margin-top:12px}
.land-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
.land-cta .btn{flex:1 1 220px}
.resume{margin-top:16px;width:100%;background:var(--soft);color:var(--acc-ink);border:0;border-radius:12px;padding:12px;font-weight:800;font-size:14px}
.land-out{margin-top:56px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px 22px}
.land-out h2{font-size:17px;font-weight:900}
.eight{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;margin-top:14px;counter-reset:e}
.eight li{counter-increment:e;font-size:14.5px;color:var(--sub);padding-left:24px;position:relative}
.eight li::before{content:counter(e);position:absolute;left:0;top:2px;font-size:11px;font-weight:900;color:var(--acc-ink);background:var(--soft);width:18px;height:18px;border-radius:5px;display:grid;place-items:center}
.eight b{color:var(--ink)}
@media(max-width:480px){.eight{grid-template-columns:1fr}}
/* 위저드 */
.prog{display:flex;align-items:center;gap:12px}
.prog .bar{flex:1;height:6px;background:var(--line);border-radius:99px;overflow:hidden}
.prog .bar i{display:block;height:100%;background:var(--acc);border-radius:99px;transition:width .3s}
.prog span{font-size:12.5px;font-weight:800;color:var(--sub);font-variant-numeric:tabular-nums}
.q{margin-top:28px}
.qno{font-size:13px;font-weight:900;color:var(--acc-ink)}
.q h2{font-size:clamp(22px,5.4vw,29px);font-weight:900;letter-spacing:-.04em;line-height:1.35;margin-top:6px;text-wrap:balance}
.qhelp{font-size:14.5px;color:var(--sub);margin-top:10px}
#qbody{margin-top:22px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:10px 16px;font-size:15px;font-weight:700;color:var(--ink)}
.chip[aria-pressed="true"]{background:var(--acc);border-color:var(--acc);color:#fff}
.chip.unk[aria-pressed="true"]{background:var(--ink);border-color:var(--ink)}
.opts{display:flex;flex-direction:column;gap:8px}
.opt{text-align:left;background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:15px 16px;font-size:16px;font-weight:700;color:var(--ink);display:flex;align-items:center;gap:12px}
.opt::before{content:"";width:18px;height:18px;border-radius:50%;border:2px solid var(--line);flex:none}
.opt[aria-pressed="true"]{border-color:var(--acc);background:var(--soft)}
.opt[aria-pressed="true"]::before{border:6px solid var(--acc)}
textarea,input[type=text]{width:100%;font:inherit;font-size:16px;color:var(--ink);background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:14px 16px;line-height:1.6}
textarea{min-height:150px;resize:vertical}
input[type=text]{margin-top:12px}
.ph{margin-top:10px;font-size:13px;color:var(--mut)}
.unkrow{margin-top:12px}
.unkbtn{background:none;border:1px dashed var(--mut);color:var(--sub);border-radius:999px;padding:8px 14px;font-size:13.5px;font-weight:700}
.unkbtn[aria-pressed="true"]{background:var(--ink);color:#fff;border-style:solid;border-color:var(--ink)}
.err{color:var(--red);font-size:13.5px;font-weight:700;margin-top:12px;min-height:1.2em}
.nav{display:flex;gap:10px;margin-top:22px}
.nav .btn.ghost{flex:0 0 auto}
.nav .btn.pri{flex:1}
.nav.sticky{position:sticky;bottom:0;background:linear-gradient(transparent,var(--tint) 30%);padding:24px 0 calc(12px + env(safe-area-inset-bottom,0px));margin-top:10px}
/* 확인 */
.review{list-style:none;margin-top:22px;display:flex;flex-direction:column;gap:8px}
.review li button{width:100%;text-align:left;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px;display:grid;grid-template-columns:40px 1fr auto;gap:10px;align-items:start}
.review .n{font-size:12px;font-weight:900;color:var(--acc-ink);padding-top:2px}
.review .t{font-size:13px;color:var(--sub)}
.review .v{font-size:15px;font-weight:700;margin-top:2px;white-space:pre-wrap;overflow-wrap:anywhere}
.review .v.empty{color:var(--mut);font-weight:500}
.review .e{font-size:12px;font-weight:800;color:var(--acc-ink)}
/* 로딩 */
.loading{text-align:center;padding-top:60px}
.ding{width:76px;height:76px;margin:0 auto;border-radius:22px;background:var(--acc);display:grid;place-items:center;color:#fff;font-weight:900;font-size:34px;box-shadow:0 18px 40px rgba(108,92,255,.35)}
.ding i{font-style:normal}
@media (prefers-reduced-motion:no-preference){.ding{animation:ring 1.4s ease-in-out infinite}@keyframes ring{0%,100%{transform:rotate(0)}10%{transform:rotate(-12deg)}20%{transform:rotate(10deg)}30%{transform:rotate(-6deg)}40%{transform:rotate(0)}}}
.loading h2{font-size:21px;font-weight:900;margin-top:28px}
.steps{list-style:none;margin:24px auto 0;max-width:320px;text-align:left;display:flex;flex-direction:column;gap:10px}
.steps li{font-size:14.5px;color:var(--mut);display:flex;gap:10px;align-items:center}
.steps li::before{content:"";width:16px;height:16px;border-radius:50%;border:2px solid var(--line);flex:none}
.steps li.on{color:var(--ink);font-weight:800}.steps li.on::before{border-color:var(--acc);border-top-color:transparent;animation:spin .8s linear infinite}
.steps li.done{color:var(--sub)}.steps li.done::before{background:var(--acc);border-color:var(--acc)}
@keyframes spin{to{transform:rotate(360deg)}}
/* DNA */
.dna{margin-top:18px;background:var(--night);color:#fff;border-radius:22px;padding:22px}
.dna-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.dna-grid div{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:14px;min-width:0}
.dna-grid b{display:block;font-size:11.5px;font-weight:800;color:var(--acc-2);letter-spacing:.04em}
.dna-grid p{font-size:15px;font-weight:700;margin-top:5px;line-height:1.5}
@media(max-width:480px){.dna-grid{grid-template-columns:1fr}}
.assets{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.assets span{font-size:13px;font-weight:700;background:rgba(140,126,255,.2);color:#DCD6FF;border-radius:8px;padding:5px 10px}
.honest{margin-top:14px;font-size:13.5px;color:rgba(255,255,255,.75);border-top:1px dashed rgba(255,255,255,.18);padding-top:12px;display:flex;gap:10px;align-items:baseline}
.honest em{font-style:normal;flex:none;font-size:11.5px;font-weight:900;border-radius:6px;padding:2px 7px;background:rgba(255,255,255,.12)}
/* 기회 카드 */
.opps{margin-top:18px;display:flex;flex-direction:column;gap:12px}
.opp{text-align:left;width:100%;background:#fff;border:2px solid var(--line);border-radius:20px;padding:20px;color:var(--ink);position:relative}
.opp[aria-pressed="true"]{border-color:var(--acc);box-shadow:0 14px 34px rgba(108,92,255,.14)}
.opp .rec{position:absolute;top:-11px;left:18px;font-size:11.5px;font-weight:900;background:var(--red);color:#fff;border-radius:7px;padding:3px 9px}
.opp .k{display:flex;gap:6px;flex-wrap:wrap}
.opp .k span{font-size:11.5px;font-weight:800;border-radius:7px;padding:3px 8px;background:var(--soft);color:var(--acc-ink)}
.opp h3{font-size:19px;font-weight:900;letter-spacing:-.035em;line-height:1.4;margin-top:10px}
.opp dl{display:grid;grid-template-columns:64px 1fr;gap:6px 10px;margin-top:12px;font-size:14px}
.opp dt{color:var(--mut);font-weight:700}.opp dd{color:var(--ink)}
.opp .why{margin-top:12px;font-size:13.5px;color:var(--sub);background:var(--tint);border-radius:12px;padding:10px 12px}
.meters{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}
.meter{font-size:12px;color:var(--sub);font-weight:700}
.meter .dots{display:flex;gap:3px;margin-top:4px}
.meter .dots i{flex:1;height:5px;border-radius:3px;background:var(--line)}
.meter .dots i.f{background:var(--acc)}
.recwhy{margin-top:16px;background:var(--soft);border-radius:14px;padding:14px 16px;font-size:14px;color:var(--ink)}
.recwhy b{color:var(--acc-ink)}
/* 블루프린트 */
.bp-head .demo-flag{margin-top:12px;font-size:12.5px;font-weight:800;background:#FFF7D6;color:#6B5200;border-radius:10px;padding:8px 12px;display:inline-block}
.sum8{margin-top:20px;background:var(--night);color:#fff;border-radius:22px;padding:8px 20px}
.sum8 div{display:grid;grid-template-columns:118px 1fr;gap:12px;padding:13px 0;border-bottom:1px solid rgba(255,255,255,.1)}
.sum8 div:last-child{border-bottom:0}
.sum8 b{font-size:12.5px;font-weight:800;color:var(--acc-2);padding-top:2px}
.sum8 p{font-size:15px;font-weight:700;line-height:1.5}
@media(max-width:480px){.sum8 div{grid-template-columns:1fr;gap:2px}}
.sec{margin-top:36px}
.sec-h{display:flex;align-items:baseline;gap:10px;margin-bottom:12px}
.sec-h i{font-style:normal;font-size:12px;font-weight:900;color:#fff;background:var(--ink);border-radius:7px;padding:3px 8px}
.sec-h h3{font-size:18px;font-weight:900;letter-spacing:.02em}
.card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px}
.kv{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.kv>div{background:var(--tint);border-radius:14px;padding:13px 14px;min-width:0}
.kv b{display:block;font-size:11.5px;font-weight:800;color:var(--acc-ink)}
.kv p{font-size:15px;font-weight:700;margin-top:4px;line-height:1.5}
@media(max-width:480px){.kv{grid-template-columns:1fr}}
.best h4{font-size:21px;font-weight:900;letter-spacing:-.04em;line-height:1.4}
.best .kv{margin-top:14px}
.fit{margin-top:12px;font-size:14px;color:var(--sub);line-height:1.65}
.fit b{color:var(--ink)}
.alts{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.alts div{font-size:13.5px;color:var(--sub)}.alts b{color:var(--ink)}
.ladder{display:flex;flex-direction:column;gap:10px}
.tier{background:#fff;border:1.5px solid var(--line);border-radius:20px;padding:18px;position:relative}
.tier.mvp{border-color:var(--acc);box-shadow:0 14px 34px rgba(108,92,255,.14)}
.tier .tg{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tier .lv{font-size:12px;font-weight:900;color:#fff;background:var(--acc);border-radius:7px;padding:3px 9px}
.tier.mid .lv{background:var(--acc-ink)}.tier.high .lv{background:var(--ink)}
.tier .ty{font-size:12.5px;font-weight:700;color:var(--sub)}
.tier .badge{margin-left:auto;font-size:11.5px;font-weight:900;color:var(--red)}
.tier h4{font-size:18px;font-weight:900;letter-spacing:-.035em;margin-top:10px;line-height:1.4}
.tier .role{font-size:13px;color:var(--acc-ink);font-weight:700;margin-top:4px}
.tier dl{display:grid;grid-template-columns:64px 1fr;gap:6px 10px;margin-top:10px;font-size:14px}
.tier dt{color:var(--mut);font-weight:700}
.tier .pr{margin-top:12px;font-size:22px;font-weight:900;font-variant-numeric:tabular-nums}
.tier .pr small{font-size:13px;color:var(--sub);font-weight:700;margin-left:6px}
.arrow{text-align:center;color:var(--acc-2);font-weight:900;font-size:18px;line-height:1}
.price-row{padding:16px 0;border-bottom:1px solid var(--line)}
.price-row:first-child{padding-top:0}.price-row:last-of-type{border-bottom:0}
.price-row .hd{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.price-row .hd b{font-size:15px;font-weight:900}
.price-row .hd strong{font-size:19px;font-weight:900;font-variant-numeric:tabular-nums}
.range{position:relative;height:30px;margin-top:10px}
.range .track{position:absolute;left:0;right:0;top:12px;height:6px;border-radius:99px;background:var(--line)}
.range .fill{position:absolute;top:12px;height:6px;border-radius:99px;background:var(--acc-2)}
.range .dot{position:absolute;top:6px;width:18px;height:18px;margin-left:-9px;border-radius:50%;background:var(--acc);border:3px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.2)}
.range .eb{position:absolute;top:8px;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:#fff;border:3px solid var(--red)}
.rlab{display:flex;justify-content:space-between;font-size:12px;color:var(--mut);font-variant-numeric:tabular-nums}
.price-row .eb-t{font-size:13px;color:var(--red);font-weight:800;margin-top:6px}
.price-row p{font-size:13.5px;color:var(--sub);margin-top:8px;line-height:1.65}
.pnote{margin-top:14px;font-size:12.5px;color:var(--sub);background:var(--tint);border-radius:12px;padding:10px 12px}
.start{background:var(--acc);color:#fff;border-radius:22px;padding:22px}
.start .lb{font-size:12px;font-weight:900;opacity:.8;letter-spacing:.06em}
.start h4{font-size:22px;font-weight:900;letter-spacing:-.04em;line-height:1.35;margin-top:6px}
.start .why{font-size:14.5px;opacity:.92;margin-top:10px;line-height:1.65}
.start .meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.start .meta span{font-size:12.5px;font-weight:800;background:rgba(255,255,255,.18);border-radius:8px;padding:4px 10px}
.inout{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.inout>div{background:rgba(255,255,255,.12);border-radius:14px;padding:14px;min-width:0}
.inout b{font-size:12.5px;font-weight:900}
.inout ul{list-style:none;margin-top:8px;display:flex;flex-direction:column;gap:6px}
.inout li{font-size:14px;padding-left:20px;position:relative;line-height:1.45}
.inout .in li::before{content:"+";position:absolute;left:2px;font-weight:900}
.inout .out li::before{content:"–";position:absolute;left:3px;font-weight:900;opacity:.7}
.inout .out li{opacity:.8}
@media(max-width:480px){.inout{grid-template-columns:1fr}}
.road{display:flex;flex-direction:column;gap:0}
.rstep{display:grid;grid-template-columns:28px 1fr;gap:12px}
.rstep .rail{display:flex;flex-direction:column;align-items:center}
.rstep .rail i{width:14px;height:14px;border-radius:50%;background:var(--acc);margin-top:4px;flex:none}
.rstep .rail s{flex:1;width:2px;background:var(--line);margin:4px 0}
.rstep:last-child .rail s{display:none}
.rstep .bd{padding-bottom:18px;min-width:0}
.rstep .st{font-size:11.5px;font-weight:900;color:var(--acc-ink);letter-spacing:.04em}
.rstep h5{font-size:16px;font-weight:900;margin-top:2px}
.rstep p{font-size:14px;color:var(--sub);margin-top:4px}
.rstep .sg{font-size:13px;color:var(--ink);background:var(--tint);border-radius:10px;padding:8px 10px;margin-top:8px}
.rstep .sg b{color:var(--ok)}
.bp-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:32px}
.bp-actions .btn{flex:1 1 140px;font-size:14.5px;padding:13px 14px}
.next-cta{display:flex;flex-direction:column;gap:10px;margin-top:22px}
.ctacard{display:block;background:#fff;border:2px solid var(--acc);border-radius:20px;padding:20px}
.ctacard b{display:block;font-size:17px;font-weight:900;color:var(--acc-ink)}
.ctacard span{display:block;font-size:14px;color:var(--sub);margin-top:6px;line-height:1.6}
.ctacard.dark{background:var(--night);border-color:var(--night)}
.ctacard.dark b{color:#fff}.ctacard.dark span{color:rgba(255,255,255,.72)}
.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:#fff;
  font-size:14px;font-weight:700;border-radius:12px;padding:12px 18px;z-index:20;max-width:calc(100% - 32px);text-align:center}
.foot{max-width:720px;margin:0 auto;padding:0 20px 40px;font-size:12px;color:var(--mut)}
.errbox{margin-top:24px;background:#FFF1F3;border:1.5px solid #FFD7DE;border-radius:16px;padding:18px;color:#8A2C3A;font-size:14.5px}
.errbox b{display:block;color:var(--red);font-size:15px;margin-bottom:6px}
.errbox .row{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
/* 테스트 코드 */
.codebox{margin-top:18px;background:#fff;border:1.5px solid var(--acc);border-radius:16px;padding:16px}
.codebox label{display:block;font-size:13px;font-weight:900;color:var(--acc-ink)}
.codebox input{margin-top:8px;text-transform:uppercase;letter-spacing:.06em;font-weight:800}
.codebox p{font-size:12.5px;color:var(--sub);margin-top:8px}
