@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Noto+Sans+KR:wght@400;500;600;700&display=swap');
:root { font-family:'DM Sans','Noto Sans KR',system-ui,sans-serif; color:#1e2441; background:#f7f8fd; font-synthesis:none; line-height:1.6; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; min-width:320px; }
button,input { font:inherit; }
button { cursor:pointer; }
button:disabled { opacity:.48; cursor:not-allowed; }
a { color:inherit; }
:focus-visible { outline:3px solid #7d73ff; outline-offset:3px; }
.skip-link { position:absolute; top:-100px; left:12px; z-index:20; background:#fff; color:#26245a; padding:10px 16px; }
.skip-link:focus { top:10px; }
.topbar { min-height:75px; display:flex; justify-content:space-between; align-items:center; padding:15px max(5vw,22px); gap:16px; background:#171b35; color:#fff; }
.logo { text-decoration:none; display:inline-flex; align-items:center; gap:2px; font-size:23px; letter-spacing:-1.2px; font-weight:800; white-space:nowrap; }
.logo > span:last-child,.footer > span span { color:#a7a2ff; }
.logo-icon { margin-right:10px; width:38px; height:38px; border-radius:12px; display:inline-grid; place-items:center; background:#6762ee; color:white; font-size:32px; font-weight:400; line-height:1; }
.top-actions { display:flex; align-items:center; gap:24px; }
.guide-tag { color:#a7b0d5; font-size:11px; letter-spacing:1.7px; font-weight:800; }
.back-link { font-size:13px; font-weight:700; text-decoration:none; border:1px solid #565b7b; border-radius:9px; padding:9px 13px; }
.back-link:hover { background:#303653; }
main { max-width:1240px; margin:0 auto; padding:0 26px 65px; }
.hero { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr); align-items:center; gap:48px; padding:65px 0 49px; }
.eyebrow { margin:0 0 10px; color:#6863e8; letter-spacing:2.3px; font-weight:800; font-size:10px; }
h1 { font-size:clamp(34px,4.1vw,60px); line-height:1.12; letter-spacing:-2.3px; margin:0 0 22px; }
h1 span { color:#5e59dc; }
.lead { font-size:17px; color:#596079; max-width:610px; line-height:1.8; margin:0 0 28px; }
.hero-actions { display:flex; flex-wrap:wrap; gap:10px; }
.button { display:inline-flex; justify-content:center; align-items:center; gap:15px; border:1px solid transparent; text-decoration:none; border-radius:11px; padding:13px 19px; font-weight:800; font-size:13px; transition:transform .15s, box-shadow .15s; }
.button:hover { transform:translateY(-1px); box-shadow:0 6px 16px #1b204017; }
.button-primary { background:#5e59e7; color:white; box-shadow:0 5px 14px #5e59e72c; }
.button-ghost { color:#504dbe; background:white; border-color:#dedff0; }
.hero-card { background:#1c2140; color:#fff; border-radius:20px; padding:29px 31px; box-shadow:0 18px 45px #20224419; }
.hero-card-label { display:block; font-size:10px; letter-spacing:2px; font-weight:800; color:#a9a3ff; }
.hero-card ol { margin:18px 0; padding:0; list-style:none; }
.hero-card li { padding:11px 0; border-bottom:1px solid #363a58; font-size:14px; font-weight:700; }
.hero-card li span { color:#a8a3ff; font-size:12px; letter-spacing:1.7px; margin-right:18px; }
.hero-card p { font-size:12px; color:#aeb5d2; line-height:1.7; margin:19px 0 0; }
.prerequisite { display:flex; align-items:flex-start; gap:18px; padding:25px 28px; border:1px solid #f2d6ae; border-radius:17px; background:#fff8ed; }
.notice-icon { flex:0 0 34px; width:34px; height:34px; border-radius:10px; display:grid; place-items:center; background:#f7dfb8; color:#90571e; font-weight:900; }
.prerequisite .eyebrow { color:#995914; }
.prerequisite h2 { margin:0 0 9px; font-size:19px; letter-spacing:-.5px; }
.prerequisite p { margin:0 0 7px; color:#574b3b; font-size:14px; }
.prerequisite .small { color:#806a50; margin-bottom:0; }
.jump { display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding:22px 0 5px; }
.jump a { border-radius:20px; border:1px solid #dfe0ed; background:white; padding:7px 12px; text-decoration:none; font-size:12px; font-weight:800; color:#4c5270; }
.jump a:hover { color:#4b45d6; border-color:#b4b0f9; }
.step { margin-top:26px; background:white; border:1px solid #e7e8f3; border-radius:19px; padding:35px 36px 30px; box-shadow:0 9px 26px #343b6209; scroll-margin-top:20px; }
.step-title { display:flex; align-items:flex-start; gap:19px; margin-bottom:23px; }
.step-number { flex:0 0 49px; width:49px; height:49px; border-radius:13px; background:#eeedff; display:grid; place-items:center; color:#5c53e7; font-size:17px; font-weight:800; }
.step-title h2 { font-size:clamp(21px,2.3vw,28px); line-height:1.3; letter-spacing:-.9px; margin:0 0 6px; }
.step-title p:last-child { margin:0; color:#656b82; font-size:14px; }
.instructions { padding-left:24px; margin:15px 0 25px; }
.instructions li { padding-left:4px; margin:9px 0; color:#4e566c; font-size:14px; }
.instructions li::marker { color:#675de7; font-weight:800; }
.inline-link,.source-links a { color:#514be4; font-weight:800; text-decoration:underline; text-underline-offset:3px; }
.step-chip,.mini-number { display:inline-grid; place-items:center; border-radius:6px; width:22px; height:22px; background:#5c57e7; color:white; font-size:11px; font-weight:800; vertical-align:middle; }
.screenshot { margin:26px 0 18px; border:1px solid #e0e1f1; border-radius:13px; overflow-x:auto; background:#f0f1fa; }
.capture { position:relative; min-width:760px; }
.capture img { display:block; width:100%; height:auto; }
.target { position:absolute; top:var(--y); left:var(--x); width:var(--w); height:var(--h); border:3px solid #fd7b38; border-radius:8px; box-shadow:0 0 0 2px #fff9, 0 0 13px #f9731680; pointer-events:none; }
.target > span { position:absolute; top:-17px; left:-13px; min-width:28px; height:28px; display:grid; place-items:center; background:#f87236; color:#fff; border:2px solid white; border-radius:50%; font-size:13px; font-weight:900; line-height:1; }
figcaption { font-size:12px; color:#5c6177; background:#fff; padding:10px 15px; border-top:1px solid #e0e1f1; }
.two-cols { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; margin:18px 0; }
.mini-step,.final-grid > div { background:#f7f7ff; border:1px solid #e7e6ff; border-radius:12px; padding:19px 22px; }
.mini-step h3 { font-size:17px; margin:10px 0 8px; }
.mini-step p,.final-grid p { font-size:13px; color:#595f79; margin:7px 0; }
.soft-note,.caution { margin:20px 0; padding:17px 20px; border-radius:11px; font-size:13px; line-height:1.8; }
.soft-note { background:#f0f3fd; border-left:4px solid #727bda; color:#424e75; }
.caution { background:#fff5e8; border-left:4px solid #e6a44d; color:#6c4e2e; }
.source-links { font-size:12px; color:#5d647c; }
.done { display:flex; align-items:center; gap:11px; width:fit-content; max-width:100%; margin-top:24px; cursor:pointer; font-size:13px; font-weight:800; color:#4c5190; background:#f5f5ff; border:1px solid #dedcfa; padding:11px 15px; border-radius:10px; }
.done input { width:19px; height:19px; accent-color:#5a55da; flex-shrink:0; }
.done:has(input:checked) { color:#16674f; background:#eaf9f3; border-color:#a8ddc9; }
.template-actions { display:flex; align-items:center; flex-wrap:wrap; gap:16px; margin:16px 0 23px; }
.template-actions span { color:#6a7089; font-size:12px; }
.columns { padding:20px 22px; background:#f8f9ff; border:1px solid #e5e7f2; border-radius:12px; }
.columns p { font-size:13px; color:#4f576d; margin:7px 0; }
code { font:500 12px/1.8 ui-monospace,SFMono-Regular,Consolas,monospace; background:#eaeaff; color:#403e84; padding:2px 5px; border-radius:4px; overflow-wrap:anywhere; }
.columns > code { display:block; width:fit-content; max-width:100%; margin:10px 0; padding:10px 12px; }
.tool-panel { border:1px solid #e0e1f0; border-radius:12px; overflow:hidden; margin:13px 0; background:white; }
.tool-panel summary { display:flex; justify-content:space-between; align-items:center; cursor:pointer; padding:18px 20px; font-size:14px; font-weight:800; color:#2b2e5a; list-style:none; }
.tool-panel summary::-webkit-details-marker { display:none; }
.tool-panel[open] summary { border-bottom:1px solid #e7e9f2; background:#fafaff; }
.tool-body { padding:20px; }
.tool-body p { font-size:13px; color:#575f77; }
.field { display:block; font-size:13px; font-weight:700; margin-bottom:9px; }
input[type=file] { display:block; max-width:100%; padding:10px; border:1px dashed #aaa7ed; border-radius:9px; }
.tool-feedback { min-height:27px; padding:7px 0; font-size:13px; color:#494f83; }
.tool-feedback.error { color:#b0413b; font-weight:700; }
.tool-feedback.success { color:#176d54; font-weight:700; }
.tool-body .small { font-size:11px; color:#757b8d; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-bottom:17px; }
.form-grid label { display:flex; flex-direction:column; gap:5px; font-size:12px; font-weight:800; }
.form-grid label:nth-child(1),.form-grid label:nth-child(2) { grid-column:span 1; }
.form-grid small { font-weight:500; color:#777d91; font-size:11px; }
.form-grid input { width:100%; min-width:0; border:1px solid #d8dbea; border-radius:8px; padding:11px 12px; background:white; color:#1e2441; font-size:13px; }
.form-grid input:focus { border-color:#7771ec; }
.builder-list { display:flex; justify-content:space-between; margin-top:20px; border-top:1px solid #e8e8f2; padding-top:15px; font-size:13px; }
.text-link { border:none; background:transparent; color:#514bd2; text-decoration:underline; font-size:12px; }
.row-preview { margin:7px 0 15px; padding:0; list-style:none; }
.row-preview li { display:flex; justify-content:space-between; gap:12px; border-bottom:1px solid #ecedf5; padding:9px 0; font-size:12px; color:#565c75; overflow-wrap:anywhere; }
.row-preview button { border:0; color:#a03b39; background:transparent; font-size:12px; font-weight:800; white-space:nowrap; }
.final-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-top:20px; }
.final-grid strong { font-size:15px; }
.owner-note { background:#1b2040; border-radius:17px; color:#e1e4ff; padding:26px 30px; margin-top:28px; }
.owner-note h2 { margin:0 0 10px; font-size:18px; }
.owner-note p { font-size:13px; color:#c4c8e1; margin:8px 0; }
.footer { display:flex; justify-content:space-between; gap:12px; background:#161a33; color:#c8cbe3; padding:26px max(5vw,22px); font-size:12px; }
.footer > span { font-weight:700; }
.footer a { text-decoration:none; }
@media(max-width:850px) { .hero { grid-template-columns:1fr; gap:20px; padding:43px 0 33px; } .hero-card { max-width:100%; } .two-cols,.final-grid { grid-template-columns:1fr; } .guide-tag { display:none; } }
@media(max-width:600px) { main { padding:0 13px 40px; } .topbar { padding:10px 14px; min-height:62px; } .logo { font-size:19px; } .logo-icon { width:30px; height:30px; font-size:25px; margin-right:5px; } .back-link { font-size:11px; padding:7px 9px; } .hero { padding:38px 5px 25px; } h1 { letter-spacing:-1.6px; } .lead { font-size:14px; } .hero-card { padding:22px; } .prerequisite { padding:19px 15px; gap:11px; } .prerequisite h2 { font-size:17px; } .prerequisite p { font-size:12px; } .jump { flex-wrap:nowrap; overflow-x:auto; padding:18px 0 2px; } .jump a { flex-shrink:0; } .step { padding:23px 17px; margin-top:18px; } .step-title { gap:12px; } .step-number { flex-basis:39px; width:39px; height:39px; font-size:14px; } .step-title h2 { font-size:20px; } .step-title p:last-child { font-size:12px; } .instructions li { font-size:13px; } .screenshot { margin-inline:-9px; } .capture { width:760px; } .form-grid { grid-template-columns:1fr; } .tool-body { padding:16px; } .template-actions .button { width:100%; } .owner-note { padding:20px; } .footer { flex-wrap:wrap; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .button { transition:none; } }
