@font-face{font-family:"Press Start 2P";src:url(/fonts/PressStart2P-Regular.ttf)format("truetype");font-display:block}@font-face{font-family:VT323;src:url(/fonts/VT323-Regular.ttf)format("truetype");font-display:block}:root{--black:#000;--navy:#1d2b53;--plum:#7e2553;--charcoal:#5f574f;--silver:#c2c3c7;--white:#fff1e8;--red:#ff004d;--yellow:#ffec27;--blue:#29adff;--lavender:#83769c;--pink:#ff77a8;--peach:#fca;--bg:var(--black);--fg:var(--white);--fg-2:var(--silver);--muted:var(--lavender);--faint:var(--charcoal);--line:var(--navy);--sky:var(--navy);--title-shadow:var(--plum);--active:var(--yellow);--focus:var(--blue);--btn-bg:var(--white);--btn-fg:var(--black);--btn-edge:var(--silver);--btn-off-bg:var(--charcoal);--btn-off-fg:var(--black);--sheet-bg:var(--navy);--sheet-ring:var(--white);--sheet-gap:var(--black);--backdrop:#000000b3;--scanline:#00000017;--dither-checker:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='16' shape-rendering='crispEdges'%3E%3Cpath fill='%231d2b53' d='M0 0h4v4H0zM4 4h4v4H4zM0 8h4v4H0zM4 12h4v4H4z'/%3E%3C/svg%3E");--dither-sparse:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='16' shape-rendering='crispEdges'%3E%3Cpath fill='%231d2b53' d='M0 0h4v4H0zM4 8h4v4H4z'/%3E%3C/svg%3E");--px:3px;--gutter:20px;--topbar-h:48px;--tabbar-h:54px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--sky-h:calc(var(--safe-top) + 60px);--font-display:"Press Start 2P", ui-monospace, monospace;--font-text:"VT323", ui-monospace, monospace;--notch:polygon(0 var(--px), var(--px) var(--px), var(--px) 0, calc(100% - var(--px)) 0, calc(100% - var(--px)) var(--px), 100% var(--px), 100% calc(100% - var(--px)), calc(100% - var(--px)) calc(100% - var(--px)), calc(100% - var(--px)) 100%, var(--px) 100%, var(--px) calc(100% - var(--px)), 0 calc(100% - var(--px)));--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:var(--font-text);color:var(--fg);background:var(--bg);-webkit-font-smoothing:none;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;font-size:20px;line-height:1.15}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (prefers-color-scheme:light){:root{--bg:var(--white);--fg:var(--navy);--fg-2:var(--charcoal);--muted:var(--lavender);--faint:var(--lavender);--line:var(--silver);--sky:var(--peach);--title-shadow:var(--pink);--active:var(--red);--btn-bg:var(--navy);--btn-fg:var(--white);--btn-edge:var(--black);--btn-off-bg:var(--silver);--btn-off-fg:var(--white);--sheet-bg:var(--white);--sheet-ring:var(--navy);--sheet-gap:var(--peach);--backdrop:#1d2b5366;--scanline:#1d2b530a;--dither-checker:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='16' shape-rendering='crispEdges'%3E%3Cpath fill='%23ffccaa' d='M0 0h4v4H0zM4 4h4v4H4zM0 8h4v4H0zM4 12h4v4H4z'/%3E%3C/svg%3E");--dither-sparse:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='16' shape-rendering='crispEdges'%3E%3Cpath fill='%23ffccaa' d='M0 0h4v4H0zM4 8h4v4H4z'/%3E%3C/svg%3E")}}*{box-sizing:border-box}html,body{background:var(--bg);overscroll-behavior-y:none;min-height:100%;margin:0}body:after{content:"";z-index:200;pointer-events:none;background:repeating-linear-gradient(180deg, transparent 0 3px, var(--scanline) 3px 4px);position:fixed;inset:0}h1,h2,p{margin:0;font-weight:400}button,input{font:inherit;color:inherit}button{cursor:pointer;-webkit-user-select:none;user-select:none}button:disabled{cursor:default}:focus-visible{outline:var(--px) solid var(--active);outline-offset:var(--px)}.blink{animation:1s step-end infinite blink}@keyframes blink{50%{opacity:0}}.sky{background:linear-gradient(var(--sky), var(--sky)) 0 0 / 100% var(--sky-h) no-repeat, var(--dither-checker) 0 var(--sky-h) / 8px 16px repeat-x, var(--dither-sparse) 0 calc(var(--sky-h) + 16px) / 8px 16px repeat-x, var(--bg)}.wordmark{flex:none;width:auto;height:16px;display:block}.wordmark-large{height:48px}.wordmark-boot{animation:.56s steps(7,end) both boot}@keyframes boot{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}.tagline{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:20px}.splash{z-index:100;background:var(--bg);flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex;position:fixed;inset:0}.splash .tagline{animation:.7s step-end both blink-in}.splash.leaving{pointer-events:none;animation:.36s steps(3,end) both fade-out}@keyframes blink-in{0%,70%{opacity:0}to{opacity:1}}.auth{min-height:100dvh;padding:calc(var(--safe-top) + 24px) 24px calc(var(--safe-bottom) + 28px);flex-direction:column;display:flex}.auth-brand{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:20px;display:flex}.statement{font-family:var(--font-display);text-transform:uppercase;text-shadow:2px 2px 0 var(--title-shadow);font-size:16px;line-height:1.75}.auth-form{flex-direction:column;gap:12px;width:100%;max-width:400px;margin:0 auto;display:flex}.auth-form.shake{animation:.4s steps(4,end) shake}@keyframes shake{25%{transform:translate(-9px)}50%{transform:translate(9px)}75%{transform:translate(-6px)}}.field{background:var(--bg);width:100%;height:50px;box-shadow:inset 0 0 0 var(--px) var(--faint);clip-path:var(--notch);caret-color:var(--active);appearance:none;border:0;border-radius:0;outline:none;padding:0 14px;font-size:24px}.field::placeholder{color:var(--faint);text-transform:uppercase}.field:focus{box-shadow:inset 0 0 0 var(--px) var(--focus)}.field.invalid{box-shadow:inset 0 0 0 var(--px) var(--red)}.form-error{text-align:center;text-transform:uppercase;min-height:1.2em;color:var(--red);font-size:20px}.btn{height:48px;padding:0 18px var(--px);font-family:var(--font-display);text-transform:uppercase;clip-path:var(--notch);border:0;justify-content:center;align-items:center;font-size:12px;display:inline-flex}.btn:active:not(:disabled){transform:translateY(var(--px));box-shadow:none;padding-bottom:0}.btn-block{width:100%}.btn-primary{background:var(--btn-bg);color:var(--btn-fg);box-shadow:inset 0 calc(-1 * var(--px)) 0 var(--btn-edge)}.btn-primary:disabled{background:var(--btn-off-bg);color:var(--btn-off-fg);box-shadow:none}.btn-danger{background:var(--red);color:var(--white);box-shadow:inset 0 calc(-1 * var(--px)) 0 var(--plum)}.btn-quiet{color:var(--muted);background:0 0}.text-button{text-transform:uppercase;color:var(--fg-2);background:0 0;border:0;padding:8px 0;font-size:20px}.text-button:active{color:var(--active)}.page{min-height:100dvh;padding:0 var(--gutter) calc(var(--safe-bottom) + var(--tabbar-h) + 40px);animation:.24s steps(3,end) both page-in}@keyframes page-in{0%{opacity:0;transform:translateY(9px)}}.topbar{z-index:20;height:calc(var(--safe-top) + var(--topbar-h));padding:var(--safe-top) var(--gutter) 0;justify-content:space-between;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.topbar.scrolled{background:var(--bg);box-shadow:0 var(--px) 0 var(--line)}.page-head{margin:0 calc(-1 * var(--gutter));padding:calc(var(--safe-top) + var(--topbar-h) + 56px) var(--gutter) 0}.page-head h1{font-family:var(--font-display);text-transform:uppercase;text-shadow:var(--px) var(--px) 0 var(--title-shadow);font-size:24px;line-height:1.25}.row{margin-top:24px}.row-title{font-family:var(--font-display);text-transform:uppercase;color:var(--fg-2);margin-bottom:10px;font-size:12px;line-height:1.25}.empty-card{text-transform:uppercase;color:var(--muted);box-shadow:inset 0 0 0 var(--px) var(--line);clip-path:var(--notch);padding:16px;font-size:22px}.empty-card:after{content:"";vertical-align:-.05em;background:currentColor;width:.45em;height:.8em;margin-left:6px;animation:1.2s step-end infinite blink;display:inline-block}.tabbar{z-index:20;height:calc(var(--tabbar-h) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:var(--bg);box-shadow:0 calc(-1 * var(--px)) 0 var(--line);display:flex;position:fixed;bottom:0;left:0;right:0}.tab{text-transform:uppercase;color:var(--faint);background:0 0;border:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding:0;font-size:18px;display:flex}.tab:active svg{transform:translateY(2px)}.tab.active{color:var(--fg)}.tab.active svg{color:var(--active)}.sheet-layer{z-index:40;position:fixed;inset:0}.sheet-backdrop{background:var(--backdrop);animation:.2s steps(2,end) both fade-in;position:absolute;inset:0}.sheet{left:12px;right:12px;bottom:calc(var(--safe-bottom) + 12px);background:var(--sheet-bg);max-width:520px;box-shadow:inset 0 0 0 var(--px) var(--sheet-ring), inset 0 0 0 calc(2 * var(--px)) var(--sheet-gap);clip-path:var(--notch);flex-direction:column;gap:10px;margin:0 auto;padding:20px 18px 12px;animation:.3s steps(5,end) both sheet-up;display:flex;position:absolute}.sheet h2{text-align:center;text-transform:uppercase;margin-bottom:6px;font-size:22px}.sheet-layer.closing .sheet-backdrop{animation:.2s steps(2,end) both fade-out}.sheet-layer.closing .sheet{animation:.2s steps(4,end) both sheet-down}@keyframes fade-in{0%{opacity:0}}@keyframes fade-out{to{opacity:0}}@keyframes sheet-up{0%{transform:translateY(120%)}}@keyframes sheet-down{to{transform:translateY(120%)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
