:root{--paper:#faf8f2;--paper-2:#f2eee3;--card:#fffefb;--ink:#1b1913;--ink-2:#423e35;--muted:#8a8270;--line:#e8e2d4;--line-2:#d9d2c0;--pen:#d6452c;--pen-ink:#b23a22;--pen-wash:#f7e6df;--display:"Fraunces", "Pretendard", Georgia, "Times New Roman", serif;--sans:"Hanken Grotesk", "Pretendard", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--nav-h:57px;--measure:64ch;--ease:cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}html,body{margin:0;padding:0}body{background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background-image:radial-gradient(1200px 520px at 12% -8%,#d6452c0b,#0000 60%);background-repeat:no-repeat;font-size:17px;line-height:1.65}a{color:var(--pen-ink);text-underline-offset:3px;text-decoration:underline 1px;text-decoration-color:color-mix(in srgb, var(--pen-ink) 35%, transparent);transition:text-decoration-color .18s var(--ease), color .18s var(--ease)}a:hover{text-decoration-color:var(--pen-ink)}code,pre,kbd,samp{font-family:var(--mono)}::selection{background:var(--pen-wash)}:focus-visible{outline:2px solid var(--pen);outline-offset:2px;border-radius:3px}pre{background:var(--paper-2);border:1px solid var(--line);color:var(--ink-2);border-radius:12px;padding:18px 20px;font-size:13.5px;line-height:1.6;overflow:auto}pre .k{color:var(--pen-ink);font-weight:500}pre .s{color:#357a4e}pre .c{color:var(--muted);font-style:italic}pre mark.ins{background:var(--pen-wash);color:var(--pen-ink);box-decoration-break:clone;border-radius:3px;padding:0 3px;font-weight:600}.wrap{max-width:1080px;margin:0 auto;padding:0 28px}.pill{font:600 12px/1 var(--sans);letter-spacing:.01em;border:1px solid var(--line-2);color:var(--ink-2);background:var(--card);border-radius:999px;align-items:center;gap:7px;padding:7px 13px;display:inline-flex}.pill:before{content:"";background:var(--pen);width:6px;height:6px;box-shadow:0 0 0 3px var(--pen-wash);border-radius:999px}.topnav{border-bottom:1px solid var(--line);z-index:50;background:color-mix(in srgb, var(--paper) 82%, transparent);backdrop-filter:saturate(1.4)blur(10px);align-items:center;gap:22px;padding:13px 28px;display:flex;position:sticky;top:0}.topnav .brand{font:600 18px/1 var(--display);letter-spacing:-.01em;color:var(--ink);margin-right:auto;text-decoration:none}.topnav a{color:var(--ink-2);transition:color .15s var(--ease);font-size:14.5px;text-decoration:none}.topnav a:not(.brand):not(.lang):hover{color:var(--ink)}.topnav a.lang{border:1px solid var(--line-2);font:600 12.5px var(--sans);color:var(--ink);transition:border-color .18s var(--ease), background .18s var(--ease);border-radius:999px;padding:5px 13px}.topnav a.lang:hover{border-color:var(--pen);background:var(--pen-wash)}.hero{border-bottom:1px solid var(--line);padding:clamp(64px,11vw,120px) 0 clamp(48px,7vw,76px)}.hero .wrap{max-width:880px}.hero h1{font-family:var(--display);letter-spacing:-.025em;font-optical-sizing:auto;margin:20px 0 0;font-size:clamp(3rem,8vw,5.25rem);font-weight:500;line-height:.98}.hero .lede{color:var(--ink-2);max-width:30ch;margin:22px 0 0;font-size:clamp(1.15rem,2.3vw,1.4rem);line-height:1.5}.hero .lede code{background:var(--paper-2);border:1px solid var(--line);color:var(--ink);border-radius:5px;padding:1px 5px;font-size:.9em}.cta{flex-wrap:wrap;gap:12px;margin-top:34px;display:flex}.btn{transition:transform .15s var(--ease), background .18s var(--ease), border-color .18s var(--ease);border:1px solid #0000;border-radius:10px;align-items:center;gap:8px;padding:12px 22px;font-size:15px;font-weight:600;text-decoration:none;display:inline-flex}.btn.primary{background:var(--ink);color:var(--paper)}.btn.primary:hover{background:#000;transform:translateY(-1px)}.btn.ghost{color:var(--ink);border-color:var(--line-2);background:var(--card)}.btn.ghost:hover{border-color:var(--pen);color:var(--pen-ink);transform:translateY(-1px)}.section{max-width:880px}.section h2{font-family:var(--display);letter-spacing:-.018em;margin:clamp(56px,8vw,88px) 0 6px;font-size:clamp(1.7rem,3.4vw,2.4rem);font-weight:500}.section .sub{color:var(--muted);max-width:52ch;margin:0 0 26px;font-size:1.02rem}.twin{grid-template-columns:1fr 1fr;gap:16px;margin:30px 0 8px;display:grid}.twin>div{flex-direction:column;display:flex}.twin .lab{font:600 11.5px/1.3 var(--sans);letter-spacing:.02em;color:var(--muted);align-items:center;gap:7px;margin-bottom:9px;display:flex}.twin .lab.open{color:var(--pen-ink)}.twin .lab.open:before{content:"✎";font-size:13px}.twin pre{flex:1;margin:0}.difflegend{color:var(--muted);align-items:center;gap:8px;margin-top:14px;font-size:13.5px;display:inline-flex}.difflegend mark.ins{background:var(--pen-wash);color:var(--pen-ink);font-weight:600;font-family:var(--mono);border-radius:3px;padding:0 5px;font-size:12.5px}.honest{border:1px solid var(--line-2);border-left:3px solid var(--pen);background:var(--card);border-radius:4px 12px 12px 4px;max-width:720px;margin:18px 0;padding:22px 24px;position:relative}.honest .marknote{font:600 11px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--pen-ink);margin:0 0 10px}.honest h3{color:var(--ink);font-family:var(--display);margin:0 0 10px;font-size:1.25rem;font-weight:500;line-height:1.3}.honest p{color:var(--ink-2);margin:0;font-size:1rem}table.adapters{border-collapse:collapse;width:100%;margin-top:10px;font-size:14.5px}table.adapters th,table.adapters td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:13px 14px}table.adapters thead th{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;border-bottom-color:var(--line-2);font-size:12px;font-weight:600}table.adapters tbody tr{transition:background .15s var(--ease)}table.adapters tbody tr:hover{background:color-mix(in srgb, var(--paper-2) 60%, transparent)}table.adapters td code{color:var(--ink);background:var(--paper-2);border:1px solid var(--line);border-radius:5px;padding:1px 7px;font-size:13.5px}table.adapters td:last-child{color:var(--ink-2)}.tag{font:600 11px/1.6 var(--mono);white-space:nowrap;border-radius:999px;padding:2px 9px;display:inline-block}.tag.full{color:var(--paper);background:var(--ink)}.tag.exp{color:var(--pen-ink);border:1px solid var(--pen);background:var(--pen-wash)}.tag.plan{color:var(--muted);border:1px dashed var(--line-2)}footer.site{color:var(--muted);text-align:left;border-top:1px solid var(--line);margin-top:80px;padding:56px 28px;font-size:13.5px}footer.site .wrap{max-width:1080px}footer.site b{color:var(--ink-2);font-weight:600}.docs{min-height:calc(100vh - var(--nav-h));grid-template-columns:256px 1fr 200px;display:grid}.docs aside{border-right:1px solid var(--line);top:var(--nav-h);height:calc(100vh - var(--nav-h));background:color-mix(in srgb, var(--paper-2) 50%, var(--paper));padding:28px 18px;position:sticky;overflow:auto}.docs aside .grp{font:600 11px var(--sans);color:var(--muted);text-transform:uppercase;letter-spacing:.09em;margin:22px 0 7px}.docs aside .grp:first-child{margin-top:0}.docs aside a{color:var(--ink-2);transition:background .14s var(--ease), color .14s var(--ease);border-radius:8px;padding:6px 11px;font-size:14.5px;text-decoration:none;display:block}.docs aside a:hover{background:var(--card);color:var(--ink)}.docs aside a.active{background:var(--pen-wash);color:var(--pen-ink);font-weight:600}.docs aside .soon{color:color-mix(in srgb, var(--muted) 82%, transparent);cursor:default;justify-content:space-between;align-items:center;gap:8px;padding:6px 11px;font-size:14.5px;display:flex}.docs aside .soon em{font:600 9px/1 var(--sans);letter-spacing:.05em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line-2);border-radius:999px;flex:none;padding:2px 6px;font-style:normal}.docs main{max-width:780px;padding:clamp(36px,5vw,52px) clamp(28px,5vw,56px) 120px}.docs main .crumb{font:600 12px var(--sans);color:var(--muted);letter-spacing:.03em;margin-bottom:14px}.docs main h1{font-family:var(--display);letter-spacing:-.02em;margin:0 0 10px;font-size:clamp(2rem,4vw,2.6rem);font-weight:500}.docs main>p{color:var(--ink-2);max-width:var(--measure)}.docs main h2{font-family:var(--display);letter-spacing:-.012em;border-top:1px solid var(--line);margin:46px 0 8px;padding-top:14px;font-size:1.5rem;font-weight:500}.docs main p{color:var(--ink-2);max-width:var(--measure)}.docs main .api{border:1px solid var(--line-2);background:var(--card);border-radius:12px;margin:14px 0;padding:16px 18px}.docs main .api code.sig{color:var(--pen-ink);font-size:14px;font-weight:600}.docs main .api p{margin:8px 0 0;font-size:.96rem}.docs main code{background:var(--paper-2);border:1px solid var(--line);color:var(--ink);border-radius:5px;padding:1px 6px;font-size:.85em}.docs nav.toc{top:var(--nav-h);height:calc(100vh - var(--nav-h));padding:clamp(36px,5vw,52px) 14px;font-size:13px;position:sticky}.docs nav.toc .t{color:var(--muted);text-transform:uppercase;letter-spacing:.09em;font:600 11px var(--sans);margin-bottom:12px}.docs nav.toc a{color:var(--muted);transition:color .14s var(--ease);padding:5px 0;text-decoration:none;display:block}.docs nav.toc a:hover{color:var(--ink)}@media (prefers-reduced-motion:no-preference){.reveal>*{opacity:0;animation:rise .7s var(--ease) forwards;transform:translateY(14px)}.reveal>:first-child{animation-delay:20ms}.reveal>:nth-child(2){animation-delay:90ms}.reveal>:nth-child(3){animation-delay:.16s}.reveal>:nth-child(4){animation-delay:.23s}.reveal>:nth-child(5){animation-delay:.3s}@keyframes rise{to{opacity:1;transform:none}}}@media (width<=900px){.docs{grid-template-columns:1fr}.docs aside,.docs nav.toc{display:none}}@media (width<=720px){body{font-size:16px}.twin{grid-template-columns:1fr}.topnav{gap:16px}.topnav a:not(.brand):not(.lang){display:none}}
