:root{--font-heading:"Space Grotesk", system-ui, sans-serif;--font-body:"DM Sans", system-ui, sans-serif;--font-digit:"Archivo Black", "Space Grotesk", system-ui, sans-serif;--color-bg:#0a0e14;--color-bg-alt:#0e1420;--color-surface:#131a24;--color-border:#f4efe4;--color-text:#f4efe4;--color-text-dim:#a7b0bd;--color-text-faint:#6b7382;--color-accent:#4fd3ff;--shadow-hard:#f4efe4;--radius-card:20px;--radius-chip:10px;--border-w:3px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);-webkit-tap-highlight-color:transparent;overscroll-behavior:none;margin:0}#root{overflow-x:hidden}a{color:inherit}button{color:inherit;font-family:inherit}::selection{background:var(--color-accent);color:#0a0e14}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.lab-flask{--flask-liquid-top:#6fe3ff;--flask-liquid-bottom:#1c8fe0;--flask-glow:#4fd3ff;cursor:grab;touch-action:pan-y;width:100%;height:auto;transition:transform .35s cubic-bezier(.2,.8,.2,1);overflow:visible}.lab-flask:hover{transform:scale(1.045)}.lab-flask:active{cursor:grabbing}.flask-sway{transform-box:view-box;transform-origin:150px 348px;will-change:transform;animation:6.4s ease-in-out infinite flask-sway}@keyframes flask-sway{0%,to{transform:rotate(-4.5deg)}50%{transform:rotate(4.5deg)}}.lab-flask[data-gesture=shaking] .flask-sway{animation:.26s ease-in-out infinite flask-shake}@keyframes flask-shake{0%,to{transform:rotate(-13deg)}50%{transform:rotate(13deg)}}.lab-flask[data-gesture=bursting] .flask-sway{animation:.9s cubic-bezier(.36,.07,.19,.97) flask-burst-wobble}@keyframes flask-burst-wobble{0%{transform:rotate(0)}10%{transform:rotate(-24deg)}25%{transform:rotate(19deg)}40%{transform:rotate(-13deg)}55%{transform:rotate(9deg)}70%{transform:rotate(-5deg)}85%{transform:rotate(2deg)}to{transform:rotate(0)}}.lab-flask[data-gesture=poked] .flask-sway{animation:.4s ease-out flask-poke}@keyframes flask-poke{0%{transform:rotate(0)}30%{transform:rotate(-9deg)}65%{transform:rotate(5deg)}to{transform:rotate(0)}}.flask-halo-glow{opacity:.5;transition:opacity .4s}.lab-flask:hover .flask-halo-glow{opacity:.85}.flask-ground-glow{opacity:.8}.flask-liquid{transform-box:view-box;transform-origin:150px 300px;will-change:transform, filter;animation-name:liquid-slosh,liquid-hue;animation-duration:6.4s,18s;animation-timing-function:ease-in-out,linear;animation-iteration-count:infinite,infinite;animation-delay:-1.05s,0s}@keyframes liquid-slosh{0%,to{transform:rotate(3deg)translateY(0)}50%{transform:rotate(-8deg)translateY(3px)}}@keyframes liquid-hue{0%{filter:hue-rotate()}to{filter:hue-rotate(360deg)}}.lab-flask[data-gesture=shaking] .flask-liquid,.lab-flask[data-gesture=bursting] .flask-liquid{animation-name:liquid-shake,liquid-hue;animation-duration:.26s,18s;animation-timing-function:ease-in-out,linear}@keyframes liquid-shake{0%,to{transform:rotate(14deg)translateY(0)}50%{transform:rotate(-16deg)translateY(4px)}}.flask-liquid__wave{fill:var(--flask-liquid-top)}.flask-liquid__wave--back{opacity:.5;animation:7.5s linear infinite wave-scroll-back}.flask-liquid__wave--front{opacity:.85;animation:5.2s linear infinite wave-scroll-front}@keyframes wave-scroll-back{0%{transform:translate(0)}to{transform:translate(-105px)}}@keyframes wave-scroll-front{0%{transform:translate(0)}to{transform:translate(90px)}}.lab-flask:hover .flask-liquid__wave--back{animation-duration:2.6s}.lab-flask:hover .flask-liquid__wave--front{animation-duration:1.8s}.lab-flask[data-gesture=shaking] .flask-liquid__wave--back,.lab-flask[data-gesture=bursting] .flask-liquid__wave--back{animation-duration:.6s}.lab-flask[data-gesture=shaking] .flask-liquid__wave--front,.lab-flask[data-gesture=bursting] .flask-liquid__wave--front{animation-duration:.45s}.flask-outline{fill:none;stroke-linejoin:round;stroke-linecap:round}.flask-outline--halo{stroke:var(--flask-outline-halo,var(--color-bg));stroke-width:17px}.flask-outline--ink{stroke:var(--flask-outline-ink,var(--color-border));stroke-width:7px}.flask-highlight{stroke:#fff;stroke-width:6px;stroke-linecap:round;opacity:.35}.flask-bubble{fill:#eafcff;opacity:0;transform-box:fill-box;transform-origin:50%;animation-name:bubble-rise;animation-duration:var(--duration);animation-delay:var(--delay);animation-timing-function:ease-in-out;animation-iteration-count:infinite}.lab-flask:hover .flask-bubble{animation-duration:calc(var(--duration) * .55)}.lab-flask[data-gesture=shaking] .flask-bubble,.lab-flask[data-gesture=bursting] .flask-bubble{animation-duration:calc(var(--duration) * .3)!important}@keyframes bubble-rise{0%{opacity:0;transform:translate(0)scale(.4)}10%{opacity:1}35%{transform:translate(calc(var(--drift) * .5px), -130px) scale(1)}70%{transform:translate(calc(var(--drift) * -.4px), -260px) scale(1.05);opacity:.85}to{transform:translate(calc(var(--drift) * .8px), -400px) scale(.55);opacity:0}}.flask-molecule{opacity:0;transform-box:fill-box;transform-origin:50%;animation-name:molecule-rise;animation-duration:var(--duration);animation-delay:var(--delay);animation-timing-function:ease-in-out;animation-iteration-count:infinite}.lab-flask:hover .flask-molecule{animation-duration:calc(var(--duration) * .6)}.flask-molecule__atom{fill:#eafcff;stroke:var(--flask-outline-ink,var(--color-border));stroke-width:2px}.flask-molecule__atom--core{fill:#bff3ff}.flask-molecule__bond{stroke:var(--flask-outline-ink,var(--color-border));stroke-width:2.5px;stroke-linecap:round}@keyframes molecule-rise{0%{opacity:0;transform:translate(0)rotate(0)scale(.6)}12%{opacity:1}40%{transform:translate(calc(var(--drift) * .6px), -150px) rotate(calc(var(--spin) * .4)) scale(1)}75%{transform:translate(calc(var(--drift) * -.5px), -300px) rotate(calc(var(--spin) * .8)) scale(1);opacity:.8}to{transform:translate(calc(var(--drift) * 1px), -430px) rotate(var(--spin)) scale(.7);opacity:0}}.flask-foam__blob{fill:#eafcff;opacity:0;transform-box:fill-box;transform-origin:50%;animation:.8s ease-out paused foam-blob}.lab-flask[data-gesture=bursting] .flask-foam__blob{animation-play-state:running}@keyframes foam-blob{0%{opacity:0;transform:scale(.3)translateY(0)}25%{opacity:.9;transform:scale(1.3)translateY(-4px)}to{opacity:0;transform:scale(1.9)translateY(-36px)}}.flask-burst-particle{fill:#eafcff;opacity:0;transform-box:fill-box;transform-origin:50%;animation-name:burst-rise;animation-duration:var(--duration);animation-delay:var(--delay);animation-timing-function:ease-out;animation-play-state:paused}.lab-flask[data-gesture=bursting] .flask-burst-particle{animation-play-state:running}@keyframes burst-rise{0%{opacity:0;transform:translate(0)scale(.5)}15%{opacity:1}to{transform:translate(calc(var(--drift) * 1px), -170px) scale(.4);opacity:0}}@media (prefers-reduced-motion:reduce){.lab-flask,.flask-sway,.flask-liquid,.flask-liquid__wave--back,.flask-liquid__wave--front,.flask-bubble,.flask-molecule,.flask-foam__blob,.flask-burst-particle{transition:none;animation:none}}.site-card{background:var(--color-surface);border:var(--border-w) solid var(--color-border);border-radius:var(--radius-card);box-shadow:6px 6px 0 0 var(--card-color);color:var(--color-text);cursor:pointer;translate:var(--ox) var(--oy);rotate:var(--rot);animation:site-card-enter .55s cubic-bezier(.2, .8, .2, 1) var(--enter-delay) both, site-card-wiggle var(--wiggle-duration) ease-in-out var(--wiggle-delay) infinite;align-items:center;gap:16px;padding:18px 20px;text-decoration:none;transition:background-color .18s,box-shadow .18s,scale .18s cubic-bezier(.2,.8,.2,1),z-index;display:flex;position:relative;scale:1}@keyframes site-card-enter{0%{opacity:0;translate:var(--ox) calc(var(--oy) + 26px)}to{opacity:1;translate:var(--ox) var(--oy)}}@keyframes site-card-wiggle{0%,to{rotate:var(--rot)}50%{rotate:calc(var(--rot) + 1.6deg)}}.site-card:hover,.site-card:focus-visible{background:var(--card-color);z-index:20;box-shadow:8px 8px 0 0 var(--color-border);scale:1.045}.site-card:active{background:var(--color-border);box-shadow:2px 2px 0 0 var(--card-color);scale:.97}.site-card:hover .site-card__name,.site-card:hover .site-card__desc,.site-card:focus-visible .site-card__name,.site-card:focus-visible .site-card__desc,.site-card:active .site-card__name,.site-card:active .site-card__desc{color:var(--color-bg)}.site-card:hover .site-card__arrow,.site-card:focus-visible .site-card__arrow{color:var(--color-bg);transform:translate(3px)}.site-card:hover .site-card__dot,.site-card:focus-visible .site-card__dot{background:var(--color-bg)}.site-card__dot{background:var(--card-color);border:2px solid var(--color-border);border-radius:50%;flex:none;width:14px;height:14px;transition:background-color .18s}.site-card__body{flex-direction:column;gap:3px;min-width:0;display:flex}.site-card__name{font-family:var(--font-heading);font-size:1.1rem;font-weight:700;transition:color .18s}.site-card__desc{color:var(--color-text-dim);font-size:.86rem;line-height:1.4;transition:color .18s}.site-card__arrow{color:var(--card-color);flex:none;margin-left:auto;font-size:1.3rem;transition:color .18s,transform .18s}@media (prefers-reduced-motion:reduce){.site-card{opacity:1;animation:none}}.status-badge-wrap{display:inline-block;position:relative}.status-badge{cursor:pointer;background:var(--color-border);color:var(--color-bg);border:0;border-radius:999px;align-items:center;padding:6px 16px;animation:2.8s ease-in-out infinite status-badge-glow;display:inline-flex}@keyframes status-badge-glow{0%,to{box-shadow:0 0 #4fd3ff00}50%{box-shadow:0 0 0 6px #4fd3ff38}}.status-badge__viewport{height:1.6em;display:grid;position:relative;overflow:hidden}.status-badge__face{white-space:nowrap;font-family:var(--font-heading);letter-spacing:.04em;text-transform:uppercase;grid-area:1/1;justify-content:center;align-items:center;gap:6px;font-size:.8rem;font-weight:700;display:flex}.status-badge__dot{background:#4ade80;border-radius:50%;flex:none;width:6px;height:6px;animation:1.4s ease-in-out infinite status-badge-pulse}@keyframes status-badge-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.7)}}.status-badge__count{font-family:var(--font-digit)}.status-badge__label{align-items:center;display:inline-flex}.status-badge__cursor{background:currentColor;width:2px;height:.85em;margin-left:2px;animation:1s step-end infinite status-badge-blink;display:inline-block}@keyframes status-badge-blink{50%{opacity:0}}.status-badge__dropdown{z-index:40;background:var(--color-surface);border:var(--border-w) solid var(--color-border);border-radius:var(--radius-card);width:max-content;min-width:200px;box-shadow:5px 5px 0 0 var(--shadow-hard);text-align:left;flex-direction:column;gap:7px;padding:10px;display:flex;position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%)}.status-badge__row{background:color-mix(in srgb, var(--row-color) 22%, var(--color-bg));border:2px solid var(--color-border);border-radius:var(--radius-chip);cursor:pointer;box-shadow:2px 2px 0 0 var(--shadow-hard);align-items:center;gap:9px;padding:6px 12px;text-decoration:none;transition:box-shadow .15s,transform .12s;display:flex}.status-badge__row:hover{box-shadow:3px 3px 0 0 var(--shadow-hard);transform:translate(-1px,-1px)}.status-badge__row:active{box-shadow:0 0 0 0 var(--shadow-hard);transform:translate(2px,2px)}.status-badge__row-count{background:var(--row-color);border:2px solid var(--color-border);min-width:22px;height:22px;font-family:var(--font-digit);color:var(--color-border);border-radius:999px;justify-content:center;align-items:center;padding:0 6px;font-size:.75rem;display:inline-flex}.status-badge__row-name{font-family:var(--font-heading);color:var(--color-text);font-size:.82rem;font-weight:700}.app{flex-direction:column;align-items:center;min-height:100vh;display:flex}.hero{text-align:center;background:radial-gradient(60% 50% at 50% 0%, #4fd3ff24, transparent 70%), var(--color-bg);flex-direction:column;align-items:center;width:100%;padding:64px 20px 40px;display:flex;position:relative;overflow:hidden}.hero__flask{width:min(280px,62vw);margin-bottom:8px}.hero__title{font-family:var(--font-heading);letter-spacing:-.02em;margin:10px 0 0;font-size:clamp(2.4rem,7vw,4rem);font-weight:700}.hub{width:100%;max-width:720px;padding:48px 24px 64px}.hub__grid{grid-template-columns:1fr;gap:22px;display:grid}@media (width>=640px){.hub__grid{grid-template-columns:1fr 1fr}}.footer{text-align:center;width:100%;color:var(--color-text-faint);padding:24px 20px 40px;font-size:.85rem}
