/* 바이브코딩 기본설계도 — 설계 도구 느낌: 중립 회색 + 강조색 하나. 귀여운 요소는 그림(아트 디렉션) 칸에만. */
:root{--bg:#f6f7f9;--sf:#fff;--ln:#e4e6ec;--ln2:#d3d6df;--tx:#14161d;--sub:#5b6070;--mut:#8a8fa0;--ac:#5b5bd6;--acs:#eeeefc;--ok:#1f9d6b;--r:12px;--sh:0 1px 2px rgba(20,22,29,.05),0 4px 14px rgba(20,22,29,.05)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--tx);font-family:"Pretendard Variable",Pretendard,-apple-system,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}
button{font:inherit;color:inherit}
.top{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--ln);display:flex;align-items:center;gap:12px;padding:10px 16px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--tx);min-width:0}
.logo{width:30px;height:30px;border-radius:8px;background:var(--tx);color:#fff;display:grid;place-items:center;font-weight:800;font-size:13px;flex:0 0 auto}
.brand b{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand small{display:block;font-size:11.5px;color:var(--mut);font-weight:500}
.top .sp{flex:1}
.lk{font-size:13px;color:var(--sub);text-decoration:none;padding:8px 10px;border-radius:8px;border:1px solid var(--ln);background:var(--sf);min-height:44px;display:inline-flex;align-items:center;cursor:pointer}
.lk:hover{border-color:var(--ln2)}
.wrap{display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px;max-width:1440px;margin:0 auto;padding:20px 20px 120px}
#live{display:none}
@media(min-width:1280px){.wrap{grid-template-columns:210px minmax(0,1fr) 400px}#live{display:block}}
#steps{position:sticky;top:70px;align-self:start;display:flex;flex-direction:column;gap:2px}
.stp{display:flex;align-items:center;gap:10px;text-align:left;border:0;background:none;padding:9px 10px;border-radius:9px;cursor:pointer;color:var(--sub);min-height:44px}
.stp b{width:24px;height:24px;border-radius:50%;border:1.5px solid var(--ln2);display:grid;place-items:center;font-size:12px;flex:0 0 auto;background:var(--sf)}
.stp.ok b{background:var(--ok);border-color:var(--ok);color:#fff}
.stp.on{background:var(--sf);color:var(--tx);font-weight:700;box-shadow:var(--sh)}
.stp.on b{border-color:var(--ac);color:var(--ac)}
.stp.on.ok b{background:var(--ac);border-color:var(--ac);color:#fff}
.stephd{margin:4px 0 18px}
.kicker{margin:0;font-size:12.5px;font-weight:700;color:var(--ac);letter-spacing:.02em}
.stephd h2{margin:2px 0 6px;font-size:26px;letter-spacing:-.02em}
.lead{margin:0;color:var(--sub);max-width:680px}
.sec{background:var(--sf);border:1px solid var(--ln);border-radius:var(--r);padding:18px;margin:0 0 14px}
.sechd{display:flex;align-items:center;gap:8px}
.sec h3{margin:0;font-size:16.5px;letter-spacing:-.01em}
.tag{font-size:11.5px;color:var(--ac);background:var(--acs);border-radius:6px;padding:2px 7px;font-weight:700}
.q{margin:4px 0 12px;color:var(--sub);font-size:13.5px}
.sechd+.grid{margin-top:12px}
.grid{display:grid;gap:10px}
.grid.vis,.grid.motion{grid-template-columns:repeat(auto-fill,minmax(172px,1fr))}
.grid.chip{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
.opt{position:relative;border:1.5px solid var(--ln);background:var(--sf);border-radius:10px;cursor:pointer;text-align:left;transition:border-color .12s,box-shadow .12s,transform .12s}
.opt:hover{border-color:var(--ln2);box-shadow:var(--sh)}
.opt:active{transform:scale(.985)}
.opt:focus-visible{outline:2px solid var(--ac);outline-offset:2px}
.opt.on{border-color:var(--ac);box-shadow:0 0 0 3px var(--acs)}
.opt.vis{padding:10px;display:flex;flex-direction:column}
.opt.vis.on::after,.opt.chip.on::after{content:"";position:absolute;top:8px;right:8px;width:20px;height:20px;border-radius:50%;background:var(--ac) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/12px no-repeat}
.pic{background:#f3f4f7;border-radius:8px;padding:10px;display:flex;justify-content:center;align-items:center;min-height:128px}
.pic svg{width:100%;max-height:170px}
.meta{display:flex;align-items:center;gap:6px;margin-top:10px;flex-wrap:wrap}
.code{font:600 11px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--sub);background:#f0f1f4;border-radius:5px;padding:4px 6px}
.term{font-size:11.5px;color:var(--mut);font-weight:600}
.nm{font-weight:700;font-size:15px;margin:4px 0 2px}
.ds{font-size:13px;color:var(--sub);margin:0 0 6px}
.ex{font-size:12px;color:var(--mut);margin:0 0 6px}
.pc{list-style:none;margin:0;padding:0;font-size:12.5px}
.pc li{padding-left:16px;position:relative;margin:2px 0;color:var(--sub)}
.pc li::before{position:absolute;left:0;font-weight:800}
.pc .g::before{content:"+";color:var(--ok)}
.pc .b::before{content:"−";color:#c24d4d}
.img{margin-top:auto;padding-top:8px;min-height:44px;display:flex;align-items:center;font-size:12.5px;font-weight:700;color:var(--ac);text-decoration:none}
.opt.chip{display:flex;align-items:flex-start;gap:10px;padding:12px 12px 12px 12px;min-height:56px}
.opt.chip>i,.opt.chip>svg{width:20px;height:20px;flex:0 0 auto;color:var(--sub);margin-top:1px}
.opt.chip.on>svg{color:var(--ac)}
.cbody{flex:1;min-width:0;padding-right:18px}
.cbody .nm{display:block;margin:0;font-size:14.5px}
.cbody .term{display:block}
.cbody .ds{margin:3px 0 0;font-size:12.5px}
.opt.chip .code{position:absolute;right:10px;bottom:10px;font-size:10px;padding:3px 5px}
.opt.chip.on .code{opacity:0}
.kinds{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
.presets{display:flex;flex-wrap:wrap;gap:8px}
.pchip{border:1.5px solid var(--ln);background:var(--sf);border-radius:999px;padding:9px 14px;font-size:14px;cursor:pointer;min-height:44px}
.pchip:hover{border-color:var(--ln2)}
.pchip.on{background:var(--tx);border-color:var(--tx);color:#fff}
.fld{display:block;background:var(--sf);border:1px solid var(--ln);border-radius:var(--r);padding:14px 18px;margin:0 0 10px}
.fld span{display:block;font-weight:700;font-size:14px;margin-bottom:6px}
.fld input,.fld textarea{width:100%;border:1.5px solid var(--ln);border-radius:8px;padding:10px 12px;font:inherit;font-size:15px;color:var(--tx);background:#fbfbfc;resize:vertical}
.fld input:focus,.fld textarea:focus{outline:0;border-color:var(--ac);background:#fff;box-shadow:0 0 0 3px var(--acs)}
.skip{font-size:12.5px;color:var(--mut);margin:6px 2px}
.calc{background:var(--tx);color:#fff;border-radius:var(--r);padding:18px;margin:0 0 14px}
.calc h3{margin:0 0 10px;font-size:15px}
.calc .q{color:#b7bccb}
.nums{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.nums div{background:rgba(255,255,255,.07);border-radius:10px;padding:12px}
.nums b{display:block;font-size:26px;letter-spacing:-.02em}
.nums span{display:block;font-size:12.5px;color:#cfd3df}
.nums small{display:block;font-size:11.5px;color:#9aa0b2;margin-top:2px}
#live{position:sticky;top:70px;align-self:start;max-height:calc(100dvh - 90px);display:none;flex-direction:column;background:var(--sf);border:1px solid var(--ln);border-radius:var(--r);overflow:hidden}
@media(min-width:1280px){#live{display:flex}}
.livehd{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--ln);font-weight:700;font-size:13.5px}
.livehd button{border:1px solid var(--ln);background:var(--sf);border-radius:7px;padding:5px 12px;font-size:12.5px;cursor:pointer;min-height:44px}
#livepre,#outpre{margin:0;white-space:pre-wrap;word-break:break-word;font:12.5px/1.6 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:#2b2f3a}
#livepre{padding:14px;overflow:auto;flex:1}
.out{background:var(--sf);border:1px solid var(--ln);border-radius:var(--r);overflow:hidden}
.otabs{display:flex;gap:4px;padding:8px;border-bottom:1px solid var(--ln);overflow-x:auto}
.otab{border:0;background:none;padding:8px 12px;border-radius:8px;cursor:pointer;color:var(--sub);font-weight:600;white-space:nowrap;min-height:44px}
.otab.on{background:var(--acs);color:var(--ac)}
#outpre{padding:16px;max-height:60dvh;overflow:auto;background:#fbfbfc}
.orow{display:flex;gap:8px;flex-wrap:wrap;padding:12px;border-top:1px solid var(--ln)}
.btn{border:0;border-radius:9px;padding:11px 18px;font-weight:700;cursor:pointer;background:var(--tx);color:#fff;min-height:44px}
.btn:hover{background:#2a2e3a}
.btn.ghost{background:var(--sf);color:var(--tx);border:1.5px solid var(--ln)}
.btn.ghost:hover{border-color:var(--ln2)}
.btn:disabled{opacity:.35;cursor:default}
.navbar{position:fixed;left:0;right:0;bottom:0;z-index:20;background:rgba(255,255,255,.95);backdrop-filter:blur(8px);border-top:1px solid var(--ln);padding:10px 16px calc(10px + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:center;gap:12px}
.navbar #pos{font-size:13px;color:var(--mut);min-width:48px;text-align:center}
.toast{position:fixed;left:50%;bottom:84px;transform:translateX(-50%);background:var(--tx);color:#fff;padding:10px 16px;border-radius:10px;font-size:14px;opacity:0;transition:opacity .2s;pointer-events:none;z-index:30}
.toast.show{opacity:1}
.mv{width:100%;height:118px;position:relative;overflow:hidden}
.mv i{position:absolute;left:50%;bottom:16px;width:40px;height:40px;margin-left:-20px;border-radius:50%;background:var(--ac)}
.mv.m1 i{animation:vbbo 1.2s infinite cubic-bezier(.3,1.6,.5,1)}
.mv.m2 i{animation:vbsl 2.4s infinite ease-in-out}
.mv.m3 i{animation:vbst 2s infinite steps(1)}
@keyframes vbbo{0%,100%{transform:translateY(0) scale(1.18,.82)}15%{transform:translateY(0) scale(1)}45%{transform:translateY(-44px) scale(.92,1.08)}75%{transform:translateY(0) scale(1.1,.9)}}
@keyframes vbsl{0%{transform:translateX(-60px);opacity:0}30%,70%{transform:translateX(0);opacity:1}100%{transform:translateX(60px);opacity:0}}
@keyframes vbst{0%{transform:translateX(-40px)}50%{transform:translateX(40px)}}
@media(prefers-reduced-motion:reduce){.mv i{animation:none!important}}
.seo{max-width:880px;margin:0 auto;padding:40px 20px 140px;color:var(--sub);font-size:14.5px}
.seo h2{color:var(--tx);font-size:20px;margin:28px 0 8px}
.seo h3{color:var(--tx);font-size:15.5px;margin:18px 0 4px}
.seo p{margin:0 0 8px}
/* 모르겠어요 · 먼저/나중 · 유형 먼저 안내 (9/24) */
.sechd .sp{flex:1}
.dunno{border:1.5px dashed var(--ln2);background:none;border-radius:999px;padding:6px 12px;font-size:12.5px;color:var(--sub);cursor:pointer;min-height:44px;white-space:nowrap}
.dunno:hover{border-color:var(--sub)}
.dunno.on{border-style:solid;border-color:var(--ac);color:var(--ac);background:var(--acs);font-weight:700}
.sec.skipped{background:#fafafb}
.skipnote{margin:6px 0 0;font-size:13px;color:var(--ac)}
.cbody .ex{display:block;margin:4px 0 0;font-size:12px;color:var(--mut)}
.prio{display:flex;flex-direction:column;gap:8px}
.prow{display:flex;align-items:center;gap:12px;border:1px solid var(--ln);border-radius:10px;padding:10px 12px}
.pn{flex:1;min-width:0}
.pn b{display:block;font-size:14.5px}
.pn small{display:block;font-size:12.5px;color:var(--sub);margin-top:2px}
.seg{display:flex;border:1.5px solid var(--ln);border-radius:9px;overflow:hidden;flex:0 0 auto}
.seg button{border:0;background:var(--sf);padding:0 12px;min-height:44px;min-width:56px;font-size:13px;font-weight:600;color:var(--sub);cursor:pointer;position:relative}
.seg button+button{border-left:1.5px solid var(--ln)}
.seg button.on.now{background:var(--ac);color:#fff}
.seg button.on.later{background:#e8eaf0;color:var(--tx)}
.seg button.on.off{background:#f6e3e3;color:#a33}
.star{font-style:normal;font-size:10px;position:absolute;top:3px;right:4px;color:#e0a500}
.seg button.on.now .star{color:#ffe28a}
.cfbox{background:#fff7e8;border:1px solid #f0d49a;border-radius:var(--r);padding:14px 16px;margin:0 0 14px;color:#6b4a00;font-size:14px}
.cfbox ul{margin:8px 0 0;padding-left:18px}
.cfbox li{margin:4px 0}
.note{display:block;margin-top:12px}
.note span{display:block;font-size:12.5px;font-weight:700;color:var(--sub);margin-bottom:4px}
.note input{width:100%;border:1.5px dashed var(--ln2);border-radius:8px;padding:10px 12px;font:inherit;font-size:14px;background:#fbfbfc;color:var(--tx);min-height:44px}
.note input:focus{outline:0;border-style:solid;border-color:var(--ac);background:#fff}
.gate{background:var(--sf);border:1px solid var(--ln);border-radius:var(--r);padding:24px;text-align:center}
.gate p{margin:0 0 14px;color:var(--sub)}
/* 폰: 단계 목록을 위 가로 띠로 */
@media(max-width:860px){
 .wrap{grid-template-columns:1fr;gap:0;padding:0 16px 120px}
 #steps{position:sticky;top:51px;z-index:15;flex-direction:row;overflow-x:auto;gap:4px;margin:0 -16px 14px;padding:8px 16px;background:var(--bg);border-bottom:1px solid var(--ln);scrollbar-width:none}
 #steps::-webkit-scrollbar{display:none}
 .stp{flex:0 0 auto;padding:6px 10px;min-height:44px;font-size:13px}
 .stp span{white-space:nowrap}
 .stephd h2{font-size:22px}
 .sec{padding:14px}
 .grid.vis,.grid.motion{grid-template-columns:repeat(2,minmax(0,1fr))}
 .grid.chip{grid-template-columns:1fr}
 .brand small{display:none}
 .nums b{font-size:21px}
 .prow{flex-direction:column;align-items:stretch;gap:8px}
 .seg button{flex:1}
 .sechd{flex-wrap:wrap}
}
