@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/IBMPlexMono-400.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500 700;font-display:swap;src:url(/fonts/IBMPlexMono-500.woff2) format("woff2")}@font-face{font-family:VT323;font-style:normal;font-weight:400 700;font-display:block;src:url(/fonts/VT323-400.woff2) format("woff2")}:root{--phosphor:#00ff88;--phosphor-rgb:0 255 136;--phosphor-ink:#9bf5b8;--ink-rgb:155 245 184;--phosphor-dim:#1f5e3a;--phosphor-faint:rgb(var(--phosphor-rgb) / .2);--phosphor-veil:rgb(var(--phosphor-rgb) / .08);--bg:#020403;--lcd:#020a05;--rule:rgb(var(--phosphor-rgb) / .18);--rule-2:rgb(var(--phosphor-rgb) / .3);--ink:#d6fbe4;--ink-dim:rgb(var(--ink-rgb) / .74);--ink-faint:rgb(var(--ink-rgb) / .5);--warn:#ffb000;--glow:0 0 14px rgb(var(--phosphor-rgb) / .45);--font-display:"VT323","IBM Plex Mono",ui-monospace,monospace;--font-mono:"IBM Plex Mono",ui-monospace,"Cascadia Mono",Consolas,monospace;--ease:cubic-bezier(.2,.7,.2,1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;color-scheme:dark;background:var(--bg)}body{background:var(--bg);color:var(--ink);font:400 1rem/1.6 var(--font-mono);-webkit-font-smoothing:antialiased;overflow-x:clip;min-height:100vh}a{color:var(--phosphor);text-underline-offset:.2em}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}:focus-visible{outline:2px solid var(--phosphor);outline-offset:3px}::selection{background:var(--phosphor);color:#000}svg{display:block}h1,h2,h3{font-family:var(--font-display);font-weight:400;line-height:1;text-wrap:balance}p{text-wrap:pretty}.label{font:500 .72rem/1.35 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--phosphor-ink)}.led{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--phosphor);box-shadow:0 0 0 2px rgb(var(--phosphor-rgb) / .16),var(--glow);flex:none}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.stage{position:fixed;left:0;top:0;width:100%;height:100vh;height:100lvh;z-index:0;overflow:hidden;pointer-events:none;background:#020403 url(/render/hub-portrait-v2.webp) 50% 50%/cover no-repeat}.stage video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;opacity:0;transition:opacity .8s ease-out}.stage video.on{opacity:1}@media(min-aspect-ratio:1/1){.stage{background-image:url(/render/hub-landscape-v1.webp);background-position:50% 40%}.stage video{object-position:50% 40%}}.stage:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgb(2 4 3 / .6) 0,rgb(2 4 3 / .2) 20%,transparent 32%,transparent 80%,rgb(2 4 3 / .25) 100%)}@media(min-aspect-ratio:1/1){.stage:after{background:radial-gradient(120% 70% at 50% 35%,transparent 40%,rgb(0 0 0 / .5)),linear-gradient(180deg,#0204038c 0,#02040326 22%,#02040359 45%,#020403bf)}}.crt{position:fixed;inset:0;z-index:100;pointer-events:none}.crt>*{position:absolute;inset:0}.crt-scanlines{background:repeating-linear-gradient(180deg,transparent 0 2px,rgb(var(--phosphor-rgb) / .06) 2px 3px);mix-blend-mode:screen}.crt-noise{opacity:.03;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='2.4' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.7'/%3E%3C/svg%3E")}.crt-flicker{background:rgb(var(--phosphor-rgb) / .02);mix-blend-mode:screen;animation:flicker 6s steps(60) infinite}.crt-vignette{background:radial-gradient(ellipse 110% 90% at 50% 50%,transparent 55%,rgb(0 0 0 / .4) 100%)}@keyframes flicker{0%,96%,to{opacity:1}97%{opacity:.85}98%{opacity:1.05}99%{opacity:.92}}.poweron{position:fixed;inset:0;z-index:200;pointer-events:none;display:none}.poweron:before,.poweron:after{content:"";position:absolute;left:0;right:0;height:50.5%;background:#000}.poweron:before{top:0;animation:po-up .3s cubic-bezier(.6,0,.2,1) forwards}.poweron:after{bottom:0;animation:po-down .3s cubic-bezier(.6,0,.2,1) forwards}.poweron i{position:absolute;left:0;right:0;top:50%;height:2px;margin-top:-1px;background:#d8ffe9;box-shadow:0 0 18px var(--phosphor),0 0 48px var(--phosphor);animation:po-line .34s ease-out forwards}@keyframes po-up{0%,25%{transform:none}to{transform:translateY(-101%)}}@keyframes po-down{0%,25%{transform:none}to{transform:translateY(101%)}}@keyframes po-line{0%{transform:scaleX(.04);opacity:1}30%{transform:scaleX(1);opacity:1}to{transform:scaleX(1) scaleY(40);opacity:0}}.hub{position:relative;z-index:1;width:min(100% - 32px,480px);margin-inline:auto;padding:28px 0 24px}.hub>.window,.hub>.links{margin-top:20px}.hero{display:flex;flex-direction:column}@media(max-aspect-ratio:1/1){.hero{min-height:calc(76svh - 28px)}.hub>.hero+.window{margin-top:0}}.lockup{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}.lockup-mark{width:64px;height:64px;filter:drop-shadow(0 0 18px rgb(var(--phosphor-rgb) / .4))}.wordmark{position:relative;display:inline-flex;align-items:center;white-space:nowrap;font:400 clamp(2rem,10vw,2.6rem)/1 var(--font-display);letter-spacing:.06em;color:var(--phosphor);text-shadow:0 0 14px rgb(var(--phosphor-rgb) / .5),0 2px 18px #000}.wordmark b{font-weight:400;color:rgb(var(--ink-rgb) / .55)}.wordmark i{display:inline-block;width:.46em;height:.7em;margin-left:.12em;background:var(--phosphor);box-shadow:var(--glow);animation:blink 1.1s steps(1) infinite}.wordmark:before,.wordmark:after{content:attr(data-text);position:absolute;left:0;top:0;pointer-events:none;text-shadow:none;mix-blend-mode:screen;opacity:0}.wordmark:before{color:#ff0064d9}.wordmark:after{color:#00c8ffd9}.lockup-lede{max-width:38ch;text-wrap:balance;font-size:.9rem;line-height:1.55;color:var(--ink);text-shadow:0 1px 12px #000,0 0 2px #000}@keyframes blink{50%{opacity:0}}.tag{display:inline-flex;align-items:center;gap:8px;padding:5px 12px;font:500 .72rem/1.2 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--phosphor);border:1px solid var(--rule-2);background:#02080599}.tag:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--phosphor);box-shadow:0 0 8px var(--phosphor);animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.window{position:relative;border:1px solid rgb(var(--phosphor-rgb) / .28);border-radius:4px;overflow:hidden;background:linear-gradient(180deg,#08120d94,#02060485);-webkit-backdrop-filter:blur(4px) saturate(140%);backdrop-filter:blur(4px) saturate(140%);box-shadow:inset 0 1px rgb(var(--ink-rgb) / .1),0 0 0 1px #0009,0 18px 60px #000000b3,0 0 40px rgb(var(--phosphor-rgb) / .06)}@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.window{background:#040a07ed}}.window-titlebar{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--rule);background:linear-gradient(180deg,#0c1611,#060a08);font:500 .72rem/1.2 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--phosphor)}.traffic{display:flex;gap:5px;margin-right:4px}.traffic span{width:10px;height:10px;border:1px solid var(--rule-2);background:#020503}.traffic span:first-child{background:var(--phosphor-dim)}.window-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.window-meta{display:inline-flex;align-items:center;gap:7px;color:var(--ink-dim)}.window-meta .led{width:6px;height:6px;animation:pulse 1.6s ease-in-out infinite}.window-body{padding:16px}.book{display:grid;gap:12px}.cal{position:relative;display:grid;grid-template-columns:68px minmax(0,1fr) auto;align-items:stretch;min-height:96px;text-decoration:none;color:var(--phosphor);border:1px solid var(--phosphor);background:linear-gradient(180deg,rgb(var(--phosphor-rgb) / .2),rgb(var(--phosphor-rgb) / .08)),#00000073;box-shadow:0 0 28px rgb(var(--phosphor-rgb) / .4),inset 0 0 22px rgb(var(--phosphor-rgb) / .12),inset 0 0 0 1px #00000080;transition:box-shadow .2s,transform .15s,background-color .2s}.cal:hover{box-shadow:0 0 40px rgb(var(--phosphor-rgb) / .55),inset 0 0 22px rgb(var(--phosphor-rgb) / .16),inset 0 0 0 1px #00000080;transform:translateY(-1px)}.cal:active{transform:translateY(1px)}.cal-grid{display:grid;grid-template-rows:auto 1fr;border-right:1px solid var(--rule-2);background:var(--phosphor-veil)}.cal-top{font:600 .62rem/1 var(--font-mono);letter-spacing:.16em;text-align:center;padding:5px 0 4px 2px;background:var(--phosphor);color:#000}.cal-num{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font:400 2.5rem/.8 var(--font-display);text-shadow:var(--glow)}.cal-num small{font:500 .56rem/1 var(--font-mono);letter-spacing:.16em;color:var(--phosphor-ink);text-shadow:none}.cal-body{display:flex;flex-direction:column;justify-content:center;gap:4px;padding:10px 12px 10px 14px;min-width:0}.cal-ttl{font:600 1.08rem/1.25 var(--font-mono);text-wrap:balance;letter-spacing:.05em;text-transform:uppercase;color:var(--phosphor);text-shadow:0 0 10px rgb(var(--phosphor-rgb) / .35)}.cal-sub{font:400 .72rem/1.3 var(--font-mono);letter-spacing:.02em;color:var(--ink-dim)}.cal-go{display:flex;align-items:center;padding:0 14px 0 2px;font:400 1rem/1 var(--font-mono)}.cal--quiet{grid-template-columns:52px minmax(0,1fr) auto;min-height:60px;border-color:var(--rule-2);background:#00000073;box-shadow:inset 0 0 0 1px #00000080;color:var(--phosphor-ink)}.cal--quiet:hover{border-color:var(--phosphor);box-shadow:0 0 18px rgb(var(--phosphor-rgb) / .22)}.cal--quiet .cal-top{background:transparent;color:var(--phosphor);border-bottom:1px solid var(--rule-2)}.cal--quiet .cal-top{font-size:.56rem;padding:4px 0 3px 2px}.cal--quiet .cal-num{font-size:1.7rem;color:var(--phosphor-ink);text-shadow:none}.cal--quiet .cal-body{padding:8px 10px 8px 12px}.cal--quiet .cal-ttl{font-weight:500;font-size:.84rem;color:var(--phosphor-ink);text-shadow:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal--quiet .cal-sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal--quiet .cal-go{padding:0 10px 0 2px}.cal--quiet .chip{font-size:1.1rem;padding:3px 5px 1px;color:var(--phosphor-ink);text-shadow:none;box-shadow:inset 0 0 0 1px var(--phosphor-faint)}@media(max-width:400px){.cal--quiet .cal-sub{display:none}.cal--quiet .cal-ttl{font-size:.78rem;letter-spacing:.02em}.cal--quiet .cal-go{padding:0 8px 0 0}}.cal .nw{white-space:nowrap}.book-fine{font:400 .72rem/1.55 var(--font-mono);color:var(--ink-dim)}.lcd{background:repeating-linear-gradient(0deg,rgb(var(--phosphor-rgb) / .05) 0 1px,transparent 1px 2px),radial-gradient(ellipse at top,rgb(var(--phosphor-rgb) / .1),transparent 65%),var(--lcd);border:1px solid var(--rule);color:var(--phosphor);box-shadow:0 0 14px var(--phosphor-faint),inset 0 0 30px #000000b3,inset 0 0 0 1px var(--phosphor-faint)}.chip{display:inline-block;padding:4px 6px 2px;font:400 1.3rem/1 var(--font-display);letter-spacing:.04em;text-shadow:var(--glow);white-space:nowrap}.link-stack{display:grid;gap:8px}.link-row{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:14px;min-height:60px;padding:10px 14px;border:1px solid rgb(var(--phosphor-rgb) / .38);border-left:2px solid var(--phosphor);border-radius:2px;background:linear-gradient(90deg,#020a06db,#020805b3);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--phosphor-ink);text-decoration:none;text-shadow:0 1px 8px #000;box-shadow:0 0 18px rgb(var(--phosphor-rgb) / .12),inset 0 1px rgb(var(--ink-rgb) / .06);transition:color .15s,border-color .15s,box-shadow .15s,background-color .15s,transform .15s}.link-row:hover,.link-row:focus-visible{color:var(--phosphor);border-color:var(--phosphor);background:var(--phosphor-veil);box-shadow:0 0 16px var(--phosphor-faint);transform:translateY(-1px)}.link-row-icon{width:22px;height:22px;color:var(--phosphor);filter:drop-shadow(0 0 6px rgb(var(--phosphor-rgb) / .35))}.link-row-icon svg{width:100%;height:100%}.link-row-text{display:grid;gap:2px;min-width:0}.link-row-label{font:500 .9rem/1.3 var(--font-mono);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.link-row-sub{font:400 .72rem/1.35 var(--font-mono);letter-spacing:.03em;color:var(--ink-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.link-row-arrow{font-family:var(--font-mono);color:var(--ink-faint);transition:color .15s,translate .15s var(--ease)}.link-row:hover .link-row-arrow{color:var(--phosphor);translate:2px -2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 18px;font:600 .82rem/1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;text-decoration:none;white-space:nowrap;color:var(--phosphor);background:#0006;border:1px solid var(--phosphor);box-shadow:0 0 16px rgb(var(--phosphor-rgb) / .25),inset 0 0 0 1px #00000080;text-shadow:0 0 8px rgb(var(--phosphor-rgb) / .4);transition:box-shadow .2s,background-color .2s,transform .15s}.btn:hover{background:var(--phosphor-veil);box-shadow:0 0 26px rgb(var(--phosphor-rgb) / .4),inset 0 0 0 1px #00000080}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.6;cursor:progress}.lcd-input{display:block;width:100%;height:48px;padding:0 12px;font:400 .95rem/1 var(--font-mono);color:var(--phosphor);caret-color:var(--phosphor);text-shadow:0 0 4px var(--phosphor-faint);border-radius:0;outline:none;-webkit-appearance:none;appearance:none;transition:border-color .15s,box-shadow .15s}.lcd-input::placeholder{color:var(--ink-faint);text-shadow:none}.lcd-input:focus{border-color:var(--phosphor);box-shadow:0 0 12px var(--phosphor-faint),inset 0 0 0 1px var(--phosphor-faint),inset 0 0 30px #000000b3}.hub-footer{margin-top:36px;display:grid;gap:20px;justify-items:center}.hub-socials{display:flex;justify-content:center;flex-wrap:wrap;gap:12px}.social-icon{width:46px;height:46px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--rule-2);border-radius:2px;color:var(--phosphor-ink);background:#020805b3;transition:color .15s,border-color .15s,box-shadow .15s,transform .15s}.social-icon svg{width:20px;height:20px}.social-icon:hover,.social-icon:focus-visible{color:var(--phosphor);border-color:var(--phosphor);box-shadow:0 0 14px var(--phosphor-faint);transform:translateY(-1px)}.hub-footer-bar{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;font:400 .72rem/1.4 var(--font-mono);letter-spacing:.06em;color:var(--ink-dim)}.motion{display:inline-flex;align-items:center;gap:10px;font:500 .66rem/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim)}.motion[hidden]{display:none}.knob{width:40px;height:40px;border-radius:50%;flex:none;display:grid;place-items:center;color:var(--phosphor);background:radial-gradient(circle at 35% 30%,#37433d,#151b18 62%);box-shadow:0 0 0 1px #000,0 0 0 2px #2a332e,0 3px 6px #000;transition:box-shadow .2s,translate .12s}.knob:hover{box-shadow:0 0 0 1px #000,0 0 0 2px var(--phosphor),0 3px 10px #000}.knob:active{translate:0 1px}.knob svg{width:13px;height:13px;fill:currentColor}.knob .i-play,.knob[aria-pressed=true] .i-pause{display:none}.knob[aria-pressed=true] .i-play{display:block}@media(prefers-reduced-motion:no-preference){.poweron{display:block}.wordmark{animation:gl-x .24s .28s steps(2) both}.wordmark:before{animation:gl-r .24s .28s steps(3) forwards}.wordmark:after{animation:gl-g .24s .28s steps(3) forwards}.fade-in{animation:rv .46s var(--ease) both}.fade-in.d1{animation-delay:.22s}.fade-in.d2{animation-delay:.3s}.fade-in.d3{animation-delay:.38s}}@keyframes gl-x{0%{transform:none}25%{transform:translate(-3px,1px);clip-path:inset(20% 0 30% 0)}50%{transform:translate(2px,-1px);clip-path:inset(0)}75%{transform:translate(2px,2px);clip-path:inset(50% 0 0 0)}to{transform:none;clip-path:none}}@keyframes gl-r{0%,99%{opacity:1;transform:translate(-5px)}50%{transform:translate(-8px,1px)}to{opacity:0;transform:none}}@keyframes gl-g{0%,99%{opacity:1;transform:translate(5px)}50%{transform:translate(8px,-1px)}to{opacity:0;transform:none}}@keyframes rv{0%{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
