:root{--void:#000000;--chalk:#E9EAEC;--ash:#878C94;--slate:#33373D;--dim:#5A5F66;--signal:#155DFC;--edge:clamp(22px,3.3vw,48px);--sans:var(--font-geist),"Helvetica Neue",Arial,sans-serif}*,:after,:before{box-sizing:border-box}body,html{margin:0;background:var(--void);color:var(--chalk)}body{font-family:var(--sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}a{color:inherit}:focus-visible{outline:1px solid var(--signal);outline-offset:5px}canvas#sky{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:pan-y;cursor:crosshair}.page{position:relative;min-height:100vh;min-height:100svh;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);grid-template-rows:auto 1fr auto;padding:var(--edge);padding-bottom:calc(var(--edge) * .75);grid-column-gap:var(--edge);column-gap:var(--edge);pointer-events:none}.page a,.page button{pointer-events:auto}.brand{grid-column:1;grid-row:1;justify-self:start;display:flex;align-items:center;gap:14px;font-weight:500;font-size:20px;letter-spacing:-.01em;text-decoration:none}.brand svg{width:28px;height:28px;display:block;overflow:visible}.brand svg circle{display:none}.brand svg g{fill:var(--signal)}.order{grid-column:2;grid-row:1;justify-self:end;align-self:center;display:flex;align-items:center;gap:12px;margin:0;font-size:13px;color:var(--ash);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.order b{font-weight:400;color:var(--chalk);min-width:2.2em}.order .bar{position:relative;width:64px;height:1px;background:var(--slate)}.order .bar i{position:absolute;inset:0;background:var(--signal);transform-origin:0 50%;transform:scaleX(var(--fill,1))}.orbit{grid-column:2;grid-row:1/4;align-self:stretch;min-height:0}.copy{grid-column:1;grid-row:3;align-self:end;max-width:30rem}h1,h2{margin:0 0 22px;font-weight:400;font-size:clamp(42px,4.2vw,62px);line-height:1.02;letter-spacing:-.04em}.lede{margin:0;color:var(--ash);line-height:1.5;max-width:26rem;text-wrap:pretty}.lede,.mail{font-size:17px}.mail{display:inline-block;margin-top:34px;text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100% /100% 1px no-repeat;padding-bottom:3px;transition:color .2s}.mail:hover{color:var(--signal)}.legal{margin:30px 0 0;font-size:11px;color:var(--dim)}.ctrl{grid-column:2;grid-row:3;justify-self:end;align-self:end;display:flex;align-items:center;gap:22px;font-size:13px;color:var(--ash);padding-bottom:2px}.ctrl p{margin:0}.scatter{font:inherit;font-size:13px;color:var(--chalk);background:none;border:1px solid var(--slate);border-radius:2px;padding:7px 12px 8px;cursor:pointer;transition:border-color .2s,color .2s}.scatter:hover{border-color:var(--chalk)}.scatter:active{color:var(--signal);border-color:var(--signal)}.run{position:relative;height:330vh;height:330svh}.stage{position:fixed;inset:0;pointer-events:none}.stage>*{position:absolute;left:var(--edge);bottom:calc(var(--edge) * .75);max-width:30rem;margin:0;opacity:0;visibility:hidden}.stage a{pointer-events:auto}.line{font-size:clamp(30px,2.9vw,42px);line-height:1.08;letter-spacing:-.035em;max-width:18ch;padding-bottom:46px;text-wrap:balance}.line span{display:block;color:var(--ash)}.end h2{margin-bottom:0;max-width:20ch;text-wrap:balance}.end .mail{margin-top:30px}.plabel{left:0;top:0;font-size:18px;line-height:1.3;font-weight:500;letter-spacing:-.01em;color:var(--chalk);opacity:0;visibility:hidden}.plabel,.projects{position:fixed;margin:0;pointer-events:none}.projects{inset:0;padding:0;list-style:none}.projects li{position:absolute;left:0;top:0;opacity:0;visibility:hidden;line-height:1.25}.projects a{display:inline-block;text-decoration:none;pointer-events:auto}.projects b{display:block;font-weight:500;font-size:clamp(15px,1.25vw,18px);letter-spacing:-.01em;color:var(--chalk);transition:color .2s}.projects .note{display:block;margin-top:2px;font-size:clamp(13px,1vw,14.5px);color:#B8BABD}.projects a:focus-visible b,.projects a:hover b{color:#fff}.projects a:focus-visible{outline-offset:4px}.projects .soon{font-size:13px;color:var(--dim)}.projects .ix,.projects .soon-all{display:none}.projects .plink{display:inline-block;text-decoration:none;pointer-events:auto}.projects span.plink{pointer-events:none}.projects .ptop{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}.projects .plogo{width:32px;height:32px;display:block;flex:none;border-radius:6px;box-shadow:0 0 0 1px rgba(233,234,236,.12)}.projects .plogo.bare{border-radius:0;box-shadow:none}.projects .wmark{height:22px;width:auto;display:block}.projects li.stack .plogo{width:24px;height:24px;border-radius:5px}.projects .sitemark{display:inline-flex;align-items:center;white-space:nowrap}.projects .site .note,.projects .site .ptop{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.site-regolith .sitemark{gap:.32em;font-family:var(--font-manrope),var(--font-geist),sans-serif;font-weight:600;font-size:clamp(17px,1.45vw,21px);letter-spacing:-.02em;color:#ECECE6}.site-regolith .rg-glyph{height:.78em;width:auto;display:block}.site-trmn .sitemark{gap:.55em;font-family:var(--font-geist-mono),ui-monospace,monospace;font-weight:500;font-size:clamp(14px,1.15vw,17px);color:#fafafa}.site-trmn .tr-prompt{color:#53c67d}.vigs{position:fixed;inset:0;pointer-events:none}.vig{position:absolute;left:0;top:0;width:0;height:0;overflow:hidden;opacity:0;visibility:hidden;flex-direction:column;gap:.7em;padding:var(--pad);box-sizing:border-box}.vhead,.vig{display:flex}.vhead{flex:none;height:var(--hh);justify-content:flex-end;align-items:center}.vlist{flex:1 1;min-height:0;overflow:hidden;display:flex;flex-direction:column;gap:.55em}.vlist>*{flex:none;transition:opacity .55s,transform .55s}.vlist>:nth-child(2){opacity:.6}.vlist>:nth-child(n+3){opacity:.45}.vlist.pending>:first-child{opacity:0;transform:translateY(-.6em)}.vlist.pending>:not(:first-child){transform:translateY(-.6em)}.vig-regolith{font-family:var(--font-geist),sans-serif;color:#ECECE6}.rg-art{flex:1 1;min-height:0}.rg-status{flex:none}.rg-row{display:flex;justify-content:space-between;align-items:center;gap:.6em;padding:.5em 0;border-top:1px solid #30312d;font-size:.92em;line-height:1.2}.rg-row:last-child{border-bottom:1px solid #30312d}.rg-row>span:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.rg-tag{display:flex;align-items:center;gap:.55em;font-family:var(--font-geist-mono),ui-monospace,monospace;font-size:.66em;letter-spacing:.16em;color:#b4b5ac;white-space:nowrap}.rg-tag b{display:block;width:.62em;height:.62em;background:#cff938}.rg-tag b.mid{background:#8c8d85}.rg-tag b.hollow{background:none;box-shadow:inset 0 0 0 1px #8c8d85}.vig-trmn{font-family:var(--font-geist-mono),ui-monospace,monospace;color:#e4e4e7}.tr-online{display:flex;align-items:center;gap:.45em;font-size:.82em;color:#a1a1aa}.tr-online i{display:block;width:.5em;height:.5em;border-radius:50%;background:#53c67d}.tr-search{flex:none;height:2.4em;display:flex;align-items:center;gap:.5em;padding:0 .6em;border:1px solid #2a2a30;border-radius:6px;font-size:.92em}.tr-search svg{width:1em;height:1em;color:#71717a;flex:none}.tr-search .q{white-space:nowrap}.tr-search .caret{width:.5em;height:1.05em;background:#53c67d;margin-left:-.35em;animation:trblink 1.05s steps(1) infinite}.tr-search kbd{margin-left:auto;font:inherit;font-size:.74em;color:#a1a1aa;border:1px solid #3f3f46;border-radius:3px;padding:.1em .35em}@keyframes trblink{50%{opacity:0}}.tr-card{display:flex;flex-direction:column;border:1px solid #26262b;border-radius:6px;padding:.75em .8em;background:#131316}.tr-card .chips{margin-top:auto}.tr-card .nm{font-weight:500;font-size:1.05em;color:#fafafa}.tr-card .ds{margin:.35em 0 .6em;font-size:.82em;line-height:1.38;height:2.76em;color:#a1a1aa;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tr-card .chips{display:flex;gap:.45em}.tr-card .lang,.tr-card .star{font-size:.78em;padding:.12em .45em;border-radius:3px;white-space:nowrap}.tr-card .star{color:#e3b341;border:1px solid #5c4a1c;background:rgba(227,179,65,.07)}.tr-card .lang{color:#d4d4d8;border:1px solid #36363d}.site-hoa .sitemark,.site-web .sitemark{gap:.5em;font-weight:500;font-size:clamp(14px,1.15vw,17px);letter-spacing:-.01em;color:var(--chalk)}.projects .sm-glyph{width:1.35em;height:1.35em;display:block;flex:none}.vig-hoa,.vig-web{font-family:var(--font-geist),sans-serif;color:#c9cbd0}.ho-bell{position:relative;display:block;width:var(--hh);height:var(--hh);margin-right:.45em;color:#9aa0a8}.ho-bell svg{width:100%;height:100%;display:block}.ho-bell b{position:absolute;right:-.55em;top:0;min-width:1.25em;height:1.25em;padding:0 .25em;box-sizing:border-box;border-radius:.65em;background:#155DFC;color:#fff;font-size:.62em;font-weight:600;line-height:1.25em;text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ho-item{display:flex;align-items:center;gap:.65em;padding:.55em .65em;border:1px solid rgba(21,93,252,.38);border-radius:4px;background:rgba(21,93,252,.06)}.ho-item i{flex:none;width:1.3em;height:1.3em;box-sizing:border-box;border:1px solid #4a7dfd;border-radius:50%;position:relative}.ho-item.ann i:after{content:"";position:absolute;inset:.3em;border-radius:50%;background:#4a7dfd}.ho-item.paid i:after{content:"";position:absolute;left:.4em;top:.18em;width:.3em;height:.55em;border:solid #4a7dfd;border-width:0 1.5px 1.5px 0;transform:rotate(45deg)}.ho-item.req i{border-radius:2px}.ho-item.req i:after{content:"";position:absolute;left:.28em;right:.28em;top:calc(50% - .75px);height:1.5px;background:#4a7dfd}.ho-item .tx{flex:1 1 auto;min-width:0}.ho-item .t{font-size:.9em;color:#e6e7ea;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ho-item .m{margin-top:.15em;font-size:.74em;color:#8d939c}.ho-item .chip{flex:none;font-size:.7em;padding:.15em .5em;border-radius:3px;border:1px solid #6d5a2a;color:#e3b341;transition:color .4s,border-color .4s}.ho-item .chip:empty{display:none}.ho-item .chip.done{border-color:#2e4f8e;color:#8fb0ff}.wb-live{flex:none;display:flex;align-items:center;gap:.35em;font-size:.66em;color:#8fb0ff;opacity:0;transition:opacity .4s}.wb-live.on{opacity:1}.wb-live i{width:.5em;height:.5em;border-radius:50%;background:#3b7bff}.wb-browser{flex:1 1;min-height:0;display:flex;flex-direction:column;border:1px solid rgba(21,93,252,.55);border-radius:5px;overflow:hidden}.wb-bar{flex:none;display:flex;align-items:center;gap:.5em;padding:.4em .5em;border-bottom:1px solid rgba(21,93,252,.4)}.wb-bar .dots{display:flex;gap:.25em}.wb-bar .dots i{width:.38em;height:.38em;border-radius:50%;border:1px solid #4a7dfd}.wb-bar .url{flex:1 1;height:1.35em;border-radius:.7em;border:1px solid rgba(21,93,252,.4);font-size:.68em;line-height:1.3em;padding:0 .7em;color:#c9d7ff;white-space:nowrap;overflow:hidden}.wb-page{flex:1 1;min-height:0;display:flex;flex-direction:column;gap:.5em;padding:.55em}.wb-page .s{opacity:0;transform:translateY(.3em);transition:opacity .45s,transform .45s}.wb-page .s.on{opacity:1;transform:none}.wb-nav{display:flex;justify-content:space-between;align-items:center}.wb-nav .logo{width:1.6em;height:.55em;border-radius:1px;background:#4a7dfd}.wb-nav .links{display:flex;gap:.35em}.wb-nav .links i{width:1.2em;height:1.5px;background:rgba(160,185,255,.55)}.wb-hero{flex:1 1;min-height:0;display:flex;flex-direction:column;justify-content:center;gap:.38em;padding:.4em .5em;border:1px dashed rgba(21,93,252,.45);border-radius:3px}.wb-hero .h1{width:72%;height:.5em;background:rgba(200,214,255,.75);border-radius:1px}.wb-hero .h2{width:48%;height:2px;background:rgba(160,185,255,.45)}.wb-hero .btn{align-self:flex-start;margin-top:.15em;font-size:.62em;padding:.2em .7em;border:1px solid #4a7dfd;border-radius:3px;color:#c9d7ff}.wb-events{flex:none;display:grid;grid-template-columns:repeat(3,1fr);grid-gap:.35em;gap:.35em}.ev{min-width:0;padding:.35em .4em;border:1px solid rgba(21,93,252,.45);border-radius:3px;font-size:.58em;line-height:1.25}.ev b{display:block;font-weight:600;color:#8fb0ff}.ev span{display:block;color:#c9cbd0}@media (prefers-reduced-motion:reduce){.tr-search .caret{animation:none}.ho-item .chip,.vlist>*,.wb-live,.wb-page .s{transition:none}}.projects .tag{font-size:11.5px;line-height:1;color:var(--ash);border:1px solid var(--slate);border-radius:2px;padding:3px 5px 4px;white-space:nowrap}.projects .ptop+.note{margin-top:6px}.pins{display:none}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@media (min-width:761px) and (max-height:700px){h1,h2{font-size:42px;margin-bottom:16px}.mail{margin-top:22px}.legal{margin-top:18px}}@media (min-width:761px) and (max-width:1180px){.projects b{font-size:15px}.projects .note,.projects .soon{font-size:13px}}@media (max-width:760px){.page{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto auto;padding:22px 22px 64px}.brand{grid-row:1;font-size:18px;gap:12px}.brand svg{width:24px;height:24px}.order{grid-column:1;grid-row:1;gap:10px}.order .bar{width:40px}.orbit{grid-row:2;height:min(100vw,460px);margin:14px -22px 10px}.copy,.orbit{grid-column:1}.copy{grid-row:3;max-width:none}h1,h2{font-size:40px;margin-bottom:16px}.lede{font-size:16px}.mail{margin-top:26px}.ctrl{grid-column:1;grid-row:4;justify-self:stretch;justify-content:space-between;margin-top:36px;padding-top:16px;border-top:1px solid var(--slate)}.ctrl .legal{position:absolute;left:22px;bottom:24px;margin:0}.copy .legal{display:none}.stage>*{left:22px;right:22px;bottom:24px;max-width:none}.line{font-size:30px;padding-bottom:40px}.end h2{margin-bottom:0;max-width:none}.plabel{font-size:16px}.end .legal,.end .mail{margin-top:22px}.projects{inset:auto;left:22px;right:22px;top:0;display:flex;flex-direction:column;gap:0}.projects li{position:static;display:grid;grid-template-columns:16px minmax(0,1fr);align-items:center;min-height:32px}.projects .ix{display:block;font-size:11px;line-height:19px;color:var(--ash);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.projects b{font-size:15px}.projects .note{font-size:13px;margin-top:0}.projects .plink{display:flex;align-items:center;gap:8px;min-width:0;white-space:nowrap}.projects .ptop{display:flex;flex:none;flex-wrap:nowrap;align-items:center;gap:6px}.projects .ptop+.note{margin-top:0;flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.projects .plogo{width:18px;height:18px;border-radius:4px}.projects .wmark{height:13px}.projects .tag{font-size:11.5px;color:var(--ash);border:0;padding:0}.projects .soon{font-size:12px;line-height:19px}.pins{display:block;position:fixed;inset:0;pointer-events:none}.pins span{position:absolute;left:0;top:0;font-size:10px;line-height:1;color:var(--ash);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;opacity:0}.pins span.on{color:var(--chalk)}.projects .sitemark,.vigs{display:none}.projects .site .note,.projects .site .ptop{position:static;width:auto;height:auto;overflow:visible;clip:auto}.projects .site .ptop+.note{overflow:hidden}.pins .bicon{position:absolute;left:0;top:0;width:0;height:0;opacity:0;border-radius:4px}.projects li.is-soon{display:none}.projects li.soon-all{display:grid;grid-template-columns:auto minmax(0,1fr);grid-gap:8px;gap:8px;min-height:26px}.projects li.soon-all .ix{white-space:nowrap}.mail,.projects a,.scatter{position:relative}.mail:after,.projects a:after,.scatter:after{content:"";position:absolute;left:-4px;right:-4px;top:50%;height:44px;min-height:100%;transform:translateY(-50%)}}@media (min-width:761px){.ctrl .legal{display:none}}@media (scripting:none){canvas#sky{display:none}.run{height:auto;padding:0 var(--edge) calc(var(--edge) * 1.5);display:flex;flex-direction:column}.stage{order:2}.plabel,.projects,.projects li,.stage,.stage>*{position:static;opacity:1;visibility:visible;transform:none}.stage>.line{display:none}.run nav{margin-bottom:48px}.plabel{margin-bottom:14px}.projects{display:flex;flex-direction:column;gap:12px}.projects li{display:block}.projects .ix,.projects .soon-all{display:none}}@media (hover:none) and (pointer:coarse){.ctrl .hint,.scatter{display:none}}.rm-fade{position:fixed;inset:0;background:#000;opacity:0;pointer-events:none;transition:opacity .16s linear;z-index:5}.rm-fade.on{opacity:1}.bhits{position:fixed;inset:0;pointer-events:none;z-index:2}.bhit{position:absolute;left:0;top:0;display:none;pointer-events:auto;cursor:pointer}@media (prefers-reduced-motion:reduce){.ctrl .hint,.scatter{display:none}}.orbit{position:relative}.rm-mark{display:none;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none}