:root { --ink:#171717; --muted:#77736e; --line:#e8e4df; --paper:#fbfaf8; --accent:#7057ff; --accent2:#ff7657; --mint:#dff7e9; }
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; background:var(--paper); color:var(--ink); font-family:-apple-system,BlinkMacSystemFont,"Pretendard","Segoe UI",sans-serif; }
button,input { font:inherit; }
button { cursor:pointer; }
#app { width:min(100%, 480px); min-height:100vh; margin:0 auto; padding:24px 20px 40px; }
.brand { display:flex; align-items:center; gap:10px; font-weight:900; font-size:20px; letter-spacing:-1px; }
.brand-mark { display:grid; place-items:center; width:36px; height:36px; border-radius:12px; color:white; background:var(--ink); }
.eyebrow { margin:54px 0 10px; color:var(--accent); font-size:13px; font-weight:800; letter-spacing:.08em; }
h1 { margin:0; font-size:34px; line-height:1.13; letter-spacing:-1.6px; }
.lead { margin:14px 0 28px; color:var(--muted); font-size:16px; line-height:1.55; }
.grid { display:grid; gap:12px; }
.genre { position:relative; display:grid; grid-template-columns:48px 1fr auto; align-items:center; width:100%; padding:17px; border:1px solid var(--line); border-radius:20px; background:white; text-align:left; box-shadow:0 4px 16px rgba(28,20,16,.03); }
.genre:not(:disabled):hover { border-color:var(--accent); transform:translateY(-1px); }
.genre:disabled { opacity:.55; cursor:not-allowed; }
.genre-icon { display:grid; place-items:center; width:40px; height:40px; border-radius:13px; background:#f2efff; font-size:21px; }
.genre strong { display:block; font-size:16px; }
.genre small { display:block; margin-top:4px; color:var(--muted); line-height:1.35; }
.soon { padding:5px 8px; border-radius:999px; background:#eeeae5; color:#6c6862; font-size:9px; font-weight:900; letter-spacing:.05em; }
.arrow { color:var(--accent); font-size:20px; }
.topbar { display:flex; justify-content:space-between; align-items:center; min-height:38px; }
.back { border:0; background:none; padding:8px 0; font-weight:700; }
.step { color:var(--muted); font-size:13px; font-weight:700; }
.progress { height:5px; margin:18px 0 42px; overflow:hidden; border-radius:5px; background:#e9e5e0; }
.progress > i { display:block; height:100%; border-radius:5px; background:linear-gradient(90deg,var(--accent),#9c83ff); transition:width .25s; }
.count-row { display:flex; justify-content:center; align-items:center; gap:28px; margin:48px 0; }
.count-btn { width:54px; height:54px; border:1px solid var(--line); border-radius:18px; background:white; font-size:25px; }
.count { min-width:90px; text-align:center; font-size:56px; font-weight:900; }
.count small { display:block; margin-top:-5px; color:var(--muted); font-size:14px; font-weight:600; }
.primary { width:100%; min-height:56px; border:0; border-radius:17px; background:var(--ink); color:white; font-weight:850; }
.primary:disabled { background:#c9c5c0; cursor:not-allowed; }
.invite-card { margin:28px 0; padding:24px; border-radius:24px; background:var(--ink); color:white; }
.invite-card .people { display:flex; gap:8px; margin:22px 0; }
.avatar { display:grid; place-items:center; width:42px; height:42px; border-radius:50%; background:#373737; color:#aaa; font-size:13px; font-weight:800; }
.avatar.host { background:var(--accent); color:white; }
.linkbox { display:flex; gap:8px; margin-top:20px; }
.linkbox input { min-width:0; flex:1; border:0; border-radius:12px; padding:12px; background:#2c2c2c; color:#d6d6d6; }
.linkbox button { border:0; border-radius:12px; padding:0 14px; background:white; font-weight:800; }
.note { padding:13px 15px; border-radius:14px; background:#f1eee9; color:#6e6962; font-size:12px; line-height:1.5; }
.input { width:100%; margin:26px 0 16px; padding:18px; border:1px solid var(--line); border-radius:16px; outline:none; background:white; font-size:18px; }
.input:focus { border-color:var(--accent); box-shadow:0 0 0 3px #7057ff18; }
.question { margin-top:12px; }
.question h1 { min-height:84px; }
.options { display:grid; gap:12px; margin:34px 0; }
.option { min-height:62px; padding:0 18px; border:1px solid var(--line); border-radius:17px; background:white; text-align:left; font-weight:750; }
.option.selected { border-color:var(--accent); background:#f2efff; color:#5338e8; box-shadow:0 0 0 2px #7057ff20; }
.privacy { display:flex; gap:9px; align-items:flex-start; margin-top:18px; color:var(--muted); font-size:12px; line-height:1.45; }
.agent-stage { margin-top:34px; text-align:center; }
.agents { position:relative; height:175px; }
.agent { position:absolute; display:grid; place-items:center; width:64px; height:64px; border-radius:23px; background:white; border:1px solid var(--line); box-shadow:0 8px 30px #241c1720; font-size:26px; animation:float 1.8s ease-in-out infinite alternate; }
.agent:nth-child(1){left:20%;top:10px}.agent:nth-child(2){right:20%;top:15px;animation-delay:.3s}.agent:nth-child(3){left:42%;top:94px;animation-delay:.6s}
@keyframes float { to { transform:translateY(-9px) rotate(2deg); } }
.agent-stage h2 { margin:0 0 8px; font-size:24px; }
.dots::after { content:' '; animation:dots 1.4s steps(4,end) infinite; }
@keyframes dots { 0%{content:''}25%{content:'.'}50%{content:'..'}75%,100%{content:'...'} }
.result-badge { display:inline-flex; gap:6px; margin-top:38px; padding:7px 10px; border-radius:999px; background:var(--mint); color:#177443; font-size:11px; font-weight:900; }
.result-title { margin-top:18px; font-size:38px; }
.result-card { margin:25px 0; padding:20px; border:1px solid var(--line); border-radius:22px; background:white; }
.result-card h3 { margin:0 0 16px; }
.reason { display:flex; gap:10px; padding:12px 0; border-top:1px solid #eeeae5; color:#4e4a45; font-size:14px; line-height:1.45; }
.reason:first-of-type { border-top:0; }
.check { color:#1b9a5a; font-weight:900; }
.secondary { width:100%; margin-top:10px; min-height:50px; border:1px solid var(--line); border-radius:16px; background:white; font-weight:750; }
#toast { position:fixed; left:50%; bottom:24px; z-index:5; transform:translate(-50%,20px); padding:11px 16px; border-radius:12px; background:var(--ink); color:white; font-size:13px; opacity:0; pointer-events:none; transition:.2s; }
#toast.show { opacity:1; transform:translate(-50%,0); }
@media(min-width:700px){ body{background:#ebe7e2} #app{background:var(--paper);box-shadow:0 0 60px #2c241d14} }

/* ===== 목업 확장 (2026-09-04, 페이블) ===== */
.mock-badge { position:absolute; top:10px; left:10px; z-index:6; padding:5px 9px; border-radius:999px; background:#ff7657; color:white; font-size:10px; font-weight:900; letter-spacing:.05em; }
.panel { position:fixed; right:12px; bottom:12px; z-index:7; width:250px; padding:12px; border-radius:16px; background:#171717; color:#eee; font-size:12px; box-shadow:0 10px 40px #0006; }
.panel h4 { margin:0 0 8px; font-size:12px; color:#ff9f85; letter-spacing:.05em; }
.panel .row { display:flex; flex-wrap:wrap; gap:5px; margin-bottom:6px; }
.panel button { border:0; border-radius:8px; padding:6px 8px; background:#2c2c2c; color:#eee; font-size:11px; font-weight:700; }
.panel button:hover { background:#444; }
.panel button.on { background:var(--accent); }
.panel .clock { margin-bottom:8px; font-family:ui-monospace,monospace; color:#9c83ff; }
.panel.min { width:auto; padding:8px 10px; }
#app { padding-bottom:140px; }
.panel.min > *:not(h4) { display:none; }
.eyebrow.small { margin-top:20px; }
.lead.tight { margin:10px 0 18px; }
.promise { margin-top:8px; color:#177443; font-size:14px; font-weight:700; }
.chips { display:flex; flex-wrap:wrap; gap:8px; margin:14px 0; }
.chip { padding:8px 12px; border:1px solid var(--line); border-radius:999px; background:white; font-size:13px; font-weight:700; }
.chip.selected { border-color:var(--accent); background:#f2efff; color:#5338e8; }
.chip.warn { border-color:#ff7657; color:#c2410c; background:#fff3ef; }
.field { margin:16px 0; }
.field label { display:block; margin-bottom:8px; color:var(--muted); font-size:13px; font-weight:700; }
.toggle { display:flex; align-items:center; gap:10px; margin-top:14px; padding:12px 14px; border:1px solid var(--line); border-radius:14px; background:white; font-size:14px; font-weight:700; cursor:pointer; }
.toggle input { width:18px; height:18px; }
.toggle.on { border-color:#ff7657; background:#fff3ef; color:#c2410c; }
.textarea { width:100%; min-height:88px; margin-top:16px; padding:14px; border:1px solid var(--line); border-radius:16px; outline:none; background:white; font-size:16px; line-height:1.5; resize:vertical; }
.textarea:focus { border-color:var(--accent); }
.understood { margin-top:12px; padding:14px; border-radius:14px; background:#f2efff; color:#3b2bb0; font-size:14px; line-height:1.5; }
.understood.fail { background:#fff3ef; color:#c2410c; }
.rank { display:inline-grid; place-items:center; width:24px; height:24px; margin-right:8px; border-radius:50%; background:var(--accent); color:white; font-size:12px; }
.option { display:flex; align-items:center; }
.card { margin:18px 0; padding:18px; border:1px solid var(--line); border-radius:20px; background:white; }
.card h3 { margin:0 0 12px; font-size:16px; }
.card.dark { background:var(--ink); color:white; border:0; }
.roster { display:grid; gap:8px; }
.roster .p { display:flex; justify-content:space-between; align-items:center; padding:10px 12px; border-radius:12px; background:#f6f3ef; font-size:14px; font-weight:700; }
.card.dark .roster .p { background:#2c2c2c; }
.status { font-size:12px; font-weight:800; padding:4px 8px; border-radius:999px; }
.status.done { background:var(--mint); color:#177443; }
.status.writing { background:#fff3d6; color:#9a6400; }
.status.joined { background:#e6f0ff; color:#1d4ed8; }
.status.none { background:#eeeae5; color:#6c6862; }
.share { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:14px; }
.share button { padding:12px 6px; border:1px solid #333; border-radius:12px; background:#2c2c2c; color:white; font-size:12px; font-weight:800; }
.share button span { display:block; font-size:20px; margin-bottom:4px; }
.seg { display:flex; gap:6px; }
.seg button { flex:1; padding:11px 6px; border:1px solid var(--line); border-radius:12px; background:white; font-size:13px; font-weight:750; }
.seg button.on { border-color:var(--accent); background:#f2efff; color:#5338e8; }
.deadline { display:flex; justify-content:space-between; align-items:center; margin:14px 0; padding:12px 14px; border-radius:14px; background:#f6f3ef; font-size:14px; }
.deadline b { font-family:ui-monospace,monospace; }
.deadline.urgent { background:#fff3ef; color:#c2410c; }
.timeline { margin:10px 0 0; padding:0; list-style:none; font-size:13px; color:#4e4a45; }
.timeline li { padding:8px 0; border-top:1px solid #eeeae5; display:flex; gap:10px; }
.timeline li time { flex:0 0 74px; font-family:ui-monospace,monospace; color:var(--muted); }
.banner { margin:14px 0; padding:12px 14px; border-radius:14px; background:#fff3d6; color:#7a4f00; font-size:13px; line-height:1.5; }
.banner.info { background:#e6f0ff; color:#1d4ed8; }
.banner.bad { background:#fff3ef; color:#c2410c; }
.stages { margin:26px 0 0; padding:0; list-style:none; text-align:left; }
.stages li { display:flex; gap:10px; padding:10px 0; border-top:1px solid #eeeae5; color:#a09b95; font-size:14px; }
.stages li.active { color:var(--ink); font-weight:750; }
.stages li.done { color:#177443; }
.log { margin-top:18px; padding:14px; border-radius:16px; background:#171717; color:#ddd; text-align:left; font-size:13px; line-height:1.5; min-height:120px; }
.log div { padding:4px 0; }
.log b { color:#9c83ff; margin-right:8px; font-family:ui-monospace,monospace; }
.log .mod b { color:#ff9f85; }
.spec { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:16px 0; }
.spec div { padding:10px 12px; border-radius:12px; background:#f6f3ef; font-size:13px; }
.spec div small { display:block; color:var(--muted); font-size:11px; }
.fair { display:flex; gap:10px; }
.fair div { flex:1; padding:12px; border-radius:14px; background:#f2efff; text-align:center; }
.fair div b { display:block; font-size:24px; color:#5338e8; }
.fair div small { color:var(--muted); font-size:11px; }
details { margin-top:8px; }
details summary { cursor:pointer; font-weight:800; font-size:14px; padding:8px 0; }
.alt { padding:10px 0; border-top:1px solid #eeeae5; font-size:13px; }
.alt b { display:block; }
.choices { display:grid; gap:10px; margin:20px 0; }
.choice { padding:16px; border:1px solid var(--line); border-radius:16px; background:white; text-align:left; font-weight:750; }
.choice small { display:block; margin-top:4px; color:var(--muted); font-weight:500; font-size:12px; }
.choice.selected { border-color:var(--accent); background:#f2efff; }
.tally { display:flex; gap:8px; margin:12px 0; }
.tally div { flex:1; padding:10px; border-radius:12px; background:#f6f3ef; text-align:center; font-size:12px; }
.tally div b { display:block; font-size:20px; }
.modal-bg { position:fixed; inset:0; z-index:8; background:#0008; display:grid; place-items:center; padding:20px; }
.modal { width:min(100%,400px); padding:22px; border-radius:20px; background:white; }
.modal h3 { margin:0 0 10px; }
.modal p { color:var(--muted); font-size:14px; line-height:1.5; }
.kv { font-size:14px; line-height:1.7; }
.kv b { display:inline-block; min-width:110px; color:var(--muted); font-weight:700; }
.ghost { border:0; background:none; color:var(--accent); font-weight:800; padding:8px 0; }
.mini { color:var(--muted); font-size:12px; }
.people-hint { text-align:center; margin-top:-30px; margin-bottom:24px; color:var(--muted); font-size:13px; }
