@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--radius-sm:.25rem;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@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,ui-sans-serif, system-ui, 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;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{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{.fixed{position:fixed}.static{position:static}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.flex{display:flex}.grid{display:grid}.inline{display:inline}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.flex-wrap{flex-wrap:wrap}.border{border-style:var(--tw-border-style);border-width:1px}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--cover:#2f3d2e;--cover-d:#243024;--forest:#3c5237;--parch:#f5efdf;--parch-2:#ece3cc;--parch-3:#faf6ea;--ink:#2b2618;--ink-soft:#5e5640;--rust:#9c4a20;--gold:#9a7220;--gold-eye:#f4c430;--cream:#f5efdf;--rule:#cdc0a3;--rule-soft:#ddd2b8;--ink-rule:#2b2618;--r:4px;--r-sm:3px;--r-md:8px;--r-lg:12px;--maxw:1180px;--display:"Fraunces", Georgia, serif;--body:"Inter", system-ui, sans-serif;--mono:"JetBrains Mono", ui-monospace, monospace}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}body{font-family:var(--body);background:var(--parch);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;flex-direction:column;min-height:100vh;margin:0;line-height:1.6;display:flex}main{flex:1 0 auto}h1,h2,h3,h4,p,figure,blockquote,pre{margin:0}img,svg{display:block}a{color:inherit;text-decoration:none}button{font:inherit}::selection{background:var(--gold-eye);color:#2a2100}a:focus-visible,button:focus-visible{outline:2.5px solid var(--gold-eye);outline-offset:3px;border-radius:2px}.wrap{max-width:var(--maxw);width:100%;margin:0 auto;padding:0 28px}h1,h2,h3{font-family:var(--display);letter-spacing:-.012em;color:var(--ink);font-weight:560}h1 em,h2 em,h3 em{font-style:italic;font-weight:460}.tex-parch{background-color:var(--parch);background-image:radial-gradient(#3c523714 1px,#0000 1px);background-size:18px 18px}.tex-green{background-color:var(--cover);background-image:radial-gradient(#f5efdf0e 1px,#0000 1px);background-size:16px 16px}.btn{font-family:var(--body);border-radius:var(--r-md);cursor:pointer;border:1px solid #0000;align-items:center;gap:9px;padding:11px 20px;font-size:14.5px;font-weight:600;transition:transform .15s,background .15s,border-color .15s,color .15s;display:inline-flex}.btn-gold{background:var(--gold-eye);color:#2a2100}.btn-gold:hover{background:#ffd23f;transform:translateY(-1px)}.btn-line{color:var(--cream);border-color:#f5efdf66}.btn-line:hover{border-color:var(--cream);background:#f5efdf14}.btn-line-ink{border-color:var(--ink);color:var(--ink)}.btn-line-ink:hover{border-color:var(--ink);background:var(--parch-2)}.txtlink{color:var(--forest);font-weight:600;font-family:var(--mono);letter-spacing:.04em;border-bottom:1px solid var(--rule);padding-bottom:2px;font-size:12px}.txtlink:hover{color:var(--rust);border-color:currentColor}.masthead{background:var(--parch-3);border-bottom:3px solid var(--ink-rule);position:relative}.masthead .topline{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;gap:16px;padding:11px 0;font-size:10.5px;display:flex}.masthead .topline .tl-nav{gap:24px;display:flex}.masthead .topline .tl-nav .lbl-sm{display:none}.masthead .topline a:hover,.masthead .topline a[aria-current=page]{color:var(--rust)}.masthead .topline .tl-gh{color:var(--ink-soft);align-items:center;gap:7px;display:inline-flex}.masthead .topline .tl-gh:hover{color:var(--ink)}.nameplate{grid-template-columns:auto 1fr;align-items:center;gap:24px;padding:26px 0 20px;display:grid}.nameplate .np-owl{flex:none;place-items:center;width:78px;height:78px;display:grid}.nameplate .np-owl svg{width:100%;height:100%}.nameplate .np-text{min-width:0}.nameplate .wordmark{font-family:var(--display);letter-spacing:-.022em;color:var(--ink);margin:0;font-size:clamp(40px,8vw,74px);font-weight:560;line-height:.92}.nameplate .wordmark em{color:var(--forest);font-style:italic;font-weight:460}.nameplate .standfirst{font-family:var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--ink-soft);align-items:center;gap:14px;margin-top:12px;font-size:11.5px;display:flex}.nameplate .standfirst .sf-rule{background:var(--rule);flex:1;min-width:14px;height:1px}.nameplate .standfirst .sf-dot{color:var(--rust)}.masthead.compact .nameplate{padding:18px 0 14px}.masthead.compact .nameplate .wordmark{font-size:clamp(26px,4vw,38px)}@media(max-width:720px){.nameplate{gap:16px;padding:22px 0 18px}.nameplate .np-owl{width:54px;height:54px}.nameplate .standfirst,.masthead .topline .tl-gh{display:none}.masthead .topline .tl-nav{flex:1;justify-content:space-between;gap:12px}.masthead .topline .tl-nav .lbl-lg{display:none}.masthead .topline .tl-nav .lbl-sm{display:inline}}.banner{color:var(--cream);border-bottom:3px double #f5efdf52;position:relative;overflow:hidden}.banner .owl-bg{pointer-events:none;z-index:1;position:absolute;top:50%;right:-3%;transform:translateY(-48%)}.banner .owl-bg svg{width:clamp(300px,42vw,560px);height:auto}.banner .eyeglow{aspect-ratio:861/709;pointer-events:none;z-index:1;width:clamp(300px,42vw,560px);position:absolute;top:50%;right:-3%;transform:translateY(-48%)}.banner .eyeglow:before,.banner .eyeglow:after{content:"";aspect-ratio:1;filter:blur(6px);background:radial-gradient(circle,#f4c43080,#f4c43033 40%,#f4c43000 72%);border-radius:50%;width:25%;position:absolute;top:39.5%}.banner .eyeglow:before{left:16%}.banner .eyeglow:after{left:60%}.banner .scrim{z-index:2;background:radial-gradient(130% 100% at 16% 46%,var(--cover) 34%,#2f3d2e8c 74%,#2f3d2e2e 100%);position:absolute;inset:0}.banner .wrap{z-index:3;padding:64px 28px 60px;position:relative}.banner .b-kicker{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-eye);align-items:center;gap:12px;margin:0 0 20px;font-size:11px;display:inline-flex}.banner .b-kicker:before,.banner .b-kicker:after{content:"";background:#f5efdf66;width:26px;height:1px}.banner h1{color:var(--cream);font-family:var(--display);letter-spacing:-.015em;max-width:17ch;margin:0;font-size:clamp(38px,6.2vw,70px);font-weight:540;line-height:1.02}.banner h1 em{color:#f0e6c8;font-style:italic;font-weight:440;display:block}.banner .sub{color:#f5efdfdb;max-width:52ch;margin:24px 0 0;font-size:clamp(16px,1.6vw,19px)}.banner .cta{flex-wrap:wrap;gap:13px;margin-top:30px;display:flex}.section{padding:40px 0}@media(max-width:720px){.section{padding:28px 0}}.section.green,.section.green :is(h1,h2,h3){color:var(--cream)}.sec-bar{border-bottom:2px solid var(--ink-rule);justify-content:space-between;align-items:baseline;gap:18px;margin-bottom:30px;padding-bottom:9px;display:flex}.section.green .sec-bar{border-color:#f5efdf80}.sec-bar .sb-left{flex-wrap:wrap;align-items:baseline;gap:16px;min-width:0;display:flex}.sec-bar :is(h1,h2){margin:0;font-size:clamp(22px,3vw,32px);line-height:1}.sec-bar .sb-tag{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--rust);font-size:11px}.section.green .sec-bar .sb-tag{color:var(--gold-eye)}.sec-bar .sb-note{font-family:var(--mono);color:var(--ink-soft);letter-spacing:.04em;font-size:11px}.section.green .sec-bar .sb-note{color:#f5efdfb3}@media(max-width:600px){.sec-bar{flex-direction:column;gap:8px}}.lead{grid-template-columns:1.62fr 1fr;gap:0;display:grid}.lead .lead-main{border-right:1px solid var(--rule);padding-right:40px}.lead .lead-side{padding-left:32px}.lead .story-kicker{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--rust);margin-bottom:14px;font-size:11px}.lead .story-h{font-family:var(--display);letter-spacing:-.018em;margin:0 0 16px;font-size:clamp(30px,4.6vw,50px);font-weight:560;line-height:1.04}.lead .story-h a:hover{color:var(--rust)}.lead .deck{font-family:var(--display);color:var(--ink-soft);max-width:40ch;margin:0 0 20px;font-size:clamp(18px,2vw,22px);font-style:italic;line-height:1.42}.lead .lead-body{columns:2;column-rule:1px solid var(--rule-soft);column-gap:32px}.lead .lead-body p{color:#3a3424;margin:0 0 14px;font-size:15px;line-height:1.66}.lead .lead-body>p:first-child:first-letter{font-family:var(--display);float:left;color:var(--forest);padding:4px 10px 0 0;font-size:3.1em;font-weight:560;line-height:.78}.lead .byline{border-top:1px solid var(--rule);font-family:var(--mono);color:var(--ink-soft);letter-spacing:.03em;flex-wrap:wrap;align-items:center;gap:12px;margin:22px 0 0;padding-top:14px;font-size:11.5px;display:flex}.lead .byline .who{color:var(--ink);align-items:center;gap:8px;display:inline-flex}.lead .byline .who .av{background:#3c52371f;border-radius:50%;place-items:center;width:24px;height:24px;display:grid}.lead .byline .chip{color:var(--rust);background:#9c4a201f;border-radius:3px;padding:3px 9px}.lead .byline .more-link{color:var(--forest);border-bottom:1px solid var(--rule);margin-left:auto}.lead .byline .more-link:hover{color:var(--rust);border-color:currentColor}.lead .col-head{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink);border-bottom:2px solid var(--ink-rule);margin-bottom:4px;padding-bottom:8px;font-size:11px}.lead .col-item{border-bottom:1px solid var(--rule);padding:16px 0;display:block}.lead .col-item:last-child{border-bottom:none}.lead .col-item .ci-meta{font-family:var(--mono);letter-spacing:.05em;color:var(--rust);text-transform:uppercase;margin-bottom:6px;font-size:10.5px}.lead .col-item .ci-t{font-family:var(--display);color:var(--ink);font-size:18px;font-weight:540;line-height:1.22}.lead .col-item .ci-d{color:var(--ink-soft);margin-top:6px;font-size:13px;line-height:1.5}.lead .col-item:hover .ci-t{color:var(--rust)}@media(max-width:860px){.lead{grid-template-columns:1fr;gap:32px}.lead .lead-main{border-right:none;padding-right:0}.lead .lead-side{padding-left:0}}@media(max-width:560px){.lead .lead-body{columns:1}}.tiles{border-top:1px solid var(--rule);border-left:1px solid var(--rule);grid-template-columns:repeat(2,1fr);gap:0;display:grid}.tile{background:var(--parch-3);border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);flex-direction:column;gap:12px;padding:24px 26px;transition:background .16s;display:flex;position:relative}.tile:hover{background:#fffdf6}.tile.feature,.tile.wide{grid-column:1/-1}.tile:before{content:"";background:var(--accent,var(--forest));height:3px;position:absolute;top:0;left:0;right:0}.tile .top{align-items:center;gap:14px;display:flex}.tile a.top{cursor:pointer}.tile a.top:hover .nm{color:var(--accent,var(--forest))}.tile .owlbox{border-radius:var(--r);background:var(--accent-tint,#3c52371a);flex:none;place-items:center;width:46px;height:46px;display:grid}.tile .nm{font-family:var(--display);font-size:22px;font-weight:560;line-height:1}.tile .kind{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent,var(--ink-soft));margin-top:6px;font-size:10px}.tile .tagline{color:var(--ink);margin:0;font-size:15px;font-weight:600;line-height:1.4}.tile .desc{color:var(--ink-soft);flex:1;margin:0;font-size:13.5px;line-height:1.56}.tile.feature .body2{grid-template-columns:1.45fr 1fr;align-items:start;gap:30px;display:grid}.tile.feature .body2 .col-r{flex-direction:column;gap:14px;padding-left:0;display:flex}.tile .install{font-family:var(--mono);color:var(--ink);background:var(--parch-2);border:1px solid var(--rule-soft);border-radius:var(--r-md);scrollbar-width:none;align-items:center;gap:10px;padding:9px 12px;font-size:12.5px;display:flex;overflow-x:auto}.tile .install::-webkit-scrollbar{display:none}.tile .install .pmt{color:var(--accent,var(--forest))}.tile .install .cp{color:var(--ink-soft);border:1px solid var(--rule-soft);cursor:pointer;background:0 0;border-radius:3px;flex:none;margin-left:auto;padding:2px 7px;font-size:10.5px}.tile .install .cp:hover{color:var(--ink);border-color:var(--rule)}.tile .actions{align-items:center;gap:16px;margin-top:2px;display:flex}.tile .actions a{color:var(--ink-soft);align-items:center;gap:6px;font-size:12.5px;font-weight:600;display:inline-flex}.tile .actions a:hover{color:var(--accent,var(--forest))}@media(max-width:720px){.tiles{grid-template-columns:1fr}.tile.feature .body2{grid-template-columns:1fr;gap:18px}}.about{grid-template-columns:1.2fr .8fr;align-items:start;gap:48px;display:grid}.about :is(h2,h3){max-width:18ch;margin:0 0 18px;font-size:clamp(24px,3.2vw,36px)}.about p{color:#f5efdfd6;max-width:54ch;margin:0 0 16px;font-size:16px}.about .skills{flex-wrap:wrap;gap:8px;margin-top:22px;display:flex}.about .skills span{font-family:var(--mono);color:var(--cream);border-radius:var(--r-sm);border:1px solid #f5efdf47;padding:6px 11px;font-size:11px}.about .portrait{border-left:1px solid #f5efdf33;place-items:center;padding:16px;display:grid}.about .portrait .ring{background:#f5efdf0d;border:1px solid #f5efdf2e;border-radius:50%;place-items:center;width:200px;height:200px;display:grid}@media(max-width:800px){.about{grid-template-columns:1fr;gap:24px}.about .portrait{display:none}}.foot{color:#f5efdfb8;border-top:3px double #f5efdf4d;padding:54px 0 38px}.foot .wrap{grid-template-columns:1.5fr 1fr 1fr;gap:30px;display:grid}.foot .brand{color:var(--cream);align-items:center;gap:11px;display:flex}.foot .brand .logo{place-items:center;width:32px;height:32px;display:grid}.foot .brand b{font-family:var(--display);font-size:19px;font-weight:560}.foot .blurb{color:#f5efdf99;max-width:34ch;margin:16px 0 0;font-size:13.5px}.foot h4{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#f5efdfa8;margin:0 0 14px;font-size:11px;font-weight:500}.foot a{color:#f5efdfb8;padding:4px 0;font-size:14px;display:block}.foot a.brand{padding:0}.foot a:hover{color:var(--gold-eye)}.foot .copy{font-family:var(--mono);letter-spacing:.04em;color:#f5efdfa8;border-top:1px solid #f5efdf24;flex-wrap:wrap;grid-column:1/-1;justify-content:space-between;gap:8px;margin-top:34px;padding-top:22px;font-size:11.5px;display:flex}@media(max-width:760px){.foot .wrap{grid-template-columns:1fr 1fr}.foot .brand-col{grid-column:1/-1}}.subnav{background:var(--parch-3);border-bottom:1px solid var(--rule)}.subnav .wrap{justify-content:space-between;align-items:center;gap:16px;height:54px;display:flex}.crumbs{font-family:var(--mono);color:var(--ink-soft);letter-spacing:.04em;font-size:11.5px}.crumbs a{color:var(--forest)}.crumbs a:hover{color:var(--rust)}.crumbs .sep{color:var(--rule);margin:0 8px}.subnav .sn-right{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:22px;font-size:11px;display:flex}.subnav .sn-right a{color:var(--ink-soft)}.subnav .sn-right a:hover{color:var(--rust)}.subnav .sn-gh{color:var(--ink-soft);display:inline-flex}.subnav .sn-gh:hover{color:var(--ink)}@media(max-width:640px){.subnav .sn-right a:not(.sn-gh){display:none}}.phero{border-bottom:2px solid var(--ink-rule);padding:44px 0 50px}.phero .row{grid-template-columns:1.02fr .98fr;align-items:center;gap:44px;display:grid}.phero .lead-col,.phero .visual-col{min-width:0}@media(max-width:880px){.phero .row{grid-template-columns:1fr;gap:30px}}.phero .badge{align-items:center;gap:13px;display:inline-flex}.phero .badge .owlbox{border-radius:var(--r);background:var(--accent-tint);place-items:center;width:54px;height:54px;display:grid}.phero .badge .kind{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-size:11px}.phero h1{margin:20px 0 0;font-size:clamp(38px,5.6vw,60px);line-height:1.02}.phero .tagline{color:var(--ink);max-width:30ch;font-size:clamp(18px,2vw,22px);font-weight:540;font-family:var(--display);margin:16px 0 0;font-style:italic}.phero .desc{color:var(--ink-soft);max-width:52ch;margin:18px 0 0;font-size:15.5px}.phero .install-big{font-family:var(--mono);color:var(--cream);background:var(--cover);border-radius:var(--r-md);scrollbar-width:none;align-items:center;gap:12px;margin-top:18px;padding:14px 16px;font-size:14px;display:flex;overflow-x:auto}.phero .install-big::-webkit-scrollbar{display:none}.phero .install-big .pmt{color:var(--gold-eye)}.phero .install-big .cp{color:#f5efdf99;border-radius:var(--r-sm);cursor:pointer;background:0 0;border:1px solid #f5efdf40;flex:none;margin-left:auto;padding:4px 9px;font-size:11px}.phero .cta{flex-wrap:wrap;gap:12px;margin-top:22px;display:flex}.codewin{background:var(--cover);border-radius:var(--r-lg);border:1px solid #f5efdf1a;overflow:hidden;box-shadow:0 30px 60px -30px #24302480}.codewin .bar{background:#f5efdf0d;border-bottom:1px solid #f5efdf14;align-items:center;gap:8px;padding:11px 14px;display:flex}.codewin .bar i{border-radius:50%;width:11px;height:11px;display:block}.codewin .bar i:first-child{background:#ff5f57}.codewin .bar i:nth-child(2){background:#febc2e}.codewin .bar i:nth-child(3){background:#28c840}.codewin .fn{font-family:var(--mono);color:#f5efdf99;margin-left:8px;font-size:11.5px}.codewin pre{font-family:var(--mono);color:#f5efdfe6;margin:0;padding:18px 20px;font-size:12.5px;line-height:1.75;overflow-x:auto}.codewin pre code{font-family:inherit}.shotwin{border-radius:var(--r-lg);border:1px solid var(--rule);margin:0;overflow:hidden;box-shadow:0 30px 60px -30px #2b261852}.shotwin img{width:100%;height:auto;display:block}.visual-cap{font-family:var(--mono);color:var(--ink-soft);text-align:center;letter-spacing:.03em;margin:10px 0 0;font-size:11px}.features{border-top:1px solid #f5efdf2e;border-left:1px solid #f5efdf2e;grid-template-columns:repeat(3,1fr);gap:0;display:grid}.fcard{background:#f5efdf0a;border-bottom:1px solid #f5efdf2e;border-right:1px solid #f5efdf2e;padding:24px 22px}.fcard .ic{border-radius:var(--r);background:#f5efdf14;place-items:center;width:36px;height:36px;margin-bottom:14px;display:grid}.fcard h3{color:var(--cream);margin:0 0 7px;font-size:17px}.fcard p{color:#f5efdfc7;margin:0;font-size:14px;line-height:1.55}@media(max-width:760px){.features{grid-template-columns:1fr}}.family{border-top:1px solid var(--rule);border-left:1px solid var(--rule);grid-template-columns:repeat(4,1fr);gap:0;display:grid}.family a{background:var(--parch-3);border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);align-items:center;gap:12px;padding:18px;transition:background .15s;display:flex}.family a:hover{background:#fffdf6}.family .owlbox{border-radius:var(--r);flex:none;place-items:center;width:38px;height:38px;display:grid}.family .nm{font-family:var(--display);font-size:15px;font-weight:560}.family .kd{color:var(--ink-soft);font-size:10.5px;font-family:var(--mono);letter-spacing:.04em}@media(max-width:760px){.family{grid-template-columns:1fr 1fr}}.section.overview .ov-sections{flex-direction:column;display:flex}.section.overview .ov-sec{border-top:1px solid var(--rule);grid-template-columns:200px minmax(0,680px);align-items:start;gap:48px;margin-top:30px;padding-top:30px;display:grid}.section.overview .ov-sec:first-child{border-top:0;margin-top:0;padding-top:0}.section.overview .ov-head .ov-num{font-family:var(--mono);letter-spacing:.1em;color:var(--rust);margin-bottom:10px;font-size:12px;display:block}.section.overview .ov-head h2{font-family:var(--display);margin:0;font-size:clamp(22px,2.4vw,26px);line-height:1.1}.section.overview .ov-body{color:#3a3424;font-size:18px;line-height:1.78}.section.overview .ov-body p{margin:0 0 22px}.section.overview .ov-body p:last-child{margin-bottom:0}.section.overview .ov-body a{color:var(--forest);text-underline-offset:2px;text-decoration:underline;-webkit-text-decoration-color:var(--rule);text-decoration-color:var(--rule)}.section.overview .ov-body a:hover{color:var(--rust);text-decoration-color:currentColor}.section.overview .ov-body strong{color:var(--ink);font-weight:650}.section.overview .ov-body em{font-style:italic}.section.overview .ov-body code{font-family:var(--mono);background:var(--parch-2);border-radius:var(--r-sm);color:var(--rust);padding:2px 6px;font-size:.85em}@media(max-width:860px){.section.overview .ov-sec{grid-template-columns:1fr;gap:12px;margin-top:24px;padding-top:24px}}.article{max-width:720px;margin:0 auto;padding:36px 28px 0}.article .crumbs{padding:0 0 18px}.article h1{letter-spacing:-.015em;margin:0;font-size:clamp(32px,4.6vw,52px);font-weight:540;line-height:1.05}.article .dek{font-family:var(--display);color:var(--ink-soft);margin:20px 0 0;font-size:21px;font-style:italic;line-height:1.48}.article .a-meta{border-top:2px solid var(--ink-rule);border-bottom:1px solid var(--rule);font-family:var(--mono);color:var(--ink-soft);letter-spacing:.03em;flex-wrap:wrap;align-items:center;gap:14px;margin:26px 0 0;padding:16px 0;font-size:12px;display:flex}.article .a-meta .who{color:var(--ink);align-items:center;gap:9px;display:flex}.article .a-meta .who .av{background:#3c52371f;border-radius:50%;place-items:center;width:28px;height:28px;display:grid}.article .a-meta .chip{color:var(--rust);border-radius:var(--r-sm);background:#9c4a201f;padding:3px 9px}.article .a-meta .chip:hover{background:#9c4a2033}.prose{color:#3a3424;padding:14px 0 0;font-size:18px;line-height:1.78}.prose>p{margin:0 0 24px}.article .prose>p:first-child:first-letter{font-family:var(--display);float:left;color:var(--forest);padding:6px 12px 0 0;font-size:3.4em;font-weight:560;line-height:.76}.prose h2{font-family:var(--display);border-top:1px solid var(--rule);margin:44px 0 14px;padding-top:18px;font-size:27px}.prose h3{font-family:var(--display);margin:32px 0 10px;font-size:21px;font-weight:560}.prose h4{font-family:var(--display);margin:26px 0 8px;font-size:18px;font-weight:560}.prose a{color:var(--forest);text-underline-offset:2px;text-decoration:underline;-webkit-text-decoration-color:var(--rule);text-decoration-color:var(--rule)}.prose a:hover{color:var(--rust);text-decoration-color:currentColor}.prose strong{color:var(--ink);font-weight:650}.prose em{font-style:italic}.prose ul,.prose ol{margin:0 0 24px;padding-left:1.35em}.prose li{margin:0 0 8px;line-height:1.7}.prose li::marker{color:var(--rust)}.prose li>ul,.prose li>ol{margin:8px 0 0}.prose hr{border:0;border-top:1px solid var(--rule);margin:36px 0}.prose img{border-radius:var(--r);border:1px solid var(--rule);max-width:100%;height:auto;margin:26px 0}.prose blockquote{border-left:3px solid var(--rust);font-family:var(--display);color:var(--ink);margin:30px 0;padding:8px 0 8px 26px;font-size:23px;font-style:italic;line-height:1.42}.prose blockquote p{margin:0}.prose pre{background:var(--cover);color:var(--cream);border-radius:var(--r);font-family:var(--mono);margin:26px 0;padding:18px 20px;font-size:13.5px;line-height:1.65;overflow-x:auto}.prose code{font-family:var(--mono);background:var(--parch-2);border-radius:var(--r-sm);color:var(--rust);padding:2px 6px;font-size:.85em}.prose pre code{color:inherit;font-size:inherit;background:0 0;padding:0}.prose table{border-collapse:collapse;width:100%;margin:26px 0;font-size:15px}.prose th,.prose td{border:1px solid var(--rule);text-align:left;padding:8px 12px}.prose th{background:var(--parch-2);font-family:var(--mono);text-transform:uppercase;letter-spacing:.05em;font-size:12px}.a-foot{max-width:720px;margin:44px auto 48px;padding:0 28px}.a-foot .col-head{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink);border-bottom:2px solid var(--ink-rule);margin-bottom:4px;padding-bottom:8px;font-size:11px}.archive{flex-direction:column;display:flex}.archive .entry{border-bottom:1px solid var(--rule);grid-template-columns:150px 1fr auto;align-items:baseline;gap:26px;padding:24px 0;display:grid}.archive .entry:first-child{padding-top:6px}.archive .entry .e-date{font-family:var(--mono);color:var(--rust);letter-spacing:.04em;text-transform:uppercase;font-size:11.5px}.archive .entry .e-date .e-proj{color:var(--ink-soft);margin-top:5px;display:block}.archive .entry h2{margin:0 0 7px;font-size:23px;line-height:1.18}.archive .entry:hover h2{color:var(--rust)}.archive .entry .e-dek{color:var(--ink-soft);max-width:60ch;margin:0;font-size:15px;line-height:1.55}.archive .entry .e-read{font-family:var(--mono);color:var(--ink-soft);white-space:nowrap;font-size:11.5px}@media(max-width:720px){.archive .entry{grid-template-columns:1fr;gap:8px}.archive .entry .e-read{display:none}}.wlist{flex-direction:column;display:flex}.wlist a{border-bottom:1px solid var(--rule);grid-template-columns:150px 1fr auto;align-items:baseline;gap:22px;padding:15px 0;display:grid}.wlist .d{font-family:var(--mono);color:var(--rust);letter-spacing:.04em;text-transform:uppercase;font-size:11px}.wlist .t{font-family:var(--display);color:var(--ink);font-size:18px;font-weight:540;line-height:1.25;display:block}.wlist .dk{color:var(--ink-soft);margin-top:4px;font-size:13.5px;line-height:1.5;display:block}.wlist a:hover .t{color:var(--rust)}.wlist .r{font-family:var(--mono);color:var(--ink-soft);white-space:nowrap;font-size:11px}@media(max-width:680px){.wlist a{grid-template-columns:1fr;gap:6px}.wlist .r{display:none}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
