/* NEXTPLAY 앱 — 랜딩과 같은 토큰. 액센트는 --signal 하나만 쓴다. */
:root{
  --ink:#0F0F0F; --ink-2:#3D3D3D; --muted:#8A8A8A;
  --line:#E6E6E6; --line-2:#F0F0F0; --surface:#F5F5F5; --surface-2:#FAFAFA; --paper:#FFFFFF;
  --signal:#B4231D; --signal-bg:#FDF4F3; --signal-line:#EBC3C1;
  --ok:#1F7A3D; --ok-line:#BFE0CA; --ok-bg:#F3FAF5;
  --neon:#C6FF00; --mint:#9AE8A0;
  --r-lg:10px; --r-md:8px; --r-sm:6px;
  --sans:'Pretendard',-apple-system,BlinkMacSystemFont,system-ui,sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --rail:212px;
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{color-scheme:light only;background:#fff;-webkit-text-size-adjust:100%}
body{
  font-family:var(--sans);font-weight:500;color:var(--ink-2);background:#F7F7F7;
  line-height:1.6;letter-spacing:-0.02em;-webkit-font-smoothing:antialiased;
}
button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}
button{cursor:pointer;border:none;background:none}
a{color:var(--signal);text-decoration:none}
[hidden]{display:none !important}

/* ── 셸 ─────────────────────────────────────────────── */
.shell{display:grid;grid-template-columns:var(--rail) 1fr;min-height:100vh}
.rail{
  background:#fff;border-right:1px solid var(--line);
  display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto;
}
.rail__top{padding:16px 16px 12px;border-bottom:1px solid var(--line-2)}
.rail__brandrow{display:flex;align-items:center;justify-content:space-between;gap:8px}
.brand{font-size:16px;font-weight:800;color:var(--ink);letter-spacing:-0.05em;display:block}
.brand sup{font-size:8px;vertical-align:super}
.rail__proj{margin-top:10px}
.rail__proj select{
  width:100%;border:1px solid var(--line);border-radius:var(--r-sm);
  padding:8px 9px;font-size:12px;font-weight:600;color:var(--ink);background:#fff;
}
.rail__new{
  width:100%;margin-top:7px;border:1px solid var(--ink);border-radius:999px;
  padding:8px;font-size:12px;font-weight:700;color:var(--ink);
}
.rail__new:hover{background:var(--ink);color:#fff}

.steps{padding:10px 8px;flex:1}
.step{
  display:grid;grid-template-columns:24px 1fr auto;gap:9px;align-items:start;
  width:100%;text-align:left;padding:9px 8px;border-radius:var(--r-sm);
  color:var(--muted);transition:background .15s,color .15s;
}
.step:hover:not(:disabled){background:var(--surface-2);color:var(--ink-2)}
.step:disabled{opacity:.4;cursor:not-allowed}
.step.on{background:var(--ink);color:#fff}
.step.on .step__n{background:#fff;border-color:#fff;color:var(--ink)}
.step.on .step__d{color:rgba(255,255,255,.72)}
.step__n{
  width:24px;height:24px;border-radius:50%;border:1.5px solid var(--line);
  display:grid;place-items:center;font-size:10.5px;font-weight:800;color:var(--muted);
}
.step.done .step__n{background:var(--ink);border-color:var(--ink);color:#fff}
.step.on.done .step__n{background:#fff;border-color:#fff;color:var(--ink)}
/* 작성 중 단계 — 내용이 아직 없어도 "지금 여기"를 밑줄로 표시한다 (done·on 과 구분) */
.step.now .step__t{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:2px;color:var(--ink);font-weight:800}
.step.now:disabled{opacity:.75}
.step.now .step__n{border-color:var(--ink);color:var(--ink)}
.step.on.now .step__t{color:#fff}
.step.on.now .step__n{background:#fff;border-color:#fff;color:var(--ink)}
.step.done.now .step__n{background:var(--ink);border-color:var(--ink);color:#fff}   /* 완료+작성중 겹칠 때 숫자 가독 보장 */
.step__t{display:block;font-size:13px;font-weight:700;letter-spacing:-0.035em;line-height:1.35}
.step__d{display:block;font-size:11px;color:var(--muted);font-weight:500;margin-top:2px;line-height:1.35}

.rail__foot{padding:12px 16px;border-top:1px solid var(--line-2);font-size:11px;color:var(--muted);font-weight:600}
.rail__foot b{color:var(--ink)}
.rail__foot a{font-weight:700}

/* ── 본문 ───────────────────────────────────────────── */
.main{min-width:0;display:flex;flex-direction:column}
.bar{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  min-height:52px;padding:8px 16px;background:#fff;border-bottom:1px solid var(--line);
  position:sticky;top:0;z-index:20;
}
.bar__icon{
  width:38px;height:38px;border:1px solid var(--line);border-radius:50%;
  display:grid;place-items:center;color:var(--ink);background:#fff;flex:none;
}
.bar__icon:hover{background:var(--surface-2)}
.bar__prev[hidden]{visibility:hidden;display:grid !important}
#barMenu{display:none}   /* 데스크톱은 사이드 레일이 상시 보이므로 숨긴다 */
/* 제목은 헤더의 진짜 중앙에 절대 배치 — 좌우 요소 폭과 무관하게 */
.bar__mid{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;max-width:58%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bar__mid .bar__s{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bar__right{margin-left:auto;display:flex;align-items:center;gap:8px}
.bar__t{font-size:14px;font-weight:800;color:var(--ink);letter-spacing:-0.04em}
.bar__s{font-size:11.5px;color:var(--muted);font-weight:600}
.bar__sp{flex:1}
.pane{padding:22px;max-width:1080px;width:100%}
.pane h2{font-size:20px;font-weight:800;color:var(--ink);letter-spacing:-0.045em;margin-bottom:6px;word-break:keep-all}
.pane .lead{font-size:14px;color:var(--ink-2);margin-bottom:18px;max-width:660px;word-break:keep-all;line-height:1.7}
.pane h3{font-size:14.5px;font-weight:800;color:var(--ink);letter-spacing:-0.04em;margin:26px 0 10px}

/* ── 카드 ───────────────────────────────────────────── */
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:18px;margin-bottom:14px}
.card--ink{border:1.5px solid var(--ink)}
.card__bar{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  margin:-18px -18px 14px;padding:12px 16px;
  border-bottom:1px solid var(--line);background:var(--surface-2);
  border-radius:var(--r-md) var(--r-md) 0 0;
}
.card__t{font-size:13px;font-weight:800;color:var(--ink);letter-spacing:-0.035em}
.card__s{font-size:11.5px;color:var(--muted);font-weight:700;margin-left:auto}

/* ── 폼 ─────────────────────────────────────────────── */
.fld{margin-bottom:16px}
.fld__k{font-size:11.5px;font-weight:800;color:var(--muted);margin-bottom:6px;display:flex;gap:5px;align-items:center}
.fld__k em{font-style:normal;color:var(--signal)}
.fld__h{font-size:11.5px;color:var(--muted);margin-top:6px;font-weight:500;line-height:1.5}
/* 파일 입력은 고유 폭이 있어 좁은 화면에서 페이지를 밀어낸다 */
input[type=file]{max-width:100%;width:100%;font-size:12.5px}
input[type=text],input[type=url],input[type=number],textarea,select{
  width:100%;border:1px solid var(--line);border-radius:var(--r-sm);
  padding:10px 12px;font-size:13.5px;font-weight:600;color:var(--ink);
  background:#fff;letter-spacing:-0.03em;transition:border-color .15s;
}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--ink)}
/* iOS 사파리는 입력 글자가 16px 미만이면 포커스 때 화면을 확대한다.
   데스크톱 밀도는 그대로 두고, 손가락으로 쓰는 기기에서만 올린다. */
@media (pointer: coarse){
  input[type=text],input[type=url],input[type=number],input[type=email],textarea,select{font-size:16px}
}
textarea{resize:vertical;min-height:74px;font-weight:500;line-height:1.6}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{
  font-size:12px;font-weight:700;padding:7px 13px;border-radius:999px;
  border:1px solid var(--line);color:var(--ink-2);transition:.15s;
}
.chip:hover{border-color:#BBB}
.chip.on{border-color:var(--ink);color:#fff;background:var(--ink)}
.chip:disabled{opacity:.4;cursor:not-allowed}

.btn{
  font-size:12.5px;font-weight:700;padding:9px 16px;border-radius:999px;
  border:1px solid var(--line);color:var(--ink);transition:.15s;white-space:nowrap;
}
.btn:hover:not(:disabled){border-color:var(--ink)}
.btn--p{background:var(--ink);color:#fff;border-color:var(--ink)}
.btn--p:hover:not(:disabled){opacity:.86}
.btn--s{color:var(--signal);border-color:var(--signal-line)}
.btn--sm{font-size:11.5px;padding:6px 12px}
.btn:disabled{opacity:.42;cursor:not-allowed}
.btns{display:flex;gap:8px;flex-wrap:wrap;align-items:center}

/* ── 배지 ───────────────────────────────────────────── */
.b{
  display:inline-block;font-size:10.5px;font-weight:800;padding:3px 7px;
  border-radius:4px;border:1px solid var(--line);color:var(--muted);white-space:nowrap;
}
.b--ok{color:var(--ok);border-color:var(--ok-line);background:var(--ok-bg)}
.b--ask{color:var(--signal);border-color:var(--signal-line);background:var(--signal-bg)}
.b--ink{color:#fff;border-color:var(--ink);background:var(--ink)}

/* ── 알림 ───────────────────────────────────────────── */
.note{
  border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2);
  padding:12px 14px;margin:12px 0;font-size:13px;line-height:1.65;word-break:keep-all;
}
.note b:first-child{color:var(--ink)}
.note--warn{border-color:var(--signal-line);background:var(--signal-bg)}
.note--warn b:first-child{color:var(--signal)}
.note--ok{border-color:var(--ok-line);background:var(--ok-bg)}
.note--ok b:first-child{color:var(--ok)}

/* ── 진행 ───────────────────────────────────────────── */
.prog{margin:14px 0}
.prog__bar{height:5px;background:var(--line-2);border-radius:99px;overflow:hidden}
.prog__fill{height:100%;background:var(--ink);width:0;transition:width .25s ease}
.prog__t{font-size:12px;color:var(--muted);font-weight:600;margin-top:7px}
.pstep{display:flex;align-items:flex-start;gap:9px;font-size:12.5px;font-weight:600;color:var(--muted);padding:4px 0}
.pstep.on{color:var(--ink-2)}
.pstep i{
  width:14px;height:14px;border-radius:50%;flex:none;margin-top:3px;
  border:1.5px solid #D4D4D4;position:relative;
}
.pstep.on i{border-color:var(--ok);background:var(--ok)}
.pstep.on i::after{
  content:"";position:absolute;left:4px;top:1.5px;width:3.5px;height:7px;
  border:solid #fff;border-width:0 1.6px 1.6px 0;transform:rotate(45deg);
}

/* ── 표 ─────────────────────────────────────────────── */
.tw{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-sm);background:#fff}
table{border-collapse:collapse;width:100%;min-width:540px}
th,td{text-align:left;padding:10px 12px;font-size:12.5px;border-bottom:1px solid var(--line-2);vertical-align:top;word-break:keep-all}
th{font-size:11px;font-weight:800;color:var(--ink);background:var(--surface-2);white-space:nowrap;border-bottom:1px solid var(--line)}
tbody tr:last-child td{border-bottom:none}
td b{color:var(--ink);font-weight:700}
.num{font-variant-numeric:tabular-nums;white-space:nowrap}
tr.is-skip td{color:var(--muted);background:var(--surface-2)}
tr.is-hook td{background:#FFF9F9}

/* ── 기준서 행 ──────────────────────────────────────── */
.rows{border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden;background:#fff}
.row{display:grid;grid-template-columns:112px 1fr auto;gap:8px 14px;padding:12px 14px;border-top:1px solid var(--line-2);align-items:start}
.row:first-child{border-top:none}
.row--ask{background:#FEFAFA}
.row__k{font-size:11.5px;font-weight:800;color:var(--muted);padding-top:3px}
.row__v{font-size:13.5px;font-weight:600;color:var(--ink);letter-spacing:-0.03em;line-height:1.5;min-width:0}
.row__v small{display:block;font-size:12px;font-weight:500;color:var(--muted);margin-top:4px;line-height:1.55}
.row__v input,.row__v textarea{margin-top:6px}

/* ── 타임라인 ───────────────────────────────────────── */
.tl{border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden;background:#fff}
.tlrow{display:grid;grid-template-columns:82px 1fr 92px;gap:12px;padding:11px 13px;border-top:1px solid var(--line-2);align-items:start}
.tlrow:first-child{border-top:none}
.tlrow.is-blocked{background:var(--signal-bg)}
.tlrow.is-locked{background:var(--surface-2)}
.tl__t{font-family:var(--mono);font-size:11px;font-weight:700;color:var(--signal);padding-top:3px}
.tl__b{min-width:0}
.tl__cap{font-size:13.5px;font-weight:700;color:var(--ink);letter-spacing:-0.03em;line-height:1.45}
.tl__cap:empty::before{content:"(비어 있음)";color:var(--muted);font-weight:500}
.tl__v{font-size:11.5px;color:var(--muted);font-weight:500;margin-top:4px;line-height:1.5}
.tl__note{font-size:11.5px;color:var(--signal);font-weight:600;margin-top:4px}
.tl__r{text-align:right;display:flex;flex-direction:column;gap:5px;align-items:flex-end}
.tl__act{font-size:11px;font-weight:700;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:3px 7px}
.tl__act:hover{border-color:var(--ink);color:var(--ink)}

/* ── 훅 그리드 ──────────────────────────────────────── */
.hgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.hcard{border:1px solid var(--line);border-radius:var(--r-sm);padding:13px;text-align:left;background:#fff;transition:.15s}
.hcard:hover:not(:disabled){border-color:var(--ink)}
.hcard.on{border-color:var(--signal);border-width:1.5px;background:#FFFBFB}
.hcard:disabled{opacity:.5;cursor:not-allowed;background:var(--surface-2)}
.hcard__c{font-size:10.5px;font-weight:800;color:var(--muted);font-family:var(--mono)}
.hcard__t{font-size:13px;font-weight:800;color:var(--ink);letter-spacing:-0.035em;margin-top:5px}
.hcard__b{font-size:11.5px;color:var(--muted);font-weight:600;margin-top:4px;line-height:1.5}
.hcard__cap{font-size:12.5px;color:var(--ink-2);font-weight:600;margin-top:8px;line-height:1.5;padding-top:8px;border-top:1px solid var(--line-2)}
.hcard__lock{font-size:11px;color:var(--signal);font-weight:700;margin-top:8px;padding-top:8px;border-top:1px solid var(--line-2)}

/* ── 자막 미리보기 ──────────────────────────────────── */
.subgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:10px}
.sub{border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden;background:#fff;text-align:left;transition:.15s}
.sub:hover{border-color:var(--ink)}
.sub.on{border-color:var(--signal);border-width:1.5px}
.sub__art{
  aspect-ratio:9/16;max-height:190px;background:linear-gradient(150deg,#2E2E2E,#0D0D0D);
  display:flex;align-items:flex-end;justify-content:center;padding:0 10px;position:relative;
}
.sub__cap{font-size:12px;line-height:1.4;text-align:center;max-width:100%;word-break:keep-all}
.sub__safe{position:absolute;inset:0;pointer-events:none}
.sub__safe span{position:absolute;background:rgba(180,35,29,.14);border:1px dashed rgba(180,35,29,.4)}
.sub__m{padding:9px 11px}
.sub__t{font-size:12px;font-weight:800;color:var(--ink)}
.sub__f{font-size:11px;color:var(--muted);font-weight:600;margin-top:2px}

/* ── 채팅 ───────────────────────────────────────────── */
.chat{display:flex;flex-direction:column;height:calc(100vh - 118px);max-height:760px}
.chat__log{flex:1;overflow-y:auto;padding:4px 2px 12px;display:flex;flex-direction:column;gap:10px}
.bub{max-width:82%;font-size:13.5px;line-height:1.6;padding:11px 14px;letter-spacing:-0.025em;word-break:keep-all}
.bub--me{align-self:flex-end;background:var(--ink);color:#fff;border-radius:12px 12px 3px 12px}
.bub--ai{align-self:flex-start;background:var(--surface);border-radius:12px 12px 12px 3px}
.bub--sys{align-self:flex-start;background:var(--ok-bg);border:1px solid var(--ok-line);border-radius:var(--r-sm);font-size:12.5px;max-width:92%}
.bub small{display:block;font-size:11.5px;color:var(--muted);margin-top:6px;font-weight:600}
.chat__in{display:flex;gap:8px;align-items:flex-end;border-top:1px solid var(--line);padding-top:12px;background:#fff}
.chat__in textarea{min-height:42px;max-height:120px}
.chat__hints{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.chat__hint{font-size:11.5px;font-weight:600;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:5px 11px}
.chat__hint:hover{border-color:var(--ink);color:var(--ink)}

/* ── 협업 ───────────────────────────────────────────── */
.cmt{border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 13px;margin-bottom:8px;background:var(--surface-2)}
.cmt--sug{background:#FEFAFA;border-color:var(--signal-line)}
.cmt--sys{background:var(--ok-bg);border-color:var(--ok-line)}
.cmt__h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.cmt__who{font-size:12px;font-weight:800;color:var(--ink)}
.cmt__role{font-size:10.5px;font-weight:800;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:2px 6px}
.cmt__time{font-size:11px;color:var(--muted);font-weight:600;margin-left:auto}
.cmt__b{font-size:13px;line-height:1.6;color:var(--ink-2)}
.cmt__b del{color:var(--muted)}
.cmt__b ins{text-decoration:none;color:var(--ink);font-weight:700;background:#FFF4F3}

/* ── 기타 ───────────────────────────────────────────── */
.empty{padding:34px 18px;text-align:center;color:var(--muted);font-size:13px;font-weight:600}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}
.kv{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid var(--line-2);font-size:12.5px}
.kv:last-child{border-bottom:none}
.kv b{color:var(--ink);font-weight:700;text-align:right}
pre.code{
  font-family:var(--mono);font-size:11.5px;line-height:1.6;background:#101010;color:#E8E8E8;
  padding:14px;border-radius:var(--r-sm);overflow-x:auto;white-space:pre-wrap;word-break:break-all;
}
.toast{
  position:fixed;left:50%;bottom:26px;transform:translateX(-50%);z-index:100;
  background:var(--ink);color:#fff;font-size:12.5px;font-weight:700;
  padding:11px 18px;border-radius:999px;box-shadow:0 6px 22px rgba(0,0,0,.2);
  opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;
}
.toast.on{opacity:1;transform:translateX(-50%) translateY(-4px)}
.toast--err{background:var(--signal)}
.spin{display:inline-block;width:12px;height:12px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:sp .7s linear infinite;vertical-align:-2px;margin-right:6px}
.btn:not(.btn--p) .spin{border-color:rgba(0,0,0,.2);border-top-color:var(--ink)}
@keyframes sp{to{transform:rotate(360deg)}}

@media (max-width:860px){
  .shell{grid-template-columns:1fr}
  /* 상단(로고·프로젝트·새 프로젝트)은 페이지에 그대로 — 단계 목록만 우측 드로어로 */
  .rail{position:static;height:auto;border-right:none;border-bottom:1px solid var(--line)}
  .steps{
    position:fixed;right:0;top:0;bottom:0;z-index:60;width:min(340px,86vw);
    background:#fff;border-left:1px solid var(--line);box-shadow:0 0 40px rgba(0,0,0,.14);
    transform:translateX(105%);transition:transform .25s ease;
    display:grid;grid-template-columns:1fr 1fr;gap:4px;align-content:start;
    overflow-y:auto;padding:18px 12px calc(18px + env(safe-area-inset-bottom));
  }
  .steps.open{transform:none}
  .steps__where,.steps__tools,.steps__lock{grid-column:1 / -1}
  .steps .step{padding:8px 6px;border:1px solid var(--line-2)}
  .step__d{display:none}
  #barMenu{display:grid}
  .pane{padding:16px}
  .row{grid-template-columns:1fr auto}
  .row__k{grid-column:1}
  .row__v{grid-column:1/-1}
  .tlrow{grid-template-columns:70px 1fr;gap:8px}
  .tl__r{grid-column:1/-1;flex-direction:row;justify-content:flex-start}
  .chat{height:auto;min-height:420px}
}

/* ── 미리보기 플레이어 ─────────────────────────────── */
.pv{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:16px;align-items:start}
.pv__stage{
  background:#0A0A0A;border-radius:var(--r-sm);overflow:hidden;
  display:flex;align-items:center;justify-content:center;padding:10px;min-height:320px;
}
.pv__stage canvas{max-width:100%;max-height:min(58vh,520px);display:block;border-radius:4px}
.pv__side .fld{margin-bottom:13px}
.pv__side .chip{font-size:11.5px;padding:6px 11px}

.pv__strip{
  display:flex;gap:6px;margin-top:14px;overflow-x:auto;padding-bottom:4px;
  scrollbar-width:thin;
}
.pv__cell{
  flex:none;min-width:78px;border:1px solid var(--line);border-radius:var(--r-sm);
  padding:8px 10px;text-align:left;background:#fff;transition:.15s;
}
.pv__cell:hover{border-color:var(--ink)}
.pv__cell.on{border-color:var(--signal);border-width:1.5px;background:#FFFBFB}
.pv__cellRole{display:block;font-size:10px;font-weight:800;color:var(--muted);letter-spacing:.02em}
.pv__cell.on .pv__cellRole{color:var(--signal)}
.pv__cellT{display:block;font-size:12px;font-weight:700;color:var(--ink);margin-top:3px;font-variant-numeric:tabular-nums}
.pv__cellNo{display:block;font-size:10px;font-weight:700;color:var(--signal);margin-top:3px}

@media (max-width:820px){
  .pv{grid-template-columns:1fr}
  .pv__stage{min-height:240px}
  .pv__stage canvas{max-height:46vh}
}

/* ── 채팅 제안 갈림길 ─────────────────────────────── */
.ask{
  margin-top:11px;padding:11px 12px;border-radius:var(--r-sm);
  border:1px solid var(--signal-line);background:var(--signal-bg);
}
.ask__t{font-size:12px;font-weight:800;color:var(--signal);letter-spacing:-0.03em}
.ask__l{margin:7px 0 0 16px;padding:0}
.ask__l li{font-size:12.5px;color:var(--ink-2);line-height:1.55;margin-bottom:3px}
.ask__b{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}
.bub--me .ask{border-color:rgba(255,255,255,.3);background:rgba(255,255,255,.1)}

/* ── 전환 점수 ─────────────────────────────────────── */
.cv{border:1px solid var(--line);border-radius:var(--r-sm);padding:11px 13px;margin-bottom:12px;background:var(--surface-2)}
.cv__head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.cv__score{font-size:21px;font-weight:800;letter-spacing:-0.04em}
.cv__score small{font-size:11px;font-weight:700;color:var(--muted);margin-left:3px}
.cv--a{color:var(--ok)} .cv--b{color:var(--ink)} .cv--c{color:var(--signal)}
.cv__axes{display:flex;gap:8px;flex-wrap:wrap;font-size:11px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}
.cv__fixes{margin-top:8px;padding-top:8px;border-top:1px solid var(--line-2);font-size:12px;color:var(--ink-2);line-height:1.6}
.cv__fixes div::before{content:"↑ ";color:var(--ok);font-weight:800}

/* ── 하단 플로팅 액션 바 — 시작 화면의 "기준서 만들기" ── */
.fab{
  position:fixed;left:0;right:0;bottom:0;z-index:40;
  display:flex;align-items:center;justify-content:center;gap:12px;
  padding:12px 16px calc(12px + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.94);backdrop-filter:blur(8px);
  border-top:1px solid var(--line);
}
.fab__main{flex:1;max-width:560px;padding:15px 20px;font-size:15.5px;border-radius:12px}
.pane--fab{padding-bottom:100px}

@media(max-width:640px){ .bar__right .bar__s{display:none} }   /* 좁은 화면에선 배지를 숨겨 중앙 제목을 지킨다 */

/* 드로어 배경 — 탭하면 닫힌다 */
.scrim{display:none;position:fixed;inset:0;background:rgba(15,15,15,.32);z-index:55}
.scrim.on{display:block}

.prog__t{transition:opacity .18s ease}
.prog__fill{transition:width .5s ease}

/* 레퍼런스 선택 — 한 행으로 두고 좌우 스와이프 (세로로 쌓이면 화면을 다 먹는다) */
.hswipe{
  display:flex;gap:10px;overflow-x:auto;padding:2px 2px 10px;
  scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
}
.hswipe::-webkit-scrollbar{height:6px}
.hswipe::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}
.hswipe .hcard{flex:0 0 236px;scroll-snap-align:start}
@media (max-width:860px){ .hswipe .hcard{flex-basis:210px} }


/* ── 로그인 ───────────────────────────────────────────── */
/* 계정 — 이름 전체는 자리를 많이 먹는다. 첫 글자만 동그라미로 두고
   전체 주소는 title 로 붙인다(눌러서 로그아웃). */
.who{
  width:28px;height:28px;flex:none;border-radius:50%;
  border:1px solid var(--line);background:var(--surface-2);color:var(--ink-2);
  font:inherit;font-size:12px;font-weight:800;line-height:1;text-transform:uppercase;
  display:grid;place-items:center;cursor:pointer;transition:background .12s,color .12s;
}
.who:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.who--out{font-size:10px;font-weight:700;width:auto;padding:0 10px;border-radius:999px;text-transform:none}
.lgn__ov{
  position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:20px;
  background:rgba(12,12,14,.55);backdrop-filter:blur(6px);
}
.lgn{
  width:100%;max-width:360px;background:var(--surface);border:1px solid var(--line);
  border-radius:18px;padding:26px 22px;text-align:center;
  box-shadow:0 24px 60px rgba(0,0,0,.28);
}
.lgn__h{font-size:19px;font-weight:800;letter-spacing:-0.04em;color:var(--ink)}
.lgn__s{margin-top:8px;font-size:13px;line-height:1.6;color:var(--muted);word-break:keep-all}
.lgn__in{
  width:100%;margin-top:18px;padding:12px 14px;font:inherit;font-size:15px;
  border:1px solid var(--line);border-radius:10px;background:var(--surface-2);color:var(--ink);
}
.lgn__in:focus{outline:none;border-color:var(--ink)}
.lgn__b{
  width:100%;margin-top:10px;padding:12px;font:inherit;font-size:14px;font-weight:800;
  border:0;border-radius:10px;background:var(--ink);color:var(--surface);cursor:pointer;
}
.lgn__b:disabled{opacity:.5;cursor:default}
.lgn__m{margin-top:10px;font-size:12px;color:#c0392b;min-height:16px}
.lgn__x{
  margin-top:6px;border:0;background:transparent;color:var(--muted);
  font:inherit;font-size:12px;text-decoration:underline;cursor:pointer;
}


/* ── 브랜드 스위처 ────────────────────────────────────
   브랜드는 기준서를 공유하는 단위. 프로젝트보다 위에 있으므로 레일 맨 위에 둔다. */
.bswitch{position:relative;margin-top:10px}
.bswitch__btn{
  width:100%;display:flex;align-items:center;gap:9px;text-align:left;
  border:1px solid var(--line);border-radius:var(--r-md);background:#fff;padding:8px 10px;
}
.bswitch__btn:hover{border-color:var(--ink)}
.bswitch__btn:focus-visible{outline:2px solid var(--signal);outline-offset:2px}
.bswitch__mark{
  width:23px;height:23px;border-radius:var(--r-sm);flex:none;display:grid;place-items:center;
  background:var(--ink);color:#fff;font-size:10px;font-weight:800;letter-spacing:-0.02em;
}
.bswitch__txt{flex:1;min-width:0}
.bswitch__nm{
  display:block;font-size:12.5px;font-weight:700;color:var(--ink);letter-spacing:-0.03em;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.bswitch__sub{display:block;font-family:var(--mono);font-size:9.5px;color:var(--muted)}
.bswitch__cv{flex:none;color:var(--muted);font-size:10px}

.bmenu{
  position:absolute;left:0;right:0;top:calc(100% + 5px);z-index:30;
  background:#fff;border:1px solid var(--line);border-radius:var(--r-md);
  box-shadow:0 12px 30px rgba(0,0,0,.13);padding:5px;display:none;
}
.bmenu.on{display:block}
.bmenu__i{
  width:100%;display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:var(--r-sm);
  text-align:left;
}
.bmenu__i:hover,.bmenu__i[aria-current="true"]{background:var(--surface)}
.bmenu__i .nm{flex:1;font-size:12.5px;font-weight:600;color:var(--ink);letter-spacing:-0.03em;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bmenu__i .ct{font-family:var(--mono);font-size:9.5px;color:var(--muted)}
.bmenu__i .tick{width:12px;font-size:11px;color:var(--ink);flex:none}
.bmenu__sep{height:1px;background:var(--line-2);margin:5px 0}
.bmenu__add{
  width:100%;display:flex;align-items:center;gap:7px;padding:7px 8px;border-radius:var(--r-sm);
  text-align:left;font-size:12px;font-weight:700;color:var(--signal);letter-spacing:-0.03em;
}
.bmenu__add:hover{background:var(--surface)}
.bmenu__add small{font-weight:500;color:var(--muted);font-size:10.5px;letter-spacing:0}

/* ── 프로젝트 목록 ────────────────────────────────── */
.plist{padding:11px 9px 9px;display:flex;flex-direction:column;gap:2px}
.plist__lbl{
  padding:0 6px 6px;font-family:var(--mono);font-size:9.5px;font-weight:500;
  letter-spacing:0.1em;text-transform:uppercase;color:var(--muted);
  display:flex;justify-content:space-between;align-items:center;
}
.pitem{
  display:flex;align-items:center;gap:8px;padding:8px 7px;border-radius:7px;
  text-align:left;width:100%;
}
.pitem:hover{background:var(--surface-2)}
.pitem[aria-current="true"]{background:var(--surface);box-shadow:inset 0 0 0 1px var(--line)}
.pitem__k{
  font-family:var(--mono);font-size:9px;font-weight:500;color:var(--muted);
  border:1px solid var(--line);border-radius:4px;padding:1px 4px;flex:none;
}
.pitem__t{
  flex:1;min-width:0;font-size:12.5px;font-weight:500;color:var(--ink-2);
  letter-spacing:-0.03em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.pitem[aria-current="true"] .pitem__t{font-weight:700;color:var(--ink)}
.pitem__s{width:6px;height:6px;border-radius:50%;flex:none}
.s--live{background:var(--ok)}
.s--draft{background:#D8D8D8}
.pnew{
  margin:7px 7px 0;padding:8px;border:1px dashed var(--line);border-radius:7px;
  font-size:12px;font-weight:700;color:var(--ink-2);letter-spacing:-0.03em;
}
.pnew:hover{border-color:var(--ink);color:var(--ink)}

.shared{
  font-family:var(--mono);font-size:8.5px;line-height:1.7;color:var(--ok);
  border:1px solid var(--ok-line);background:var(--ok-bg);border-radius:3px;
  padding:0 4px;flex:none;align-self:center;white-space:nowrap;
}
.step.on .shared{color:#fff;border-color:rgba(255,255,255,.45);background:transparent}

/* 새 프로젝트 — 기준서를 다시 만들지 않는다는 사실을 가장 먼저 보여 준다 */
.reuse{
  border:1px solid var(--ok-line);background:var(--ok-bg);border-radius:var(--r-md);
  padding:12px 13px;display:flex;gap:9px;align-items:flex-start;margin-bottom:18px;
}
.reuse__ic{color:var(--ok);font-size:13px;line-height:1.4;flex:none}
.reuse b{display:block;font-size:12.5px;font-weight:700;color:var(--ok);letter-spacing:-0.03em}
.reuse span span,.reuse>span>span{font-size:12px;color:var(--ink-2);line-height:1.6}


/* 레퍼런스 추가 — 이미 분석한 게 있으면 폼 대신 이 버튼만 둔다 */
.bmadd{
  width:100%;display:flex;align-items:center;gap:10px;
  border:1px dashed var(--line);border-radius:var(--r-lg);background:#fff;
  padding:14px 16px;margin-bottom:18px;text-align:left;
  transition:border-color .15s,background .15s;
}
.bmadd:hover{border-color:var(--ink);background:var(--surface-2)}
.bmadd:focus-visible{outline:2px solid var(--signal);outline-offset:2px}
.bmadd__p{
  width:24px;height:24px;border-radius:50%;flex:none;display:grid;place-items:center;
  background:var(--surface);color:var(--ink);font-size:13px;font-weight:700;line-height:1;
}
.bmadd__t{flex:1;font-size:13.5px;font-weight:700;color:var(--ink);letter-spacing:-0.035em}
.bmadd__a{flex:none;color:var(--muted);font-size:12px;transition:transform .18s}
.bmadd--open .bmadd__a{transform:rotate(90deg)}
.bmadd--open{border-style:solid;border-color:var(--ink)}


/* 발행된 결과 — 이 프로젝트가 이미 만들어 낸 것. 화면 맨 위에 온다 */
.pubcard{
  border:1px solid var(--line);border-radius:var(--r-lg);background:#fff;
  padding:14px 15px;margin-bottom:20px;
}
.pub__h{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.pub__k{
  font-family:var(--mono);font-size:9.5px;font-weight:500;letter-spacing:0.08em;
  color:var(--ok);border:1px solid var(--ok-line);background:var(--ok-bg);
  border-radius:3px;padding:1px 5px;
}
.pub__t{font-size:14.5px;font-weight:800;color:var(--ink);letter-spacing:-0.04em}
.pub__go{
  margin-left:auto;font-size:12.5px;font-weight:700;color:var(--signal);
  letter-spacing:-0.03em;white-space:nowrap;
}
.pub__go:hover{text-decoration:underline}
.pub__c{
  margin-top:8px;font-size:12.5px;color:var(--ink-2);line-height:1.55;word-break:keep-all;
}
.pub__l{margin-top:11px;border-top:1px solid var(--line-2)}
.pub__i{
  display:flex;align-items:center;gap:9px;padding:7px 0;border-bottom:1px solid var(--line-2);
}
.pub__i:last-child{border-bottom:0}
.pub__n{font-family:var(--mono);font-size:10px;color:var(--muted);flex:none}
.pub__nm{
  flex:1;min-width:0;font-size:13px;font-weight:600;color:var(--ink);letter-spacing:-0.035em;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.pub__s{
  font-family:var(--mono);font-size:12.5px;font-weight:600;color:var(--ink);flex:none;
  font-variant-numeric:tabular-nums;
}
.pub__s small{font-size:9.5px;color:var(--muted);font-weight:400}
.pub__u{
  margin-top:10px;padding-top:9px;border-top:1px solid var(--line-2);
  font-family:var(--mono);font-size:10.5px;color:var(--muted);
  overflow-wrap:anywhere;line-height:1.5;
}

/* 아래쪽 전체 내용은 접어 둔다 — 같은 시안이 두 번 길게 나오면 둘 다 안 읽힌다 */
.cpfold{margin-top:10px}
.cpfold__s{
  list-style:none;cursor:pointer;padding:11px 14px;border:1px dashed var(--line);
  border-radius:var(--r-md);font-size:12.5px;font-weight:700;color:var(--ink-2);
  letter-spacing:-0.03em;
}
.cpfold__s::-webkit-details-marker{display:none}
.cpfold__s:hover{border-color:var(--ink);color:var(--ink)}
.cpfold[open] .cpfold__s{margin-bottom:12px}

/* ── 발행 시안 카드 — 보드와 같은 모양. 접혀 있고 누르면 장면까지 펼쳐진다 ── */
.props{display:flex;flex-direction:column;gap:10px;margin-bottom:22px}
.prop{border:1px solid var(--line);border-radius:var(--r-lg);background:#fff;overflow:hidden}
.prop__bar{
  list-style:none;cursor:pointer;padding:13px 15px;
  display:grid;grid-template-columns:auto 1fr auto auto;gap:9px;align-items:center;
  transition:background .12s;
}
.prop__bar::-webkit-details-marker{display:none}
.prop__bar:hover{background:var(--surface-2)}
.prop[open] .prop__bar{border-bottom:1px solid var(--line-2)}
.prop__n{font-family:var(--mono);font-size:10px;font-weight:600;color:var(--signal);letter-spacing:0.06em}
.prop__t{font-size:13.5px;font-weight:800;color:var(--ink);letter-spacing:-0.04em;min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.prop__sc{font-size:15px;font-weight:800;letter-spacing:-0.04em;font-variant-numeric:tabular-nums;white-space:nowrap}
.prop__sc small{font-size:9.5px;font-weight:500;color:var(--muted);letter-spacing:0}
.prop__sc--a{color:var(--ok)}
.prop__sc--b{color:var(--ink)}
.prop__sc--c{color:var(--signal)}
.prop__i{width:12px;height:12px;position:relative}
.prop__i::before,.prop__i::after{
  content:'';position:absolute;left:50%;top:50%;background:var(--muted);
  width:10px;height:1.8px;border-radius:1px;transform:translate(-50%,-50%);transition:transform .18s;
}
.prop__i::after{transform:translate(-50%,-50%) rotate(90deg)}
.prop[open] .prop__i::after{transform:translate(-50%,-50%) rotate(0deg)}
.prop__w{
  grid-column:1 / -1;font-size:12px;color:var(--muted);line-height:1.55;
  word-break:keep-all;margin-top:-2px;
}
.prop__body{padding:4px 15px 13px}
.prop__sc-row{padding:9px 0;border-bottom:1px solid var(--line-2)}
.prop__sc-row:last-child{border-bottom:0}
.prop__role{
  font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:0.06em;
  border-radius:3px;padding:1px 5px;border:1px solid;
}
.prop__role--h{color:var(--signal);border-color:var(--signal-line);background:var(--signal-bg)}
.prop__role--c{color:var(--ok);border-color:var(--ok-line);background:var(--ok-bg)}
.prop__role--b{color:var(--muted);border-color:var(--line);background:var(--surface-2)}
.prop__kind{font-family:var(--mono);font-size:9px;color:var(--muted);margin-left:5px}
.prop__cap{font-size:13.5px;font-weight:700;color:var(--ink);letter-spacing:-0.035em;
  line-height:1.5;margin-top:5px;word-break:keep-all}
.prop__ov{font-size:11.5px;color:var(--ink-2);margin-top:3px;line-height:1.5}
.prop__ov b{font-family:var(--mono);font-size:9px;color:var(--signal)}
.prop__vis{font-size:11.5px;color:var(--muted);margin-top:3px;line-height:1.5;word-break:keep-all}


/* 입력부 제목 — 이 화면에서 사람이 할 일이 무엇인지 한 줄로 */
.pane h3.askq{
  font-size:clamp(20px,4.6vw,23px);font-weight:800;color:var(--ink);
  letter-spacing:-0.05em;margin:30px 0 14px;line-height:1.3;
}

/* 두 갈래 사이의 구분 — 자유 요청과 골라서 만들기는 같은 일의 다른 길이다 */
.orbar{display:flex;align-items:center;gap:12px;margin:18px 0}
.orbar::before,.orbar::after{content:'';flex:1;height:1px;background:var(--line)}
.orbar span{
  font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:0.1em;
  text-transform:uppercase;color:var(--muted);white-space:nowrap;
}
.btn--ghost{border:1px solid var(--line);background:transparent;color:var(--muted);font-weight:600}
.btn--ghost:hover{border-color:var(--signal);color:var(--signal)}
#sBrief{min-height:96px;line-height:1.6}


/* 자유 요청 입력 — 카드로 한 번 더 감싸지 않는다.
   흰 칸 안의 흰 칸은 경계가 두 겹이라 어디에 쓰는지가 흐려진다. */
.brief{margin-bottom:14px}
#sBrief{
  min-height:118px;line-height:1.65;font-weight:500;
  font-size:16px;letter-spacing:-0.02em;padding:14px 15px;border-radius:var(--r-md);
}
#sBrief::placeholder{color:var(--muted);font-weight:500}
.brief__h{
  margin:9px 2px 14px;font-size:12.5px;color:var(--muted);
  line-height:1.6;word-break:keep-all;
}
.brief__h b{color:var(--ink-2);font-weight:700}


/* 카드뉴스 덱 — 컷을 옆으로 넘겨 본다. 세로로 쌓으면 8컷이 한 화면을 다 먹는다 */
.deck{display:flex;gap:9px;overflow-x:auto;padding:2px 0 8px;scroll-snap-type:x mandatory}
.cut{
  flex:0 0 158px;scroll-snap-align:start;aspect-ratio:4/5;
  border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2);
  padding:11px 12px;display:flex;flex-direction:column;gap:6px;position:relative;
}
.cut--cover{border-color:var(--ink);background:#fff}
.cut__no{
  position:absolute;top:7px;right:9px;font-family:var(--mono);font-size:9px;color:var(--muted);
}
.cut__top{font-size:12.5px;font-weight:800;color:var(--ink);letter-spacing:-0.04em;
  line-height:1.4;word-break:keep-all;padding-right:24px}
.cut__art{font-size:10.5px;color:var(--muted);line-height:1.5;flex:1;word-break:keep-all}
.cut__bot{font-size:11.5px;font-weight:600;color:var(--ink-2);letter-spacing:-0.03em;
  line-height:1.45;word-break:keep-all}


/* 번호 없는 도구 — 순서를 따라가는 단계와 성격이 다르므로 한 줄로 분리한다 */
.steps__tools{display:flex;gap:6px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line-2)}
.tool{
  flex:1;min-width:0;padding:9px 4px;border:1px solid var(--line);border-radius:999px;
  font-size:11.5px;font-weight:700;color:var(--muted);letter-spacing:-0.035em;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  transition:background .15s,color .15s,border-color .15s;
}
.tool:hover:not(:disabled){color:var(--ink);border-color:var(--ink)}
.tool.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.tool:disabled{opacity:.4;cursor:not-allowed}


/* 드로어 맨 위 — 지금 어느 브랜드의 어느 프로젝트를 보고 있나 */
.steps__where{
  padding:2px 4px 12px;margin-bottom:10px;border-bottom:1px solid var(--line-2);
  font-size:12.5px;font-weight:700;color:var(--ink);letter-spacing:-0.035em;
  line-height:1.45;word-break:keep-all;
}
/* 잠긴 도구의 사유 — ? 를 눌렀을 때만 편다.
   늘 펴 두면 세 줄짜리 안내가 매번 자리를 차지한다. */
.steps__lock{
  margin-top:9px;font-size:11.5px;color:var(--ink-2);line-height:1.6;
  word-break:keep-all;padding:9px 11px;
  border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2);
}
.tool--lock{gap:4px;display:inline-flex;align-items:center;justify-content:center}
.tool__lk{flex:none;margin-right:1px;opacity:.75}
.tool__q{
  flex:none;width:30px;height:30px;align-self:center;border-radius:50%;
  border:1px solid var(--line);background:#fff;color:var(--muted);
  font-size:12px;font-weight:800;line-height:1;
}
.tool__q:hover{border-color:var(--ink);color:var(--ink)}
.tool__q--on{background:var(--ink);color:#fff;border-color:var(--ink)}
.tool__q:focus-visible{outline:2px solid var(--signal);outline-offset:2px}

/* ── 모션 영상 ────────────────────────────────────────
   캔버스는 1080×1920 로 그리고 화면에는 줄여서 보여 준다.
   실제 출력 해상도로 그려야 저장한 파일이 그대로 릴스에 올라간다. */
.mv{display:grid;grid-template-columns:minmax(0,240px) minmax(0,1fr);gap:18px;align-items:start}
.mv__stage{
  background:#000;border-radius:var(--r-md);overflow:hidden;
  border:1px solid var(--line);line-height:0;
}
.mv__cv{width:100%;height:auto;display:block}
.mv__side{display:flex;flex-direction:column;gap:10px;min-width:0}
.mv__meta{display:flex;flex-direction:column;gap:2px}
.mv__meta b{font-size:14px;font-weight:800;color:var(--ink);letter-spacing:-0.04em}
.mv__meta span{font-family:var(--mono);font-size:11px;color:var(--muted)}
.mv__list{margin-top:6px;border-top:1px solid var(--line-2)}
.mv__row{
  display:grid;grid-template-columns:24px minmax(0,1fr);gap:8px;
  padding:9px 0;border-bottom:1px solid var(--line-2);
}
.mv__n{font-family:var(--mono);font-size:10px;color:var(--muted);padding-top:2px}
.mv__t{font-size:13px;font-weight:600;color:var(--ink);letter-spacing:-0.035em;
  line-height:1.45;word-break:keep-all}
.mv__w{
  grid-column:2;font-size:11.5px;color:var(--signal);line-height:1.45;
  word-break:keep-all;margin-top:2px;
}
.mv__w--hold{color:var(--muted)}
.mv__empty{
  display:flex;flex-wrap:wrap;align-items:center;gap:10px;
  border:1px dashed var(--line);border-radius:var(--r-md);padding:16px;
}
@media (max-width:700px){
  .mv{grid-template-columns:1fr}
  .mv__stage{max-width:230px;margin:0 auto}
}


/* 모션 요청 — 무엇을 만들지 먼저 묻는다 */
.mvq{border:1px solid var(--line);border-radius:var(--r-md);background:#fff;padding:16px}
.mvq__k{font-size:13px;font-weight:700;color:var(--ink);letter-spacing:-0.035em;margin-bottom:8px}
#mvBrief{min-height:88px;line-height:1.6;font-size:16px}
.mvq__h{margin-top:8px;font-size:12.5px;color:var(--muted);line-height:1.6;word-break:keep-all}

/* 제작 중 — 스피너 대신 실제 모션. 만드는 물건이 모션이므로. */
.mvl{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.mvl__cv{width:150px;height:auto;border-radius:var(--r-md);border:1px solid var(--line);display:block}
.mvl__side{flex:1;min-width:180px}
.mvl__t{
  font-size:14.5px;font-weight:700;color:var(--ink);letter-spacing:-0.04em;
  transition:opacity .18s;line-height:1.5;word-break:keep-all;
}
.mvl__bar{margin-top:12px;height:3px;background:var(--line);border-radius:2px;overflow:hidden}
.mvl__fill{height:100%;width:16%;background:var(--signal);transition:width .5s ease}
.mvl__n{margin-top:7px;font-family:var(--mono);font-size:10.5px;color:var(--muted)}
.mv__brief{
  font-size:12px;color:var(--ink-2);line-height:1.55;word-break:keep-all;
  border-left:0;border:1px solid var(--line);border-radius:var(--r-sm);
  padding:8px 10px;background:var(--surface-2);
}
@media (prefers-reduced-motion: reduce){ .mvl__cv{opacity:.6} }


/* 모션 화면 방식 — 가장 큰 갈림길이라 눌러서 고르게 둔다.
   색·속도 같은 세부는 요청 문단이 맡는다(칸을 두 개 두면 어느 쪽이 이기는지 모른다). */
.mvsty{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.mvsty__b{
  border:1px solid var(--line);border-radius:var(--r-md);background:#fff;
  padding:12px 13px;text-align:left;transition:border-color .15s,background .15s;
}
.mvsty__b b{display:block;font-size:13.5px;font-weight:800;color:var(--ink);letter-spacing:-0.035em}
.mvsty__b span{
  display:block;margin-top:4px;font-size:11.5px;color:var(--muted);
  line-height:1.5;word-break:keep-all;
}
.mvsty__b:hover{border-color:var(--ink)}
.mvsty__b.on{border-color:var(--ink);background:var(--surface);box-shadow:inset 0 0 0 1px var(--ink)}
@media (max-width:480px){ .mvsty{grid-template-columns:1fr} }

/* 결과 화면에서는 좁게 — 이미 만든 것 옆에 붙는다 */
.mvsty--sm{margin-top:4px}
.mvsty--sm .mvsty__b{padding:9px 11px}
.mvsty--sm .mvsty__b b{font-size:12.5px}
.mvsty--sm .mvsty__b span{font-size:11px;margin-top:2px}

/* ── 화면 재료 격자(STEP 00) — 켜고 끄는 층 ───────────── */
.swatches{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.swatch{width:34px;height:34px;border-radius:9px;border:1px solid var(--line);flex:none}
.agrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}
.ath{
  position:relative;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;
  background:var(--surface-2);aspect-ratio:4/3;padding:0;text-align:left;
  transition:border-color .15s,opacity .15s;
}
.ath img{width:100%;height:100%;object-fit:cover;display:block}
.ath__l{
  position:absolute;left:6px;bottom:6px;font-size:10.5px;font-weight:700;color:#fff;
  background:rgba(0,0,0,.55);border-radius:5px;padding:2px 7px;letter-spacing:-0.02em;
}
.ath__s{
  position:absolute;right:6px;top:6px;font-family:var(--mono);font-size:9px;font-weight:600;
  color:#fff;background:var(--ok);border-radius:4px;padding:2px 6px;
}
.ath--off{opacity:.45;border-style:dashed}
.ath--off img{filter:grayscale(1)}
.ath--off .ath__s{background:var(--muted)}
.ath:hover{border-color:var(--ink)}

/* 템플릿 카드 — 카탈로그(구현된 것)만 고를 수 있는 선택지 */
.mvtpl{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px;max-width:620px}
.mvtpl__c{
  border:1px solid var(--line);border-radius:var(--r-md);background:#fff;
  padding:11px 12px;text-align:left;transition:border-color .15s,background .15s;cursor:pointer;
}
.mvtpl__c b{display:block;font-size:13.5px;font-weight:700}
.mvtpl__c span{display:block;font-size:11.5px;color:var(--muted);line-height:1.45;margin-top:3px}
.mvtpl__c.on{border-color:var(--ink);background:var(--surface);box-shadow:inset 0 0 0 1px var(--ink)}

/* 스토리 챕터 바 — 재생 화면 아래. 누르면 그 단계로 이동 */
.mvch{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}
.mvch__b{
  border:1px solid var(--line);border-radius:999px;background:#fff;
  padding:7px 15px;font-size:12.5px;font-weight:700;color:var(--ink);cursor:pointer;
}
.mvch__b.on{background:var(--ink);color:#fff;border-color:var(--ink)}
