:root{--bg:#fbfaf7;--panel:#ffffff;--ink:#1d2733;--muted:#6b7684;--line:#e6e2d9;--accent:#0f6e63;--accent-ink:#ffffff;--accent-soft:#e6f2ef;--warn:#b4531a;--warn-soft:#fbeee4;--danger:#b42318;--radius:10px;--maxw:880px}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans KR,Apple SD Gothic Neo,Malgun Gothic,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif;line-height:1.55;font-size:16px}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:1.6rem;margin:0 0 .5rem;letter-spacing:-.01em}h2{font-size:1.2rem;margin:1.6rem 0 .6rem}h3{font-size:1rem;margin:1rem 0 .4rem}p{margin:.4rem 0}.muted{color:var(--muted)}.small{font-size:.9rem}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:10;background:rgba(251,250,247,.92);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}.topbar .inner{max-width:var(--maxw);margin:0 auto;padding:.7rem 16px;display:flex;align-items:center;gap:14px}.brand{font-weight:800;letter-spacing:.08em;color:var(--ink);font-size:1.05rem}.brand:hover{text-decoration:none}.spacer{flex:1 1}.nav a,.nav button{color:var(--ink);font-size:.95rem;background:none;border:0;cursor:pointer;padding:.3rem .5rem;border-radius:6px}.nav a:hover,.nav button:hover{background:var(--accent-soft);text-decoration:none}main.page{max-width:var(--maxw);margin:0 auto;padding:1.6rem 16px 4rem}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1.2rem 1.3rem;margin:.9rem 0}.card.soft{background:var(--accent-soft)}.card.soft,.card.warn{border-color:transparent}.card.warn{background:var(--warn-soft)}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.grid2{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}@media (max-width:640px){.grid2{grid-template-columns:1fr}}label{display:block;font-size:.92rem;color:var(--muted);margin:.7rem 0 .25rem}input[type=email],input[type=number],input[type=password],input[type=text],select,textarea{width:100%;padding:.6rem .7rem;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font:inherit}textarea{min-height:120px;resize:vertical}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.btn{display:inline-block;padding:.62rem 1.05rem;border-radius:8px;border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);font:inherit;font-weight:600;cursor:pointer}.btn:hover{filter:brightness(1.05);text-decoration:none}.btn.secondary{background:#fff;color:var(--accent)}.btn.ghost{background:transparent;border-color:var(--line);color:var(--ink)}.btn:disabled{opacity:.55;cursor:default}.chip{display:inline-block;font-size:.78rem;padding:.1rem .5rem;border-radius:999px;background:var(--accent-soft);color:var(--accent);margin-left:.4rem;vertical-align:middle}.chip.req{background:var(--warn-soft);color:var(--warn)}.status{display:inline-block;font-size:.85rem;padding:.15rem .6rem;border-radius:999px;background:#eef1f4;color:var(--ink)}.status.done{background:var(--accent-soft);color:var(--accent)}.status.failed{background:#fde8e6;color:var(--danger)}.error{color:var(--danger);font-size:.92rem;margin-top:.5rem}.steps{display:flex;gap:6px;flex-wrap:wrap;margin:.6rem 0 1.2rem}.steps span{font-size:.8rem;padding:.2rem .6rem;border-radius:999px;background:#eef1f4;color:var(--muted)}.steps span.on{background:var(--accent);color:#fff}.steps span.past{background:var(--accent-soft);color:var(--accent)}table{width:100%;border-collapse:collapse;font-size:.93rem}td,th{text-align:left;padding:.5rem .4rem;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-weight:600}.q{padding:.9rem 0;border-bottom:1px solid var(--line)}.q:last-child{border-bottom:0}.q .text{font-weight:600}.q .ex{font-size:.88rem;margin:.2rem 0 .4rem}.q .ex,.q .why{color:var(--muted)}.q .why{font-size:.85rem}.choices label{display:inline-flex;align-items:center;gap:.35rem;margin:.2rem 1rem .2rem 0;color:var(--ink)}.langsel{font:inherit;padding:.3rem .4rem;border-radius:6px;border:1px solid var(--line);background:#fff}.hero{padding:2.5rem 0 1rem}.hero h1{font-size:2rem;line-height:1.25}.hero p{font-size:1.05rem;max-width:640px}.log{font-size:.85rem;color:var(--muted);max-height:180px;overflow:auto}.log div{padding:.15rem 0;border-bottom:1px dashed var(--line)}footer{max-width:var(--maxw);margin:0 auto;padding:1rem 16px 2rem;color:var(--muted);font-size:.85rem}