:root{--bg: #fafaf9;--fg: #0c0c0b;--fg2: #3d3d3a;--fg3: #71716b;--border: #e5e5e2;--card: #ffffff;--primary: #1b6b35;--primary-light: rgba(27, 107, 53, .08);--primary-fg: #ffffff;--radius: 12px;--container: 720px;--container-wide: 1120px;--measure: 620px;--gutter: 20px}@media(min-width:768px){:root{--gutter: 32px}}*{margin:0;padding:0;box-sizing:border-box}body{background:var(--bg);color:var(--fg);font-family:Inter,Noto Sans KR,system-ui,sans-serif;font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased;word-break:keep-all}a{color:var(--primary);text-decoration:none}a:hover{opacity:.85}.wrap{max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}.nav{padding:16px 0;display:flex;align-items:center;justify-content:space-between;gap:16px}.nav-logo{font-weight:700;font-size:18px;color:var(--fg)}.nav-links{display:flex;align-items:center;gap:18px;margin-left:auto}.nav-link{font-size:14px;font-weight:500;color:var(--fg2)}.nav-link:hover{color:var(--primary);opacity:1}.nav-cta{font-size:13px;font-weight:600;padding:8px 16px;background:var(--primary);color:var(--primary-fg);border-radius:8px;transition:opacity .2s}.nav-cta:hover{opacity:.9;color:var(--primary-fg)}.hero{padding:64px 0 56px;text-align:center}.hero-badge{display:inline-block;font-family:DM Mono,monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--primary);background:var(--primary-light);padding:4px 12px;border-radius:20px;margin-bottom:20px}.hero h1{font-size:40px;font-weight:700;line-height:1.25;letter-spacing:-.02em;margin-bottom:16px}.hero .tagline{font-size:17px;color:var(--fg2);max-width:400px;margin:0 auto 36px}.hero-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.btn-primary{display:inline-flex;align-items:center;gap:6px;font-size:15px;font-weight:600;padding:14px 28px;background:var(--primary);color:var(--primary-fg);border-radius:10px;transition:opacity .2s}.btn-primary:hover{opacity:.9;color:var(--primary-fg)}.btn-secondary{display:inline-flex;align-items:center;gap:6px;font-size:15px;font-weight:500;padding:14px 28px;background:var(--card);color:var(--fg);border:1px solid var(--border);border-radius:10px;transition:all .2s}.btn-secondary:hover{border-color:var(--primary);color:var(--primary)}.divider{border:none;border-top:1px solid var(--border);margin:0}.features{padding:56px 0}.features h2{font-size:24px;font-weight:700;text-align:center;margin-bottom:8px}.features .subtitle{font-size:14px;color:var(--fg3);text-align:center;margin-bottom:32px}.feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.feat{padding:20px;border:1px solid var(--border);border-radius:var(--radius);background:var(--card)}.feat-icon{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px;background:var(--primary-light);margin-bottom:12px}.feat-name{font-weight:600;font-size:14px;margin-bottom:4px}.feat-desc{font-size:13px;color:var(--fg3);line-height:1.5}.services{padding:56px 0}.services h2{font-size:24px;font-weight:700;text-align:center;margin-bottom:8px}.services .subtitle{font-size:14px;color:var(--fg3);text-align:center;margin-bottom:32px}.service-grid{display:flex;flex-direction:column;gap:12px}.svc{display:flex;align-items:center;gap:16px;padding:20px;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);color:var(--fg);transition:all .2s}a.svc:hover{border-color:var(--primary);transform:translateY(-1px);box-shadow:0 2px 8px #0000000a;opacity:1}.svc-icon{width:40px;height:40px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;background:var(--primary-light)}.svc-icon.soon{background:#0000000a}.svc-body{flex:1;min-width:0}.svc-head{display:flex;align-items:center;gap:8px;margin-bottom:2px}.svc-name{font-weight:600;font-size:15px}.svc-badge{font-family:DM Mono,monospace;font-size:10px;padding:2px 8px;border-radius:4px;font-weight:500}.svc-badge.live{background:var(--primary-light);color:var(--primary)}.svc-badge.soon{background:#0000000a;color:var(--fg3)}.svc-url{font-family:DM Mono,monospace;font-size:12px;color:var(--primary)}.svc-desc{font-size:13px;color:var(--fg3);margin-top:4px}.svc.disabled{opacity:.45;cursor:default}.contact{padding:56px 0;text-align:center}.contact h2{font-size:24px;font-weight:700;margin-bottom:8px}.contact p{font-size:14px;color:var(--fg3);margin-bottom:24px}.channels{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.ch{display:flex;align-items:center;gap:8px;font-family:DM Mono,monospace;font-size:14px;padding:12px 20px;border:1px solid var(--border);border-radius:10px;background:var(--card);color:var(--fg);transition:all .2s}.ch:hover{border-color:var(--primary);color:var(--primary);opacity:1}.ch svg{width:18px;height:18px;flex-shrink:0}.page{padding:48px 0 64px}.page-badge{display:inline-block;font-family:DM Mono,monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--primary);background:var(--primary-light);padding:4px 12px;border-radius:20px;margin-bottom:16px}.page h1{font-size:32px;font-weight:700;letter-spacing:-.02em;margin-bottom:8px}.page .lead{font-size:16px;color:var(--fg2);margin-bottom:8px}.faq{margin-top:24px}.faq-item{padding:22px 0;border-top:1px solid var(--border)}.faq-q{font-weight:600;font-size:16px;margin-bottom:6px}.faq-a{font-size:14px;color:var(--fg3);line-height:1.65}.faq-a a{font-family:DM Mono,monospace;font-size:13px}.callout{margin-top:32px;padding:18px 20px;background:var(--primary-light);border-radius:var(--radius);font-size:14px;color:var(--fg2)}.callout a{font-weight:600}footer{padding:24px 0;border-top:1px solid var(--border);text-align:center;font-family:DM Mono,monospace;font-size:11px;color:var(--fg3)}footer .foot-links{margin-bottom:8px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap}footer .foot-links a{color:var(--fg3)}footer .foot-links a:hover{color:var(--primary)}footer .ver{color:var(--fg3);opacity:.5}@media(max-width:480px){.hero{padding:48px 0 40px}.hero h1{font-size:30px}.hero .tagline{font-size:15px}.feature-grid{grid-template-columns:1fr}.hero-actions{flex-direction:column;align-items:stretch}.btn-primary,.btn-secondary{justify-content:center}.channels{flex-direction:column;align-items:stretch}.ch{justify-content:center}.nav-links{gap:12px}.page h1{font-size:26px}}@media(min-width:768px){.hero{padding:80px 0 64px}.hero h1{font-size:48px}}.pricing-block .draft-note{background:#b4530917;color:#b45309;font-family:DM Mono,monospace;font-size:12px;letter-spacing:.02em;text-align:center;padding:10px 16px;border:1px solid rgba(180,83,9,.2);border-radius:10px;margin:8px 0 32px}.pricing-block .block{padding:8px 0}.values-block{padding:40px 0}.pricing-block h2{font-size:26px;font-weight:700;text-align:center;margin-bottom:8px;letter-spacing:-.01em}.pricing-block .subtitle{font-size:14px;color:var(--fg3);text-align:center;margin-bottom:28px}.pricing-block .value-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.pricing-block .val{padding:22px;border:1px solid var(--border);border-radius:var(--radius);background:var(--card)}.pricing-block .val-icon{width:38px;height:38px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:18px;background:var(--primary-light);margin-bottom:12px}.pricing-block .val-name{font-weight:600;font-size:15px;margin-bottom:4px;display:flex;align-items:center;gap:6px}.pricing-block .val-desc{font-size:13px;color:var(--fg3);line-height:1.55}.pricing-block .tag-soon{font-family:DM Mono,monospace;font-size:9px;padding:2px 6px;border-radius:4px;background:#0000000d;color:var(--fg3);font-weight:500}.pricing-block .plan-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;align-items:start}.pricing-block .plan{padding:26px 20px;border:1px solid var(--border);border-radius:16px;background:var(--card);display:flex;flex-direction:column}.pricing-block .plan.featured{border:2px solid var(--primary);box-shadow:0 8px 28px #1b6b351a;position:relative}.pricing-block .plan-badge{position:absolute;top:-11px;left:50%;transform:translate(-50%);background:var(--primary);color:#fff;font-size:11px;font-weight:600;padding:3px 12px;border-radius:20px;letter-spacing:.02em}.pricing-block .plan-name{font-weight:700;font-size:17px;margin-bottom:2px}.pricing-block .plan-for{font-size:12px;color:var(--fg3);margin-bottom:16px}.pricing-block .plan-price{font-size:30px;font-weight:700;letter-spacing:-.02em}.pricing-block .plan-price small{font-size:14px;font-weight:500;color:var(--fg3)}.pricing-block .plan-sub{font-size:12px;color:var(--fg3);margin-top:4px;min-height:18px}.pricing-block .plan-cta{margin:18px 0 16px;text-align:center;font-size:14px;font-weight:600;padding:11px;border-radius:10px;transition:all .2s;display:block}.pricing-block .cta-fill{background:var(--primary);color:#fff}.pricing-block .cta-fill:hover{opacity:.9;color:#fff}.pricing-block .cta-line{background:var(--card);color:var(--fg);border:1px solid var(--border)}.pricing-block .cta-line:hover{border-color:var(--primary);color:var(--primary)}.pricing-block .feat-list{list-style:none;display:flex;flex-direction:column;gap:9px;font-size:13px;color:var(--fg2)}.pricing-block .feat-list li{display:flex;gap:8px;align-items:flex-start;line-height:1.45}.pricing-block .feat-list li:before{content:"✓";color:var(--primary);font-weight:700;flex-shrink:0}.pricing-block .feat-list li.muted{color:var(--fg3)}.pricing-block .feat-list li.muted:before{content:"·";color:var(--fg3)}.pricing-block .credits{margin:28px auto 0;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;font-size:13px;color:var(--fg2);line-height:1.6}.pricing-block .credits b{color:var(--fg)}.pricing-block .step-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.pricing-block .step{padding:20px;border:1px solid var(--border);border-radius:var(--radius);background:var(--card)}.pricing-block .step-n{font-family:DM Mono,monospace;font-size:12px;color:var(--primary);background:var(--primary-light);width:26px;height:26px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-weight:600;margin-bottom:12px}.pricing-block .step-name{font-weight:600;font-size:14px;margin-bottom:4px}.pricing-block .step-desc{font-size:12.5px;color:var(--fg3);line-height:1.5}.pricing-block .punch{text-align:center;margin-top:22px;font-size:14px;color:var(--fg2)}.pricing-block .punch b{color:var(--primary)}.pricing-block .qa{border-bottom:1px solid var(--border);padding:16px 0}.pricing-block .qa:first-of-type{border-top:1px solid var(--border)}.pricing-block .qa-q{font-weight:600;font-size:15px;margin-bottom:6px}.pricing-block .qa-a{font-size:13.5px;color:var(--fg3);line-height:1.6}.pricing-block .final{text-align:center;padding:16px 0 8px}.pricing-block .final h2{margin-bottom:12px}.pricing-block .final p{font-size:14px;color:var(--fg3);margin-bottom:22px}@media(max-width:760px){.pricing-block .value-grid,.pricing-block .plan-grid,.pricing-block .step-row{grid-template-columns:1fr}.pricing-block .plan.featured{order:-1}}.sources-page{padding:24px 0 80px}.sources-head .back-link{display:inline-block;font-size:13px;color:var(--fg3);text-decoration:none;margin-bottom:18px}.sources-head .back-link:hover{color:var(--primary)}.sources-head h1{font-size:30px;letter-spacing:-.02em;margin:0 0 10px}.sources-head>p{font-size:15px;line-height:1.65;color:var(--fg2);margin:0 0 24px}.sources-head strong{color:var(--primary);font-weight:600}.stat-row{display:flex;gap:10px;margin-bottom:8px}.stat{flex:1;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;text-align:center}.stat strong{display:block;font-size:24px;color:var(--fg);font-family:DM Mono,monospace}.stat span{font-size:12px;color:var(--fg3)}.src-section{margin-top:36px}.src-section h2{font-size:17px;margin:0 0 4px}.src-section h2 .muted{color:var(--fg3);font-weight:400;font-size:13px}.src-section-sub{font-size:13px;color:var(--fg3);margin:0 0 8px}.src-empty{font-size:14px;color:var(--fg3);padding:20px 8px}.src-tabs{display:inline-flex;gap:4px;margin:26px 0 4px;padding:4px;background:var(--card);border:1px solid var(--border);border-radius:12px}.src-tab{appearance:none;border:none;background:none;font:inherit;font-size:14px;font-weight:500;color:var(--fg2);padding:7px 14px;border-radius:8px;cursor:pointer;white-space:nowrap;transition:background .12s,color .12s}.src-tab:hover{color:var(--fg)}.src-tab[aria-selected=true]{background:var(--primary);color:var(--primary-fg)}.src-tab .tab-count{margin-left:5px;font-family:DM Mono,monospace;font-size:12px;opacity:.75}.src-table{--src-cols: 30px minmax(0, 1fr) auto}.sthead{display:none}.srow{display:grid;grid-template-columns:var(--src-cols);grid-template-areas:"rank name vote" "rank meta vote";align-items:center;gap:2px 12px;padding:13px 8px;border-bottom:1px solid var(--border)}.srow:first-of-type{border-top:1px solid var(--border)}.srow:hover{background:#00000005}.srow--done{background:var(--primary-light)}.srow-rank{grid-area:rank;align-self:start;text-align:center;font-family:DM Mono,monospace;font-size:13px;color:var(--fg3);padding-top:2px}.srow-name{grid-area:name;min-width:0;font-size:15px;font-weight:600;line-height:1.4}.srow-name a{color:var(--fg);text-decoration:none}.srow-name a:hover{color:var(--primary);text-decoration:underline}.srow-note{font-size:12px;font-weight:400;color:var(--fg3);line-height:1.45;margin:3px 0 0}.srow-meta{grid-area:meta;display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:5px}.srow-vote{grid-area:vote;justify-self:end;align-self:center}.srow-collected{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:600;color:var(--primary);white-space:nowrap}@media(min-width:768px){.src-table{--src-cols: 52px minmax(0, 1fr) minmax(150px, 300px) 104px}.sthead{display:grid;grid-template-columns:var(--src-cols);gap:12px;padding:0 8px 10px;font-size:12px;font-weight:600;color:var(--fg3);border-bottom:2px solid var(--border)}.sthead-rank{text-align:center}.sthead-vote{text-align:right}.srow{grid-template-areas:"rank name meta vote";gap:12px}.srow:first-of-type{border-top:none}.srow-rank{align-self:center;padding-top:0}.srow-meta{margin-top:0}}.src-badge{font-size:11px;font-weight:500;padding:2px 7px;border-radius:999px;line-height:1.5}.src-badge--cat{background:var(--primary-light);color:var(--primary)}.src-badge--region{background:#eef0f2;color:var(--fg2)}.src-badge--api{background:#fff3d6;color:#8a6300}.src-badge--label{background:#e7f2ec;color:var(--primary);font-family:DM Mono,monospace}.src-type{font-size:11px;color:var(--fg3)}.vote-form{flex-shrink:0}.vote-btn{display:flex;flex-direction:column;align-items:center;gap:1px;width:52px;padding:8px 0;border:1px solid var(--border);border-radius:10px;background:var(--card);color:var(--fg2);cursor:pointer;transition:all .12s ease}.vote-btn:hover{border-color:var(--primary);color:var(--primary)}.vote-btn .vote-caret{font-size:11px;line-height:1}.vote-btn .vote-count{font-size:15px;font-weight:700;font-family:DM Mono,monospace;line-height:1.2}.vote-btn.voted{background:var(--primary);border-color:var(--primary);color:var(--primary-fg)}.suggest{margin-top:40px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:22px}.suggest h3{font-size:16px;margin:0 0 6px}.suggest-sub{font-size:13px;color:var(--fg3);margin:0 0 18px;line-height:1.55}.suggest-form{display:flex;flex-direction:column;gap:12px}.field-row{display:flex;gap:12px}.field{display:flex;flex-direction:column;gap:5px;flex:1}.field--sm{max-width:130px}.field span{font-size:12px;color:var(--fg2);font-weight:500}.field input{border:1px solid var(--border);border-radius:8px;padding:9px 11px;font-size:14px;font-family:inherit;color:var(--fg);background:var(--bg)}.field input:focus{outline:none;border-color:var(--primary)}.suggest-form .btn-primary{align-self:flex-start;margin-top:4px}.suggest-err{font-size:13px;color:#c0392b;margin:0}.suggest-done{font-size:14px;color:var(--primary);background:var(--primary-light);border-radius:8px;padding:16px;text-align:center}.sources-foot{margin-top:40px;padding-top:20px;border-top:1px solid var(--border);font-size:12px;color:var(--fg3);text-align:center}.sources-foot a{color:var(--fg3)}@media(max-width:600px){.field-row{flex-direction:column}.field--sm{max-width:none}}.wrap--wide{max-width:var(--container-wide)}@media(min-width:768px){.sources-head>p{max-width:var(--measure)}.stat-row{max-width:480px}.suggest{max-width:var(--measure)}}
