@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Host Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(/assets/host-grotesk-latin-ext-wght-normal-B8jkyusk.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Host Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(/assets/host-grotesk-latin-wght-normal-CBa0fl4q.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root,[data-theme=light]{color-scheme:light;--bg: #fafafa;--card: #ffffff;--stage: #fcfcfd;--line: #ececef;--line2: #f1f1f3;--grid: #eceef3;--fg: #18181b;--fg2: #52525b;--fg3: #a1a1aa;--fg-nav: #71717a;--hov: #f4f4f5;--inv: #18181b;--inv-fg: #ffffff;--shadow: rgba(0, 0, 0, .08);--blue: #3b82f6;--orange: #f97316;--pink: #e11d74;--font: "Inter Variable", Inter, ui-sans-serif, system-ui, sans-serif;--font-head: "Host Grotesk Variable", "Inter Variable", ui-sans-serif, system-ui, sans-serif;--mono: "JetBrains Mono Variable", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--ease-out: cubic-bezier(.32, .72, 0, 1);--ease-in: cubic-bezier(.4, 0, 1, 1);--ease: cubic-bezier(.2, .8, .2, 1)}[data-theme=dark]{color-scheme:dark;--bg: #0e0f13;--card: #16181d;--stage: #121318;--line: #25272e;--line2: #1d1f25;--grid: #1f2128;--fg: #e6e7eb;--fg2: #9b9da8;--fg3: #5d606c;--fg-nav: #8a8d99;--hov: #1e2027;--inv: #e6e7eb;--inv-fg: #0e0f13;--shadow: rgba(0, 0, 0, .5);--blue: #7aa2ff;--orange: #f59e6b;--pink: #f472b6}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.6 var(--font);-webkit-font-smoothing:antialiased;overflow-x:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}svg{display:block;flex:none}code,kbd,pre{font-family:var(--mono)}:focus-visible{outline:2px solid var(--fg);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip{position:absolute;left:16px;top:-40px;background:var(--inv);color:var(--inv-fg);padding:6px 12px;border-radius:8px;z-index:50}.skip:focus{top:12px}.glyph-blue{color:var(--blue)}.glyph-orange{color:var(--orange)}.glyph-pink{color:var(--pink)}.icon-btn{display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--fg2)}.icon-btn:hover{color:var(--fg)}.ctl{font-size:12px;border:1px solid var(--line);background:var(--card);color:var(--fg-nav);border-radius:999px;padding:3px 10px;display:inline-flex;align-items:center;gap:4px}.ctl:hover{color:var(--fg2)}.ctl[aria-pressed=true]{color:var(--fg);border-color:var(--fg3);background:var(--hov)}.menu{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:5px;box-shadow:0 4px 14px var(--shadow);font-size:12.5px;width:200px;color:var(--fg2)}.menu-item{display:flex;gap:10px;align-items:center;padding:4px 8px;border-radius:6px}.menu-item span{flex:1}.menu-item kbd{font:10.5px var(--font);color:var(--fg3)}.menu-item:hover,.menu-item.hover{background:var(--hov);color:var(--fg)}.menu:hover .menu-item.hover:not(:hover){background:none;color:var(--fg2)}.swap{display:grid}.swap>*{grid-area:1 / 1;transition:opacity .15s var(--ease-out),scale .15s var(--ease-out)}.swap .swap-b,.swap[data-state=copied] .swap-a{opacity:0;scale:.6}.swap[data-state=copied] .swap-b{opacity:1;scale:1}.action,.hero-link{transition:scale .15s var(--ease-out)}.cell:active,.action:active,button.hero-link:active,.to-top:active{scale:.97}.theme-switching,.theme-switching *,.theme-switching *:before,.theme-switching *:after{transition:none!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:0s!important;animation-duration:0s!important}}.topnav{display:flex;justify-content:space-between;align-items:center;max-width:1068px;margin:0 auto;padding:28px 24px}.logo{display:flex;gap:9px;align-items:center;color:var(--fg)}.logo-word{position:relative;font:500 15px/1 var(--mono);letter-spacing:-.01em}.logo-word:before,.logo-word:after{content:attr(data-text);position:absolute;inset:0;opacity:0;pointer-events:none}@media(hover:hover)and (pointer:fine){.logo:hover .logo-word:before{clip-path:inset(0 0 55% 0);animation:glitch-top .32s steps(2,end) 1}.logo:hover .logo-word:after{clip-path:inset(45% 0 0 0);animation:glitch-bottom .32s steps(2,end) 1}.logo:hover .logo-mark{animation:glitch-mark .32s steps(3,end) 1}}@keyframes glitch-top{0%{opacity:1;transform:translate(-2px)}50%{opacity:1;transform:translate(2px,-1px)}to{opacity:0;transform:none}}@keyframes glitch-bottom{0%{opacity:1;transform:translate(2px)}50%{opacity:1;transform:translate(-2px,1px)}to{opacity:0;transform:none}}@keyframes glitch-mark{0%{transform:translate(-1px)}50%{transform:translate(1px)}to{transform:none}}.topnav-links{display:flex;gap:28px;align-items:center;font-size:14px;color:var(--fg2)}.topnav-links a:hover{color:var(--fg)}.theme-toggle .sun{display:none}[data-theme=dark] .theme-toggle .sun{display:block}[data-theme=dark] .theme-toggle .moon,.menu-btn{display:none}.index{display:grid;grid-template-columns:180px minmax(0,760px);gap:64px;max-width:1068px;margin:0 auto;padding:0 24px 120px}.sidebar{position:sticky;top:0;align-self:start;max-height:100vh;overflow-y:auto;scrollbar-width:none;padding:40px 0;font-size:12px}.sidebar::-webkit-scrollbar{display:none}.side-item{display:block;color:var(--fg-nav);line-height:28px}.side-item:hover{color:var(--fg2)}.side-item[aria-current=page]{color:var(--fg)}.side-count{color:var(--fg-nav);margin-left:4px;font-variant-numeric:tabular-nums}.side-sec{margin-top:24px}.side-head{display:flex;gap:8px;align-items:center;line-height:28px;color:var(--fg)}.main{padding:40px 0 0;min-width:0}.sec{scroll-margin-top:16px}.sec+.sec{margin-top:72px}.sec-title{font-family:var(--font-head);display:flex;gap:8px;align-items:center;font-size:14px;font-weight:500;line-height:28px;margin:0 0 14px}.sec-lede{font-size:14px;color:var(--fg2);margin:-8px 0 18px}@media(max-width:767px){.topnav{padding:18px 16px}.topnav-links{gap:16px}.topnav-links .nav-text{display:none}.menu-btn{display:grid}.index{display:block;padding:0 16px 80px}.sidebar{display:none}.sidebar.open{display:block;position:fixed;inset:64px 0 0;z-index:30;max-height:none;background:var(--bg);padding:8px 16px 40px;font-size:14px}.sidebar.open .side-item{line-height:36px}.main{padding-top:16px}}@media(min-width:768px)and (max-height:900px){.side-item{line-height:24px}.side-sec{margin-top:18px}.side-head{line-height:24px}}@keyframes menu-in{0%{opacity:0;transform:translateY(-6px)}}@media(max-width:767px){.sidebar.open{animation:menu-in .2s var(--ease-out)}}.to-top{position:fixed;right:24px;bottom:24px;z-index:15;display:grid;place-items:center;width:40px;height:40px;border-radius:999px;background:var(--card);border:1px solid var(--line);color:var(--fg2);box-shadow:0 4px 14px var(--shadow);opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity .15s var(--ease-in),transform .15s var(--ease-in)}.to-top[data-visible=true]{opacity:1;transform:none;pointer-events:auto;transition-duration:.2s;transition-timing-function:var(--ease-out)}@media(max-width:767px){.to-top{right:16px;bottom:16px}}.site-footer{display:flex;flex-wrap:wrap;gap:8px 20px;max-width:1068px;margin:0 auto;padding:24px 24px 40px;border-top:1px solid var(--line);font-size:12.5px;color:var(--fg-nav)}.site-footer a{color:var(--fg-nav)}.site-footer a:hover{color:var(--fg)}@media(max-width:767px){.site-footer{padding:20px 16px 32px}}.hero{max-width:948px;margin:0 auto;padding:60px 24px 36px;text-align:center}.byline{display:inline-flex;gap:8px;align-items:center;font-size:13px;color:var(--fg3);margin-bottom:22px}.byline-name{display:inline-flex;gap:6px;align-items:center;color:var(--fg);font-weight:500}.byline:hover .byline-name{text-decoration:underline;text-underline-offset:3px}.hero h1{font-family:var(--font-head);font-size:58px;line-height:1.05;letter-spacing:-.04em;font-weight:500;margin:0 0 22px}.hero-copy{max-width:560px;margin:0 auto;font-size:16px;line-height:1.65}.hero-copy p{margin:0 0 12px;color:var(--fg2)}.hero-copy strong{color:var(--fg);font-weight:500}.hero-links{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:26px 0 0}.hero-link{display:inline-flex;gap:10px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 14px;font-size:14px;color:var(--fg)}.hero-link code{font-size:13px}.hero-link .lead{color:var(--fg2)}.hero-link .trail,.hero-link .trail-text{color:var(--fg3)}.hero-link .trail-text{font-size:12px}a.hero-link[href]:hover,button.hero-link:hover{border-color:var(--fg3)}.hero-link[aria-disabled=true]{cursor:default}.wallband{position:relative;max-width:1068px;margin:0 auto;padding:12px 24px 0;height:300px;overflow:hidden}.wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(52px,1fr))}.wall span{display:grid;place-items:center;height:56px;color:var(--fg)}.wall .hl{color:var(--blue)}.wallband:after{content:"";position:absolute;left:0;right:0;bottom:0;height:150px;background:linear-gradient(transparent,var(--bg));pointer-events:none}@media(max-width:767px){.hero{padding:24px 16px}.hero h1{font-size:34px;letter-spacing:-.035em}.hero h1 br{display:none}.hero-copy{font-size:14.5px}.hero-links{flex-direction:column;align-items:stretch}.hero-link .label{flex:1;text-align:left}.wallband{height:220px;padding:0 16px}.wall{grid-template-columns:repeat(auto-fill,minmax(44px,1fr))}.wall span{height:48px}}.stars{display:inline-flex;gap:4px;align-items:center;font-size:12px;color:var(--fg2);background:var(--hov);border-radius:999px;padding:1px 8px;font-variant-numeric:tabular-nums;animation:stars-in .2s var(--ease-out)}@keyframes stars-in{0%{opacity:0}}.hero-copy a{color:inherit;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}.hero-copy a:hover{text-decoration-color:currentColor}.toolbar{display:flex;gap:10px;align-items:center;position:sticky;top:0;z-index:5;background:var(--bg);padding:8px 0;margin:0 0 6px}.search{flex:1;display:flex;gap:10px;align-items:center;height:40px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:0 14px;color:var(--fg3)}.search:focus-within{border-color:var(--fg3)}.search input{flex:1;min-width:0;height:100%;border:0;background:none;font:inherit;font-size:14px;color:var(--fg);padding:0;outline:none}.search input::placeholder{color:var(--fg3)}.search kbd{font-size:11px;border:1px solid var(--line);border-radius:5px;padding:1px 6px;color:var(--fg3)}.seg{display:flex;gap:2px;height:40px;padding:3px;border:1px solid var(--line);border-radius:12px;background:var(--card);font-size:13px}.seg button{min-width:38px;padding:0 10px;border-radius:9px;color:var(--fg-nav);font-variant-numeric:tabular-nums}.seg button[aria-pressed=true]{background:var(--hov);color:var(--fg);font-weight:500;box-shadow:inset 0 0 0 1px var(--line)}@media(hover:hover)and (pointer:fine){.seg button:not([aria-pressed=true]):hover{color:var(--fg);transition:color .15s ease}}.chips{display:none}.cat{margin-bottom:28px;scroll-margin-top:72px}.cat-h{font-family:var(--font-head);display:flex;gap:8px;align-items:baseline;font-size:14px;font-weight:500;margin:0 2px 10px}.cat-h span{color:var(--fg3);font-weight:400;font-variant-numeric:tabular-nums}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}.cell{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;aspect-ratio:1;min-width:0;border-radius:14px;background:var(--card);border:1px solid var(--line);color:var(--fg);transition:scale .15s var(--ease-out)}@media(hover:hover)and (pointer:fine){.cell:not([aria-current=true]):hover{transition:scale .15s var(--ease-out),border-color .15s ease;border-color:var(--fg3)}}.cell-name{font:11px/1.2 var(--mono);color:var(--fg-nav);max-width:100%;padding:0 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell[aria-current=true]{border-color:var(--fg);box-shadow:0 0 0 1px var(--fg)}.empty{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:28px;text-align:center;color:var(--fg2);font-size:14px}.empty p{margin:0 0 12px}@media(max-width:767px){.toolbar{flex-wrap:wrap;margin:0 -16px 8px;padding:8px 16px}.seg{display:none}.search input{font-size:16px}.chips{display:flex;gap:6px;width:100%;overflow-x:auto;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chips a{flex:none;border:1px solid var(--line);border-radius:999px;padding:3px 11px;font-size:12.5px;color:var(--fg2);background:var(--card)}.grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.cat{scroll-margin-top:112px}}.construction{color:var(--fg);overflow:visible}.c-grid line{stroke:var(--grid);stroke-width:1px;vector-effect:non-scaling-stroke}.c-keylines{opacity:.55;transition:opacity .2s var(--ease)}.c-keylines[data-on=false]{opacity:0}.c-keylines *{fill:none;stroke:var(--blue);stroke-width:1px;vector-effect:non-scaling-stroke}.c-ink.pale{color:var(--line)}.c-centre *{fill:none!important;stroke:var(--fg)!important;stroke-width:1px!important;vector-effect:non-scaling-stroke;opacity:1!important}.c-handles line{stroke:var(--blue);stroke-width:1px;vector-effect:non-scaling-stroke}.c-handles circle{fill:var(--blue)}.c-anchors rect{fill:var(--card);stroke:var(--blue);stroke-width:1px;vector-effect:non-scaling-stroke}.drawer{position:fixed;top:12px;right:12px;bottom:12px;width:430px;z-index:20;display:flex;flex-direction:column;gap:14px;overflow-y:auto;background:var(--card);border:1px solid var(--line);border-radius:20px;box-shadow:0 12px 40px var(--shadow);padding:20px}.scrim{display:none}.drawer-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.drawer-crumb{margin:0;font-size:12px;color:var(--fg-nav)}.drawer-name{margin:2px 0 8px;font:500 22px/1.2 var(--font-head);letter-spacing:-.02em}.drawer-tags{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}.drawer-tags li{font:11.5px/1.6 var(--mono);color:var(--fg-nav);background:var(--hov);border-radius:6px;padding:0 7px}.stage{position:relative;display:grid;place-items:center;height:220px;border-radius:14px;border:1px solid var(--line2);background-color:var(--stage)}.preview{display:grid;place-items:center;width:100%;height:100%;border-radius:13px;color:var(--fg);background-image:linear-gradient(45deg,var(--hov) 25%,transparent 25%),linear-gradient(-45deg,var(--hov) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--hov) 75%),linear-gradient(-45deg,transparent 75%,var(--hov) 75%);background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0}.pill{font-size:12px;border:1px solid var(--line);border-radius:999px;padding:2px 10px;color:var(--fg-nav);background:var(--card)}.pill[aria-pressed=true]{color:var(--blue);border-color:color-mix(in srgb,var(--blue) 35%,transparent);background:color-mix(in srgb,var(--blue) 8%,transparent)}.tabs{display:flex;gap:4px;padding:3px;border-radius:10px;background:var(--hov);font-size:12.5px}.tabs [role=tab]{flex:1;padding:4px 0;border-radius:7px;color:var(--fg-nav)}.tabs [role=tab][aria-selected=true]{background:var(--card);color:var(--fg);font-weight:500;box-shadow:0 1px 2px var(--shadow)}.tab-panel{display:flex;flex-direction:column;gap:12px}.tab-controls{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.stage .construction{width:196px;height:196px}.tab-note{margin:0;font-size:12.5px;color:var(--fg-nav)}.look{display:flex;flex-direction:column;gap:12px}.swatches{display:flex;gap:8px;align-items:center}.swatch-dot{width:22px;height:22px;border-radius:50%;background:var(--c);box-shadow:inset 0 0 0 1px #00000014}.swatch-dot[aria-checked=true]{box-shadow:0 0 0 2px var(--card),0 0 0 3.5px var(--c)}.hex{margin-left:auto;font:12px var(--mono);color:var(--fg-nav)}.size-row{display:flex;gap:12px;align-items:center;font-size:12.5px;color:var(--fg-nav)}.size-row input{flex:1;accent-color:var(--fg)}.size-row b{width:40px;text-align:right;font:500 12px var(--mono);color:var(--fg)}.context{display:flex;gap:12px;align-items:center}.context .menu{width:160px}.context-col{display:flex;flex-direction:column;gap:8px}.ctx-btn{display:inline-flex;gap:8px;align-items:center;border:1px solid var(--line);border-radius:9px;padding:6px 11px;font-size:12.5px;background:var(--card)}.ctx-toolbar{display:inline-flex;gap:2px;align-self:flex-start;padding:3px;border:1px solid var(--line);border-radius:9px;background:var(--card)}.ctx-tool{display:grid;place-items:center;width:28px;height:28px;border-radius:6px;color:var(--fg2)}.ctx-tool.is-current{background:var(--hov);color:var(--fg)}.actions{display:flex;gap:8px;margin-top:auto;padding-top:14px;border-top:1px solid var(--line2)}.action{flex:1;display:inline-flex;gap:7px;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:10px;padding:8px 0;font-size:13px;background:var(--card)}.action.square{flex:0 0 40px}.action.is-hidden{visibility:hidden}.action.primary{background:var(--inv);color:var(--inv-fg);border-color:var(--inv)}@media(hover:hover)and (pointer:fine){.action:not(.primary):hover{border-color:var(--fg3)}}.drawer[data-enter=true]{animation:drawer-in .24s var(--ease-out)}.drawer{transition:opacity .18s var(--ease-in),transform .18s var(--ease-in);will-change:transform}.drawer[data-state=open]{transition-timing-function:var(--ease-out)}.drawer[data-state=closing]{opacity:0;transform:translate(8px);pointer-events:none}@keyframes drawer-in{0%{opacity:0;transform:translate(16px)}}@keyframes scrim-in{0%{opacity:0}}@keyframes sheet-in{0%{opacity:0;transform:translateY(24px)}}@media(max-width:767px){.scrim{display:block;position:fixed;inset:0;z-index:19;background:#00000040}.drawer{inset:auto 0 0;width:auto;max-height:88vh;border-radius:22px 22px 0 0;border-width:1px 0 0;padding:10px 16px 20px}.drawer:before{content:"";flex:none;width:36px;height:4px;border-radius:2px;background:var(--line);align-self:center}.stage{height:170px}.stage .construction{width:150px;height:150px}.context{flex-wrap:wrap}.scrim{transition:opacity .2s var(--ease-in)}.scrim[data-enter=true]{animation:scrim-in .28s var(--ease-out)}.scrim[data-state=open]{transition-timing-function:var(--ease-out)}.scrim[data-state=closing]{opacity:0;pointer-events:none}.drawer[data-enter=true]{animation:sheet-in .28s var(--ease-out)}.drawer{transition-duration:.2s}.drawer[data-state=closing]{transform:translateY(24px)}}.craft-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.cc{border:1px solid var(--line);border-radius:18px;padding:6px;background:var(--card);scroll-margin-top:24px}.cc-stage{position:relative;height:250px;border:1px solid var(--line2);border-radius:13px;display:grid;place-items:center;background:var(--stage);overflow:hidden;padding-bottom:28px}.cc-ctrls{position:absolute;left:10px;right:10px;bottom:10px;display:flex;gap:6px;justify-content:center;align-items:center;flex-wrap:wrap}.cc-ctrls input[type=range]{width:130px;accent-color:var(--fg)}.cc-foot{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 10px 8px}.cc-foot h3{font-size:13px;font-weight:500;line-height:1.4;margin:0}.cc-foot p{font-size:12px;color:var(--fg2);line-height:1.5;margin:2px 0 0}.soon{font-size:11px;color:var(--fg3);white-space:nowrap;border:1px solid var(--line);border-radius:999px;padding:1px 8px}.readout{font-size:12px;color:var(--fg3);font-variant-numeric:tabular-nums;margin:6px 0 0;text-align:center}.readout b{color:var(--fg);font-weight:500}.cc-stage:hover .kl-reveal .c-keylines,.cc-stage:focus-within .kl-reveal .c-keylines{opacity:.6}.st-icon{height:120px;display:grid;place-items:center}.lr-shape{fill:none;stroke:var(--fg);stroke-width:1.5}.lr-circle{transition:r .35s var(--ease)}.lr-guide{stroke:var(--blue);stroke-width:.06;stroke-dasharray:.4 .4}.solid{display:grid;grid-template-columns:repeat(4,60px);gap:8px}.solid span{display:grid;place-items:center;height:60px}.solid.off [fill=currentColor]{fill:none;stroke:currentColor}.ctx-wrap{padding:26px 40px;border-radius:12px;background:var(--bg);color:var(--fg);transition:background .2s var(--ease)}@media(max-width:767px){.craft-grid{grid-template-columns:1fr}}.prose{max-width:640px;font-size:15px;line-height:1.7}.prose h1,.prose h2{font-family:var(--font-head)}.prose h1{font-size:28px;font-weight:500;letter-spacing:-.02em;line-height:1.2;margin:0 0 18px}.prose h2{font-size:16px;font-weight:500;margin:36px 0 10px}.prose h3{font-size:14px;font-weight:500;margin:24px 0 8px}.prose p,.prose li{color:var(--fg2)}.prose a{text-decoration:underline;text-underline-offset:3px;color:var(--fg)}.prose :not(pre)>code{font-size:.88em;background:var(--hov);border-radius:5px;padding:1px 5px;color:var(--fg)}.code{border:1px solid var(--line);border-radius:12px;background:var(--card);margin:12px 0;overflow:hidden}.code-head{display:flex;justify-content:space-between;align-items:center;padding:6px 8px 0 14px;font-size:12px;color:var(--fg3)}.code pre{margin:0;padding:8px 14px 14px;overflow-x:auto;font-size:13px;line-height:1.6;color:var(--fg)}.props{width:100%;border-collapse:collapse;font-size:13px}.props th,.props td{text-align:left;padding:8px 10px 8px 0;border-bottom:1px solid var(--line);color:var(--fg2)}.props th{color:var(--fg3);font-weight:500}.demo-row{display:flex;gap:22px;align-items:end;padding:18px;background:var(--stage);border:1px solid var(--line2);border-radius:12px;margin:12px 0;color:var(--fg)}.demo-row figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:6px}.demo-row figcaption{font-size:11px;color:var(--fg3)}.notfound h1{font-size:22px}
