@font-face{font-family:mono;src:url(../media/JetBrainsMono_Regular-s.p.2i5im_bcn3ddy.woff2)format("woff2");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:mono;src:url(../media/JetBrainsMono_Medium-s.p.1rvf60ypyk9mv.woff2)format("woff2");font-display:swap;font-weight:500;font-style:normal}@font-face{font-family:mono;src:url(../media/JetBrainsMono_Bold-s.p.1pyg_456t4ekt.woff2)format("woff2");font-display:swap;font-weight:700;font-style:normal}@font-face{font-family:mono Fallback;src:local(Arial);ascent-override:77.57%;descent-override:22.82%;line-gap-override:0.0%;size-adjust:131.49%}.mono_a03e3270-module__iWVu-q__className{font-family:mono,mono Fallback}.mono_a03e3270-module__iWVu-q__variable{--font-jetbrains:"mono", "mono Fallback"}
@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:var(--font-jetbrains), ui-monospace, "SF Mono", Menlo, monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-jetbrains), ui-monospace, "SF Mono", Menlo, monospace}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.block{display:block}.flex{display:flex}.h-full{height:100%}.min-h-full{min-height:100%}.flex-1{flex:1}.flex-col{flex-direction:column}}:root,:root[data-theme=night]{--bg:#0d1117;--bg2:#161b26;--bg3:#1c2230;--text:#d6dbe5;--text2:#8b94a7;--line:#262d3b;--accent:#7aa2f7;--on-accent:#0d1117;--star:#e0b040;--edge:#4d5872;--ok:#7bc496}:root[data-theme=tokyo-night]{--bg:#1a1b26;--bg2:#24283b;--bg3:#2a2f45;--text:#c0caf5;--text2:#7982a9;--line:#2f3549;--accent:#7dcfff;--on-accent:#1a1b26;--star:#e0af68;--edge:#565f89;--ok:#9ece6a}:root[data-theme=gruvbox]{--bg:#282828;--bg2:#32302f;--bg3:#3c3836;--text:#ebdbb2;--text2:#a89984;--line:#45403d;--accent:#b8bb26;--on-accent:#282828;--star:#fabd2f;--edge:#7c6f64;--ok:#8ec07c}:root[data-theme=catppuccin]{--bg:#1e1e2e;--bg2:#313244;--bg3:#3a3b50;--text:#cdd6f4;--text2:#a6adc8;--line:#45475a;--accent:#cba6f7;--on-accent:#1e1e2e;--star:#f9e2af;--edge:#6c7086;--ok:#a6e3a1}:root[data-theme=nord]{--bg:#2e3440;--bg2:#3b4252;--bg3:#434c5e;--text:#eceff4;--text2:#a3aab9;--line:#4c566a;--accent:#88c0d0;--on-accent:#2e3440;--star:#ebcb8b;--edge:#6b7590;--ok:#a3be8c}:root[data-theme=paper]{--bg:#f2f0e8;--bg2:#e8e5db;--bg3:#dedad0;--text:#2d2a26;--text2:#6a655c;--line:#d3cfc4;--accent:#2f6fcf;--on-accent:#f7f5ef;--star:#b8860b;--edge:#a59f92;--ok:#3b7d5a}html{background:var(--bg);color:var(--text);font-family:var(--font-mono);-webkit-font-smoothing:antialiased;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;scroll-padding-top:4rem;font-size:15px}:root[data-theme=paper]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}body{background:var(--bg);color:var(--text);line-height:1.6;overflow-x:clip}::selection{background:var(--accent);color:var(--on-accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}a{color:var(--text);text-decoration:underline;-webkit-text-decoration-color:var(--edge);-webkit-text-decoration-color:var(--edge);-webkit-text-decoration-color:var(--edge);text-decoration-color:var(--edge);text-underline-offset:.2em}a:hover{-webkit-text-decoration-color:var(--text);-webkit-text-decoration-color:var(--text);-webkit-text-decoration-color:var(--text);text-decoration-color:var(--text)}code,kbd,pre{font-family:inherit}kbd{border:1px solid var(--line);background:var(--bg2);border-bottom-width:2px;border-radius:3px;padding:0 .35em;font-size:.92em}.wrap{width:min(100% - 2rem,70rem);margin-inline:auto}.stack{grid-template-columns:minmax(0,1fr);gap:3rem;display:grid}.muted{color:var(--text2)}.small{font-size:.875rem}.nav{z-index:10;background:var(--bg);position:sticky;top:0}@supports (color:color-mix(in lab, red, red)){.nav{background:color-mix(in oklab, var(--bg) 86%, transparent)}}.nav{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.nav-inner{justify-content:space-between;align-items:center;gap:1rem;height:3.5rem;display:flex}.nav-left,.nav-right{align-items:center;gap:.25rem;display:flex}.mark{align-items:center;gap:.6rem;margin-right:.5rem;padding:.35rem .6rem .35rem .25rem;font-weight:700;text-decoration:none;display:inline-flex}.mark svg{width:1.1rem;height:1.1rem}.nav-link{color:var(--text2);border-radius:3px;padding:.35rem .7rem;text-decoration:none;transition:background-color .15s ease-out,color .15s ease-out}.nav-link:hover,.nav-link[aria-current=page]{background:var(--bg2);color:var(--text)}.nav-icon{color:var(--text2);border-radius:3px;padding:.45rem;text-decoration:none;display:inline-flex}.nav-icon:hover{color:var(--text);background:var(--bg2)}.theme-btn{font:inherit;color:var(--text2);cursor:pointer;background:0 0;border:0;border-radius:3px;padding:.35rem .6rem}.theme-btn:hover{background:var(--bg2);color:var(--text)}.theme-key{border:1px solid var(--line);border-radius:3px;margin-right:.2em;padding:0 .35em;font-size:.8em;display:inline-block}@media (max-width:640px){.nav-link.hide-sm,.theme-btn .theme-name{display:none}}.btn{border:1px solid var(--accent);background:var(--accent);color:var(--on-accent);white-space:nowrap;border-radius:3px;align-items:center;gap:.5rem;padding:.55rem 1rem;font-weight:700;text-decoration:none;display:inline-flex}.btn:hover{filter:brightness(1.08)}.btn-outline{background:var(--bg2);border-color:var(--line);color:var(--text);font-weight:400}.btn-outline:hover{background:var(--bg3);filter:none}.btn-sm{padding:.3rem .75rem;font-size:.9rem}.hero{text-align:center;place-items:center;min-height:calc(100svh - 3.5rem);padding:3rem 1rem 4rem;display:grid;position:relative;overflow:hidden}.hero-inner{z-index:1;justify-items:center;gap:1.5rem;width:min(100%,64rem);display:grid;position:relative}.wordmark{width:min(100%,58rem);height:auto;display:block}.wm-ink{fill:var(--accent)}.wm-star{fill:var(--star)}.tagline{text-wrap:balance;margin-top:.5rem;font-size:clamp(1.15rem,.9rem + 1.2vw,1.6rem);font-weight:500}.sub{color:var(--text2);text-wrap:pretty;max-width:60ch}.hero-actions{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.hero-hint{color:var(--text2);margin-top:.5rem;font-size:.85rem}.hero-hint kbd{font-size:.85em}.starfield{pointer-events:none;z-index:0;position:absolute;inset:0;overflow:hidden}.sf{color:var(--text2);-webkit-user-select:none;user-select:none;line-height:1;position:absolute;transform:translate(-50%,-50%)}@media (prefers-reduced-motion:no-preference){.sf.twinkle{animation:7s ease-in-out infinite twinkle}}@keyframes twinkle{0%,to{filter:brightness()}50%{filter:brightness(1.9)}}.section{border-top:1px solid var(--line);padding-block:4rem}.section-title{margin-bottom:.5rem;font-size:1.35rem;font-weight:700}.section-title:before{content:"## ";color:var(--accent)}.section-lede{color:var(--text2);text-wrap:pretty;max-width:64ch}.h3{font-weight:700}.h3:before{content:"### ";color:var(--text2)}.prose-w{max-width:66ch}.cmd{background:var(--bg2);border:1px solid var(--line);white-space:pre;text-align:left;border-radius:3px;padding:.85rem 1rem;line-height:1.6;display:block;overflow-x:auto}.cmd .prompt{color:var(--text2);-webkit-user-select:none;user-select:none}.frame{color:var(--text);background:var(--bg2);border:1px solid var(--line);white-space:pre;font-variant-ligatures:none;border-radius:3px;min-width:0;max-width:100%;padding:1rem 1.25rem;font-size:clamp(.6875rem,.3rem + 1.05vw,1rem);line-height:1.05;overflow-x:auto}.frame .f-glyph{vertical-align:-.14em;width:1ch;height:1em;display:inline-block;overflow:visible}.frame .f-star{color:var(--star);font-weight:700}.frame .f-hollow{color:var(--text2)}.frame .f-unlock{color:var(--accent)}.frame .f-edge{color:var(--edge)}.frame .f-bar{color:var(--star)}.frame .f-barEmpty{color:var(--line)}.frame .f-ok{color:var(--ok)}.frame .f-node{display:inline}@media (prefers-reduced-motion:no-preference){.frame--draw .f-node{opacity:0;animation:.42s cubic-bezier(.2,.7,.2,1) forwards star-in;animation-delay:calc(.18s + var(--i) * 70ms)}.frame--draw .f-edge{opacity:0;animation:.5s ease-out .9s forwards edge-in}}@keyframes star-in{0%{opacity:0}60%{opacity:1;filter:brightness(1.6)}to{opacity:1;filter:brightness()}}@keyframes edge-in{to{opacity:1}}.rows{border-top:1px solid var(--line);margin-top:1.5rem;display:grid}.row{border-bottom:1px solid var(--line);grid-template-columns:1fr;gap:.25rem 2rem;padding:.9rem 0;display:grid}@media (min-width:640px){.row{grid-template-columns:11rem 1fr}}.row dt{color:var(--accent)}.row dd{color:var(--text2)}.row dd code{color:var(--text)}.checks{color:var(--text2);gap:.8rem;margin-top:1.25rem;padding:0;list-style:none;display:grid}.checks li:before{content:"[x] ";color:var(--ok)}.checks code{color:var(--text)}.docs{grid-template-columns:minmax(0,1fr);gap:2rem;padding-block:2rem 5rem;display:grid}@media (min-width:900px){.docs{grid-template-columns:15rem minmax(0,1fr);gap:3.5rem}}.docs-nav{align-self:start;position:sticky;top:4.5rem}.docs-nav ol{flex-direction:column;gap:.15rem;margin:0;padding:0;list-style:none;display:flex}.docs-nav a{color:var(--text2);border-radius:3px;padding:.35rem .6rem;font-size:.9375rem;text-decoration:none;display:block}.docs-nav a:hover,.docs-nav a[aria-current=page]{color:var(--text);background:var(--bg2)}@media (max-width:899px){.docs-nav{border-bottom:1px solid var(--line);padding-bottom:1rem;position:static}.docs-nav ol{flex-flow:wrap;gap:.25rem .5rem}}.docs-head{justify-items:center;gap:.6rem;margin-bottom:2.5rem;display:grid}.docs-head .wordmark{width:min(100%,22rem)}.docs-label{color:var(--accent);letter-spacing:.3em;font-size:.8rem;font-weight:700}.pager{border-top:1px solid var(--line);justify-content:space-between;gap:1rem;margin-top:3rem;padding-top:1.25rem;display:flex}.pager a{color:var(--text);text-decoration:none}.pager a:hover{text-decoration:underline}.prose{min-width:0;max-width:78ch}.prose>*+*{margin-top:1.1em}.prose h1{margin-bottom:.4em;font-size:clamp(1.6rem,1.2rem + 1.5vw,2.25rem);font-weight:700;line-height:1.15}.prose h1+p{color:var(--text2)}.prose h2{margin-top:2.4em;font-size:1.25rem;font-weight:700}.prose h2:before{content:"## ";color:var(--accent)}.prose h3{margin-top:1.8em;font-weight:700}.prose h3:before{content:"### ";color:var(--text2)}.prose p,.prose li{text-wrap:pretty}.prose ul,.prose ol{padding-left:1.5em}.prose ul{list-style:"- "}.prose ol{list-style:decimal}.prose li+li{margin-top:.35em}.prose code{background:var(--bg2);border:1px solid var(--line);border-radius:3px;padding:.05em .35em;font-size:.92em}.prose pre{background:var(--bg2);border:1px solid var(--line);border-radius:3px;padding:.9rem 1rem;line-height:1.6;overflow-x:auto}.prose pre code{font-size:inherit;background:0 0;border:0;padding:0}.prose table{border-collapse:collapse;width:100%;font-size:.9375rem}.prose th,.prose td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:.5rem .75rem .5rem 0}.prose th{color:var(--accent);font-weight:700}.prose strong{font-weight:700}.prose a{color:var(--accent);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.prose a{-webkit-text-decoration-color:color-mix(in oklab, var(--accent) 50%, transparent);-webkit-text-decoration-color:color-mix(in oklab, var(--accent) 50%, transparent);-webkit-text-decoration-color:color-mix(in oklab, var(--accent) 50%, transparent);text-decoration-color:color-mix(in oklab, var(--accent) 50%, transparent)}}.prose blockquote{border-left:2px solid var(--accent);color:var(--text2);padding-left:1rem}.prose .frame{margin-top:1.5em;padding:.9rem 1rem;font-size:clamp(.6875rem,.25rem + .55vw,.8125rem);line-height:1.05}.with-mark{align-items:center;gap:.45em;display:inline-flex}.with-mark svg{flex:none}.footer{border-top:1px solid var(--line);color:var(--text2);padding:2.5rem 0 3.5rem;font-size:.9rem}.footer-inner{grid-template-columns:minmax(0,1fr);gap:2rem;display:grid}@media (min-width:720px){.footer-inner{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:4rem}}.footer p{max-width:46ch;margin-top:.75rem}.footer-links .with-mark{font-weight:700;text-decoration:none}.footer-links .with-mark:hover{text-decoration:underline}.sf-logo{text-decoration:none;display:inline-block}.sf-logo-mask{aspect-ratio:900/320;width:10rem;color:var(--text);background:currentColor;display:block;-webkit-mask:url(/signal-and-form-logo.png) 0/contain no-repeat;mask:url(/signal-and-form-logo.png) 0/contain no-repeat}.sf-logo:hover .sf-logo-mask{color:var(--accent)}
