*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-height:100vh;color:var(--text);background:var(--bg);font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;word-break:keep-all;flex-direction:column;margin:0;display:flex}a{color:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.wrap{width:min(100% - 32px,var(--maxw));margin-left:auto;margin-right:auto}@media (width>=860px){.wrap{width:min(100% - 48px,var(--maxw))}}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}kbd{font-family:var(--font-mono);background:var(--surface-2);border:1px solid var(--line);border-bottom-width:2px;border-radius:6px;padding:1px 6px;font-size:14px}.card{background:var(--surface);border-radius:var(--r-card)}.v-bar{justify-content:space-between;align-items:center;gap:10px;min-height:64px;display:flex}.v-brand{letter-spacing:-.02em;min-width:0;min-height:44px;color:var(--text);white-space:nowrap;flex:0 auto;align-items:center;gap:8px;font-size:17px;font-weight:800;text-decoration:none;display:inline-flex}.v-brand img{border-radius:9px;flex:none;width:30px;height:30px;display:block}.v-nav{flex:none;align-items:center;gap:6px;display:flex}.v-nav a,.v-toggle{background:var(--surface);cursor:pointer;width:44px;height:44px;color:var(--text);border:0;border-radius:50%;place-items:center;padding:0;line-height:0;transition:background-color .15s;display:inline-grid}.v-nav a:hover,.v-toggle:hover{background:var(--surface-2)}.v-nav svg{display:block}.v-toggle svg{width:20px;height:20px;display:none}:root[data-theme-pref=system] .v-toggle .ti-system,:root[data-theme-pref=light] .v-toggle .ti-light,:root[data-theme-pref=dark] .v-toggle .ti-dark,:root:not([data-theme-pref]) .v-toggle .ti-system{display:block}@media (width<=400px){.v-nav .nv-naver{display:none}}@media (width<=340px){.v-bar{gap:6px}.v-brand{gap:6px;font-size:15px}.v-brand img{width:26px;height:26px}.v-nav{gap:4px}}main{flex:1 0 auto}main.has-fab{padding-bottom:104px}.btn{min-height:var(--h-btn);border-radius:var(--r-pill);cursor:pointer;background:var(--primary);color:var(--primary-ink);border:0;justify-content:center;align-items:center;gap:8px;padding:0 22px;font-family:inherit;font-size:16px;font-weight:800;text-decoration:none;transition:opacity .15s;display:inline-flex}.btn:hover{opacity:.9}.btn:active{transform:scale(.97)}@media (prefers-reduced-motion:no-preference){.btn{transition:opacity .15s,transform .12s}}.btn-brand{background:var(--primary);color:var(--primary-ink)}.btn-line{background:var(--surface-2);color:var(--text)}.btn-line:hover{opacity:1;box-shadow:inset 0 0 0 2px var(--accent)}.lnk{min-height:44px;color:var(--accent);cursor:pointer;background:0 0;border:0;align-items:center;padding:0 4px;font-family:inherit;font-size:16px;font-weight:700;text-decoration:none;display:inline-flex}.lnk:hover{text-decoration:underline}.v-footer{margin-top:48px;padding-top:20px;padding-bottom:36px}.v-foot{color:var(--muted);font-size:var(--fs-small);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;display:flex}.v-foot nav{flex-wrap:wrap;gap:0 4px;display:flex}.v-foot a{min-height:44px;color:var(--muted);align-items:center;padding:0 8px;font-weight:700;text-decoration:none;display:inline-flex}.v-foot a:hover{color:var(--text)}.collab-fab{right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));z-index:60;border-radius:var(--r-pill);background:var(--primary);min-height:56px;color:var(--primary-ink);box-shadow:var(--shadow-fab);align-items:center;gap:8px;padding:0 22px;font-size:17px;font-weight:800;text-decoration:none;transition:transform .15s,opacity .15s,visibility .15s;display:inline-flex;position:fixed}.collab-fab:hover{transform:translateY(-2px)}.collab-fab:active{transform:scale(.97)}.collab-fab.is-off{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(8px)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}
