@font-face{font-family:VT323;font-style:normal;font-weight:400;font-display:swap;src:url(/retro-games-p2p-multiplayer-coop/assets/vt323-EhPR265H.woff2)format("woff2")}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--void:#050e06;--panel:#0a2010;--panel-lit:#102d18;--well:#030a03;--line:#174224;--line-lit:#23623a;--ink:#3f6;--dim:#23b34a;--faint:#167f33;--coin:#6fa;--coin-hot:#b3ffd1;--coin-edge:#0e6b2f;--on-coin:#02180a;--p1:#ff5c57;--p2:#45c8e8;--p3:#fc4;--ok:#45d97e;--ng:var(--p1);--gap:14px;--pad:22px;--radius:4px;--font-ui:"VT323", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--font-data:"VT323", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;scrollbar-color:var(--line-lit) var(--void)}*{box-sizing:border-box}[hidden]{display:none!important}body{padding:calc(var(--pad) * 1.2) var(--gap) calc(var(--pad) * 3);background:radial-gradient(90% 40rem at 50% -6rem, #123a1d 0%, var(--void) 70%);background-color:var(--void);color:var(--ink);font:22px/1.5 var(--font-ui);font-synthesis:none;-webkit-font-smoothing:antialiased;margin:0}::selection{background:var(--coin);color:var(--on-coin)}body:after{content:"";z-index:2147483647;pointer-events:none;background:radial-gradient(120% 120% at 50% 45%,#0000 62%,#00040157 100%),repeating-linear-gradient(#00000014 0 1px,#0000 1px 4px);position:fixed;inset:0}.shell{gap:var(--gap);max-width:62rem;margin:0 auto;display:grid}.px{fill:currentColor;shape-rendering:crispedges;display:block}.masthead{align-items:baseline;gap:.9rem;padding:0 .2rem;display:flex}body:has(#view-landing:not([hidden])) .masthead{display:none}.mark{color:var(--ink);align-items:center;gap:.5rem;text-decoration:none;display:flex}.mark .px{width:auto;height:14px}.mark-chip{color:var(--coin);display:block}.mark:hover .mark-chip{color:var(--coin-hot)}.mark:focus-visible{outline:2px solid var(--coin);outline-offset:4px}.mast-tag{color:var(--faint);font-family:var(--font-data);letter-spacing:.04em;margin:0;font-size:17px}.hero{gap:var(--gap);display:grid}.crt{text-align:center;border:1px solid var(--line);background:radial-gradient(120% 100% at 50% 0,#12401f 0%,#08200f 48%,#041007 100%);border-radius:10px;padding:clamp(2.4rem,7vw,4.5rem) clamp(1.2rem,6vw,4rem) clamp(2rem,5vw,3.2rem);position:relative;overflow:hidden;box-shadow:inset 0 0 90px #010602e6,inset 0 1px #b3ffd112,0 20px 60px #0000008c}.crt-glass{pointer-events:none;background:linear-gradient(#b3ffd10d,#0000 18%),repeating-linear-gradient(#00000038 0 1px,#0000 1px 4px);position:absolute;inset:0}.attract{font-family:var(--font-data);letter-spacing:.5em;text-indent:.5em;text-transform:uppercase;color:var(--coin);text-shadow:0 0 14px #66ffaa8c;margin:0 0 1.6rem;font-size:18px;font-weight:700;animation:1.6s step-end infinite attract-blink}@keyframes attract-blink{0%,64%{opacity:1}65%,to{opacity:.12}}.wordmark{color:var(--ink);flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:clamp(.7rem,2.5vw,1.3rem);margin:0 0 1.4rem;display:flex}.wordmark .px{filter:drop-shadow(0 0 22px #6fa6);width:min(62vw,330px);height:auto}.wordmark-chip{color:var(--coin);display:block}.wordmark-chip .px{filter:drop-shadow(0 0 18px #66ffaa80);width:min(24vw,128px)}.lede{max-width:34rem;color:var(--dim);text-wrap:balance;margin:0 auto 2.2rem;font-size:23px;line-height:1.65}.start-row{justify-items:center;gap:.6rem;margin-bottom:2rem;display:grid}.start-row .btn-coin{padding:.95rem 2.6rem;font-size:24px}.start-hint{color:var(--faint);margin:0;font-size:19px}.join-row{border-top:1px solid #1d523080;flex-wrap:wrap;justify-content:center;align-items:center;gap:.6rem;max-width:30rem;margin:0 auto;padding-top:1.4rem;display:flex}.join-label{color:var(--dim);font-size:20px}.join-row input{text-align:center;text-transform:uppercase;width:13.5rem}.spec{color:var(--faint);font-family:var(--font-data);letter-spacing:.05em;flex-wrap:wrap;justify-content:center;gap:.3rem 1.6rem;margin:0;padding:0 .2rem;font-size:17px;list-style:none;display:flex}.spec li{position:relative}.spec li+li:before{content:"·";color:var(--line-lit);position:absolute;left:-1rem}.faq-head{cursor:pointer;color:var(--dim);letter-spacing:.2em;text-transform:uppercase;flex-wrap:wrap;align-items:baseline;gap:.6rem;font-size:18px;font-weight:700;list-style:none;display:flex}.faq-head::-webkit-details-marker{display:none}.faq-head:before{content:"+ ";color:var(--faint)}.faq-drawer[open]>.faq-head:before{content:"- "}.faq-head:focus-visible{outline:2px solid var(--coin);outline-offset:2px}.faq .faq-head h2{font-size:inherit;color:inherit;margin:0;display:inline}.faq-tag{letter-spacing:.26em;color:var(--faint);font-size:16px;font-weight:400}.faq-list{margin-top:var(--gap)}.faq-list details{border-top:1px solid var(--line)}.faq-list details:first-of-type{border-top:0}.faq-list summary{cursor:pointer;color:var(--dim);padding:.55rem 0;font-size:22px;list-style:none}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:before{content:"+ ";color:var(--faint)}.faq-list details[open]>summary:before{content:"- "}.faq-list details[open]>summary,.faq-list summary:hover{color:var(--ink)}.faq-list summary:focus-visible{outline:2px solid var(--coin);outline-offset:2px}.faq-list details p{max-width:44rem;color:var(--dim);margin:0 0 .85rem;padding-left:1.05rem;font-size:20px}.how-lede{max-width:44rem;color:var(--dim);margin:.2rem 0 0;font-size:20px;line-height:1.6}.how-steps{counter-reset:step;margin:var(--gap) 0 0;gap:var(--gap);padding:0;list-style:none;display:grid}@media (min-width:46rem){.how-steps{grid-template-columns:repeat(3,1fr)}}.how-steps li{counter-increment:step;background:var(--well);border:1px solid var(--line);border-radius:3px;padding:.8rem .9rem}.how-steps li:before{content:"0" counter(step);font-family:var(--font-data);letter-spacing:.2em;color:var(--faint);font-size:16px;display:block}.how-steps h3{color:var(--ink);margin:.2rem 0 .3rem;font-size:22px;font-weight:400}.how-steps p{color:var(--dim);margin:0;font-size:18px;line-height:1.55}.faq b{color:var(--ink)}.faq code{font-family:var(--font-data);color:var(--ink);font-size:19px}.faq kbd{font:inherit;font-family:var(--font-data);background:var(--coin);color:var(--on-coin);border-radius:2px;padding:.05rem .35rem;font-size:17px;font-weight:700}.panel{padding:var(--pad);border-radius:var(--radius);border:1px solid var(--line);background:linear-gradient(180deg, var(--panel-lit), var(--panel) 70%)}.panel h2{letter-spacing:.2em;text-transform:uppercase;color:var(--dim);margin:0 0 .5rem;font-size:18px;font-weight:700}.eyebrow{letter-spacing:.26em;text-transform:uppercase;color:var(--faint);margin:0 0 .3rem;font-size:16px;font-weight:700}.btn{font:inherit;letter-spacing:.06em;cursor:pointer;color:var(--ink);background:var(--panel-lit);text-align:center;border:1px solid #0000;border-radius:3px;padding:.6rem 1.1rem;font-size:20px;font-weight:700;text-decoration:none;transition:transform 70ms ease-out,box-shadow 70ms ease-out,background-color .12s ease-out,border-color .12s ease-out,color .12s ease-out;display:inline-block}.btn:focus-visible{outline:2px solid var(--coin);outline-offset:2px}.btn:active{transform:translateY(1px)}.btn:disabled{cursor:not-allowed;opacity:.45;transform:none}.btn-coin{text-transform:uppercase;letter-spacing:.1em;color:var(--on-coin);background:var(--coin);box-shadow:0 3px 0 var(--coin-edge), 0 0 24px #66ffaa40;font-weight:800}.btn-coin:hover:not(:disabled){background:var(--coin-hot)}.btn-coin:active:not(:disabled){box-shadow:0 1px 0 var(--coin-edge), 0 0 12px #6fa3;transform:translateY(2px)}.btn-coin:disabled{box-shadow:none;background:var(--panel-lit);color:var(--dim);opacity:1}.btn-ghost{color:var(--dim);border-color:var(--line-lit);background:0 0}.btn-ghost:hover:not(:disabled){color:var(--ink);border-color:var(--faint);background:#1d523038}.btn-small{letter-spacing:.1em;text-transform:uppercase;padding:.32rem .7rem;font-size:17px}.btn-quiet{font-family:var(--font-data);letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--line);color:var(--faint);background:var(--well);border-radius:2px;padding:.15rem .5rem;font-size:16px;font-weight:400}.btn-quiet:hover:not(:disabled){color:var(--ink);border-color:var(--line-lit);background:var(--well)}input{font:inherit;font-family:var(--font-data);border:1px solid var(--line);background:var(--well);color:var(--ink);letter-spacing:.08em;caret-color:var(--coin);border-radius:3px;padding:.62rem .8rem;font-size:22px;box-shadow:inset 0 2px 6px #0000008c}input::placeholder{color:var(--faint)}input:focus{border-color:var(--coin);outline:none;box-shadow:inset 0 2px 6px #0000008c,0 0 0 3px #66ffaa26}.error{min-height:1.2em;margin:0}.error:not(:empty){background:var(--ng);color:#2a0507;border-radius:3px;padding:.6rem .9rem;font-size:20px;font-weight:700}.error:not(:empty):before{content:"⚠ "}.room-head{gap:var(--gap);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.code-block{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.code-label{color:var(--faint);letter-spacing:.2em;text-transform:uppercase;font-size:16px}.code{font-family:var(--font-data);letter-spacing:.14em;color:var(--coin);text-shadow:0 0 10px #6fa6;background:var(--well);border:1px solid var(--line);border-radius:3px;padding:.3rem .7rem;font-size:clamp(1.68rem,5.28vw,2.28rem);font-weight:700;box-shadow:inset 0 2px 6px #0000008c}.status-block{align-items:center;gap:.6rem;margin-left:auto;display:flex}.pill{letter-spacing:.16em;text-transform:uppercase;color:var(--faint);background:var(--well);border:1px solid var(--line);border-radius:999px;padding:.3rem .7rem;font-size:16px;font-weight:700}.pill[data-status=ready]{color:#05240f;background:var(--ok);border-color:#0000;box-shadow:0 0 14px #45d97e73}.pill[data-status=error]{color:#2a0507;background:var(--ng);border-color:#0000;box-shadow:0 0 14px #ff5c5773}.pill[data-status=connecting],.pill[data-status=reconnecting]{color:var(--p3);border-color:#fc46}.lobby{margin-top:var(--pad)}.lobby-head{align-items:baseline;gap:.5rem;display:flex}.lobby-count{color:var(--faint);letter-spacing:.08em;font-weight:400}.roster{gap:var(--gap);margin:0;padding:0;list-style:none;display:grid}@media (min-width:46rem){.roster{grid-template-columns:repeat(3,1fr)}}[data-slot="1"]{--hue:var(--p1)}[data-slot="2"]{--hue:var(--p2)}[data-slot="3"]{--hue:var(--p3)}.roster li{gap:var(--gap);border:1px solid var(--line);border-left:3px solid var(--hue,var(--faint));background:var(--panel);border-radius:3px;align-items:center;padding:.75rem;display:flex;position:relative}.roster li[data-self=true]{background:var(--panel-lit)}.roster li[data-talking=true]{box-shadow:inset 0 0 0 1px var(--ng), 0 0 16px #ff5c5738}.portrait{color:var(--dim);flex:none;line-height:0;position:relative}.roster li[data-self=true] .portrait{color:var(--ink)}.portrait>.portrait-art{background:repeating-linear-gradient(to bottom, #0000004d 0 1px, transparent 1px 3px), var(--well);width:72px;height:72px;box-shadow:inset 0 2px 6px #000000b3, 0 0 0 1px var(--line);border-radius:3px;padding:.55rem}@media (max-width:46rem){.portrait>.portrait-art{width:60px;height:60px}}.mic-orb,.mic-badge{border:1px solid var(--line-lit);width:30px;height:30px;color:var(--dim);background:var(--panel-lit);border-radius:3px;place-items:center;padding:0;display:grid;position:absolute;bottom:-4px;right:-4px;box-shadow:0 3px 8px #0009}.mic-badge{width:26px;height:26px}.mic-icon{width:16px;height:16px;display:block}.mic-badge .mic-icon{width:14px;height:14px}.mic-orb{cursor:pointer}.mic-orb:hover:not(:disabled){color:var(--ink);border-color:var(--faint)}.mic-orb:focus-visible{outline:2px solid var(--coin);outline-offset:2px}.mic-orb:disabled{opacity:.45;cursor:not-allowed}.mic-orb[data-busy=true]{cursor:progress}.mic-orb[aria-pressed=true],.mic-badge[data-muted=false]{color:#2a0507;background:var(--ng);border-color:#0000;box-shadow:0 0 12px #ff5c578c}.card-body{gap:.1rem;min-width:0;display:grid}.roster .slot{letter-spacing:.18em;color:var(--hue,var(--ink));font-size:16px;font-weight:700}.roster .who{text-overflow:ellipsis;white-space:nowrap;font-size:24px;font-weight:600;overflow:hidden}.roster .mic-state{letter-spacing:.14em;text-transform:uppercase;color:var(--faint);font-size:16px}.roster .mic-state[data-muted=false]{color:var(--ng)}.roster .peer-id{color:var(--faint);font-family:var(--font-data);text-overflow:ellipsis;white-space:nowrap;font-size:16px;overflow:hidden}.roster .you{background:var(--coin);color:var(--on-coin);letter-spacing:.16em;text-transform:uppercase;border-radius:2px;padding:.12rem .4rem;font-size:14px;font-weight:800;position:absolute;top:.45rem;right:.5rem}.roster .speaker{position:absolute;top:.4rem;right:.45rem}.roster .speaker[aria-pressed=false]{opacity:.55}.stage-wrap{margin-top:var(--pad);position:relative}.stage{border:1px solid var(--line);background:var(--well);-webkit-user-select:none;user-select:none;border-radius:6px;place-items:center;min-height:14rem;padding:12px;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 2px 16px #000c}#screen{width:100%;height:auto;image-rendering:pixelated;background:#010302;border-radius:3px;display:block}.stage-tools{z-index:2;gap:6px;display:flex;position:absolute;top:10px;right:10px}.stage-btn{opacity:.5;background:#020603d9;transition:opacity .14s ease-out}.stage:hover .stage-btn,.stage-btn:focus-visible{opacity:1}@media (hover:none){.stage-btn{opacity:.9}}.stage-btn[aria-pressed=true]{color:var(--coin);border-color:var(--coin-edge);opacity:1}.stage-placeholder{text-align:center;color:var(--faint);font-family:var(--font-data);letter-spacing:.3em;text-transform:uppercase;margin:0;padding:1rem;font-size:18px}.rom-picker{max-width:min(32rem,100%);padding:var(--pad);text-align:center;color:var(--dim);background:var(--panel);border:1px solid var(--line);border-radius:3px}.rom-picker>p:first-child{color:var(--ink);margin:0 0 .8rem;font-size:23px;font-weight:600}.rom-bar{text-align:left;background:var(--well);border:1px solid var(--line);border-radius:3px;gap:.5rem;padding:.7rem;display:grid}.rom-bar input{box-shadow:none;background:0 0;border:0;padding:0;font-size:18px}.rom-bar input[type=file]::file-selector-button{font:inherit;font-family:var(--font-ui);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;color:var(--dim);background:var(--panel-lit);border:1px solid var(--line-lit);border-radius:3px;margin-right:.6rem;padding:.32rem .7rem;font-size:17px}.rom-bar input[type=file]::file-selector-button:hover{color:var(--ink);border-color:var(--faint)}.rom-why{color:var(--dim);margin:0;font-size:17px;line-height:1.6}.rom-system{gap:.3rem;display:grid}.rom-system .field{color:var(--faint);letter-spacing:.22em;text-transform:uppercase;font-size:16px}.rom-system select{font:inherit;font-family:var(--font-ui);appearance:none;border:1px solid var(--line-lit);background:linear-gradient(45deg, transparent 50%, var(--dim) 50%) calc(100% - 15px) 50% / 5px 5px no-repeat, linear-gradient(135deg, var(--dim) 50%, transparent 50%) calc(100% - 10px) 50% / 5px 5px no-repeat, var(--panel-lit);width:100%;color:var(--ink);border-radius:3px;padding:.5rem 2rem .5rem .7rem;font-size:20px}.rom-system select:focus-visible{outline:2px solid var(--coin);outline-offset:2px}.rom-system select:disabled{opacity:.55;cursor:not-allowed}.rom-system select option{background:var(--panel);color:var(--ink)}.rom-hint{color:var(--dim);margin:-.15rem 0 0;font-size:18px;line-height:1.6}.rom-hint b{color:var(--ink);font-weight:600}.rom-error{text-align:left;min-height:0;margin:.7rem 0 0}.rom-wait{color:var(--dim);margin:0;font-size:19px;line-height:1.6}.rom-progress{border:1px solid var(--line);font-family:var(--font-data);color:var(--ink);text-shadow:0 1px 2px #000000e6,0 0 6px #000000e6;background:repeating-linear-gradient(90deg, transparent 0 9px, var(--panel) 9px 12px), linear-gradient(90deg, #66ffaa80 var(--fraction,0%), transparent var(--fraction,0%)), var(--well);border-radius:2px;margin:.6rem 0 0;padding:.35rem .6rem;font-size:17px;transition:background .12s linear}.rom-note{color:var(--faint);letter-spacing:.04em;margin:.5rem 0 0;font-size:17px}.hud{font-family:var(--font-data);color:var(--faint);flex-wrap:wrap;gap:1.2rem;margin:.5rem 0 0;font-size:17px;display:flex}.hud b{color:var(--dim);font-weight:400}.hud[data-warn=true] b{color:var(--ng)}.netplay .phase{text-transform:uppercase;letter-spacing:.12em;font-weight:700}.netplay[data-phase=lockstep] .phase{color:var(--ok)}.netplay[data-phase=stalled] .phase{color:var(--ng)}.netplay[data-phase=syncing] .phase{color:var(--p3)}.netplay[data-phase=solo] .phase{color:var(--dim)}.netplay .desync{background:var(--ng);color:#2a0507;border-radius:3px;padding:0 .4rem;font-weight:700}.touchpad{z-index:3;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;position:absolute;inset:0}.stage-wrap{--tp-stick:clamp(104px, 23vmin, 164px);--tp-ring:calc(var(--tp-stick) * .45);--tp-cap:clamp(48px, 11vmin, 78px);--tp-cell:calc(var(--tp-cap) * 1.26);--tp-arc:calc(var(--tp-cell) * .16);--tp-foot:clamp(6px, 2vmin, 20px);--tp-band:calc(max(var(--tp-stick), calc(var(--tp-cell) * 2 + var(--tp-arc))) + var(--tp-foot));--tp-sys:clamp(30px, 6.5vmin, 44px)}.touchpad,.touchpad *{touch-action:none}.tp-zone{pointer-events:none;position:absolute;bottom:0}.tp-zone-stick{width:min(46%, calc(var(--tp-stick) * 2.1));height:var(--tp-band);pointer-events:auto;left:0}.tp-zone-stick:before{content:"";width:var(--tp-stick);height:var(--tp-stick);pointer-events:none;border:1px dashed #66ffaa42;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.tp-stick{width:var(--tp-stick);height:var(--tp-stick);pointer-events:none;opacity:.92;will-change:transform;background:radial-gradient(circle at 50% 40%,#103a20b8,#020804e0 66%,#020804ed 100%);border:1px solid #66ffaa57;border-radius:50%;transition:transform .19s cubic-bezier(.22,.9,.28,1),opacity .14s ease-out;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #00000080,inset 0 0 26px #000000c7}.tp-stick[data-engaged=true]{opacity:1;transition:opacity .14s ease-out}.tp-gate{pointer-events:none;position:absolute;inset:0}.tp-dir{color:var(--dim);text-shadow:0 0 3px #000000f2;font-size:clamp(11px,2.4vmin,16px);font-style:normal;line-height:1;transition:color 90ms ease-out,text-shadow 90ms ease-out;position:absolute;top:50%;left:50%}.tp-dir[data-dir=UP]{transform:translate(-50%, calc(-50% - var(--tp-ring)))}.tp-dir[data-dir=DOWN]{transform:translate(-50%, calc(-50% + var(--tp-ring)))}.tp-dir[data-dir=LEFT]{transform:translate(calc(-50% - var(--tp-ring)), -50%)}.tp-dir[data-dir=RIGHT]{transform:translate(calc(-50% + var(--tp-ring)), -50%)}.tp-dir[data-pressed=true]{color:var(--coin);text-shadow:0 0 10px #66ffaad9}.tp-knob{pointer-events:none;background:radial-gradient(circle at 44% 34%, var(--coin-hot), var(--coin) 44%, #0f6b32 100%);will-change:transform;border-radius:50%;width:36%;height:36%;transition:transform .19s cubic-bezier(.22,.9,.28,1),box-shadow .14s ease-out;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 16px #66ffaa4d,inset 0 -4px 9px #02180a80}.tp-stick[data-engaged=true] .tp-knob{transition:box-shadow .14s ease-out;box-shadow:0 0 28px #6fa9,inset 0 -4px 9px #02180a80}.tp-zone-cluster{grid-template-columns:repeat(3, var(--tp-cell));padding:0 clamp(4px, 1.6vw, 18px) var(--tp-foot) 0;align-content:end;display:grid;right:0}.tp-zone-cluster .tp-key:nth-child(3n+2){transform:translateY(-9%)}.tp-zone-cluster .tp-key:nth-child(3n){transform:translateY(-16%)}.tp-key{width:var(--tp-cell);height:var(--tp-cell);pointer-events:auto;place-items:center;display:grid}.tp-cap{width:var(--tp-cap);height:var(--tp-cap);color:var(--ink);font-family:var(--font-data);opacity:.92;will-change:transform;background:radial-gradient(circle at 50% 32%,#144626e6,#020904eb 74%);border:1px solid #66ffaa6b;border-radius:50%;place-items:center;font-size:clamp(20px,4.8vmin,32px);line-height:1;transition:transform .11s ease-out,opacity .11s ease-out,color .11s ease-out,background .11s ease-out,box-shadow .11s ease-out;display:grid;position:relative;box-shadow:0 0 0 1px #0000008c,inset 0 -4px 10px #0009}.tp-cap:after{content:"";border-radius:inherit;border:1px solid var(--coin);opacity:0;pointer-events:none;transition:transform .34s ease-out,opacity .34s ease-out;position:absolute;inset:-7%;transform:scale(.84)}.tp-key[data-pressed=true] .tp-cap{opacity:1;color:var(--on-coin);background:radial-gradient(circle at 50% 34%, var(--coin-hot), var(--coin) 62%, var(--coin-edge) 100%);transition-duration:55ms;transform:scale(.9);box-shadow:0 0 24px #66ffaa8c,inset 0 3px 8px #02180a73}.tp-key[data-pressed=true] .tp-cap:after{opacity:.8;transition-duration:45ms;transform:scale(1)}#stage-wrap[data-fs=true] .tp-zone-system{justify-content:space-between;height:auto;inset:clamp(6px,1.6vmin,14px) clamp(8px,2vmin,18px) auto;transform:none}.tp-zone-system{bottom:auto;left:50%;top:calc(100% - var(--tp-band) - var(--tp-sys));height:var(--tp-sys);align-items:center;gap:clamp(10px,2.4vmin,20px);display:flex;transform:translate(-50%)}.tp-key-pill{width:auto;height:auto;padding:clamp(3px,1vmin,7px)}.tp-key-pill .tp-cap{letter-spacing:.16em;text-transform:uppercase;border-radius:999px;width:auto;min-width:clamp(54px,13vmin,92px);height:auto;padding:clamp(5px,1.3vmin,10px) clamp(10px,2.2vmin,18px);font-size:clamp(14px,2.88vmin,20px)}.stage[data-touch=on]{padding-bottom:calc(var(--tp-band) + var(--tp-sys) + 10px)}#stage-wrap[data-fs=true] .stage[data-touch=on]{padding-bottom:0}@media (prefers-reduced-motion:reduce){.tp-stick,.tp-knob,.tp-cap,.tp-cap:after,.tp-dir{transition-duration:.01ms}}#stage-wrap[data-fs=true]{background:#000;flex-direction:column;display:flex}#stage-wrap::backdrop{background:#000}#stage-wrap[data-immersive=true]{z-index:2147483000;margin:0;position:fixed;inset:0}html[data-immersive=true],html[data-immersive=true] body{overflow:hidden}html[data-immersive=true] body:after{display:none}#stage-wrap[data-fs=true] .stage{min-height:0;box-shadow:none;border:0;border-radius:0;flex:1;grid-template-rows:minmax(0,1fr);margin:0;padding:0}#stage-wrap[data-fs=true] #screen{object-fit:contain;border-radius:0;width:100%;height:100%}.hud-drawer summary{cursor:pointer;color:var(--faint);letter-spacing:.16em;text-transform:uppercase;font-size:14px;list-style:none}.hud-drawer summary::-webkit-details-marker{display:none}.hud-drawer summary:before{content:"+ "}.hud-drawer[open]>summary:before{content:"- "}.hud-drawer summary:hover{color:var(--dim)}.hud-drawer summary:focus-visible{outline:2px solid var(--coin);outline-offset:2px}#stage-wrap[data-fs=true] .stage-tools{flex-direction:column;align-items:flex-end}#stage-wrap[data-fs=true] .hud-drawer{display:none}#stage-wrap[data-fs=true] .hud-drawer:has(.desync){z-index:4;border:1px solid var(--ng);background:#000000e0;border-radius:999px;margin:0;padding:.15rem .8rem;display:block;position:absolute;top:clamp(6px,1.5vmin,14px);left:50%;transform:translate(-50%)}#stage-wrap[data-fs=true] .hud-drawer:has(.desync) summary{display:none}#stage-wrap[data-fs=true] .hud-drawer:has(.desync) .rom-note{display:none}#stage-wrap[data-fs=true] .hud-drawer:has(.desync) #emu-hud{display:none}#stage-wrap[data-fs=true] .hud-drawer:has(.desync) .netplay>:not(.desync){display:none}#stage-wrap[data-fs=true][data-idle=true]{cursor:none}#stage-wrap[data-fs=true][data-idle=true] .stage-btn{opacity:0;pointer-events:none}.chat{margin-top:var(--pad);align-items:stretch;gap:.5rem;display:flex}.chat input{letter-spacing:normal;font-family:var(--font-ui);flex:1}.chat-log,.log{margin:var(--gap) 0 0;max-height:15rem;font-family:var(--font-data);gap:2px;padding:0;list-style:none;display:grid;overflow:auto}.chat-log:empty{margin:0}.chat-log li{background:var(--well);border-left:2px solid #0000;border-radius:2px;padding:.35rem .6rem;font-size:20px}.chat-log li[data-mine=true]{border-left-color:var(--coin)}.chat-log .from{color:var(--dim);margin-right:.5rem}.diagnostics summary,.controls summary{cursor:pointer;color:var(--dim);letter-spacing:.2em;text-transform:uppercase;font-size:18px;font-weight:700;list-style:none}.diagnostics summary::-webkit-details-marker{display:none}.controls summary::-webkit-details-marker{display:none}.diagnostics summary:before,.controls summary:before{content:"+ ";color:var(--faint)}.diagnostics details[open]>summary:before,.controls details[open]>summary:before{content:"- "}.diagnostics summary:focus-visible,.controls summary:focus-visible{outline:2px solid var(--coin);outline-offset:2px}.diagnostics details+details{margin-top:var(--gap)}.diagnostics pre{margin:var(--gap) 0 0;color:var(--dim);background:var(--well);border:1px solid var(--line);border-radius:3px;padding:.7rem;font-size:17px;overflow:auto}.log li{color:var(--faint);white-space:pre-wrap;word-break:break-word;font-size:17px}.log li[data-level=info]{color:var(--dim)}.log li[data-level=warn]{color:var(--p3)}.log li[data-level=error]{color:var(--ng)}.log .ts{color:#0f4a24;margin-right:.5rem}.identity{width:min(33rem,100vw - 1.5rem);max-height:calc(100vh - 1.5rem);border:1px solid var(--line-lit);background:var(--panel);max-height:calc(100dvh - 1.5rem);color:var(--ink);border-radius:6px;padding:0;overflow:hidden auto;box-shadow:0 30px 80px #000000b3}.identity::backdrop{background:#010402d1}.identity-head{padding:1rem var(--pad) .8rem;border-bottom:1px solid var(--line);background:var(--panel-lit)}.identity-head h2{letter-spacing:-.01em;margin:0;font-size:31px;font-weight:800}.identity-body{padding:var(--pad);gap:.5rem;display:grid}.identity .field{color:var(--faint);letter-spacing:.22em;text-transform:uppercase;margin:.5rem 0 0;font-size:16px}.identity .error{min-height:0;margin:0}.identity input{font-family:var(--font-ui);letter-spacing:normal}.identity menu{margin:var(--gap) 0 0;justify-content:flex-end;align-items:stretch;gap:.6rem;padding:0;display:flex}.identity menu .btn-coin{flex:1}.mic-note{background:var(--well);border:1px solid var(--line);color:var(--dim);border-radius:3px;margin:.6rem 0 0;padding:.6rem .8rem;font-size:18px}.mic-note b{color:var(--ink)}.mic-note kbd{font:inherit;font-family:var(--font-data);background:var(--coin);color:var(--on-coin);border-radius:2px;padding:.05rem .35rem;font-size:17px;font-weight:700}.avatar-grid{grid-template-columns:repeat(5,1fr);gap:.4rem;display:grid}@media (max-width:30rem){.avatar-grid{grid-template-columns:repeat(3,1fr)}}.avatar-pick{background:var(--well);border:1px solid var(--line);color:var(--dim);cursor:pointer;border-radius:3px;justify-items:center;gap:.3rem;padding:.5rem .25rem;transition:border-color .1s ease-out,color .1s ease-out;display:grid}.avatar-pick input{opacity:0;pointer-events:none;width:1px;height:1px;padding:0;position:absolute}.avatar-pick:hover{color:var(--ink);border-color:var(--line-lit)}.avatar-pick:has(input:checked){color:var(--on-coin);background:var(--coin);border-color:#0000;box-shadow:0 0 14px #66ffaa4d}.avatar-pick:has(input:focus-visible){outline:2px solid var(--coin);outline-offset:2px}.avatar-name{letter-spacing:.08em;text-transform:uppercase;font-size:14px}.avatar-art{fill:currentColor;display:block}.avatar-pick .avatar-art{width:28px;height:28px}.capacity-grid{grid-auto-flow:column;justify-content:start;gap:.4rem;display:grid}.capacity-pick{background:var(--well);border:1px solid var(--line);min-width:5rem;color:var(--dim);cursor:pointer;border-radius:3px;justify-items:center;gap:.1rem;padding:.5rem .9rem;transition:border-color .1s ease-out,color .1s ease-out;display:grid}.capacity-pick input{opacity:0;pointer-events:none;width:1px;height:1px;padding:0;position:absolute}.capacity-pick:hover{color:var(--ink);border-color:var(--line-lit)}.capacity-pick:has(input:checked){color:var(--on-coin);background:var(--coin);border-color:#0000;box-shadow:0 0 14px #66ffaa4d}.capacity-pick:has(input:focus-visible){outline:2px solid var(--coin);outline-offset:2px}.capacity-n{font-size:34px;font-weight:800;line-height:1}.capacity-word{letter-spacing:.14em;text-transform:uppercase;font-size:14px}.voice-sinks{width:0;height:0;position:absolute;overflow:hidden}.controls summary{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.controls summary h2{color:inherit;margin:0;display:inline}.controls-who{letter-spacing:.14em;text-transform:uppercase;color:var(--hue,var(--faint));font-size:17px;font-weight:700}.controls-body{margin-top:var(--gap);gap:var(--gap);display:grid}.controls-actions{justify-content:flex-end;display:flex}.pad-pill{letter-spacing:.12em;text-transform:uppercase;color:var(--faint);background:var(--well);border:1px solid var(--line);white-space:nowrap;border-radius:999px;margin-left:auto;padding:.25rem .6rem;font-size:16px;font-weight:700}.pad-pill[data-state=standard]{color:#05240f;background:var(--ok);border-color:#0000}.pad-pill[data-state=unmapped]{color:var(--on-coin);background:var(--coin);border-color:#0000}.control-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem;margin:0;padding:0;list-style:none;display:grid}@media (max-width:46rem){.control-list{grid-template-columns:1fr}}.control-list li{background:var(--well);border:1px solid var(--line);border-radius:3px;align-items:center;gap:.6rem;min-height:2.4rem;padding:.3rem .6rem;transition:background-color 80ms linear;display:flex}.control-list li[data-held=true]{background:#13351a;border-color:#45d97e66}.control-list li[data-capturing=true]{background:#373008;border-color:#fc46}.ctl-label{align-items:center;gap:.5rem;min-width:5rem;display:flex}.ctl-glyph{width:22px;height:22px;color:var(--ink);background:var(--panel-lit);border:1px solid var(--line-lit);border-radius:999px;flex:none;place-items:center;font-size:18px;display:grid}.control-list li[data-held=true] .ctl-glyph{color:#05240f;background:var(--ok);border-color:#0000;box-shadow:0 0 8px #45d97e80}.ctl-name{letter-spacing:.12em;text-transform:uppercase;color:var(--dim);font-size:17px}.control-list li[data-held=true] .ctl-name{color:var(--ink)}.ctl-binds{flex-wrap:wrap;align-items:center;gap:.25rem;display:flex}.ctl-none{color:var(--ng);letter-spacing:.1em;text-transform:uppercase;font-size:17px}button.bind{font:inherit;font-family:var(--font-data);border:1px solid var(--line);color:var(--dim);background:var(--panel);cursor:pointer;border-radius:2px;align-items:center;gap:.25rem;padding:.1rem .4rem;font-size:17px;display:inline-flex}button.bind:hover{color:var(--ink);border-color:var(--line-lit)}button.bind:focus-visible{outline:2px solid var(--coin);outline-offset:1px}button.bind[data-down=true]{color:#05240f;background:var(--ok);border-color:#0000}button.bind[data-source=pad-axis]{font-style:italic}button.bind.add{color:var(--faint)}button.bind.add:hover{color:var(--ink)}.bind .x{color:var(--faint);font-size:18px;line-height:1}.bind .x:hover{color:var(--ng)}button.bind[data-down=true] .x{color:#05240f}.pad-dialog{border:1px solid var(--line-lit);border-radius:var(--radius);background:var(--panel);width:min(38rem,100vw - 2rem);color:var(--ink);padding:0;box-shadow:0 24px 70px #000000a8}.pad-dialog::backdrop{background:#010402bf}.pad-head{justify-content:space-between;align-items:flex-start;gap:var(--gap);padding:var(--pad) var(--pad) 0;display:flex}.pad-head h2{letter-spacing:-.01em;margin:0;font-size:29px;font-weight:800}.pad-canvas{width:calc(100% - var(--pad) * 2);height:250px;margin:.8rem var(--pad) 0;background:var(--well);border:1px solid var(--line);border-radius:3px;display:block}.pad-steps{margin:var(--gap) var(--pad) 0;gap:.4rem;padding:0;list-style:none;display:flex}.pad-steps li{letter-spacing:.16em;text-transform:uppercase;text-align:center;color:var(--faint);background:var(--well);border:1px solid var(--line);border-radius:2px;flex:1;padding:.3rem .5rem;font-size:16px}.pad-steps li[data-state=now]{color:var(--on-coin);background:var(--coin);border-color:var(--coin-edge);font-weight:700}.pad-steps li[data-state=done]{color:var(--ok);border-color:var(--line-lit)}.pad-body{margin:.8rem var(--pad) 0;color:var(--dim);min-height:3.9em;font-size:19px;line-height:1.65}.pad-readout{margin:.5rem var(--pad) 0;font-family:var(--font-data);color:var(--faint);min-height:1.3em;font-size:17px}.pad-progress{margin:.5rem var(--pad) 0;border:1px solid var(--line);font-family:var(--font-data);color:var(--ink);text-shadow:0 1px 2px #000000e6,0 0 6px #000000e6;background:repeating-linear-gradient(90deg, transparent 0 9px, var(--panel) 9px 12px), linear-gradient(90deg, #66ffaa80 var(--fraction,0%), transparent var(--fraction,0%)), var(--well);border-radius:2px;padding:.35rem .6rem;font-size:17px;transition:background .12s linear}.pad-deadzone{margin:.8rem var(--pad) 0;flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.pad-deadzone label{letter-spacing:.18em;text-transform:uppercase;color:var(--dim);font-size:17px}.pad-deadzone output{font-family:var(--font-data);color:var(--ink);min-width:2.6rem;font-size:17px}.pad-deadzone input[type=range]{min-width:8rem;box-shadow:none;accent-color:var(--coin);background:0 0;border:0;flex:1;padding:0}.pad-menu{margin:var(--gap) 0 0;padding:var(--gap) var(--pad) var(--pad);border-top:1px solid var(--line);justify-content:flex-end;align-items:center;gap:.6rem;display:flex}.pad-menu form{display:contents}.pad-menu #btn-pad-secondary{margin-right:auto}.controls-hint{color:var(--faint);margin:0;font-size:18px}.speaking{z-index:3;pointer-events:none;flex-wrap:wrap;justify-content:flex-end;gap:.4rem;display:flex;position:absolute;top:18px;right:18px}#stage-wrap[data-fs=true] .speaking{top:1rem;right:1rem}#stage-wrap[data-fs=true][data-idle=true] .speaking{opacity:1}.talker{box-shadow:inset 0 0 0 1px var(--hue,var(--ng));color:var(--hue,var(--ink));background:#020603e0;border-radius:999px;align-items:center;gap:.4rem;padding:.2rem .6rem .2rem .3rem;font-size:18px;display:flex}.talker>.talker-art{width:18px;height:18px}.talker b{color:var(--ink);font-weight:400}.roster li[data-speaking=true] .portrait-art{box-shadow:inset 0 2px 6px #000000b3, 0 0 0 2px var(--ng), 0 0 16px #ff5c5773}.author{justify-items:start;gap:.6rem;display:grid}.author .author-name{letter-spacing:-.015em;text-transform:none;color:var(--ink);margin:0;font-size:clamp(2.28rem,6.72vw,3.12rem);font-weight:800}.author-line{color:var(--dim);margin:0}.author-story{max-width:38rem;color:var(--dim);margin:.4rem 0 0;line-height:1.7}.author-note{border-top:1px solid var(--line);max-width:38rem;color:var(--faint);margin:.4rem 0 0;padding-top:.7rem;font-size:18px;line-height:1.6}.author-links{font-family:var(--font-data);gap:.35rem;margin:.6rem 0 1rem;padding:0;font-size:20px;list-style:none;display:grid}.author-links a{color:var(--ink);border-bottom:1px solid var(--line-lit);text-decoration:none}.author-links a:hover{color:var(--coin);border-bottom-color:var(--coin)}.author-links a:focus-visible{outline:2px solid var(--coin);outline-offset:3px}.author-links li:before{content:"→ ";color:var(--faint)}.foot{padding:0 var(--pad);text-align:center;gap:.3rem;margin:0;display:grid}.foot p{color:var(--faint);margin:0;font-size:18px}.foot-links{color:var(--faint);justify-content:center;gap:.6rem;font-size:18px;display:flex}.foot-links a{color:var(--dim);border-bottom:1px solid var(--line-lit);text-decoration:none}.foot-links a:hover{color:var(--coin);border-bottom-color:var(--coin)}.foot-links a:focus-visible{outline:2px solid var(--coin);outline-offset:3px}.foot .broker{font-family:var(--font-data);color:#0f4a24;font-size:16px}@media (prefers-reduced-motion:reduce){.attract{opacity:1;animation:none}.btn,.control-list li,.stage-btn,.avatar-pick,.capacity-pick,#stage-wrap[data-fs=true] .hud-drawer{transition:none}.btn:active{transform:none}}@media (prefers-reduced-motion:no-preference){.roster li[data-speaking=true] .portrait-art{transition:box-shadow 90ms linear}}
