@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/space-mono-vietnamese-400-normal.BNOj0Qhp.woff2)format("woff2"),url(/_astro/space-mono-vietnamese-400-normal.B0PMp_xB.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/space-mono-latin-ext-400-normal.DTLbW2xa.woff2)format("woff2"),url(/_astro/space-mono-latin-ext-400-normal.D4cJI_B-.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/space-mono-latin-400-normal.Rg4St2Dn.woff2)format("woff2"),url(/_astro/space-mono-latin-400-normal._3DlpgIW.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Mono;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/space-mono-vietnamese-400-italic.CyQIvI4V.woff2)format("woff2"),url(/_astro/space-mono-vietnamese-400-italic.DvlTUS1j.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Mono;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/space-mono-latin-ext-400-italic.x3PrlAeq.woff2)format("woff2"),url(/_astro/space-mono-latin-ext-400-italic.DYA_DB_l.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Mono;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/space-mono-latin-400-italic.YylcN9Ay.woff2)format("woff2"),url(/_astro/space-mono-latin-400-italic.zmx7Qf09.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/space-mono-vietnamese-700-normal.DWQgDHuA.woff2)format("woff2"),url(/_astro/space-mono-vietnamese-700-normal.D-KrLuLr.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/space-mono-latin-ext-700-normal.B2s3bDs2.woff2)format("woff2"),url(/_astro/space-mono-latin-ext-700-normal.B_E7P90g.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/space-mono-latin-700-normal.mWgeinG7.woff2)format("woff2"),url(/_astro/space-mono-latin-700-normal.D7A851RN.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#07050d;--panel:#100b1c;--fg:#e6e9ff;--muted:#8a84a8;--border:#2a2142;--neon-magenta:#ff2bd6;--neon-cyan:#00f0ff;--neon-yellow:#fcee0a;--accent:var(--neon-magenta);--row-hover:#00f0ff0f;--card-red:#ff2a6d;--card-yellow:#fcee0a;--card-green:#39ff88;--card-blue:#00b3ff;--glow-cyan:0 0 .25rem #00f0ff73, 0 0 .9rem #00f0ff2e;--glow-magenta:0 0 .25rem #ff2bd680, 0 0 .9rem #ff2bd633;--font-body:"Space Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;color-scheme:dark}*{box-sizing:border-box}body{min-height:100vh;color:var(--fg);font:14px/1.55 var(--font-body);background:radial-gradient(60rem 30rem at 0% -10%, #ff2bd624, transparent 70%), radial-gradient(50rem 30rem at 100% 0%, #00f0ff1a, transparent 70%), var(--bg);background-attachment:fixed;margin:0;padding-inline:1rem}body:after{content:"";pointer-events:none;z-index:1000;background:repeating-linear-gradient(#0000 0 2px,#0000000f 2px 3px);position:fixed;inset:0}::selection{background:var(--neon-magenta);color:var(--bg)}header,main{max-width:60rem;margin-inline:auto}body[data-wide] header,body[data-wide] main{max-width:80rem}header{border-bottom:1px solid #ff2bd673;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1.25rem;padding-block:1rem .8rem;display:flex}.brand{font:700 1.1rem/1 var(--font-body);letter-spacing:.06em;color:var(--neon-magenta);text-shadow:var(--glow-magenta)}.brand span[aria-hidden]{color:var(--neon-cyan);text-shadow:var(--glow-cyan);margin-right:.35rem}.brand-sub{color:var(--fg);text-shadow:none;opacity:.7}.brand:hover{text-decoration:none}.nav{gap:1.25rem;display:flex}.nav-link{letter-spacing:.1em;font-size:.8rem}.nav-link[aria-current=page]{color:var(--neon-magenta);text-shadow:var(--glow-magenta)}main{padding-block:2rem 3.5rem}a{color:var(--neon-cyan);text-decoration:none}a:hover{text-shadow:var(--glow-cyan);text-decoration:underline}h1,h2{font-family:var(--font-body);letter-spacing:.02em;text-transform:uppercase;font-weight:700}h1{letter-spacing:.04em;color:var(--neon-cyan);text-shadow:0 0 .6rem #00f0ff59;margin:0 0 .4rem;font-size:1.6rem;line-height:1}.subtitle{color:var(--neon-yellow);letter-spacing:.03em;margin:0 0 1.75rem;font-size:.85rem}.muted{color:var(--muted)}:focus-visible{outline:1px solid var(--neon-cyan);outline-offset:2px;box-shadow:var(--glow-cyan)}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.card-name{text-transform:uppercase;letter-spacing:.04em}.controls{flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem;display:flex}.controls input{flex:16rem}.controls input,.controls select{font:inherit;color:var(--fg);background:var(--panel);border:1px solid var(--border);border-radius:0;padding:.5rem .7rem;font-size:.85rem}.controls input::placeholder{color:var(--muted)}.controls input:focus,.controls select:focus{border-color:var(--neon-cyan);box-shadow:var(--glow-cyan);outline:none}[data-colour=red]{--card-colour:var(--card-red)}[data-colour=yellow]{--card-colour:var(--card-yellow)}[data-colour=green]{--card-colour:var(--card-green)}[data-colour=blue]{--card-colour:var(--card-blue)}.counter{cursor:default;align-items:center;gap:.35rem;display:flex}.counter output{text-align:center;min-width:2ch;font:1rem/1 var(--font-body);color:var(--muted)}.counter button{--edge:#00f0ff80;--cut:.45rem;width:1.8rem;height:1.8rem;font:1rem/1 var(--font-body);color:var(--neon-cyan);border:1px solid var(--edge);cursor:pointer;background:0 0;border-radius:0;transition:box-shadow .12s,background-color .12s}.counter output~button{background:linear-gradient(to bottom right, transparent calc(50% - 1px), var(--edge) calc(50% - 1px), var(--edge) 50%, transparent 50%) border-box right bottom / var(--cut) var(--cut) no-repeat;clip-path:polygon(0 0, 100% 0, 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, 0 100%)}.counter button:has(~output){background:linear-gradient(to bottom right, transparent 50%, var(--edge) 50%, var(--edge) calc(50% + 1px), transparent calc(50% + 1px)) border-box left top / var(--cut) var(--cut) no-repeat;clip-path:polygon(var(--cut) 0, 100% 0, 100% 100%, 0 100%, 0 var(--cut))}.counter button:hover:not(:disabled){--edge:var(--neon-cyan);text-shadow:var(--glow-cyan);background-color:#00f0ff1f;box-shadow:inset 0 0 .5rem #00f0ff4d}.counter button:disabled{opacity:.25;cursor:default}.ram-pips{--pip-colour:var(--card-colour,var(--neon-cyan));--pip-w:.55rem;--pip-h:.9rem;--pip-gap:.3rem;align-items:center;gap:var(--pip-gap);vertical-align:middle;padding-inline:.1rem;display:inline-flex}.ram-pips[data-size=sm]{--pip-w:.35rem;--pip-h:.65rem;--pip-gap:.2rem}.ram-pips .pip{width:var(--pip-w);height:var(--pip-h);background:var(--pip-colour);box-shadow:0 0 .3rem var(--pip-colour), 0 0 .8rem color-mix(in srgb, var(--pip-colour) 55%, transparent);transform:skew(-14deg)}.ram-pips[data-size=sm] .pip{box-shadow:0 0 .2rem var(--pip-colour), 0 0 .5rem color-mix(in srgb, var(--pip-colour) 45%, transparent)}.ram-pips .pip-none{border:1px dashed var(--muted);box-shadow:none;background:0 0}.btn{--edge:#00f0ff80;--cut:.6rem;font:inherit;letter-spacing:.06em;text-transform:uppercase;color:var(--neon-cyan);background:linear-gradient(to bottom right, transparent calc(50% - 1px), var(--edge) calc(50% - 1px), var(--edge) 50%, transparent 50%) border-box right bottom / var(--cut) var(--cut) no-repeat;border:1px solid var(--edge);clip-path:polygon(0 0, 100% 0, 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, 0 100%);cursor:pointer;border-radius:0;padding:.5rem .85rem;font-size:.8rem;transition:box-shadow .12s,background-color .12s,color .12s}.btn:hover:not(:disabled){--edge:var(--neon-cyan);text-shadow:var(--glow-cyan);background-color:#00f0ff1f;box-shadow:inset 0 0 .6rem #00f0ff4d}.btn:disabled{opacity:.3;cursor:default}.btn-danger{--edge:#ff2bd680;color:var(--neon-magenta)}.btn-danger:hover:not(:disabled){--edge:var(--neon-magenta);text-shadow:var(--glow-magenta);background-color:#ff2bd61f;box-shadow:inset 0 0 .6rem #ff2bd64d}.btn-danger[data-armed]{--edge:var(--neon-magenta);color:var(--bg);background-color:var(--neon-magenta);text-shadow:none}.btn-small{--cut:.45rem;min-width:5.5rem;padding:.3rem .6rem;font-size:.7rem}.update-bar{left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 1rem);z-index:1100;letter-spacing:.06em;text-transform:uppercase;max-width:calc(100vw - 2rem);color:var(--fg);background:var(--panel);border:1px solid var(--neon-cyan);box-shadow:var(--glow-cyan), 0 .75rem 2rem #00000080;align-items:center;gap:.75rem;padding:.55rem .6rem .55rem 1rem;font-size:.8rem;display:flex;position:fixed;transform:translate(-50%)}.update-reload{font:inherit;color:var(--bg);background:var(--neon-cyan);cursor:pointer;border:0;border-radius:0;padding:.3rem .75rem}.update-reload:disabled{opacity:.6;cursor:progress}.update-dismiss{width:1.75rem;height:1.75rem;font:inherit;color:var(--muted);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:0;font-size:1.1rem;line-height:1}.update-dismiss:hover{color:var(--neon-magenta);border-color:var(--neon-magenta)}
