:root{--bg: #f7f8fa;--bg-card: #ffffff;--bg-hero: linear-gradient(180deg, #eef2ff 0%, #f7f8fa 100%);--text: #17181c;--text-dim: #5c6270;--text-faint: #8b909c;--border: #e3e6ec;--border-hover: #b9c2f0;--accent: #4257d6;--accent-soft: #eef1fe;--shadow: 0 1px 2px rgba(20, 24, 40, .05);--shadow-hover: 0 12px 28px rgba(30, 40, 90, .12);--ok-bg: #e7f6ed;--ok-fg: #1a7340;--lock-bg: #fdf0e3;--lock-fg: #96591a;--tg-bg: #e6f1fb;--tg-fg: #1c5f96;--blog-bg: #fdeaea;--blog-fg: #a73030}@media(prefers-color-scheme:dark){:root{--bg: #0e1014;--bg-card: #171a20;--bg-hero: linear-gradient(180deg, #171d33 0%, #0e1014 100%);--text: #eceef3;--text-dim: #a2a8b6;--text-faint: #6f7583;--border: #262b35;--border-hover: #3f4c86;--accent: #8b9dff;--accent-soft: #1b2140;--shadow: none;--shadow-hover: 0 12px 28px rgba(0, 0, 0, .45);--ok-bg: #14301f;--ok-fg: #6ed49b;--lock-bg: #33240f;--lock-fg: #e0ac63;--tg-bg: #122942;--tg-fg: #79b6ea;--blog-bg: #3a1c1c;--blog-fg: #ea9393}}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,Apple SD Gothic Neo,Noto Sans KR,Malgun Gothic,sans-serif;line-height:1.65;-webkit-font-smoothing:antialiased;word-break:keep-all}.hero{background:var(--bg-hero);border-bottom:1px solid var(--border);padding:clamp(3.5rem,10vw,6rem) 1.5rem clamp(2.5rem,7vw,4rem);text-align:center}.hero__inner{max-width:40rem;margin:0 auto}.hero__mark{font-size:clamp(2.75rem,9vw,3.75rem);line-height:1;margin-bottom:1rem}.hero__title{margin:0 0 .75rem;font-size:clamp(2rem,6.5vw,3rem);font-weight:700;letter-spacing:-.03em}.hero__sub{margin:0;color:var(--text-dim);font-size:clamp(.95rem,2.4vw,1.0625rem)}.wrap{max-width:68rem;margin:0 auto;padding:clamp(2.5rem,7vw,4.5rem) 1.5rem 0}.section+.section{margin-top:clamp(3rem,8vw,4.5rem)}.section__head{margin-bottom:1.5rem}.section__title{margin:0;font-size:1.375rem;font-weight:650;letter-spacing:-.02em}.section__sub{margin:.25rem 0 0;color:var(--text-faint);font-size:.9375rem}.grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,20.5rem),1fr))}.card{display:flex;flex-direction:column;padding:1.375rem;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);text-decoration:none;color:inherit;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}a.card:hover,a.card:focus-visible{transform:translateY(-3px);border-color:var(--border-hover);box-shadow:var(--shadow-hover);outline:none}a.card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.card--telegram{border-style:dashed}.card__top{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.875rem}.card__emoji{font-size:1.625rem;line-height:1}.badge{flex-shrink:0;padding:.1875rem .625rem;border-radius:999px;font-size:.75rem;font-weight:600;letter-spacing:-.01em}.badge--public{background:var(--ok-bg);color:var(--ok-fg)}.badge--login{background:var(--lock-bg);color:var(--lock-fg)}.badge--telegram{background:var(--tg-bg);color:var(--tg-fg)}.badge--blog{background:var(--blog-bg);color:var(--blog-fg)}.card__name{margin:0;font-size:1.125rem;font-weight:650;letter-spacing:-.02em}.card__tagline{margin:.25rem 0 0;color:var(--accent);font-size:.875rem;font-weight:550}.card__desc{margin:.75rem 0 0;color:var(--text-dim);font-size:.9375rem;flex-grow:1}.card__stack{display:flex;flex-wrap:wrap;gap:.375rem;margin:1.125rem 0 0;padding:0;list-style:none}.card__stack li{padding:.125rem .5rem;border-radius:6px;background:var(--accent-soft);color:var(--text-dim);font-size:.75rem;font-weight:500}.card__href{display:inline-flex;align-items:center;gap:.3125rem;margin-top:1rem;padding-top:.875rem;border-top:1px solid var(--border);color:var(--accent);font-size:.8125rem;font-weight:600;word-break:break-all}.card__href svg{flex-shrink:0;transition:transform .18s ease}a.card:hover .card__href svg{transform:translate(2px,-2px)}.footer{max-width:68rem;margin:clamp(3.5rem,9vw,5.5rem) auto 0;padding:2rem 1.5rem 3rem;border-top:1px solid var(--border);text-align:center;color:var(--text-faint);font-size:.875rem}.footer p{margin:0}.footer__dim{margin-top:.375rem;font-size:.8125rem;opacity:.75}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
