:root{--bg:#0C1924;--panel:#10202E;--panel2:#152A3B;--line:#24394C;--ink:#ECF0F3;--ink2:#AEBBC6;--ink3:#7C8C9A;--gold:#E2B33C;--gold2:#C8A951;--ok:#5FC495;--violet:#B39CF2;--mono:"Cascadia Mono", Consolas, "SF Mono", ui-monospace, monospace;color-scheme:dark}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 Arial,helvetica neue,Helvetica,sans-serif}a{color:inherit}img,svg{display:block;max-width:100%;height:auto}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.wrap{max-width:1120px;margin:0 auto;padding:0 16px}.wrap.col{max-width:calc(85ch + 32px)}header.site{background:var(--panel);border-bottom:2px solid var(--gold)}header.site .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 2rem;min-height:62px;padding-top:.6rem;padding-bottom:.6rem}.brand{display:flex;align-items:center;gap:.65rem;text-decoration:none;font-weight:700;letter-spacing:.16em;font-size:.95rem;text-transform:uppercase}.brand b{color:var(--gold)}header.site nav{display:flex;flex-wrap:wrap;gap:.25rem 1.5rem;margin-left:auto;font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700}header.site nav a{text-decoration:none;color:var(--ink2);padding:.2rem 0;border-bottom:2px solid transparent}header.site nav a:hover{color:var(--gold)}header.site nav a[aria-current=page]{color:var(--ink);border-bottom-color:var(--gold)}footer.site{background:var(--panel);padding:2.2rem 0 2.8rem;color:var(--ink3);font-size:.82rem;border-top:2px solid var(--gold)}footer.site .wrap{display:flex;flex-wrap:wrap;gap:.6rem 2rem}footer.site a{color:var(--ink2)}.hero{background:radial-gradient(1200px 500px at 70% -10%,rgba(226,179,60,.13),transparent 60%),repeating-linear-gradient(135deg,rgba(255,255,255,.025) 0 2px,transparent 2px 14px),var(--bg);border-bottom:1px solid var(--line)}.hero .wrap{padding-top:clamp(4rem,10vw,7rem);padding-bottom:clamp(4rem,10vw,7rem);text-align:center}.hero h1{font-size:clamp(2.3rem,7vw,4.6rem);line-height:1;letter-spacing:.06em;text-transform:uppercase;margin:0 0 1.1rem}.hero h1 span{color:var(--gold)}.hero .lede{margin:0 auto}.lede{font-size:1.1rem;color:var(--ink2);max-width:52ch;margin:0}.pagehead{background:var(--panel);border-bottom:1px solid var(--line)}.pagehead .wrap{padding-top:clamp(2rem,6vw,3.5rem);padding-bottom:clamp(1.8rem,5vw,2.8rem)}.pagehead h1{font-size:clamp(1.8rem,5vw,2.8rem);line-height:1.1;letter-spacing:.04em;text-transform:uppercase;margin:0 0 .7rem}.pagehead .meta{margin:.8rem 0 0}.pagehead .ctas{margin-top:1.5rem}.crumb{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--ink3);margin-bottom:.8rem}.crumb a{color:var(--gold2);text-decoration:none}.pagehead .top{display:flex;flex-wrap:wrap;gap:.6rem 1rem;align-items:center;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink3);font-weight:700;margin-bottom:.6rem}.subnav{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1.6rem}.subnav a{text-decoration:none;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--ink2);padding:.45rem .8rem;border:1px solid var(--line);background:var(--bg)}.subnav a:hover{color:var(--gold);border-color:var(--gold2)}.subnav a[aria-current=page]{color:#10202e;background:var(--gold);border-color:var(--gold)}.meta{font-size:.85rem;color:var(--ink3)}.meta a{color:var(--gold)}.ctas{display:flex;flex-wrap:wrap;gap:.6rem}.btn{display:inline-block;padding:.75rem 1.3rem;text-decoration:none;font-weight:700;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--gold);border-radius:2px}.btn.pri{background:var(--gold);color:#10202e}.btn.pri:hover{background:#edc45a}.btn.sec{color:var(--gold)}.btn.sec:hover{background:rgba(226,179,60,.1)}section.s{padding:3.5rem 0;border-bottom:1px solid var(--line)}.sh{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1rem;margin-bottom:1.6rem;padding-bottom:.7rem;border-bottom:1px solid var(--line);position:relative}.sh::after{content:"";position:absolute;left:0;bottom:-1px;width:64px;height:3px;background:var(--gold)}.sh h2{margin:0;font-size:1.05rem;letter-spacing:.2em;text-transform:uppercase}.sh a{margin-left:auto;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);text-decoration:none;font-weight:700}.two{display:grid;grid-template-columns:1.4fr 1fr;gap:2rem}.empty{color:var(--ink3);font-style:italic;margin:0}.group{margin:2rem 0 .8rem;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ink3);font-weight:700}.group:first-child{margin-top:0}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:1rem}.card{background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--gold2);padding:1.25rem;display:flex;flex-direction:column;gap:.55rem;text-decoration:none}a.card:hover{border-color:var(--gold2)}.card.fanc{border-top-color:var(--violet)}a.card.fanc:hover{border-color:var(--violet)}.card.soon{border-style:dashed;border-top-style:solid;border-top-color:var(--line)}.card .top{display:flex;justify-content:space-between;align-items:center;gap:.8rem;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink3);font-weight:700}.card h3{margin:.2rem 0 0;font-size:1.25rem}.card p{margin:0;color:var(--ink2);font-size:.94rem}.card .links{margin-top:auto;padding-top:.8rem;display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--gold)}.tag{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;padding:.2rem .5rem;border:1px solid;border-radius:2px;white-space:nowrap}.tag.alpha,.tag.alpha-open{color:var(--gold)}.tag.dev{color:var(--ok)}.tag.concept{color:var(--violet)}.tag.released{color:var(--ink)}.fan{margin:1.2rem 0 0;font-size:.85rem;color:var(--ink2);padding:.8rem 1rem;background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--violet)}.fan.notice{border-left-color:var(--line)}.log{list-style:none;margin:0;padding:0}.log li a{display:block;padding:.95rem 0;border-bottom:1px solid var(--line);text-decoration:none}.log li a:hover .t{color:var(--gold)}.log .d{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold2);font-weight:700}.log .t{display:block;font-weight:700;margin-top:.15rem}.road{background:var(--panel);border:1px solid var(--line);padding:1.1rem}.road h3{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin:1rem 0 .5rem}.road h3:first-child{margin-top:0}.road p{margin:0 0 .4rem;font-size:.92rem;color:var(--ink2)}.road p b{color:var(--ink)}.rm+.rm{margin-top:2.5rem}.rm h2{font-size:1.05rem;letter-spacing:.2em;text-transform:uppercase;margin:0 0 .9rem}.rm h2 a{text-decoration:none}.rm h2 a:hover{color:var(--gold)}.rmcols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:1rem}.rmcols .col{background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--gold2);padding:1rem 1.1rem}.rmcols h3{margin:0 0 .6rem;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}.rmcols ul{margin:0;padding-left:1.1rem;color:var(--ink)}.rmcols li+li{margin-top:.35rem}.art{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:1rem}.art figure{margin:0;border:1px solid var(--line);background:var(--panel)}.art figure a{display:block}.art img{width:100%}.art figcaption{padding:.7rem .9rem;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink3);font-weight:700}.help{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:1rem}.help a{display:block;padding:1.1rem;background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--gold);text-decoration:none}.help a:hover{border-color:var(--gold2);border-left-color:var(--gold)}.help b{display:block;margin-bottom:.3rem;letter-spacing:.06em}.help span{color:var(--ink2);font-size:.9rem}.dl{border-bottom:1px solid var(--line)}.dl .wrap{padding-top:2rem;padding-bottom:2rem}.dlbox{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.2rem 2rem;background:var(--panel2);border:1px solid var(--line);border-left:3px solid var(--gold);padding:1.4rem}.dlbox .meta{margin:.7rem 0 0;max-width:60ch}.dlbox .sha code{overflow-wrap:anywhere}.dlhead{margin:0;font-size:.9rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}.dllinks{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700}.dllinks a{color:var(--gold);text-decoration:none}.prose>:first-child{margin-top:0}.prose h2{font-size:1.05rem;letter-spacing:.16em;text-transform:uppercase;margin:2.4rem 0 .8rem;padding-bottom:.5rem;border-bottom:1px solid var(--line)}.prose h2.pagetitle{font-size:1.3rem;letter-spacing:.1em;border-bottom:0;margin-bottom:1rem}.prose h3{font-size:1rem;margin:1.8rem 0 .6rem}.prose h4{font-size:.95rem;margin:1.2rem 0 .4rem}.prose p,.prose li{color:var(--ink2)}.prose strong{color:var(--ink)}.prose a{color:var(--gold)}.prose ul,.prose ol{padding-left:1.3rem}.prose li+li{margin-top:.3rem}.prose code{font-family:var(--mono);font-size:.88em;background:var(--panel2);border:1px solid var(--line);padding:.05rem .3rem;border-radius:2px;color:var(--ink);overflow-wrap:anywhere}.prose pre{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--gold2);padding:1rem;overflow-x:auto}.prose pre code{background:0 0;border:0;padding:0;font-size:.85rem;overflow-wrap:normal}.prose .qg{font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold2);margin:2rem 0 .2rem}.qa{border-bottom:1px solid var(--line)}.qa summary{cursor:pointer;padding:.75rem 0;font-weight:700;color:var(--ink)}.qa summary::marker{color:var(--gold)}.qa[open] summary{color:var(--gold)}.qa summary code{font-weight:400}.qa .sys{display:inline-block;margin-left:.6rem;padding:.05rem .4rem;border:1px solid var(--line);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);vertical-align:middle}.qa>p:last-child,.qa>ul:last-child{margin-bottom:1rem}.prose>.shot{margin:1.6rem 0;border:1px solid var(--line);background:var(--panel)}.shot a{display:block}.shot img{display:block;width:100%;height:auto}.shot figcaption{padding:.6rem .9rem;font-size:.85rem;color:var(--ink3);border-top:1px solid var(--line)}.prose>.shot{scroll-margin-top:1.5rem}.lightbox{display:none}.lightbox:target{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.8rem;padding:3rem 16px 1.5rem;background:rgba(6,13,19,.94);text-decoration:none;cursor:zoom-out}.lightbox img{max-width:100%;max-height:calc(100vh - 7rem);max-height:calc(100dvh - 7rem);width:auto;height:auto;border:1px solid var(--line)}.lb-cap{max-width:85ch;font-size:.85rem;color:var(--ink2);text-align:center}.lb-close{position:absolute;top:.4rem;right:1rem;font-size:2rem;line-height:1;color:var(--ink2)}.lightbox:hover .lb-close{color:var(--gold)}body:has(.lightbox:target){overflow:hidden}@media(max-width:820px){.two{grid-template-columns:1fr}}@media(max-width:560px){header.site nav{margin-left:0;gap:.25rem 1.1rem}.card .top{flex-wrap:wrap}}.follow{margin-top:2.5rem;background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--gold);padding:1.1rem 1.2rem}.follow h2{margin:0 0 .5rem;font-size:.9rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}.follow p{margin:.4rem 0 0;color:var(--ink2);font-size:.93rem}.follow code{font-family:var(--mono);font-size:.88em;background:var(--panel2);border:1px solid var(--line);padding:.15rem .4rem;color:var(--ink);overflow-wrap:anywhere}body.errpage{display:flex;justify-content:center;padding:3.5rem 1.5rem;background:radial-gradient(90rem 30rem at 20% -10rem,rgba(226,179,60,.12),transparent 70%),var(--bg);min-height:100vh}.err{width:100%;max-width:34rem}.errmark{display:inline-block;margin-bottom:1.4rem}.err .code{font:700 .72rem/1 var(--mono);letter-spacing:.22em;color:var(--gold);margin:0 0 .9rem}.err h1{font-size:2rem;letter-spacing:.04em;text-transform:uppercase;margin:0 0 .5rem}.err .lede{margin:0}.errart{display:block;width:100%;max-width:26rem;height:auto;margin:2rem 0 2.25rem}.errart .tile polygon{fill:var(--panel2);stroke:var(--gold2);stroke-width:1.5;stroke-linejoin:round}.errart .gone{fill:none;stroke:var(--gold2);stroke-width:1.5;stroke-dasharray:4 5;opacity:.45;stroke-linejoin:round}.errart .trail{stroke:var(--gold);stroke-width:2}.errart .off{stroke:var(--gold);stroke-width:2;stroke-dasharray:3 5;opacity:.45}.errart .you{fill:var(--gold)}.err h2{font:700 .72rem/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--ink3);margin:0 0 .25rem;padding-bottom:.7rem;border-bottom:1px solid var(--line)}.err ul{list-style:none;margin:0;padding:0;border-bottom:1px solid var(--line)}.err li a{display:block;padding:.85rem 1rem .85rem .9rem;text-decoration:none;border-bottom:1px solid var(--line);border-left:3px solid rgba(226,179,60,.4);transition:background .12s ease,border-left-color .12s ease,padding-left .12s ease}.err li:last-child a{border-bottom:0}.err li a:hover,.err li a:focus-visible{background:rgba(226,179,60,7%);border-left-color:var(--gold);padding-left:1.3rem;outline:none}.err li a:focus-visible{box-shadow:inset 0 0 0 2px var(--gold)}@media(prefers-reduced-motion:reduce){.err li a{transition:none}.err li a:hover,.err li a:focus-visible{padding-left:.9rem}}