:root{color-scheme:light;--canvas: #f6f8fb;--surface: #ffffff;--surface-subtle: #f8fafc;--hover: #f1f4f9;--hover-strong: #eef2f7;--ink: #131722;--ink-soft: #263243;--muted-strong: #4f5b6c;--muted: #657082;--line: #d9e0ea;--line-strong: #c2ccd9;--accent: #1259d8;--accent-soft: #eaf1ff;--accent-border: #b9cdf5;--accent-ink: #2e517f;--emerald: #057e45;--emerald-soft: #e9f8f0;--emerald-border: #83c9a7;--emerald-ink: #07683c;--emerald-fill-hover: #046739;--on-emerald: #ffffff;--amber: #dc9100;--amber-soft: #fff5da;--amber-ink: #8b5c00;--red: #cd3229;--term-bg: #12151b;--term-ink: #dfe4ec;--term-muted: #8b97a8;--frame-shadow: 0 1px 2px rgb(31 43 61 / .06), 0 12px 32px rgb(31 43 61 / .1);--frame-border: transparent;--fs-display: clamp(36px, 4.2vw, 52px);--lh-display: 1.15;--fs-h2: clamp(26px, 2.6vw, 34px);--fs-h3: 20px;--fs-lead: 19px;--fs-body: 17px;--fs-small: 14px;--fs-mono: 14px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--space-9: 96px;--section-gap: 96px;--gutter: 24px;--content-max: 1120px;--reading-max: 680px;--header-h: 64px;--r-sm: 4px;--r-md: 6px;--r-lg: 10px;--r-pill: 999px;--ease: cubic-bezier(.2, .75, .25, 1);--t-instant: 80ms;--t-fast: .12s;--t-base: .16s;--font-system: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-sans: "Switchboard Sans", var(--font-system);--font-ko: "Switchboard Sans", "Switchboard Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", "Noto Sans KR", var(--font-system);--font-ja: "Switchboard Sans", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic UI", "Yu Gothic", Meiryo, "Noto Sans JP", sans-serif;--font-zh: "Switchboard Sans", "PingFang SC", "Microsoft YaHei UI", "Microsoft YaHei", "Noto Sans SC", sans-serif;--font-mono: "Cascadia Mono", "SF Mono", ui-monospace, Menlo, Consolas, "Switchboard Sans KR", "Malgun Gothic", "Apple SD Gothic Neo", monospace}@media(max-width:959px){:root{--section-gap: 64px}}@media(max-width:599px){:root{--gutter: 20px}}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--canvas: #12151b;--surface: #1a1f27;--surface-subtle: #212832;--hover: #242c37;--hover-strong: #2c3542;--ink: #dfe4ec;--ink-soft: #c3cad6;--muted-strong: #a7b2c0;--muted: #8b97a8;--line: #353e4c;--line-strong: #3d4857;--accent: #6ea8ff;--accent-soft: #182740;--accent-border: #2e4a75;--accent-ink: #a9c9ff;--emerald: #47c98a;--emerald-soft: #102b20;--emerald-border: #2c5c45;--emerald-ink: #7fdcae;--emerald-fill-hover: #68d39f;--on-emerald: #12151b;--amber: #e3b04a;--amber-soft: #2e2411;--amber-ink: #f0cc84;--red: #f0685c;--frame-shadow: none;--frame-border: #353e4c}}:root[data-theme=dark]{color-scheme:dark;--canvas: #12151b;--surface: #1a1f27;--surface-subtle: #212832;--hover: #242c37;--hover-strong: #2c3542;--ink: #dfe4ec;--ink-soft: #c3cad6;--muted-strong: #a7b2c0;--muted: #8b97a8;--line: #353e4c;--line-strong: #3d4857;--accent: #6ea8ff;--accent-soft: #182740;--accent-border: #2e4a75;--accent-ink: #a9c9ff;--emerald: #47c98a;--emerald-soft: #102b20;--emerald-border: #2c5c45;--emerald-ink: #7fdcae;--emerald-fill-hover: #68d39f;--on-emerald: #12151b;--amber: #e3b04a;--amber-soft: #2e2411;--amber-ink: #f0cc84;--red: #f0685c;--frame-shadow: none;--frame-border: #353e4c}:root[data-theme=light]{color-scheme:light}@media(prefers-reduced-motion:reduce){:root{--t-instant: 0ms;--t-fast: 0ms;--t-base: 0ms}}@font-face{font-family:Switchboard Sans;src:url(/assets/sans-latin-o0DwMpB2.woff2) format("woff2");font-weight:45 920;font-display:swap;unicode-range:U+0000-024F,U+2000-206F,U+2190-21FF,U+20A9,U+2122,U+2212,U+22C5,U+2303,U+2318,U+2325,U+2713,U+2715,U+25CF}@font-face{font-family:Switchboard Sans KR;src:url(/assets/sans-hangul-ko-B77wqQ1m.woff2) format("woff2");font-weight:400 700;font-display:swap;unicode-range:U+1100-11FF,U+3000-303F,U+3130-318F,U+AC00-D7A3,U+FF01-FF5E}*,*:before,*:after{box-sizing:border-box}html{font-family:var(--font-sans);-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 16px)}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{margin:0;background:var(--canvas);color:var(--ink-soft);font-size:var(--fs-body);line-height:1.65;letter-spacing:0;font-kerning:normal;-webkit-font-smoothing:antialiased;overflow-wrap:break-word}[lang=ko]{font-family:var(--font-ko);word-break:keep-all}[lang=ja]{font-family:var(--font-ja);line-break:strict}[lang=zh-Hans]{font-family:var(--font-zh);line-break:strict}[data-lang-link],[data-lang-link] *{font-family:var(--font-system)}code,kbd,pre,samp{font-family:var(--font-mono);font-size:var(--fs-mono);line-height:1.55}h1,h2,h3,h4{color:var(--ink);margin:0;font-weight:700;text-wrap:balance}[lang=ja] :is(h1,h2,h3),[lang=zh-Hans] :is(h1,h2,h3){word-break:auto-phrase}h3{font-size:var(--fs-h3);line-height:1.35;font-weight:600}p{margin:0}img,svg{display:block;max-width:100%}img{height:auto}.icon{display:inline-block;flex:none;vertical-align:middle}a{color:var(--accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}a:hover{text-decoration-thickness:2px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}main:focus{outline:none}button{font:inherit;color:inherit}fieldset{margin:0;padding:0;border:0;min-width:0}.visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip-link{position:absolute;left:16px;top:-100px;z-index:100;padding:10px 16px;background:var(--surface);color:var(--ink);border-radius:var(--r-md);font-weight:600}.skip-link:focus{top:12px}html:not(.js) .js-only{display:none}.container{width:100%;max-width:calc(var(--content-max) + var(--gutter) * 2);margin-inline:auto;padding-inline:var(--gutter)}.reading{max-width:calc(var(--reading-max) + var(--gutter) * 2);padding-block:var(--space-8) var(--space-9)}.section{padding-block:var(--section-gap)}.section-subtle{background:var(--surface)}.section-title{font-size:var(--fs-h2);line-height:1.25}.section-lead{margin-top:var(--space-4);font-size:var(--fs-lead);line-height:1.6;color:var(--muted-strong);max-width:var(--reading-max)}.page-title{font-size:var(--fs-display);line-height:var(--lh-display)}:lang(ko) .page-title,:lang(ja) .page-title,:lang(zh-Hans) .page-title,:lang(ko) .hero-title,:lang(ja) .hero-title,:lang(zh-Hans) .hero-title{line-height:1.25}.page-lead{margin-top:var(--space-4);font-size:var(--fs-lead);line-height:1.6;color:var(--muted-strong);max-width:var(--reading-max)}.page-intro{padding-block:var(--space-8) var(--space-7)}.fine-print{margin-top:var(--space-5);font-size:var(--fs-small);line-height:1.5;color:var(--muted)}.prose{color:var(--ink-soft)}.prose>*+*{margin-top:var(--space-4)}.prose h2{margin-top:var(--space-7);font-size:26px;line-height:1.3}.prose h3{margin-top:var(--space-6)}.prose h4{margin-top:var(--space-5);font-size:17px}.prose ul,.prose ol{padding-left:1.4em}.prose li+li{margin-top:var(--space-2)}.prose li>ul,.prose li>ol{margin-top:var(--space-2)}.prose :not(pre)>code{padding:1px 5px;border-radius:var(--r-sm);background:var(--hover);color:var(--ink);font-size:.86em;overflow-wrap:anywhere}.prose pre{margin-block:var(--space-5);padding:var(--space-4) var(--space-5);border-radius:var(--r-md);background:var(--term-bg);color:var(--term-ink);overflow-x:auto}.prose pre code{background:none;padding:0;color:inherit}.prose blockquote{margin-inline:0;padding:var(--space-3) var(--space-4);border-left:3px solid var(--accent-border);background:var(--surface);color:var(--muted-strong)}.prose strong{color:var(--ink);font-weight:600}.prose hr{border:0;border-top:1px solid var(--line);margin-block:var(--space-7)}.table-wrap{overflow-x:auto;margin-block:var(--space-5)}.prose table{width:100%;border-collapse:collapse;font-size:15px;line-height:1.5}.prose th,.prose td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.prose th{color:var(--ink);font-weight:600;border-bottom-color:var(--line-strong)}.site-header{position:sticky;top:0;z-index:20;background:var(--canvas);border-bottom:1px solid transparent}.header-inner{display:flex;align-items:center;gap:var(--space-5);height:var(--header-h)}.brand{display:inline-flex;align-items:center;gap:10px;color:var(--ink);font-weight:700;font-size:17px;text-decoration:none;white-space:nowrap;margin:0}.brand img{border-radius:6px}.primary-nav{flex:1;min-width:0}.primary-nav ul{display:flex;gap:var(--space-1);margin:0;padding:0;list-style:none}.primary-nav a{display:inline-flex;align-items:center;min-height:40px;padding-inline:12px;border-radius:var(--r-md);color:var(--muted-strong);font-size:15px;font-weight:500;text-decoration:none;white-space:nowrap;transition:background-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.primary-nav a:hover{background:var(--hover);color:var(--ink)}.primary-nav a[aria-current]{color:var(--ink);font-weight:600}.header-tools{display:flex;align-items:center;gap:var(--space-2);margin-left:auto}.tool-button{display:inline-flex;align-items:center;gap:6px;min-height:40px;min-width:40px;justify-content:center;padding-inline:10px;border:0;border-radius:var(--r-md);background:transparent;color:var(--muted-strong);font-size:15px;cursor:pointer;transition:background-color var(--t-fast) var(--ease)}.tool-button:hover,.tool-button[aria-expanded=true]{background:var(--hover);color:var(--ink)}.tool-button[aria-expanded=true] .icon-chevron{transform:rotate(180deg)}.menu-toggle{display:none}.popover{position:relative}.popover-panel{position:absolute;right:0;top:calc(100% + 6px);z-index:30;min-width:220px;padding:var(--space-2);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);box-shadow:0 8px 20px #1f2b3d24}.popover-note{margin:var(--space-2) var(--space-2) var(--space-1);font-size:13px;line-height:1.45;color:var(--muted)}.lang-list{margin:0;padding:0;list-style:none}.lang-list a{display:flex;align-items:center;min-height:40px;padding-inline:10px;border-radius:var(--r-md);color:var(--ink-soft);text-decoration:none}.lang-list a:hover{background:var(--hover)}.lang-list a[aria-current]{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}.theme-group legend{padding:4px 10px 6px;font-size:13px;color:var(--muted)}.theme-option{display:flex;align-items:center;gap:10px;min-height:40px;padding-inline:10px;border-radius:var(--r-md);cursor:pointer}.theme-option:hover{background:var(--hover)}.theme-option input{accent-color:var(--accent);width:16px;height:16px;margin:0}.sheet{width:100%;max-width:100%;height:100%;max-height:100%;margin:0;padding:0 var(--gutter) var(--space-6);border:0;background:var(--canvas);color:var(--ink-soft);overflow-y:auto}.sheet::backdrop{background:#12151b80}.sheet-head{display:flex;align-items:center;justify-content:space-between;height:var(--header-h)}.sheet-nav ul{margin:0;padding:0;list-style:none}.sheet-nav a{display:flex;align-items:center;min-height:48px;color:var(--ink);font-size:19px;font-weight:600;text-decoration:none;border-bottom:1px solid var(--line)}.sheet-download{width:100%;margin-top:var(--space-5)}.sheet-section{margin-top:var(--space-6)}.sheet-title{margin:0 0 var(--space-2);padding:0;font-size:13px;font-weight:600;color:var(--muted)}.sheet .lang-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px}@media(max-width:899px){.primary-nav,.header-tools .popover,.header-tools .header-download{display:none}.menu-toggle{display:inline-flex}.tool-button{min-width:44px;min-height:44px}.brand,.sheet .lang-list a,.sheet .theme-option{min-height:44px}}@media(max-width:1080px)and (min-width:900px){.tool-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}}.btn{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:44px;padding:8px 20px;border:1px solid transparent;border-radius:var(--r-md);font-size:16px;font-weight:600;line-height:1.25;text-align:center;text-decoration:none;cursor:pointer;transition:background-color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.btn-small{min-height:36px;padding:6px 14px;font-size:15px}.btn-large{min-height:60px;min-width:220px;padding:10px 24px;font-size:17px}.btn-primary{background:var(--emerald);color:var(--on-emerald)}.btn-primary:hover{background:var(--emerald-fill-hover)}.btn-secondary{background:var(--surface);border-color:var(--line-strong);color:var(--ink)}.btn-secondary:hover{background:var(--hover);border-color:var(--muted)}.btn-note{font-size:13px;font-weight:500;opacity:.9}.text-link{display:inline-flex;align-items:center;gap:6px;min-height:44px;color:var(--accent);font-weight:600;text-decoration:none}.text-link:hover{text-decoration:underline}.text-link .icon-arrow{transition:transform var(--t-fast) var(--ease)}.text-link:hover .icon-arrow{transform:translate(2px)}.link-button{padding:0;border:0;background:none;color:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.badge{display:inline-flex;align-items:center;height:24px;padding-inline:10px;border-radius:var(--r-pill);font-size:13px;font-weight:600;white-space:nowrap}.badge-latest{background:var(--accent-soft);color:var(--accent-ink)}.badge-lts{background:var(--emerald-soft);color:var(--emerald-ink)}.chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}.chip{display:inline-flex;align-items:center;min-height:44px;padding-inline:16px;border:1px solid var(--line-strong);border-radius:var(--r-pill);background:var(--surface);color:var(--ink-soft);font-family:var(--font-mono);font-size:14px;cursor:pointer;transition:background-color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.chip:hover{background:var(--hover)}.chip[aria-checked=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink);font-weight:600}.capture-frame{position:relative;margin:0;border-radius:var(--r-lg);overflow:hidden;background:var(--term-bg);box-shadow:var(--frame-shadow);outline:1px solid var(--frame-border);aspect-ratio:1280 / 800}.capture-frame img{width:100%;height:100%;object-fit:cover;object-position:top left;transition:opacity var(--t-fast) var(--ease)}.capture-frame.is-swapping img{opacity:0}.capture-picture{display:contents}.capture-frame-phone{display:flex;justify-content:center;background:var(--hover-strong)}.capture-frame-phone img{width:auto;height:135%;margin-top:6%;object-fit:contain;border-radius:14px;outline:1px solid var(--line)}.feature-detail .capture-frame-phone img{height:92%;margin-top:4%}.capture-label{position:absolute;left:12px;bottom:12px;z-index:1;padding:3px 10px;border-radius:var(--r-pill);background:#12151bb8;color:#dfe4ec;font-size:12px;font-weight:600}.notice{margin-block:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--r-md);background:var(--amber-soft);color:var(--amber-ink);font-size:var(--fs-small);line-height:1.5}.notice-todo code{font-size:13px}.side-nav{position:sticky;top:calc(var(--header-h) + 24px);align-self:start;max-height:calc(100vh - var(--header-h) - 48px);overflow-y:auto;overscroll-behavior:contain}.side-title{margin:0 0 var(--space-2);font-size:13px;font-weight:600;color:var(--muted)}.doc-tree,.version-list,.doc-toc ul{margin:0;padding:0;list-style:none}.doc-tree a,.version-list a,.doc-toc a{display:block;padding:6px 10px;border-radius:var(--r-md);color:var(--muted-strong);font-size:15px;line-height:1.4;text-decoration:none}.doc-tree a:hover,.version-list a:hover,.doc-toc a:hover{background:var(--hover);color:var(--ink)}.doc-tree a[aria-current],.version-list a[aria-current]{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}.version-list a{font-family:var(--font-mono);font-size:14px;padding-block:4px}.side-details{display:none;margin-block:var(--space-4) var(--space-5);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface)}.side-details summary{min-height:44px;display:flex;align-items:center;padding-inline:var(--space-4);cursor:pointer;font-weight:600;color:var(--ink)}.side-details>:not(summary){padding:0 var(--space-2) var(--space-3)}.version-list-compact{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));max-height:50vh;overflow-y:auto}@media(max-width:899px){.side-nav{display:none}.side-details{display:block}}.pager{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);margin-top:var(--space-8)}.pager-link{display:flex;flex-direction:column;gap:2px;padding:var(--space-4);border:1px solid var(--line);border-radius:var(--r-md);text-decoration:none;color:var(--ink)}.pager-link:hover{border-color:var(--accent-border);background:var(--surface)}.pager-next{text-align:right}.pager-label{font-size:13px;color:var(--muted)}.pager-title{font-weight:600}.site-footer{padding-block:var(--space-8) var(--space-6);background:var(--surface-subtle);border-top:1px solid var(--line);color:var(--muted-strong);font-size:var(--fs-small);line-height:1.6}.footer-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:var(--space-7)}.footer-logo{display:inline-flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none}.footer-logo .twentyoz-logo{width:24px;height:auto}.footer-logo-word{font-family:var(--font-system);font-size:15px;font-weight:700;letter-spacing:.08em}.company-info{margin:var(--space-4) 0 0}.company-info div{display:flex;gap:6px}.company-info dt{color:var(--muted)}.company-info dd{margin:0}.company-info a{display:inline-flex;align-items:center;min-height:24px}.company-info a,.footer-links a,.site-footer .link-button{color:var(--muted-strong);text-decoration:none}.company-info a:hover,.footer-links a:hover,.site-footer .link-button:hover{color:var(--ink);text-decoration:underline}.footer-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-5)}.footer-links h2{margin-bottom:var(--space-2);font-size:13px;font-weight:600;color:var(--ink)}.footer-links ul{margin:0;padding:0;list-style:none}.footer-links li a,.footer-links li .link-button{display:inline-flex;align-items:center;min-height:32px;font-size:var(--fs-small)}.footer-links a[aria-current]{color:var(--ink);font-weight:600}.copyright{margin-top:var(--space-7);color:var(--muted)}@media(max-width:899px){.footer-grid{grid-template-columns:1fr}.footer-links{grid-template-columns:repeat(2,minmax(0,1fr))}}.consent{position:fixed;left:0;right:0;bottom:0;z-index:40;padding-block:var(--space-4);background:var(--surface);border-top:1px solid var(--line);box-shadow:0 -8px 20px #1f2b3d14}.consent-inner{display:flex;align-items:center;gap:var(--space-5)}.consent-inner p{flex:1;font-size:15px;line-height:1.5}.consent-actions{display:flex;gap:var(--space-2)}.consent-actions .btn{min-width:96px}@media(max-width:699px){.consent-inner{flex-direction:column;align-items:stretch}.consent-actions .btn{flex:1}}.hero{padding-block:var(--space-8) var(--section-gap)}.hero-inner{display:grid;gap:var(--space-7)}.hero-copy{max-width:860px}.hero-title{font-size:var(--fs-display);line-height:var(--lh-display);font-weight:700;color:var(--ink)}.hero-lead{margin-top:var(--space-5);max-width:var(--reading-max);font-size:var(--fs-lead);line-height:1.6;color:var(--muted-strong)}.hero-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-6)}.hero-caption{margin-top:var(--space-3);font-size:var(--fs-small);color:var(--muted)}.hero-caption a{color:var(--muted-strong)}.project-switch{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-4);margin-bottom:var(--space-4)}.project-switch-label{font-size:var(--fs-small);font-weight:600;color:var(--ink)}.project-hint{flex-basis:100%;font-size:var(--fs-small);color:var(--muted)}@media(max-width:599px){.hero{padding-top:var(--space-6)}.hero-actions .btn{flex:1 1 100%;min-width:0}}@media(max-width:600px){.hero-capture{aspect-ratio:780 / 623}.hero-capture .capture-label{inset:10px 10px auto auto}}.feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-5);margin-top:var(--space-7)}.feature{display:flex;flex-direction:column;gap:var(--space-5);padding:var(--space-5);border-radius:var(--r-lg);background:var(--surface)}.feature h3{margin-bottom:var(--space-2)}.feature p{color:var(--muted-strong)}.feature .text-link{margin-top:var(--space-2)}.feature-large{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);align-items:center;gap:var(--space-7);padding:var(--space-7)}.feature-large h3{font-size:var(--fs-h2);line-height:1.25;margin-bottom:var(--space-4)}.feature-large p{font-size:var(--fs-lead);line-height:1.6}.feature .capture-frame{margin-top:auto}@media(max-width:959px){.feature-grid{grid-template-columns:1fr}.feature-large{grid-template-columns:1fr;padding:var(--space-5);gap:var(--space-5)}}.steps{counter-reset:step;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-5);margin:var(--space-7) 0 0;padding:0;list-style:none}.step{counter-increment:step;display:flex;flex-direction:column;gap:var(--space-2)}.step:before{content:counter(step);display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;margin-bottom:var(--space-2);border-radius:var(--r-pill);background:var(--accent-soft);color:var(--accent-ink);font-weight:700;font-size:15px}.step p{color:var(--muted-strong)}.step .text-link{margin-top:auto}@media(max-width:959px){.steps{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:599px){.steps{grid-template-columns:1fr}}.contact{display:flex;align-items:center;justify-content:space-between;gap:var(--space-7)}.contact-copy{max-width:var(--reading-max)}.contact-copy p{margin-top:var(--space-4);color:var(--muted-strong)}.contact-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);flex:none}@media(max-width:899px){.contact{flex-direction:column;align-items:flex-start}}.anchor-nav ul{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:var(--space-6) 0 0;padding:0;list-style:none}.anchor-nav a{display:inline-flex;align-items:center;min-height:40px;padding-inline:14px;border:1px solid var(--line-strong);border-radius:var(--r-pill);color:var(--ink-soft);font-size:15px;text-decoration:none}.anchor-nav a:hover{background:var(--hover)}.feature-detail-head{max-width:820px}.point-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4) var(--space-7);margin:var(--space-6) 0 var(--space-7);padding:0;list-style:none}.point-list li{position:relative;padding-left:20px;color:var(--ink-soft)}.point-list li:before{content:"";position:absolute;left:0;top:.7em;width:8px;height:2px;background:var(--accent)}.point-list code{font-size:.86em;overflow-wrap:anywhere}@media(max-width:899px){.point-list{grid-template-columns:1fr}}.tool-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-6) var(--space-7);margin-top:var(--space-6)}.tool-group h3{font-size:17px;margin-bottom:var(--space-3)}.tool-list{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0;padding:0;list-style:none}.tool-list li{padding:4px 12px;border-radius:var(--r-pill);background:var(--canvas);font-size:15px;color:var(--ink)}.section-subtle .tool-list li{background:var(--hover)}@media(max-width:767px){.tool-groups{grid-template-columns:1fr}}.page-actions{margin-top:var(--space-6)}.offer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-5);margin:var(--space-7) 0 0;padding:0;list-style:none}.offer{padding:var(--space-6);border-radius:var(--r-lg);background:var(--surface)}.offer p,.security-item dd{margin-top:var(--space-3);color:var(--muted-strong)}.security-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-7);margin:var(--space-7) 0 0}.security-item dt{font-size:var(--fs-h3);line-height:1.35;font-weight:600;color:var(--ink)}.security-item dd{margin-left:0}@media(max-width:899px){.offer-grid,.security-list{grid-template-columns:1fr;gap:var(--space-5)}}.faq{max-width:880px;margin-top:var(--space-6)}.faq-item{border-bottom:1px solid var(--line)}.faq-item summary{display:flex;align-items:center;min-height:56px;padding-block:var(--space-3);color:var(--ink);font-weight:600;cursor:pointer}.faq-answer{padding-bottom:var(--space-5);color:var(--muted-strong)}.changelog-layout{display:grid;grid-template-columns:180px minmax(0,var(--reading-max));gap:var(--space-8);padding-block:var(--space-8) var(--space-9)}.release{padding-top:var(--space-7);margin-top:var(--space-7);border-top:1px solid var(--line)}.release:first-of-type{border-top:0;margin-top:var(--space-5);padding-top:0}.release-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3)}.release-head h2{font-size:24px;line-height:1.3}.release-anchor{color:var(--ink);text-decoration:none}.release-anchor:hover{text-decoration:underline}.release-date{color:var(--muted);font-weight:500;font-size:17px}.release-extra{display:inline-flex;align-items:center;gap:var(--space-2)}.release-download{min-height:32px;font-size:var(--fs-small)}.release-body{margin-top:var(--space-4)}.release-body h3{margin-top:var(--space-5);font-size:15px;font-weight:600;color:var(--muted-strong)}.notice-inline{margin-bottom:0}@media(max-width:899px){.changelog-layout{grid-template-columns:minmax(0,1fr);gap:0}}.doc-layout{display:grid;grid-template-columns:220px minmax(0,var(--reading-max)) 200px;justify-content:space-between;gap:var(--space-7);padding-block:var(--space-8) var(--space-9)}.doc-layout-index{grid-template-columns:220px minmax(0,1fr);justify-content:start}.doc-main .page-title{margin-bottom:var(--space-5)}.doc-main>.prose{margin-top:var(--space-5)}.doc-toc nav{position:sticky;top:calc(var(--header-h) + 24px)}.doc-toc a{font-size:14px;padding-block:4px}.doc-toc .toc-depth-3 a{padding-left:22px}@media(max-width:1199px){.doc-layout{grid-template-columns:220px minmax(0,var(--reading-max));justify-content:start}.doc-toc{display:none}}@media(max-width:899px){.doc-layout,.doc-layout-index{grid-template-columns:minmax(0,1fr);gap:0;padding-top:var(--space-5)}}.guide-cards{display:grid;gap:var(--space-3);margin:var(--space-7) 0 0;padding:0;list-style:none;max-width:820px}.guide-cards a{display:flex;align-items:center;gap:var(--space-5);padding:var(--space-5);border-radius:var(--r-lg);background:var(--surface);color:var(--ink);text-decoration:none;transition:background-color var(--t-fast) var(--ease)}.guide-cards a:hover{background:var(--hover)}.guide-card-index{flex:none;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--r-pill);background:var(--accent-soft);color:var(--accent-ink);font-weight:700;font-size:15px}.guide-card-text{display:flex;flex:1;flex-direction:column;gap:4px}.guide-card-title{font-weight:600;font-size:18px}.guide-card-desc{color:var(--muted-strong);font-size:15px;line-height:1.5}.guide-cards .icon-arrow{color:var(--accent)}.language-select{min-height:100vh;display:flex;align-items:center}.select-inner{max-width:calc(760px + var(--gutter) * 2);padding-block:var(--space-8)}.brand-static{margin-bottom:var(--space-6);font-size:20px}.select-title{font-size:var(--fs-h2);line-height:1.25}.lang-cards{display:grid;gap:var(--space-2);margin:var(--space-6) 0 0;padding:0;list-style:none}.lang-card{display:grid;grid-template-columns:140px minmax(0,1fr) auto;align-items:center;gap:var(--space-4);min-height:56px;padding:var(--space-3) var(--space-5);border-radius:var(--r-lg);background:var(--surface);color:var(--ink);text-decoration:none}.lang-card:hover{background:var(--hover)}.lang-card-name{font-weight:600}.lang-card-tagline{color:var(--muted-strong);font-size:15px;line-height:1.5}.lang-card .icon-arrow{color:var(--accent)}.select-note{margin-top:var(--space-5);font-size:var(--fs-small);color:var(--muted)}@media(max-width:599px){.lang-card{grid-template-columns:minmax(0,1fr) auto}.lang-card-tagline{grid-column:1}.lang-card .icon-arrow{grid-row:1 / span 2;grid-column:2}}.dl-page{padding-block:64px 96px}.dl-title{margin:0;font-size:var(--fs-display);line-height:1.15;font-weight:700;color:var(--ink)}:lang(ko) .dl-title,:lang(ja) .dl-title,:lang(zh-Hans) .dl-title{line-height:1.25}.dl-intro{max-width:680px;margin:16px 0 0;font-size:var(--fs-lead);line-height:1.6;color:var(--ink-soft)}.dl{margin-top:48px}.dl-noscript{margin:0 0 24px;padding:16px 24px;border-radius:var(--r-lg);background:var(--surface);color:var(--ink-soft)}.dl-tablist{display:flex;flex-wrap:wrap;gap:8px}.dl-tab{display:inline-flex;flex:0 0 auto;align-items:center;gap:8px;min-height:44px;padding:8px 16px;border:1px solid transparent;border-radius:var(--r-md);background:transparent;color:var(--muted-strong);font:inherit;font-size:var(--fs-body);font-weight:500;cursor:pointer;transition:background-color 80ms var(--ease),color 80ms var(--ease)}.dl-tab:hover{background:var(--hover);color:var(--ink)}.dl-tab[aria-selected=true]{background:var(--accent-soft, var(--surface));border-color:var(--accent-border, var(--accent));color:var(--accent-ink, var(--accent));font-weight:600}.dl-tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dl-tab-icon{display:inline-flex;width:20px;height:20px}.dl-tab-icon svg{width:100%;height:100%}.dl-tab-here{font-size:var(--fs-small);font-weight:500;color:var(--muted)}.dl-tab[aria-selected=true] .dl-tab-here{color:inherit}.dl-tab-here:before{content:"· "}.dl-panel{margin-top:24px;transition:opacity .12s var(--ease)}.dl-panel.is-swapping{opacity:0}.dl-tracks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.dl-track{display:flex;flex-direction:column;align-items:flex-start;gap:12px;min-height:280px;padding:24px;border-radius:var(--r-lg);background:var(--surface);min-width:0}.dl-track.is-empty{background:transparent;border:1px dashed var(--line-strong, var(--line))}.dl-track-head{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.dl-version{font-family:var(--font-mono);font-size:var(--fs-h3);font-weight:600;color:var(--ink)}.dl-track-title{margin:0;font-size:var(--fs-h3);line-height:1.35;font-weight:600;color:var(--ink)}.dl-track-meta,.dl-track-desc,.dl-empty,.dl-os-note{margin:0}.dl-track-meta{font-size:var(--fs-small);color:var(--muted-strong)}.dl-track-desc{color:var(--ink-soft)}.dl-empty{max-width:44ch;color:var(--muted-strong)}.dl-formats{display:flex;flex-wrap:wrap;gap:12px;margin-top:4px}.dl-format{display:inline-flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;min-height:56px;min-width:168px;padding:8px 16px;text-align:left;text-decoration:none}.dl-format-name{font-weight:600;line-height:1.3}.dl-format-meta{font-family:var(--font-mono);font-size:var(--fs-small);font-weight:400;line-height:1.3;opacity:.82}.btn-primary .dl-format-meta{opacity:1}.dl-changelog{margin-top:auto;font-size:var(--fs-small)}.dl-os-note{margin-top:16px;font-size:var(--fs-small);color:var(--muted-strong)}.dl-status{margin:0;color:var(--muted-strong)}.dl-error{display:flex;flex-wrap:wrap;align-items:center;gap:16px;padding:24px;border-radius:var(--r-lg);background:var(--surface)}.dl-error p{margin:0;color:var(--ink-soft)}.dl-bar{display:block;width:60%;height:14px;border-radius:var(--r-sm);background:var(--hover)}.dl-bar-short{width:72px;height:20px}.dl-bar-long{width:85%}.dl-bar-button{width:168px;height:56px;border-radius:var(--r-md)}.dl-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.dl-previous{margin-top:64px}.dl-subtitle{margin:0;font-size:var(--fs-h3);line-height:1.35;font-weight:600;color:var(--ink)}.dl-previous-desc{margin:8px 0 16px;font-size:var(--fs-small);color:var(--muted-strong)}.dl-previous-list{display:grid;gap:12px;margin:0;padding:0;list-style:none}.dl-previous-row{display:grid;gap:8px;padding:16px 24px;border-radius:var(--r-lg);background:var(--surface)}.dl-previous-head{display:flex;align-items:center;gap:12px}.dl-previous-head .dl-version{font-size:var(--fs-body)}.dl-previous-files{display:flex;flex-wrap:wrap;gap:8px 24px;font-size:var(--fs-small)}.dl-previous-files a{display:inline-flex;align-items:center;min-height:44px}.dl-footer{margin-top:48px;font-size:var(--fs-small);color:var(--muted-strong)}.dl-footer p{margin:0 0 8px}.dl-requirements strong{margin-right:8px;color:var(--ink-soft)}@media(max-width:767px){.dl-page{padding-block:48px 64px}.dl{margin-top:32px}.dl-tracks{grid-template-columns:minmax(0,1fr)}.dl-track{min-height:0;padding:20px}.dl-format{flex:1 1 100%}.dl-bar-button{width:100%}}@media(prefers-reduced-motion:reduce){.dl-panel,.dl-tab{transition:none}}
