@font-face{font-family:Black Ops One;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/black-ops-one-latin-400-normal-cbfb766bdd7abac227edd14e0d932fc2.woff2?vsn=d) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Black Ops One;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/black-ops-one-latin-ext-400-normal-6dd90d5abb45d849a3e6170a5452a69c.woff2?vsn=d) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:IBM Plex Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-400-normal-77bc026706571f32f04889dae5e7e5b2.woff2?vsn=d) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-ext-400-normal-1bc0d8e41d21907cd701092bff9301c0.woff2?vsn=d) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:IBM Plex Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-500-normal-f7016cd446d2006a17eba99535d1b04e.woff2?vsn=d) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-ext-500-normal-93a0df997e00bf98667771d1d2a2665c.woff2?vsn=d) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:IBM Plex Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-600-normal-196e3cbc5fee6ac2587c6bb72eac7f6b.woff2?vsn=d) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-ext-600-normal-8fccbdf5bf67eb16ddccb196a87e6d2f.woff2?vsn=d) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-400-normal-79936b18df9f734fb6b0a256b20d36b4.woff2?vsn=d) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-ext-400-normal-8450d5944de23c9274ea801ad60fe5d8.woff2?vsn=d) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-600-normal-5a2ce7798732476dec03a9561de231fe.woff2?vsn=d) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-ext-600-normal-f2fe87d55f72d455c48b712395146a9b.woff2?vsn=d) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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}:root{color-scheme:light dark;--font-display: "Black Ops One", Impact, sans-serif;--font-text: "IBM Plex Sans", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--width: 76rem;--gutter: 1.5rem;--chamfer: polygon( .625rem 0, 100% 0, 100% calc(100% - .625rem) , calc(100% - .625rem) 100%, 0 100%, 0 .625rem );--bg: light-dark(#eae4da, #110c0a);--surface: light-dark(#f6f2eb, #1b1411);--surface-2: light-dark(#e1d8cb, #261c17);--border: light-dark(#c6b9a9, #3d2d25);--fg: light-dark(#1b1411, #f0e6da);--muted: light-dark(#5a4e46, #a9998b);--accent: light-dark(#a01e14, #f0533e);--button: light-dark(#a01e14, #b3221a);--button-fg: #ffffff;--heading: light-dark(#b3221a, #e0301e);--heading-bevel: light-dark(#5a0a05, #6e0e06);--heading-drop: light-dark(rgb(27 20 17 / .3), #000000);--field: light-dark(#ffffff, #110c0a);--field-edge: light-dark(#8c7e72, #7a6658);--key: light-dark(#ffffff, #2b201b);--key-edge: light-dark(#b3a595, #4a3830);--running: light-dark(#2f6b2a, #7bc46a);--away: light-dark(#8a5a0c, #e8a33a);--stopped: light-dark(#a01e14, #f0533e);--info-bg: light-dark(#d9e5e7, #142a30);--info-fg: light-dark(#1f4752, #a9d6e0);--error-bg: light-dark(#f2d6cf, #3a1410);--error-fg: light-dark(#7e1a10, #f6bdb3);--error-text: light-dark(#9a1a10, #ff8a78);--plate: light-dark(#2a2320, #2a1f1a);--plate-fg: #f2e9de;--plate-muted: #bfb2a4;--plate-edge: #5c4c42;--amber: #e8a33a;--logo: #ff6b57;--hud-running: #8fd07c;--hud-away: #e8a33a;--hud-stopped: #ff6b57;--hud-waiting: #bfb2a4;--screen-bg: #000000}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{font-family:var(--font-text);line-height:1.5;background:var(--bg);color:var(--fg)}body{margin:0;min-height:100vh;display:flex;flex-direction:column}a{color:var(--accent)}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}h1,h2{font-family:var(--font-display);font-weight:400;line-height:1;text-transform:uppercase;letter-spacing:.02em}h1{margin:0 0 1rem;font-size:clamp(2rem,1.5rem + 2vw,2.75rem);color:var(--heading);text-shadow:0 2px 0 var(--heading-bevel),0 4px 0 var(--heading-drop)}h2{margin:0 0 .75rem;font-size:1.75rem}time{font-family:var(--font-mono);font-size:.9375rem}button,.button{display:inline-flex;align-items:center;justify-content:center;min-height:3rem;padding:0 1.5rem;font-family:var(--font-display);font-size:1.25rem;letter-spacing:.03em;text-transform:uppercase;text-decoration:none;color:var(--button-fg);background:var(--button);border:0;clip-path:var(--chamfer);cursor:pointer}button:focus-visible,.button:focus-visible{clip-path:none}button.secondary{color:var(--fg);background:transparent;border:2px solid var(--fg);clip-path:none}.site-header,.site-footer{padding-inline:max(var(--gutter),(100% - var(--width)) / 2 + var(--gutter))}.site-header{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem;padding-block:calc(.875rem + 6px) .875rem;color:var(--plate-fg);background:var(--plate)}.site-header:before{content:"";position:absolute;inset:0 0 auto;height:6px;background:repeating-linear-gradient(135deg,var(--amber) 0 12px,var(--plate) 12px 24px)}.site-header p{margin:0}.site-title a{font-family:var(--font-display);font-size:2.125rem;line-height:1;letter-spacing:.04em;text-transform:uppercase;text-decoration:none;color:var(--logo);text-shadow:0 2px 0 #6e0e06,0 3px 0 #000000}.site-tagline{font-family:var(--font-mono);font-size:.8125rem;letter-spacing:.08em;text-transform:uppercase;color:var(--plate-muted)}.site-tools{margin-left:auto;display:flex;flex-wrap:wrap;align-items:center;gap:.625rem}.site-account{display:flex;flex-wrap:wrap;align-items:center;gap:.625rem}.site-account span{font-family:var(--font-mono);font-size:.875rem;color:#d8ccbf}.site-header button{min-height:2.75rem;padding:0 1rem;font-size:1rem;color:var(--plate-fg);background:transparent;border:1px solid var(--plate-edge);clip-path:none}.site-header .theme-toggle{width:2.75rem;padding:0;color:var(--amber)}.theme-toggle svg{width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:square}.theme-icon-sun{display:none}:root[data-theme=dark] .theme-icon-sun{display:block}:root[data-theme=dark] .theme-icon-moon{display:none}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .theme-icon-sun{display:block}:root:not([data-theme=light]) .theme-icon-moon{display:none}}main{flex:1;width:100%;max-width:var(--width);margin:0 auto;padding:2rem var(--gutter) 3rem}.site-footer{padding-block:1rem;border-top:1px solid var(--border);font-family:var(--font-mono);font-size:.8125rem;color:var(--muted)}.site-footer p{margin:0}.flash-group{position:fixed;top:1rem;right:1rem;display:grid;gap:.5rem;max-width:min(24rem,calc(100vw - 2rem))}.flash{display:flex;align-items:start;gap:.75rem;padding:.75rem 1rem;border:1px solid currentColor}.flash p{margin:0;flex:1}.flash button{min-height:0;padding:0 .25rem;font:inherit;color:inherit;background:none;clip-path:none}.flash-info{background:var(--info-bg);color:var(--info-fg)}.flash-error{background:var(--error-bg);color:var(--error-fg)}.flash[hidden]{display:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}.status,.status-line,.doom-screen [role=status]{display:inline-flex;align-items:center;gap:.5rem}.status:before,.status-line:before,.doom-screen [role=status]:before{content:"";flex:none;width:.625rem;height:.625rem;background:var(--mark)}[data-status=away]:before{background:none;border:2px solid var(--mark)}[data-status=stopped]:before{height:2px}.status,.status-line{--mark: var(--running)}.status[data-status=away],.status-line[data-status=away]{--mark: var(--away)}.status{padding:.125rem .625rem;border:1px solid var(--border);font-family:var(--font-mono);font-size:.8125rem;letter-spacing:.06em;text-transform:uppercase;color:var(--mark)}kbd{display:inline-block;min-width:1.75em;margin:.125rem .25rem .125rem 0;padding:.125rem .4375rem;border:1px solid var(--key-edge);border-bottom-width:3px;border-radius:3px;background:var(--key);font-family:var(--font-mono);font-size:.8125rem;text-align:center;color:var(--fg)}table{border-collapse:collapse;width:100%}th,td{text-align:left;vertical-align:top;padding:.5rem .75rem .5rem 0;border-bottom:1px solid var(--border)}th{font-family:var(--font-mono);font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-bottom-width:2px}main:has(.auth){display:flex;justify-content:center;align-items:flex-start;padding-top:4rem}.auth{position:relative;width:100%;max-width:34rem;padding:calc(2rem + 8px) 2rem 2rem;background:var(--surface);border:1px solid var(--border)}.auth:before{content:"";position:absolute;inset:0 0 auto;height:8px;background:repeating-linear-gradient(135deg,var(--amber) 0 12px,var(--plate) 12px 24px)}.auth h1{font-size:2.5rem;line-height:.95}.auth p{margin:0 0 1.25rem}.auth form>p:first-child{color:var(--muted)}.auth label{display:block;margin-bottom:.375rem;font-family:var(--font-mono);font-size:.8125rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.auth label:has(input[type=checkbox]){display:flex;align-items:center;gap:.75rem;min-height:2.75rem;font-family:var(--font-text);font-size:1rem;font-weight:400;letter-spacing:normal;text-transform:none}.auth input[type=email]{width:100%;min-height:3.25rem;padding:0 .875rem;font-family:var(--font-mono);font-size:1.0625rem;color:var(--fg);background:var(--field);border:2px solid var(--field-edge)}.auth input[aria-invalid=true]{border-color:var(--error-text)}.auth input[type=checkbox]{width:1.375rem;height:1.375rem;margin:0;accent-color:var(--button)}.auth button{width:100%;min-height:3.5rem;font-size:1.375rem}.auth [role=status]{padding:1rem;background:var(--info-bg);color:var(--info-fg)}.field-error{display:block;margin-top:.375rem;color:var(--error-text)}main:has(.lobby){display:flex;flex-wrap:wrap;align-items:flex-start;gap:1.5rem}.lobby{min-width:0;padding:1.5rem 1.75rem 1.75rem;background:var(--surface);border:1px solid var(--border)}.lobby-game{flex:999 1 35rem;border-top:4px solid var(--button)}.lobby-watch{flex:1 1 19rem}.lobby h1{font-size:clamp(2.25rem,1.75rem + 2vw,3rem)}.lobby-game h2{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--border)}.lobby-own p{font-size:1.125rem}.lobby-actions{display:grid;gap:.75rem;margin:0;padding:0;list-style:none}.lobby-actions li{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem}.lobby-actions button{min-width:11rem;min-height:3.25rem;font-size:1.375rem}.lobby-actions span{color:var(--muted)}.lobby-actions time{color:var(--fg)}.lobby-own .button{min-height:3.25rem;font-size:1.375rem}.lobby-game>p{color:var(--muted)}.table-scroll{overflow-x:auto}.table-scroll table{min-width:30rem}.lobby td{vertical-align:middle}.lobby td:first-child{font-family:var(--font-display);font-size:1.5rem;color:var(--accent)}.lobby td:nth-child(2){font-family:var(--font-mono);text-transform:uppercase}.lobby td:nth-child(3) time{color:var(--muted)}.lobby td button{min-height:2.75rem;padding:0 1.125rem;font-size:1.125rem}.games{margin:0;padding:0;list-style:none}.games li{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:3.25rem;border-bottom:1px solid var(--border)}.games a{font-size:1.0625rem;font-weight:600}.lobby-watch>p{color:var(--muted)}main:has(.doom){display:grid;gap:1.5rem 2rem;align-items:start}@media(min-width:60rem){main:has(.doom){grid-template-columns:minmax(0,1fr) 20rem}}.doom-screen{width:min(100%,calc((100vh - 20rem) * 4 / 3 + 1.25rem + 2px));margin:0;padding:.625rem;background:var(--plate);border:1px solid light-dark(#1b1411,#3d2d25)}.doom-stage{position:relative}.doom-player canvas{display:block;width:100%;height:auto;aspect-ratio:4 / 3;image-rendering:pixelated;background:var(--screen-bg)}.doom-player{display:flex;flex-direction:column;align-items:flex-end;gap:.625rem}.doom-sound{min-height:2.75rem;padding:0 .875rem;font-family:var(--font-mono);font-size:.8125rem;letter-spacing:.04em;text-transform:none;color:var(--plate-fg);background:#140e0cd9;border:1px solid var(--plate-edge);clip-path:none}.doom-sound[aria-pressed=true]{border-color:var(--amber)}.doom-sound:disabled{cursor:default;opacity:.6}.doom-banner{position:absolute;inset:0 0 auto;aspect-ratio:4 / 3;display:flex;align-items:center;justify-content:center;margin:0;padding:1.5rem;text-align:center;font-family:var(--font-display);font-size:clamp(2.5rem,1rem + 6vw,5.5rem);line-height:.9;letter-spacing:.04em;text-transform:uppercase;color:var(--logo);text-shadow:0 3px 0 #6e0e06,0 6px 0 #000000;pointer-events:none}.doom-screen figcaption{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1.5rem;padding:.625rem .375rem 0;font-family:var(--font-mono);font-size:.9375rem;color:var(--plate-fg)}.doom-screen [role=status]{--mark: var(--hud-running)}.doom-screen [data-status=away]{--mark: var(--hud-away)}.doom-screen [data-status=stopped]{--mark: var(--hud-stopped)}.doom-screen [data-status=waiting]{--mark: var(--hud-waiting)}.doom-viewers{color:var(--amber);letter-spacing:.04em}.doom-start{min-height:3.25rem;font-size:1.375rem}.doom-side{display:grid;gap:1.25rem}.controls{padding:1.25rem;background:var(--surface);border:1px solid var(--border)}.controls p{margin-top:0;color:var(--muted);font-size:.9375rem}.controls table{font-size:.9375rem}.controls td:last-child{padding-block:.375rem}.doom-side nav a{display:inline-flex;align-items:center;min-height:2.75rem;font-weight:600}.site-header .site-admin{display:inline-flex;align-items:center;min-height:2.75rem;padding:0 .875rem;font-family:var(--font-display);font-size:1rem;letter-spacing:.03em;text-transform:uppercase;text-decoration:none;color:var(--amber);border:1px solid var(--amber)}main:has(.admin){display:flex;flex-wrap:wrap;align-items:flex-start;gap:1.5rem}.admin-title{flex:1 1 100%;display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem 1.5rem}.admin-title h1{margin:0}.admin-title p{display:flex;align-items:center;gap:.625rem;margin:0}.admin-title a{display:inline-flex;align-items:center;min-height:2.75rem;font-weight:600}.admin{min-width:0;padding:1.5rem;background:var(--surface);border:1px solid var(--border)}.admin h2{margin:0 0 1rem}.admin-invite{flex:1 1 21rem;border-top:4px solid var(--button)}.admin-games{flex:999 1 32rem}.admin-users{flex:1 1 100%}.admin-heading{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}.admin-heading span{font-family:var(--font-mono);font-size:.875rem;color:var(--muted)}.admin p{margin:0 0 1rem}.admin [role=status]{padding:.75rem .875rem;background:var(--info-bg);color:var(--info-fg)}.admin label{display:block;margin-bottom:.375rem;font-family:var(--font-mono);font-size:.8125rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.admin input[type=email]{width:100%;min-height:3.25rem;padding:0 .875rem;font-family:var(--font-mono);font-size:1.0625rem;color:var(--fg);background:var(--field);border:2px solid var(--field-edge)}.admin input[aria-invalid=true]{border-color:var(--error-text)}p.admin-note{margin:.75rem 0 0;font-size:.9375rem;color:var(--muted)}.admin-invite p.admin-note{margin:0 0 1rem}.admin-games .games li{flex-wrap:wrap;min-height:3.75rem}.admin-games .games a{flex:1 1 10rem}button.danger{color:var(--stopped);background:transparent;border:2px solid var(--stopped);clip-path:none}.admin button.secondary,.admin button.danger{min-height:2.75rem;padding:0 .875rem;font-size:1rem}.admin-users table{min-width:40rem}.admin-users td{vertical-align:middle}.admin-users td:first-child{font-family:var(--font-mono);font-size:.9375rem}.admin-you{color:var(--muted)}.admin-users time{color:var(--muted)}.admin-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem}.admin-actions span{font-size:.875rem;color:var(--muted)}.admin-users th:last-child{text-align:right}.role{display:inline-flex;align-items:center;padding:.125rem .625rem;border:1px solid var(--border);font-family:var(--font-mono);font-size:.8125rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.role[data-role=admin]{color:var(--away);border-color:var(--away)}.role[data-role=root]{color:var(--button-fg);background:var(--button);border-color:var(--button)}
