:root{color:#e7eeea;font-synthesis:none;color-scheme:dark;--surface:#171c1b;--border:#2b3531;--muted:#95a39c;--green:#3ecf8e;--blue:#6da9ff;--pixel:"Silkscreen", monospace;--mono:"Space Mono", monospace;background:#101414;font-family:DM Sans,sans-serif;font-size:16px;line-height:1.5}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{min-width:320px;margin:0}button,a,input{font:inherit;-webkit-tap-highlight-color:transparent}a{color:inherit;text-underline-offset:4px}button,.button{color:#e7eeea;cursor:pointer;background:#202923;border:1px solid #3b4740;border-radius:3px;justify-content:center;align-items:center;gap:20px;min-height:44px;padding:10px 17px;font-size:13px;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s,transform .15s;display:inline-flex}button:hover,.button:hover{background:#2b3730;border-color:#6e8176}button.primary,.button.primary{background:var(--green);color:#082718;border-color:#61e4aa;box-shadow:3px 3px #205839}button.primary:hover,.button.primary:hover{background:#6be3ab;transform:translateY(-1px)}button.secondary{color:#c6d1ca;background:0 0}button.danger{color:#ffb7ab;background:#2c211f;border-color:#654038}button:disabled{opacity:.45;cursor:not-allowed;transform:none}:focus-visible{outline-offset:5px;outline:2px solid #f5cb68}::selection{color:#082718;background:#6be3ab}p{margin:0 0 16px}h1,h2,h3{font-weight:600}h1{font-family:var(--pixel);letter-spacing:-1.5px;margin:12px 0 20px;font-size:clamp(28px,3.8vw,44px);font-weight:400;line-height:1.25}h2{letter-spacing:-.7px;margin:0;font-size:25px;line-height:1.25}h3{margin:0;font-size:19px}.shell{width:min(1160px,100% - 80px);margin:0 auto;padding:0 0 24px}.top{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:24px;min-height:112px;margin-bottom:38px;display:flex}.brand{flex-direction:column;gap:4px;text-decoration:none;display:flex}.brand-name{font-family:var(--pixel);white-space:nowrap;letter-spacing:-1px;font-size:24px;line-height:1.3}.brand-amp{color:var(--muted);padding:0 4px}.brand-period{color:var(--green)}.brand-subtitle{font-family:var(--mono);color:#98a69e;letter-spacing:2px;font-size:9px}nav{align-items:center;gap:26px;display:flex}.nav-link{color:#9daaa3;padding:10px 0;font-size:13px;text-decoration:none}.nav-link:hover,.nav-link.selected{color:#f2f7f3}.nav-link.selected{box-shadow:0 1px 0 var(--green)}.pill{font-family:var(--mono);color:#c1c9bd;background:#1d2420;border:1px solid #3a453e;border-radius:3px;align-items:center;gap:8px;padding:5px 10px;font-size:10px;display:inline-flex}.pill.live{color:#6de4a9;background:#152b20;border-color:#254e3b}.status-dot{background:currentColor;flex-shrink:0;width:5px;height:5px;display:inline-block}.skip-link{z-index:10;background:var(--green);color:#082718;padding:12px;position:fixed;top:-100px;left:20px}.skip-link:focus{top:12px}#portal-content:focus{outline:none}.kicker{font-family:var(--mono);letter-spacing:1.4px;color:#9aafa2;margin:0;font-size:9px;font-weight:400;line-height:1.6}.tiny-square{background:var(--green);width:6px;height:6px;margin-right:6px;display:inline-block}.hero{grid-template-columns:1.08fr 1fr;align-items:center;gap:50px;min-height:365px;padding:16px 0 38px;display:grid}.hero h1{margin:19px 0 21px;font-size:clamp(34px,4vw,49px);line-height:1.22}.hero h1>span,.install h1>span{color:var(--green)}.hero-description{color:#a8b6ae;font-size:15px;line-height:1.8}.actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.hero-actions{gap:26px;margin:25px 0 15px}.hero-actions .primary{min-width:168px}.text-link{color:#cbd7cf;align-items:center;gap:12px;font-size:12px;font-weight:500;text-decoration:none;display:inline-flex}.text-link:hover{color:var(--green)}.hero-footnote{color:#798d81;font-family:var(--mono);margin:18px 0 0;font-size:9px}.game-preview{background:#131c1a;border:1px solid #344b3e;border-radius:4px;padding:18px 22px 16px;transform:rotate(-2deg);box-shadow:6px 6px #0a0e0c,7px 7px #273a2f}.preview-header,.preview-footer{justify-content:space-between;align-items:center;gap:12px;display:flex}.preview-header{border-bottom:1px solid #29382f;padding-bottom:12px}.preview-header .kicker{letter-spacing:1px;font-size:9px}.preview-label{color:#81998a;font-family:var(--mono);border:1px solid #3a5142;padding:2px 5px;font-size:9px}.board{border-radius:2px;width:100%;height:auto;display:block}.game-preview .board{margin:12px 0}.preview-footer{font-family:var(--mono);letter-spacing:.6px;font-size:9px}.preview-versus{color:#74887b;font-size:9px}.preview-footer i{background:currentColor;width:6px;height:6px;margin-right:7px;display:inline-block}.player-one{color:var(--green)}.player-two{color:var(--blue)}.quick-start{border-block:1px solid var(--border);grid-template-columns:repeat(3,1fr);margin:15px 0 25px;padding:22px 0;list-style:none;display:grid}.quick-start li{border-right:1px solid var(--border);align-items:center;gap:16px;padding:0 24px;display:flex}.quick-start li:first-child{padding-left:0}.quick-start li:last-child{border:0}.step-number{font-family:var(--pixel);color:#466655;font-size:24px}.quick-start strong{font-size:13px;font-weight:550}.quick-start p{color:var(--muted);margin:2px 0 0;font-size:11px}.note{border:1px solid var(--border);background:#171e19;border-radius:3px;justify-content:space-between;align-items:center;gap:20px;margin:20px 0;padding:16px 20px;display:flex}.note p{color:#a4b2a9;margin:0;font-size:13px}.install-note{background:#171c18;padding:12px 16px}.install-note>div:first-child{align-items:center;gap:15px;display:flex}.note-label{font-family:var(--mono);letter-spacing:1px;color:#b4ca9e;white-space:nowrap;border:1px solid #40553e;padding:3px 6px;font-size:9px}.install-note p{font-size:11px}.install-note .text-link{color:#b6c8b9;font-size:11px}button.dismiss{color:#83968a;background:0 0;border:0;min-width:30px;min-height:32px;padding:0;font-size:21px}.section-heading{justify-content:space-between;align-items:end;gap:20px;margin:0 0 20px;padding-top:30px;display:flex}.section-heading .kicker{color:#7e9687;margin-bottom:8px;font-size:9px}.count{vertical-align:middle;min-width:28px;font-family:var(--mono);color:#a3b6a8;letter-spacing:0;background:#212b24;border:1px solid #34463a;border-radius:3px;justify-content:center;align-items:center;margin-left:7px;padding:3px 6px;font-size:11px;font-weight:400;display:inline-flex}.section-caption{font-family:var(--mono);color:#8fa396;padding-bottom:3px;font-size:9px}.section-caption>span{color:#4f6356;padding:0 9px}.room-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.room-list li{background:var(--surface);border:1px solid #303a34;border-radius:4px;min-width:0;transition:border-color .15s}.room-list li:hover{border-color:#4b6554}.room-card-main{padding:20px 22px 18px}.room-state{font-family:var(--mono);letter-spacing:.8px;align-items:center;gap:7px;font-size:9px;display:inline-flex}.room-state.waiting{color:#e8c878}.room-state.playing{color:var(--green)}.room-card h3{font-family:var(--mono);margin:13px 0 9px;font-size:16px;font-weight:400}.room-card h3>span{color:#c4d1c8}.room-details{color:var(--muted);gap:20px;font-size:11px;display:flex}.room-card-bottom{background:#151a17;border-top:1px solid #2b342e;justify-content:space-between;align-items:center;gap:12px;padding:12px 20px;display:flex}.room-card-bottom button{gap:15px;min-height:36px;padding:7px 12px;font-size:11px}.mini-score{font-family:var(--mono);white-space:nowrap;align-items:center;gap:10px;font-size:9px;display:flex}.mini-score b{font-family:var(--pixel);margin:0 4px;font-size:16px;font-weight:400}.score-divider{color:#607467}.empty-state{text-align:center;background:#131a16;border:1px dashed #35473c;padding:40px 24px}.empty-state h3{margin:10px 0}.empty-state p{color:var(--muted);margin-bottom:0;font-size:13px}.footer{border-top:1px solid var(--border);color:#7f9286;justify-content:space-between;align-items:center;gap:24px;margin-top:54px;padding:28px 0 0;font-size:10px;display:flex}.powered-by{align-items:center;gap:12px;display:flex}.powered-by>span:first-child{font-family:var(--mono);letter-spacing:1px;font-size:9px}.powered-by a{color:#bbc8c0;align-items:center;gap:5px;font-size:12px;font-weight:600;text-decoration:none;display:inline-flex}.powered-by a:hover{color:#fff}.powered-by img{object-fit:contain;width:15px;height:17px}.footer-plus{color:#55705f}.error{color:#ffb4a8;overflow-wrap:anywhere;font-size:13px}.boot-screen{padding-top:100px}.boot-screen h1{font-size:32px}.boot-screen>p:not(.kicker){color:var(--muted)}.loading-dots{color:var(--green)}.room-heading{justify-content:space-between;align-items:center;gap:20px;margin:10px 0 28px;display:flex}.room-heading h1{margin-bottom:0;font-size:32px}.room-layout{grid-template-columns:minmax(0,1fr) 290px;align-items:start;gap:24px;display:grid}.game-stage{border:1px solid var(--border);background:#131a17;border-radius:4px;padding:20px 24px}.stage-heading{border-bottom:1px solid var(--border);justify-content:space-between;padding-bottom:16px;display:flex}.stage-meta{font-family:var(--mono);color:#7b9585;font-size:9px}.scorebar{justify-content:space-between;align-items:center;gap:16px;padding:22px 0 12px;display:flex}.score{background:#19281e;border:1px solid #2c4032;min-width:95px;padding:9px 12px}.score>span{font-family:var(--mono);letter-spacing:.3px;color:#97b4a2;font-size:9px;display:block}.score strong{font-family:var(--pixel);font-size:35px;font-weight:400;line-height:1.3;display:block}.score.seat-1 strong{color:var(--green)}.score.seat-2{background:#172335;border-color:#2a3e5b}.score.seat-2>span{color:#94aeca}.score.seat-2 strong{color:var(--blue)}.score.active{outline-offset:3px;outline:1px solid #f5cb68}.match-status{text-align:center}.match-status .kicker{color:#e5ca87;letter-spacing:.5px;font-size:9px}.match-status>span{font-family:var(--mono);color:#849b8d;margin-top:6px;font-size:9px;display:block}.board-caption{border-top:1px solid var(--border);font-family:var(--mono);letter-spacing:.4px;justify-content:space-between;align-items:center;gap:12px;padding-top:16px;font-size:9px;display:flex}.board-caption>span:nth-child(2){color:#8ca092;text-align:center}.room-sidebar{gap:16px;display:grid}.code-panel,.side-panel{border:1px solid var(--border);background:var(--surface);border-radius:3px;padding:23px}.code-panel{background:#16261e;border-color:#305841}.code-panel h2,.side-panel h2{margin:9px 0 16px;font-size:21px}.code-panel>p:not(.kicker):not(.code),.side-panel>p:not(.kicker){color:#a2b5a8;margin-bottom:0;font-size:12px;line-height:1.8}.code{font-family:var(--pixel);color:var(--green);white-space:nowrap;text-align:center;background:#102018;border:1px dashed #3c6d4f;margin:0 0 18px;padding:13px 10px;font-size:26px}.pairing-hint{font-family:var(--mono);color:#80b896;letter-spacing:.7px;margin-top:18px;font-size:9px;display:block}.pairing-status{align-items:center;gap:12px;padding:12px 0;display:flex}.pairing-status>strong{font-family:var(--pixel);color:var(--green);font-size:25px;font-weight:400}.pairing-status>strong span{color:#5b7464}.pairing-status>span{color:#9fb5a6;font-size:11px}.room-actions>button,.archive-room,.archive-room>button{width:100%}.room-card>.archive-room{border-top:1px solid var(--border);padding:12px 20px}.room-card>.archive-room>button{min-height:36px;font-size:11px}.archive-confirmation{background:#241e1c;border:1px solid #654038;border-radius:3px;padding:15px}.archive-confirmation p{color:#ddc2b9;margin-bottom:12px;font-size:12px;line-height:1.7}.archive-confirmation .actions{align-items:stretch}.archive-confirmation button{flex:auto;gap:8px}.archive-room>.error{margin:10px 0 0}.install>h1{margin-top:18px;font-size:37px}.install-intro{color:#a4b5a9;margin:0 0 36px;font-size:14px}.install-layout{grid-template-columns:minmax(0,1fr) 380px;align-items:start;gap:48px;display:grid}.install-steps h2{margin-bottom:24px;font-size:23px}.install-wifi{border-bottom:1px solid var(--border);margin-bottom:36px;padding-bottom:30px}.install-wifi-layout{grid-template-columns:minmax(0,1fr) minmax(0,380px);align-items:start;gap:48px;display:grid}.install-wifi-example{border:1px solid var(--border);background:#171c1b;border-radius:4px;padding:22px}.install-wifi-example pre{white-space:pre-wrap;overflow-wrap:anywhere;margin:18px 0;font-size:12px;line-height:1.9}.install-wifi-example>p:not(.kicker){color:#a7bbad;font-size:12px;line-height:1.9}.install-wifi>.install-tip{margin-bottom:0}.install ol{counter-reset:install-step;margin:0;padding:0;list-style:none}.install li{counter-increment:install-step;color:#a8b9ad;padding:0 0 28px 46px;font-size:13px;line-height:1.9;position:relative}.install li:before{content:"0" counter(install-step);font-family:var(--pixel);color:#6cb18a;font-size:18px;position:absolute;top:2px;left:0}.install code{font-family:var(--mono);color:#bce4ca;overflow-wrap:anywhere;font-size:.9em}.download-panel{background:#17231b;border:1px solid #35503d;border-radius:4px;padding:26px}.download-panel h2{margin:12px 0 18px;font-size:23px;line-height:1.4}.download-panel>p:not(.kicker){color:#9cb4a4;font-size:12px;line-height:1.9}.download-panel .button{width:100%;margin-top:5px}.download-meta{text-align:center;font-family:var(--mono);letter-spacing:1px;color:#84a38d;margin-top:15px;font-size:9px;display:block}.install-tip{color:#a8b9ad;background:#172019;border-left:2px solid #496b53;padding:14px 16px;font-size:12px;line-height:1.8}.install-action{margin:24px 0}.install-action>button,.install-success>button{width:100%;margin-top:12px}.install-status,.install-selected{color:#b4c9bb;overflow-wrap:anywhere;font-size:12px;line-height:1.8}.install-selected strong{color:#e7eeea}.install-progress p,.install-success p{color:#b4c9bb;font-size:12px;line-height:1.8}.install-progress progress{width:100%;height:10px;accent-color:var(--green);margin-bottom:14px;display:block}.install-progress .install-file{font-family:var(--mono);overflow-wrap:anywhere;font-size:10px}.install-success{background:#142c1d;border:1px solid #41694e;padding:16px}.install-success h3{color:#8ae4ae;margin-bottom:12px;font-size:17px}.install-error{margin-top:18px}.install-manual{border-top:1px solid #334637;padding-top:22px}.install-manual-primary{border-top:0;padding-top:0}.install-manual>p:last-child{color:#a7bbad;margin:16px 0 0;font-size:11px;line-height:1.9}.install-manual .button.secondary{background:0 0}a[aria-disabled=true]{opacity:.45;cursor:not-allowed}.control-notes{border-top:1px solid #334637;margin-top:25px;padding-top:25px}.control-notes>p{color:#a7bbad;margin-bottom:13px;font-size:11px}.control-notes>.kicker{margin-bottom:18px;font-size:9px}kbd{font-family:var(--mono);color:#c0d9c7;border:1px solid #496351;border-bottom-width:3px;margin-right:3px;padding:1px 5px;font-size:9px;display:inline-block}.muted{color:#92a79a;font-size:12px}.button-link{color:var(--blue);white-space:nowrap;font-size:12px}.emulator .top h1{margin:6px 0 0;font-size:28px}.emulator .hero{background:var(--surface);border:1px solid var(--border);min-height:0;margin-bottom:30px;padding:24px;display:block}.emulator .hero p{font-size:14px}.emulator .hero .muted{margin:18px 0 0;font-size:12px}.emulator .room-list{margin-top:20px}.emulator .room-list li{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:20px;display:flex}.emulator .room-list span{color:#a3b7aa;margin-top:6px;font-size:11px;display:block}.emulator-room-top{justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.emulator-room-top h2{margin:6px 0;font-size:26px}.emulator-room>.code{padding:12px 20px;font-size:32px;display:inline-block}.tufty-screen{background:#16231c;border:4px solid #354f3e;border-radius:8px;max-width:780px;padding:22px;box-shadow:7px 7px #0a0f0c}.tufty-screen .board{margin:12px auto 18px}.edge-target{touch-action:manipulation}.edge-target[aria-disabled=false]{cursor:pointer}@media (hover:hover){.edge-control.enabled:hover .edge-highlight{stroke:#3ecf8e}}.edge-control.enabled:has(.edge-target:focus-visible) .edge-highlight{stroke:#3ecf8e}.edge-target:focus-visible{outline:none}.emulator-scores{font-family:var(--mono);justify-content:space-between;gap:24px;font-size:12px;display:flex}.emulator-scores>span{color:var(--green);padding:5px 12px}.emulator-scores>span+span{color:var(--blue)}.emulator-scores .active{box-shadow:inset 0 0 0 1px #f5cb68}.emulator-scores strong{font-family:var(--pixel);margin-left:12px;font-size:26px;font-weight:400}.auto-play{flex-wrap:wrap;align-items:center;gap:8px;margin:20px 0;font-size:13px;display:flex}.auto-play input{width:18px;height:18px;accent-color:var(--green)}.emulator-room>.actions{margin-top:20px}.virtual-badge-join{border-top:1px solid var(--border);margin-top:18px;padding-top:18px}.virtual-badge-join p{font-size:13px;line-height:1.6}.embedded-badge .tufty-screen{box-shadow:none;background:0 0;border:0;border-radius:0;max-width:none;padding:0}.embedded-badge .emulator-room-top{margin:18px 0 10px}.embedded-badge .emulator-room-top h2{font-size:20px}.embedded-badge>p{font-size:12px;line-height:1.6}.embedded-badge .auto-play{flex-wrap:wrap}@media (width>=1400px){.shell{padding-top:12px}.hero{padding-block:28px 48px}}@media (width<=1000px){.shell{width:calc(100% - 48px)}.hero{gap:30px}.hero h1{font-size:36px}.hero-description{font-size:13px}.hero-footnote{font-size:9px}.hero-actions{gap:20px}.game-preview{padding-inline:16px}.room-card-bottom{padding-inline:14px}.room-card-bottom .actions{gap:7px}.mini-score{gap:4px}.mini-score b{font-size:14px}.room-layout{grid-template-columns:minmax(0,1fr) 260px;gap:16px}.code-panel,.side-panel{padding:19px}.code{font-size:24px}.install-layout,.install-wifi-layout{grid-template-columns:minmax(0,1fr) 300px;gap:30px}}@media (width<=760px){.top{min-height:94px;margin-bottom:24px}.brand-name{font-size:20px}nav{gap:18px}.nav-link{font-size:11px}.hero{grid-template-columns:1fr;gap:24px;padding:18px 0 30px}.hero h1{font-size:clamp(33px,6.2vw,44px)}.hero-description{font-size:14px}.game-preview{justify-self:center;width:min(100% - 12px,480px);margin:16px 0 4px}.quick-start{margin-top:15px}.quick-start li{gap:9px;padding-inline:14px}.quick-start strong{font-size:11px}.quick-start p{font-size:9px}.step-number{font-size:20px}.install-note{flex-wrap:wrap;gap:12px}.install-note>div:first-child{gap:10px}.install-note .actions{margin-left:auto}.room-list{gap:12px}.room-card-bottom{flex-direction:column;align-items:start;gap:15px;padding:16px 20px}.room-card-bottom .actions{width:100%}.room-card-bottom .actions button{flex:1}.footer{flex-direction:column-reverse;align-items:start;gap:18px;margin-top:36px}.room-layout{grid-template-columns:1fr}.room-sidebar{grid-template-columns:1fr 1fr}.room-actions{grid-column:1/-1}.room-heading h1{font-size:26px}.room.waiting.member .room-sidebar{grid-row:1}.game-stage{padding-inline:16px}.code{font-size:22px}.install-layout,.install-wifi-layout{grid-template-columns:1fr;gap:20px}.install>h1{font-size:30px}.download-panel{max-width:500px}}@media (width<=480px){.shell{width:calc(100% - 36px)}.top{flex-wrap:wrap;align-content:center;gap:17px;padding:22px 0 17px}.brand{width:100%}.brand-name{font-size:22px}.brand-subtitle{font-size:9px}nav{gap:22px;width:100%}nav .pill{margin-left:auto}.hero{padding-top:6px}.hero h1{letter-spacing:-1.5px;font-size:33px}.hero .kicker{font-size:9px}.hero-description{font-size:13px}.hero-actions{gap:24px}.hero-footnote{font-size:9px}.game-preview{margin-block:10px 5px;padding-inline:14px}.preview-header .kicker{letter-spacing:.6px;font-size:9px}.quick-start{grid-template-columns:1fr;padding:4px 0}.quick-start li,.quick-start li:first-child{border:0;border-bottom:1px solid var(--border);gap:18px;padding:14px 0}.quick-start strong{font-size:12px}.quick-start p{font-size:11px}.step-number{font-size:22px}.note{padding:14px}.install-note>div:first-child{align-items:start}.install-note p{font-size:11px}.install-note .actions{justify-content:space-between;width:100%;margin:0}.section-heading{flex-wrap:wrap;row-gap:10px;padding-top:20px}.section-heading h2{white-space:nowrap;font-size:24px}.section-caption{white-space:nowrap;font-size:9px}.section-caption>span{padding-inline:3px}.section-heading .kicker{font-size:9px}.room-list{grid-template-columns:1fr}.room-card-bottom{flex-direction:row;align-items:center;padding-inline:15px}.room-card-bottom .actions{width:auto}.room-card-bottom button{gap:8px;padding-inline:10px}.powered-by{gap:10px}.room-heading{flex-wrap:wrap}.room-heading h1{font-size:26px}.room-heading>button{min-height:36px;font-size:11px}.room-sidebar{grid-template-columns:1fr}.score{min-width:78px;padding-inline:8px}.score strong{font-size:29px}.score>span{font-size:9px}.scorebar{gap:10px}.match-status .kicker,.match-status>span{font-size:9px}.board-caption{gap:8px;font-size:9px}.code{font-size:30px}.install>h1{letter-spacing:-1.2px;font-size:27px}.install .kicker{font-size:9px}.emulator .top nav{gap:12px}.emulator-room-top{flex-direction:column;align-items:start}.tufty-screen{padding:10px}.emulator-scores>span{padding-inline:5px;font-size:10px}.emulator-scores strong{margin-left:6px;font-size:22px}}@media (width<=380px){.room-card-bottom{flex-direction:column;align-items:stretch}.room-card-bottom .actions{justify-content:end}.room-card-bottom button{white-space:nowrap}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important}}
