@font-face{font-family:Hanken;src:url("/assets/hanken-grotesk.woff2") format("woff2");font-style:normal;font-weight:100 900;font-display:swap}
.aside a{color:var(--brand);text-decoration:underline;text-underline-offset:3px}
:root{font-family:Hanken,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:#202735;background:#fff;font-synthesis:none;--brand:#2c3c96;--ink:#202735;--ink-2:#465164;--ink-3:#626d7f;--line:#e5e8ed;--surface-sunk:#f8f9fa;--brand-soft:#f0f2fa}*{box-sizing:border-box}body{margin:0}html{scroll-behavior:smooth;scroll-padding-top:32px}a{color:inherit;text-decoration:none}button{font:inherit}a:focus-visible,button:focus-visible,pre:focus-visible{outline:2px solid var(--brand);outline-offset:4px}.skip{position:fixed;top:-60px;left:20px;background:var(--ink);color:#fff;padding:10px;z-index:30}.skip:focus{top:10px}.icon{width:16px;height:16px;flex-shrink:0}header{height:72px;border-bottom:1px solid var(--line);background:#fff}.header-inner{max-width:1120px;padding:0 36px;margin:auto;display:flex;height:100%;align-items:center;justify-content:space-between;gap:20px}.brands,.header-actions{display:flex;align-items:center}.brands{gap:21px}.indiana-brand{display:flex;align-items:center;gap:10px;font-size:18px;letter-spacing:-.4px;font-weight:650}.indiana-brand img{display:block}.brand-x{width:13px;height:13px;color:#9aa2b1;stroke-width:1.4}.openart-brand{display:flex;align-items:center}.openart-brand img{width:97px;height:30px;object-fit:contain;filter:brightness(0)}.header-actions{gap:16px}.language,.download{display:flex;align-items:center;justify-content:center;gap:8px;min-height:34px;padding:7px 10px;border-radius:6px;font-size:12px;font-weight:500;transition:background .15s,color .15s,border-color .15s}.language{color:var(--ink-2)}.language:hover{background:#eceef1}.download{border:1px solid #d2d7df;color:var(--ink-2);box-shadow:0 1px 1px rgba(19,27,46,.02)}.download:hover{background:var(--surface-sunk);border-color:#b6beca}.download .icon{width:14px;height:14px}main{max-width:840px;padding:51px 36px 0;margin:auto}.intro{padding-bottom:31px}.eyebrow{display:flex;align-items:center;gap:8px;color:var(--brand);font-size:12px;font-weight:550;margin:0 0 16px}.eyebrow .icon{width:15px;height:15px}h1{font-size:38px;font-weight:600;line-height:1.2;letter-spacing:-1.25px;margin:0 0 16px}.lead{font-size:16px;line-height:1.7;max-width:610px;color:var(--ink-3);margin:0}section{border-top:1px solid var(--line);padding:31px 0 28px}h2{display:flex;align-items:baseline;gap:13px;font-size:21px;font-weight:600;letter-spacing:-.45px;line-height:1.45;margin:0}.section-index{font-family:"SFMono-Regular",Consolas,monospace;font-size:11px;font-weight:400;color:#7d889a;letter-spacing:0}p{font-size:14px;line-height:1.8;color:var(--ink-3);margin:15px 0 21px}p code{font-size:12px;padding:2px 4px;background:#f0f2f6;border-radius:3px;color:var(--ink-2)}pre,code{font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace}.code-window{margin:20px 0 15px;border:1px solid #202b46;border-radius:8px;overflow:hidden;background:#141b30;color:#d6dbe7;box-shadow:0 1px 2px rgba(19,27,46,.04)}.code-bar{display:flex;align-items:center;justify-content:space-between;background:#1b2340;border-bottom:1px solid rgba(255,255,255,.08);padding:10px 16px;color:#a4aec2;font-size:11px;gap:12px}.code-bar>span{display:flex;align-items:center;gap:8px}.code-bar .icon{width:13px;height:13px}.copy{display:flex;align-items:center;gap:6px;background:none;border:0;color:#bac3d8;cursor:pointer;padding:4px 2px;font-size:11px;transition:color .15s}.copy:hover{color:#fff}pre{font-size:12px;line-height:1.9;margin:0;padding:21px 22px;overflow-x:auto;tab-size:2}pre code{font-size:inherit}.keyword{color:#aab5f6}.string{color:#e5c790}.comment{color:#8c95a8}.aside{font-size:12px;line-height:1.8;margin:12px 0 0;color:var(--ink-3)}.aside code{font-size:11px}.checks{margin:17px 0 0}.checks>div{display:grid;grid-template-columns:158px 1fr;gap:16px;padding:19px 0;border-bottom:1px solid var(--line)}dt{display:flex;align-items:flex-start;gap:10px;font-size:13px;font-weight:550;color:var(--ink);line-height:1.75}dt .icon{width:16px;height:16px;color:var(--brand);margin-top:3px}dd{margin:0;font-size:13px;line-height:1.8;color:var(--ink-3)}.final-note{display:flex;align-items:flex-start;gap:10px;font-size:12px;line-height:1.8;margin:23px 0 0;color:var(--ink-3)}.final-note .icon{color:var(--brand);width:15px;height:15px;margin-top:3px}footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);font-size:11px;color:var(--ink-3);padding:23px 0 32px}footer>span:first-child{font-weight:500;color:var(--ink-2)}.feedback{position:fixed;bottom:26px;left:50%;transform:translate(-50%,8px);background:var(--ink);color:#fff;padding:10px 18px;border-radius:6px;font-size:12px;opacity:0;pointer-events:none;transition:opacity .16s,transform .16s;box-shadow:0 4px 16px rgba(19,27,46,.12)}.feedback.visible{opacity:1;transform:translate(-50%,0)}@media(max-width:640px){header{height:64px}.header-inner{padding:0 20px;gap:10px}.brands{gap:12px}.indiana-brand{font-size:16px;gap:7px}.indiana-brand img{width:25px;height:25px}.openart-brand img{width:83px;height:26px}.brand-x{width:10px;height:10px}.header-actions{gap:4px}.language,.download{padding:7px 6px;font-size:11px;gap:5px}.language .icon{width:14px;height:14px}.download{border-color:transparent;box-shadow:none}.download span{display:none}.download .icon{width:16px;height:16px}main{padding:35px 22px 0}h1{font-size:31px;letter-spacing:-.8px}.lead{font-size:14px}.intro{padding-bottom:25px}section{padding:25px 0}h2{font-size:19px}p{font-size:13px}.code-bar{padding:9px 12px}pre{padding:17px 14px;font-size:10.5px}.checks>div{grid-template-columns:1fr;gap:7px;padding:16px 0}dt{font-size:13px}dd{padding-left:26px;font-size:12px}.aside,.final-note{font-size:11px}footer{font-size:10px;gap:12px}.header-inner .icon.brand-x{flex-shrink:0}}@media(max-width:350px){.indiana-brand span{display:none}.brands{gap:11px}.header-actions{gap:7px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}
