@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-full-normal-7BpKI3vF.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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-full-normal-YHFkNujK.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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-full-normal-CFFu7zhK.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:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-full-italic-BHALq22K.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:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-full-italic-B8-t4Nou.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:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-full-italic-D2JnYqd-.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:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/hanken-grotesk-cyrillic-ext-wght-normal-D_UHSL_T.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:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/hanken-grotesk-vietnamese-wght-normal-CHiFlh_0.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:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/hanken-grotesk-latin-ext-wght-normal-Dg-wlmqe.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:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/hanken-grotesk-latin-wght-normal-CaVRRdDk.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(/assets/jetbrains-mono-cyrillic-ext-wght-normal-EocZY2iu.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: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}.ecosystem-theme{flex-shrink:0}.select-trigger{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:48px;padding:12px 16px;border:1px solid var(--lc-line-strong);border-radius:var(--radius-control);background:var(--paper);color:var(--ink);font:inherit;text-align:left}.select-trigger svg{flex-shrink:0;color:var(--caption)}.select-trigger[aria-expanded=true]{border-color:var(--focus)}.select-menu{position:fixed;z-index:100;overflow-y:auto;overscroll-behavior:contain;padding:5px;border:1px solid var(--lc-line-strong);border-radius:10px;background:var(--paper);color:var(--ink);box-shadow:var(--lc-shadow-md);font:400 14px/1.4 var(--lc-font-sans)}.select-option{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:48px;padding:10px 12px;border-radius:5px;cursor:pointer}.select-option[data-active=true]{background:var(--lc-sun-soft)}.select-option[aria-selected=true]{font-weight:600}.select-option svg{flex-shrink:0;color:var(--lc-sun-ink)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.ws{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;height:100dvh;overflow:hidden;background:var(--lc-paper);color:var(--lc-body)}.ws-top{display:flex;align-items:center;min-width:0;gap:12px;min-height:52px;padding:0 16px;border-bottom:1px solid var(--lc-line);background:var(--lc-header-bg, var(--lc-paper))}.ws-brand{font:500 18px/1 var(--lc-font-display);color:var(--lc-ink);text-decoration:none;white-space:nowrap}.ws-tools{position:relative;margin-left:4px}.ws-tools-button{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;border:0;border-radius:999px;background:none;color:var(--lc-muted);font-size:13px}.ws-tools-button:hover,.ws-tools-button[aria-expanded=true]{background:var(--lc-chip);color:var(--lc-ink)}.ws-tools-button[aria-expanded=true] svg{transform:rotate(180deg)}.ws-tools-list{position:absolute;z-index:20;top:calc(100% + 6px);left:0;min-width:180px;margin:0;padding:4px;list-style:none;border:1px solid var(--lc-line-strong);border-radius:10px;background:var(--lc-surface);box-shadow:var(--lc-shadow-md)}.ws-tools-list:before{content:"";position:absolute;inset:-8px 0 auto;height:8px}.ws-tools-list{width:280px}.ws-tools-list li:last-child{margin-top:4px;padding-top:4px;border-top:1px solid var(--lc-line)}.ws-tools-list a{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:6px;color:var(--lc-ink);font-size:14px;text-decoration:none}.ws-tool-name{font-weight:600}.ws-tool-hint{color:var(--lc-muted);font-size:12.5px;line-height:1.4}.ws-tools-list a[aria-current=page] .ws-tool-hint{color:inherit}.ws-tools-list a:hover{background:var(--lc-chip)}.ws-tools-list a[aria-current=page]{background:var(--lc-sun-soft);color:var(--lc-sun-ink)}.ws-file-actions{display:inline-flex;gap:2px;padding:4px;border:1px solid var(--lc-line);border-radius:12px;background:var(--lc-chip)}.ws-top-button{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 12px;border:0;border-radius:9px;background:transparent;color:var(--lc-muted);font:600 12.5px/1 var(--lc-font-sans);cursor:pointer;transition:background-color .25s ease,color .25s ease}.ws-top-button:hover:not(:disabled){color:var(--lc-ink)}.ws-top-button.is-primary:not(:disabled){background:var(--lc-surface);color:var(--lc-ink);box-shadow:var(--lc-shadow-sm)}.ws-top-button:disabled{cursor:not-allowed}.ws-top-button svg{width:14px;height:14px}.ws-more{position:relative}.ws-menu.ws-menu-right{left:auto;right:0;top:calc(100% + 6px)}@media(max-width:1023px){.ws-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}.ws-brand em{font-style:italic}.ws-spacer{flex:1}.ws-main{display:grid;grid-template-columns:minmax(300px,360px) minmax(0,1fr);min-height:0}.ws-def{display:flex;flex-direction:column;gap:12px;min-height:0;overflow-y:auto;padding:16px;border-right:1px solid var(--lc-line);background:var(--lc-paper-alt)}.ws-detached{margin:0;padding:10px 12px;border:1px solid var(--lc-line-strong);border-radius:12px;background:var(--lc-surface);color:var(--lc-ink);font-size:13px;line-height:1.5}.ws-def.is-detached>:not(.ws-detached):not(:focus-within):not(:hover){filter:grayscale(1)}.ws-def.is-detached .ws-card{border-style:dashed}.ws-eyebrow{display:flex;align-items:center;gap:8px;font:500 11px/1 var(--lc-font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--lc-sun-ink)}.ws-eyebrow:before{content:"";width:18px;height:1px;background:var(--lc-sun)}.ws-title{margin:6px 0 0;font:380 26px/1.1 var(--lc-font-display);color:var(--lc-ink)}.ws-card{display:flex;flex-direction:column;gap:10px;padding:12px;border:1px solid var(--lc-line);border-radius:16px;background:var(--lc-surface)}.ws-def .field textarea,.ws-def .field input{width:100%}.ws-starters{display:flex;flex-wrap:wrap;gap:6px}.ws-starters-label{flex-basis:100%;color:var(--lc-muted);font-size:12px}.ws-def .purpose-input::placeholder{font-style:italic}.ws-personality{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;border:0;min-width:0}.ws-personality legend{margin-bottom:6px;padding:0;color:var(--lc-ink);font-size:14px}.ws-personality-options{display:flex;flex-wrap:wrap;gap:6px}.ws-personality label{position:relative}.ws-personality input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}.ws-personality label span{display:inline-block;padding:4px 10px;border:1px solid var(--lc-line-strong);border-radius:999px;background:var(--lc-surface);color:var(--lc-ink);font:500 12px/1.4 var(--lc-font-sans)}.ws-personality input:checked+span{border-color:var(--lc-sun-ink);background:var(--lc-sun-soft);color:var(--lc-sun-ink)}.ws-personality input:focus-visible+span{outline:2px solid var(--lc-focus, var(--lc-sun-ink));outline-offset:2px}.ws-personality-summary{margin:0;color:var(--lc-muted);font-size:12.5px}.ws-starters button,.ws-chip{padding:4px 10px;border:1px solid var(--lc-line-strong);border-radius:999px;background:var(--lc-chip);color:var(--lc-ink);font:500 12px/1.4 var(--lc-font-sans)}.ws-method{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;color:var(--lc-muted)}.ws-chip{display:inline-flex;align-items:center;gap:4px;min-height:32px}.ws-chip-sun{border-color:transparent;background:var(--lc-sun-soft);color:var(--lc-sun-ink)}.ws-chip-note{font-family:var(--lc-font-mono);font-size:11px}.ws-menu{position:absolute;z-index:20;top:calc(100% + 4px);left:0;display:flex;flex-direction:column;min-width:220px;padding:4px;border:1px solid var(--lc-line-strong);border-radius:10px;background:var(--lc-surface);box-shadow:var(--lc-shadow-md)}.ws-menu button{padding:8px 10px;border:0;border-radius:6px;background:none;color:var(--lc-ink);text-align:left}.ws-menu button[aria-checked=true]{background:var(--lc-sun-soft)}.ws-menu button:hover{background:var(--lc-chip)}.ws-error{margin:0;color:var(--lc-danger);font-size:13px}.ws-rows{gap:0;padding:4px 12px}.ws-row{margin:0;padding:0;border-top:1px solid var(--lc-line)}.ws-row[open] summary{margin-bottom:0}.ws-def .field{margin:0}.ws-row:first-child{border-top:0}.ws-row summary{display:flex;justify-content:space-between;gap:8px;padding:10px 2px;color:var(--lc-ink);cursor:pointer;list-style:none}.ws-row summary::-webkit-details-marker{display:none}.ws-row summary small{margin-left:auto;font:11px/1.6 var(--lc-font-mono);color:var(--lc-muted)}.ws-row-chevron{flex:none;align-self:center;color:var(--lc-muted);transition:transform .15s ease}.ws-row[open] .ws-row-chevron{transform:rotate(180deg)}.ws-row summary:hover .ws-row-chevron{color:var(--lc-ink)}.ws-row-body{display:flex;flex-direction:column;gap:12px;padding:4px 0 14px}.ws-ide{display:grid;grid-template-columns:minmax(180px,230px) minmax(0,1fr);min-height:0;background:var(--ide-bg);color:var(--ide-fg)}.ws-tree{min-height:0;overflow:auto;padding:10px 8px;border-right:1px solid var(--ide-line);background:var(--ide-side);font-size:13px}.ws-tree-head{display:flex;justify-content:space-between;padding:2px 8px 8px;font:500 11px/1 var(--lc-font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ide-dim)}.ws-tree-empty{margin:4px 8px;color:var(--ide-dim);font-size:13px;line-height:1.5}.ws-tree-group+.ws-tree-group{margin-top:6px}.ws-tree-label{padding:4px 8px;font-weight:600;color:var(--ide-fg)}.ws-tree-file{display:flex;width:100%;min-height:28px;align-items:center;gap:4px;padding:2px 8px 2px 20px;border:0;border-radius:6px;background:none;color:var(--ide-fg);font:12.5px/1.4 var(--lc-font-mono);text-align:left}.ws-tree-file:hover{background:var(--ide-active-line)}.ws-tree-file[aria-current=true]{background:var(--ide-selection)}.ws-tree-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ws-tree-mark{color:var(--ide-accent)}.ws-tree-problem{color:var(--ide-warning);font-weight:700}.ws-tree-tag{font-size:11px;color:var(--ide-dim)}.ws-editor{display:flex;flex-direction:column;min-width:0;min-height:0}.ws-editor>*{flex:none}.ws-tabs-row{display:flex;align-items:center;min-width:0;border-bottom:1px solid var(--ide-line);background:var(--ide-side)}.ws-tabs{display:flex;flex:1;min-width:0;min-height:38px;overflow-x:auto}.ws-theme-select{flex:none;padding:0 8px}.ws-theme-select select{min-height:30px;padding:0 8px;border:1px solid var(--ide-line);border-radius:7px;background:var(--ide-bg);color:var(--ide-fg);font:12px var(--lc-font-mono)}.ws-tab-wrap{display:flex;align-items:center;border-right:1px solid var(--ide-line)}.ws-tab-wrap[data-active=true]{background:var(--ide-bg);box-shadow:inset 0 2px 0 var(--ide-accent)}.ws-tab{display:flex;align-items:center;padding:0 6px 0 14px;min-height:38px;border:0;background:none;color:var(--ide-dim);font:12px var(--lc-font-mono);white-space:nowrap}span.ws-tab{padding-right:14px;background:var(--ide-bg);color:var(--ide-fg);box-shadow:inset 0 2px 0 var(--ide-accent)}.ws-tab[aria-selected=true]{color:var(--ide-fg)}.ws-tab-close{display:grid;place-items:center;width:26px;height:26px;margin-right:4px;border:0;border-radius:6px;background:none;color:var(--ide-dim)}.ws-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:6px 12px;border-bottom:1px solid var(--ide-line);font:12px var(--lc-font-mono);color:var(--ide-dim)}.ws-path{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;min-width:0}.ws-path>span:first-child{color:var(--ide-fg);overflow-wrap:anywhere}.ws-path-install{overflow-wrap:anywhere}.ws-path-state{color:var(--ide-accent)}.ws-link-button{padding:0;border:0;background:none;color:var(--ide-accent);font:inherit;text-decoration:underline;text-underline-offset:3px}.ws-toolbar-actions{display:flex;align-items:center;gap:6px}.ws-toolbar .icon-button{color:var(--ide-fg);border-color:var(--ide-line);background:transparent}.ws-seg{display:flex;overflow:hidden;border:1px solid var(--ide-line);border-radius:8px}.ws-seg button{min-height:32px;padding:0 10px;border:0;background:none;color:var(--ide-dim);font:600 12px var(--lc-font-sans)}.ws-seg button[aria-pressed=true]{background:var(--ide-selection);color:var(--ide-fg)}.ws-editor>.ws-editor-body{flex:1 1 0;min-height:0;overflow:auto}.ws-editor-body .markdown-editor{height:100%}.ws-view-split{display:grid;grid-template-columns:1fr 1fr}.ws-view-split>*{min-width:0;min-height:0;overflow:auto}.ws-editor-body .markdown-preview,.ws-editor-body .json-preview{margin:0;padding:20px 24px;background:var(--ide-bg);color:var(--ide-fg);min-height:100%;max-height:none}.ws-editor-body .markdown-preview :is(h1,h2,h3,h4){color:var(--ide-heading)}.ws-editor-body .markdown-preview :is(a,strong){color:var(--ide-accent)}.ws-editor-body .markdown-preview :is(pre,code){background:var(--ide-side);color:var(--ide-fg)}.ws-editor-body .markdown-preview blockquote{border-left-color:var(--ide-line);color:var(--ide-dim)}.ws-editor-body .markdown-preview hr{border-top-color:var(--ide-line)}.ws-loading{padding:20px;color:var(--ide-dim)}.ws-status-line{flex:1;min-width:0;margin:0;font:11.5px/1.4 var(--lc-font-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ws-panel{display:flex;flex-direction:column;min-height:0;background:var(--lc-night);color:var(--lc-night-ink);border-top:1px solid var(--lc-night-line)}.ws-panel.is-open{height:clamp(150px,26vh,260px)}.ws-panel-bar{display:flex;align-items:center;gap:14px;min-height:34px;padding:0 6px 0 12px;border-bottom:1px solid var(--lc-night-line)}.ws-panel-tabs{display:flex;gap:4px}.ws-panel-tabs button,.ws-panel-summary{padding:8px 6px;border:0;background:none;color:var(--lc-night-muted);font:500 11px/1 var(--lc-font-mono);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}.ws-panel-tabs button[aria-selected=true]{color:var(--lc-night-ink);box-shadow:inset 0 -2px 0 var(--lc-sun)}.ws-panel-toggle{display:grid;place-items:center;width:30px;height:30px;border:0;border-radius:6px;background:none;color:var(--lc-night-ink)}.ws-panel-body{flex:1;min-height:0;overflow:auto;padding:8px 12px;font:12px/1.8 var(--lc-font-mono)}.ws-log,.ws-problems{margin:0;padding:0;list-style:none}.ws-log li{display:flex;gap:10px}.ws-log-time{color:var(--lc-night-muted)}.ws-log .is-ok>span:nth-child(2){color:#63c7af}.ws-log .is-warn>span:nth-child(2),.ws-problem-warning{color:#f2b06a}.ws-problem-error{color:#f08a7e}.ws-problems button{display:flex;gap:10px;width:100%;padding:2px 4px;border:0;border-radius:4px;background:none;color:var(--lc-night-ink);font:inherit;text-align:left}.ws-problems button:hover{background:#ffffff0f}.ws-problem-file{color:var(--lc-night-muted);white-space:nowrap}.ws-setup{font-family:var(--lc-font-sans);font-size:13px;line-height:1.6}.ws-setup h3{margin:4px 0;font:500 14px var(--lc-font-sans)}.ws-setup ol{margin:0 0 10px;padding-left:20px}.ws-setup-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.ws-setup a{color:var(--lc-night-ink)}.ws-setup-note{color:var(--lc-night-muted)}.ws-statusbar{display:flex;align-items:center;gap:16px;min-height:26px;padding:0 14px;background:var(--ide-side);border-top:1px solid var(--ide-line);color:var(--ide-fg);font:11px/1.4 var(--lc-font-mono)}.ws-statusbar-right{display:flex;gap:16px;margin-left:auto}.ws-statusbar .is-ok{color:var(--ide-string)}.ws-statusbar .is-warn{color:var(--ide-warning)}.ws-checks{display:flex;flex-direction:column;gap:6px}.ws-checks h2{margin:4px 0 2px}.ws-check{display:grid;grid-template-columns:22px 1fr;gap:8px;padding:8px 10px;border:1px solid var(--lc-line);border-radius:12px;background:var(--lc-surface);color:var(--lc-body);font-size:12.5px;line-height:1.45;text-align:left}.ws-check-glyph{display:grid;place-items:center;width:20px;height:20px;border-radius:6px;font:700 11px var(--lc-font-mono)}.ws-check.is-pass .ws-check-glyph{background:var(--lc-verdigris-soft);color:var(--lc-verdigris)}.ws-check.is-default .ws-check-glyph{background:var(--lc-sun-soft);color:var(--lc-sun-ink)}.ws-check.is-missing .ws-check-glyph{background:var(--lc-danger-soft);color:var(--lc-danger)}.ws-check-text{display:flex;flex-direction:column}.ws-check-title{color:var(--lc-ink);font-weight:600}.ws-check-status{margin-left:4px;font:600 10px var(--lc-font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--lc-muted)}.ws-check-fix{font:11px var(--lc-font-mono);color:var(--lc-sun-ink)}.ws-dialog{max-width:min(460px,calc(100vw - 32px));padding:24px;border:1px solid var(--lc-line-strong);border-radius:20px;background:var(--lc-surface);color:var(--lc-body)}.ws-dialog::backdrop{background:#00000073}.ws-dialog h2{margin:0 0 8px;font:400 22px/1.2 var(--lc-font-display);color:var(--lc-ink);overflow-wrap:anywhere}.ws-dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.ws-info{position:relative;max-width:min(560px,calc(100vw - 32px));padding:28px}.ws-info p{line-height:1.6}.ws-dialog-close{position:absolute;top:12px;right:12px}.ws-views,.ws-file-select{display:none}@media(max-width:1023px){.ws-main{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}.ws-views{display:flex;gap:4px;padding:6px 12px;border-bottom:1px solid var(--lc-line);background:var(--lc-paper)}.ws-views button{flex:1;min-height:40px;border:1px solid var(--lc-line-strong);border-radius:10px;background:var(--lc-surface);color:var(--lc-ink);font:600 14px var(--lc-font-sans)}.ws-views button[aria-selected=true]{background:var(--lc-ink);border-color:var(--lc-ink);color:var(--lc-paper)}.ws-main[data-view=files] .ws-def,.ws-main[data-view=definition] .ws-ide{display:none}.ws-def{border-right:0}.ws-ide{grid-template-columns:minmax(0,1fr)}.ws-tree{display:none}.ws-file-select{display:block;padding:8px 12px;background:var(--ide-side);border-bottom:1px solid var(--ide-line)}.ws-file-select select{width:100%;min-height:40px;padding:0 10px;border:1px solid var(--ide-line);border-radius:8px;background:var(--ide-bg);color:var(--ide-fg);font:16px var(--lc-font-mono)}.ws-def textarea,.ws-def input,.ws-def select,.ws-theme-select select{font-size:16px}.ws-panel.is-open{position:fixed;z-index:30;left:0;right:0;bottom:26px;height:min(50dvh,360px);box-shadow:0 -18px 40px #00000059}.ws-statusbar .ws-statusbar-right{gap:10px}}@media(max-width:639px){.ws-hide-sm,.ws-brand-prefix{display:none}.ws-theme-select select{max-width:min(220px,60vw)}.ws-top{gap:6px;padding:0 10px}.ws-brand{font-size:16px}.ws-top-button{min-width:0;padding:0 9px;gap:0}.ws-tools{margin-left:0}.ws-tools-button{padding:5px 6px}.ws-top-button .ws-download-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.ws-top .lc-toggle button{font-size:0;gap:0}.ws-statusbar>span:nth-child(2){display:none}}@media(max-width:400px){.ws-top{gap:4px;padding:0 8px}.ws-tools-button svg{display:none}.ws-top .lc-toggle button{padding-inline:6px}}:root{font-family:var(--lc-font-sans, "Hanken Grotesk Variable", sans-serif);font-optical-sizing:auto;font-synthesis:none;font-weight:400;font-size:14px;color:var(--lc-ink, #13223a);background:var(--lc-paper, #f3efe4);--lc-font-display: "Fraunces Variable", "Fraunces", Georgia, serif;--lc-font-sans: "Hanken Grotesk Variable", "Hanken Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--lc-font-mono: "JetBrains Mono Variable", "JetBrains Mono", ui-monospace, monospace;--ink: var(--lc-ink, #13223a);--muted: var(--lc-body, #3d4859);--caption: var(--lc-muted, #5c6576);--orange: var(--lc-sun, #d9822b);--mint: var(--lc-verdigris, #23705f);--line: var(--lc-line, #13223a17);--paper: var(--lc-surface, #fffdf8);--surface: var(--lc-paper-alt, #ece7da);--focus: var(--lc-sun-ink, #99520f);--page-gutter: clamp(24px, 5.5vw, 88px);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--space-12: 48px;--radius-control: 8px;--radius-panel: 16px;--ease: cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;border:0;background:none}button:disabled{cursor:default}button,a{touch-action:manipulation}button{transition:background-color .16s var(--ease),border-color .16s var(--ease),color .16s var(--ease),transform .16s var(--ease)}a{color:inherit;text-decoration:none;text-underline-offset:4px}a:hover{text-decoration:underline}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:4px}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--focus);outline-offset:2px}h1,h2,h3,p{margin:0}h1,h2,h3,strong,b{font-weight:600}button svg,a svg{flex-shrink:0}.app{max-width:1600px;margin:auto}.skip-link{position:fixed;left:24px;top:-64px;padding:12px 16px;background:var(--paper);z-index:100}.skip-link:focus{top:12px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border:1px solid transparent;border-radius:var(--radius-control);font-size:14px;font-weight:500;min-height:48px;white-space:nowrap}.button.primary{background:var(--ink);border-color:var(--ink);color:var(--lc-paper)}.button.primary:hover{background:var(--lc-body)}.button:active:not(:disabled){transform:translateY(1px)}.button.secondary{border-color:var(--line);background:var(--paper)}.button.secondary:hover{background:var(--surface);border-color:var(--lc-line-strong)}.button:disabled{opacity:.5}.platform{font-size:14px;font-weight:500;display:flex;align-items:center;gap:8px;white-space:nowrap}.platform b{font-size:24px;font-weight:400;line-height:1}.platform.portable{color:var(--muted)}.field{display:flex;flex-direction:column;margin:0 0 24px;gap:8px}.field>span{font-size:14px;font-weight:500;line-height:1.6}.field>small{color:var(--muted);font-size:12px;line-height:1.7}.field input,.field textarea,.field select{width:100%;min-height:48px;border:1px solid var(--lc-line-strong);border-radius:var(--radius-control);background:var(--paper);padding:12px 16px;font-size:14px;line-height:1.7;color:var(--ink)}.field textarea{resize:vertical;min-height:112px}.field input::placeholder,.field textarea::placeholder{color:var(--caption);opacity:1}.field select{padding-right:32px}.check-field{display:flex;align-items:flex-start;gap:12px;border:1px solid var(--line);padding:20px;border-radius:var(--radius-control);margin:24px 0;background:var(--paper)}.check-field strong{display:block;font-size:14px;font-weight:500}.check-field small{display:block;font-size:13px;color:var(--muted);line-height:1.7;margin-top:4px}input[type=checkbox]{accent-color:var(--focus);width:16px;height:16px;flex-shrink:0;margin:3px 0 0}details{border-top:1px solid var(--line);padding:16px 0;margin:4px 0 24px}summary{cursor:pointer;font-size:13px;font-weight:500;min-height:32px;line-height:1.7}summary>svg{float:right;margin-top:4px}details[open] summary{margin-bottom:20px}.field-note,.autonomy-help{font-size:12px;line-height:1.8;color:var(--muted)}.autonomy-help{margin:-12px 0 24px}.installation{border-top:1px solid var(--line);margin:24px 0 0;padding:20px 0}.installation p{font-size:12px;line-height:1.8;color:var(--muted);margin:12px 0;overflow-wrap:anywhere}.installation a{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:500;text-decoration:underline}.installation ol{padding-left:20px;margin:16px 0;font-size:12px;line-height:1.8;color:var(--muted)}.installation li{margin-bottom:12px;overflow-wrap:anywhere}.installation summary{display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:13px}.installation summary:after{content:"+";font-size:20px;color:var(--caption);font-weight:400}.installation[open] summary:after{content:"−"}.icon-button{width:44px;height:44px;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px}.icon-button:hover{background:var(--surface)}.markdown-preview{padding:32px 40px;min-height:480px;max-height:680px;overflow:auto;font-size:15px;line-height:1.85;overflow-wrap:anywhere}.markdown-preview>*{max-width:76ch}.markdown-preview h1{font-size:28px;margin:0 0 24px;letter-spacing:-.5px}.markdown-preview h2{font-size:21px;margin:32px 0 12px}.markdown-preview h3{font-size:17px;margin:24px 0 8px}.markdown-preview p{margin:12px 0}.markdown-preview ul,.markdown-preview ol{padding-left:24px}.markdown-preview li{margin:8px 0}.markdown-preview a{color:var(--lc-sun-ink);text-decoration:underline}.markdown-preview pre{white-space:pre-wrap;background:var(--surface);padding:16px;border-radius:8px}.markdown-preview code{font-size:13px}.markdown-preview blockquote{border-left:3px solid var(--lc-line-strong);padding-left:16px;margin-left:0;color:var(--muted)}.markdown-preview hr{border:0;border-top:1px solid var(--line);margin:24px 0}.markdown-editor{height:560px}.validation{border-top:1px solid var(--line);padding:16px 24px;display:flex;align-items:flex-start;gap:8px;font-size:12px;line-height:1.7;color:var(--lc-verdigris);background:var(--lc-verdigris-soft)}.validation svg{flex-shrink:0;margin-top:2px}dialog{border:1px solid var(--lc-line-strong);border-radius:20px;background:var(--paper);color:var(--ink);padding:0;width:560px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);box-shadow:0 16px 64px #00000018}dialog::backdrop{background:#08101a8c}.colophon-ornament{color:var(--muted);font-size:28px}.colophon-copy h2{margin-top:12px}.colophon-copy p a{text-decoration:underline}.colophon-copy .colophon-materials{font-size:12px;border-top:1px solid var(--line);padding-top:20px}.colophon-copy .colophon-sign{color:var(--ink);font-weight:500;margin-bottom:8px}.colophon-copy nav{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;text-decoration:underline;text-underline-offset:4px}body{background:var(--lc-paper);color:var(--ink)}body.lc-page{font-family:var(--lc-font-sans, "Hanken Grotesk Variable", sans-serif)}.markdown-preview code,.markdown-preview pre,.json-preview,.markdown-editor .cm-editor .cm-scroller{font-family:var(--lc-font-mono)}@media(max-width:1000px){:root{--page-gutter: 32px}}@media(max-width:700px){:root{--page-gutter: 24px}.platform{font-size:13px}.platform b{font-size:24px}.field input,.field textarea,.field select{font-size:16px}.field>small{font-size:12px}.field>span{font-size:14px}.markdown-preview{padding:24px;max-height:560px;font-size:14px}.markdown-preview h1{font-size:25px}.markdown-editor{height:480px}.validation{padding:12px 16px;font-size:11px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.json-preview{margin:0;padding:32px;white-space:pre-wrap;overflow-wrap:anywhere;overflow:auto;max-height:72vh;font:13px/1.8 var(--lc-font-mono)}@media(max-width:680px){.json-preview{padding:20px}}.platform img{display:block;object-fit:contain;flex-shrink:0}.preview-unavailable{color:var(--ide-dim, var(--muted))}.app-recovery{max-width:560px;margin:15vh auto 0;padding:0 24px;color:var(--lc-ink)}.app-recovery div{display:flex;gap:8px}.phone-notice{max-width:440px;margin:0 auto;padding:18vh 24px 0;color:var(--lc-ink)}.phone-notice h1{font:500 28px/1.2 var(--lc-font-display);margin:0 0 16px}.phone-notice p{color:var(--lc-body, var(--lc-ink));line-height:1.6}.phone-notice-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}.welcome{max-width:760px;margin:0 auto;padding:12vh 24px 48px;color:var(--lc-ink)}.welcome-eyebrow{margin:0 0 12px;font:500 12px/1 var(--lc-font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--lc-sun-ink)}.welcome h1{margin:0;font:500 clamp(44px,7vw,72px) / 1.05 var(--lc-font-display);letter-spacing:-.02em}.welcome h1 em{font-style:italic}.welcome-lead{margin:16px 0 36px;max-width:34ch;font-size:20px;line-height:1.5;color:var(--lc-body, var(--lc-ink))}.welcome-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:0 0 32px;padding:0;list-style:none;counter-reset:step}.welcome-steps li{counter-increment:step;padding:18px;border:1px solid var(--lc-line);border-radius:16px;background:var(--lc-surface)}.welcome-steps li:before{content:counter(step);display:block;margin-bottom:10px;font:500 13px/1 var(--lc-font-mono);color:var(--lc-sun-ink)}.welcome-steps h2{margin:0 0 6px;font:600 16px/1.3 var(--lc-font-sans)}.welcome-steps p{margin:0;font-size:14px;line-height:1.55;color:var(--lc-body, var(--lc-ink))}.welcome-start{min-height:44px;padding:0 22px;font-size:15px}.welcome-note{margin:14px 0 0;font-size:13px;color:var(--lc-muted)}
