:root{color-scheme:dark;--bg:#13161b;--panel:#1c2027;--line:#303640;--text:#f4f5f7;--muted:#a2aab7;--accent:#c9f36b;font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:100%}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,input,select{font:inherit}button,a,input,select,summary{outline-offset:5px}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}a{color:inherit;text-decoration:none}.topbar{height:104px;padding:0 44px;display:flex;align-items:center;gap:24px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:13px;font-weight:750;font-size:1.4375rem;letter-spacing:-.5px}.brand svg{height:38px;width:38px;fill:var(--accent)}.brand-small{display:block;margin-top:6px;font-size:0.75rem;letter-spacing:2px;color:var(--muted);font-weight:600}.network{font-size:0.875rem;color:var(--muted);margin-left:auto}.button{padding:12px 18px;display:inline-flex;align-items:center;justify-content:center;gap:9px;border-radius:8px;font-weight:650;font-size:0.875rem;border:1px solid transparent;white-space:nowrap;min-height:44px}.primary{background:var(--accent);color:#17200c}.primary:hover{background:#daf79c}.secondary{background:transparent;color:var(--text);border-color:var(--line)}.secondary:hover{background:#252b34}.button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.workspace{display:grid;grid-template-columns:238px minmax(0,1fr);min-height:calc(100vh - 104px);min-height:calc(100dvh - 104px)}.sidebar{padding:35px 20px 24px 30px;border-right:1px solid var(--line);display:flex;flex-direction:column}.eyebrow{color:var(--muted);font-size:0.75rem;font-weight:650;letter-spacing:1.7px;margin:0 0 22px}.sidebar nav{display:flex;flex-direction:column;gap:7px}.console-button{display:flex;align-items:center;text-align:left;gap:12px;padding:13px 12px;border:1px solid transparent;background:none;color:var(--muted);border-radius:8px;font-size:0.875rem;min-height:48px}.console-button:hover{color:var(--text);background:#20252d}.console-button[aria-pressed=true]{background:#263121;color:var(--accent);border-color:#3b4e2d}.console-symbol{font-weight:800;letter-spacing:-.8px;display:flex;align-items:center;justify-content:center;border:1px solid currentColor;border-radius:5px;min-width:30px;height:26px;font-size:0.75rem}.console-count{margin-left:auto;font-size:0.75rem;font-weight:500}.sidebar-note{margin-top:auto;padding:65px 10px 0}.tiny-label{font-size:0.75rem;letter-spacing:1px;font-weight:650;color:var(--muted)}.sidebar-note p{font-size:0.875rem;color:var(--muted);line-height:1.8}main{padding:43px 44px 24px;max-width:1600px;width:100%;margin:0 auto}.library-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:32px}.library-heading .eyebrow{margin-bottom:10px}h1{font-size:2.25rem;letter-spacing:-1.2px;line-height:1.2;margin:0 0 10px;font-weight:750}.accent{color:var(--accent)}.muted{color:var(--muted);font-size:0.875rem;margin:0}.toolbar{display:flex;gap:16px;align-items:center;margin-bottom:25px}.search{background:var(--panel);border:1px solid var(--line);border-radius:8px;display:flex;align-items:center;gap:12px;max-width:530px;width:100%;padding:0 15px;min-height:48px}.search svg{height:20px;width:20px;flex-shrink:0;fill:none;stroke:var(--muted);stroke-width:1.7}.search input{background:transparent;border:0;outline:none;padding:13px 0;color:var(--text);width:100%;font-size:0.875rem;min-width:0}.search:focus-within{border-color:var(--accent)}.search input::placeholder{color:var(--muted)}.sort{margin-left:auto}.sort select{background:var(--panel);color:var(--text);border:1px solid var(--line);padding:12px 30px 12px 12px;border-radius:8px;font-size:0.875rem;min-height:48px}#library{min-height:350px}.game-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px}.game-card{border:1px solid var(--line);background:var(--panel);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-width:0}.game-card:hover{border-color:var(--game-color,var(--accent));transform:translateY(-2px);transition:transform .15s}.card-band{padding:17px 18px 12px;display:flex;justify-content:space-between;align-items:center;color:var(--game-color);background:color-mix(in srgb,var(--game-color) 9%,var(--panel));border-bottom:1px solid var(--line);font-size:0.75rem;font-weight:700;letter-spacing:.8px}.card-body{padding:19px 18px;display:flex;flex-direction:column;flex:1}.game-card h2{font-size:1.1875rem;line-height:1.4;letter-spacing:-.3px;margin:0 0 10px;overflow-wrap:anywhere;font-weight:650}.card-meta{color:var(--muted);font-size:0.875rem;margin:0 0 22px}.card-body .button{margin-top:auto;width:100%}.empty-state{border:1px dashed #39404b;background:linear-gradient(130deg,#1b2028,#181c22);border-radius:12px;padding:54px 42px;min-height:340px;position:relative}.empty-marker{display:inline-block;background:var(--accent);color:#1b270d;padding:6px 10px;border-radius:4px;font-size:0.75rem;letter-spacing:1px;font-weight:700;margin-bottom:22px}.empty-state h2{font-size:1.75rem;letter-spacing:-.7px;margin:0 0 12px;line-height:1.3}.empty-state p{font-size:1rem;color:var(--muted);line-height:1.7;max-width:660px;margin:0 0 24px}.folder-path{display:inline-flex;align-items:center;gap:12px;padding:13px 17px;background:#11151a;border:1px solid var(--line);border-radius:7px;line-height:1.5;font-size:0.875rem;flex-wrap:wrap}.folder-path span{color:#6f7783}.folder-guide{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:16px;border-top:1px solid var(--line);padding-top:22px;margin-top:30px}.folder-guide strong{font-size:0.875rem;display:block;font-weight:600}.folder-guide small{display:block;font-size:0.75rem;color:var(--muted);margin-top:6px;line-height:1.5}.error-state{border-color:#a65b58}.empty-state .button{margin-top:10px}.library-footer{font-size:0.75rem;line-height:1.6;color:#818a98;padding-top:24px;margin-top:10px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}dialog{border:0;padding:0;background:var(--bg);color:var(--text);width:100vw;max-width:none;height:100vh;height:100dvh;max-height:none;margin:0;overflow:auto}dialog::backdrop{background:#000c}dialog[open]{display:flex;flex-direction:column}.player-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 26px;border-bottom:1px solid var(--line);flex-shrink:0}.player-toolbar h2{font-size:1.25rem;line-height:1.4;margin:5px 0 0;overflow-wrap:anywhere}.player-toolbar .tiny-label{color:var(--accent)}#player-container{height:calc(100vh - 156px);height:calc(100dvh - 156px);min-height:360px;flex:1;background:#000}#player-container iframe{height:100%;width:100%;border:0;display:block}.player-help{padding:16px 26px;font-size:0.875rem;border-top:1px solid var(--line);flex-shrink:0}.player-help summary{color:var(--muted);cursor:pointer}.player-help p{line-height:1.6;max-width:950px;color:var(--muted)}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:30;background:#c9f36b;color:#15200b;padding:14px 20px;border-radius:8px;box-shadow:0 6px 30px #0006;font-size:0.875rem;width:max-content;max-width:90vw}.no-results{padding:70px 20px;text-align:center}.no-results h2{font-size:1.5rem}.no-results p{color:var(--muted);font-size:0.9375rem;line-height:1.6}@media(min-width:1500px){main{padding-top:52px}.game-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}}@media(max-width:1000px){.topbar{padding:0 24px}.workspace{grid-template-columns:205px minmax(0,1fr)}.sidebar{padding-left:17px;padding-right:15px}main{padding:32px 24px}.console-button{padding:13px 8px;gap:8px}.empty-state{padding:35px 25px}.network{display:none}.topbar .primary{margin-left:auto}h1{font-size:1.9375rem}}@media(max-width:700px){.topbar{height:85px;padding:0 18px;gap:10px}.brand{font-size:1.25rem;gap:9px}.brand svg{width:29px;height:29px}.brand-small{font-size:0.75rem;letter-spacing:1.4px}.button{padding:11px 12px}.workspace{display:block;min-height:calc(100vh - 85px);min-height:calc(100dvh - 85px)}.sidebar{padding:16px 18px;border-right:0;border-bottom:1px solid var(--line)}.sidebar .eyebrow,.sidebar-note{display:none}.sidebar nav{flex-direction:row;overflow-x:auto;padding-bottom:5px;gap:8px}.console-button{white-space:nowrap;min-height:44px;padding:9px 11px}.console-symbol{display:none}.console-count{margin-left:6px}main{padding:27px 18px 18px}.library-heading{align-items:flex-start;margin-bottom:22px;gap:10px}.library-heading .eyebrow{font-size:0.75rem;letter-spacing:1.3px}h1{font-size:1.75rem}.library-heading .button{font-size:0.875rem;margin-top:18px}.library-heading .button svg{display:none}.toolbar{gap:9px}.sort select{width:122px;padding-right:8px;font-size:0.875rem}.search{padding:0 12px}.search input{font-size:0.875rem}.game-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.card-band{padding:12px;font-size:0.75rem;letter-spacing:.4px}.card-body{padding:15px 12px}.game-card h2{font-size:1.0625rem}.card-meta{font-size:0.75rem}.card-body .button{font-size:0.875rem}.empty-state{padding:30px 23px}.empty-state h2{font-size:1.5625rem}.empty-state p{font-size:0.9375rem}.folder-guide{grid-template-columns:repeat(2,minmax(0,1fr))}.folder-path{padding:12px;font-size:0.875rem;gap:8px}.player-toolbar{padding:14px 16px}.player-toolbar h2{font-size:1rem}.player-toolbar .button{font-size:0.75rem;white-space:normal;max-width:120px}.player-help{padding:14px 16px}#player-container{min-height:290px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
/* Collection artwork and the shared local/LAN player. */
[hidden]{display:none!important}
body{background:radial-gradient(ellipse at 90% 0%,#27302266,transparent 43%),var(--bg)}
.topbar{height:96px}.network{display:flex;gap:8px;align-items:center}.network:before,.online-dot:before{content:'';display:inline-block;width:7px;height:7px;background:var(--accent);border-radius:50%;box-shadow:0 0 12px #c9f36b55}.online-dot{font-size:.8125rem;color:var(--accent);display:flex;align-items:center;gap:8px}
main{padding:38px 36px}.library-heading{margin-bottom:28px}h1{font-size:2.65rem;letter-spacing:-1.6px}.game-grid{grid-template-columns:repeat(auto-fill,minmax(195px,1fr));gap:18px}.game-card{background:#1c2026;border-radius:16px;box-shadow:0 8px 25px #0002;transition:transform .2s,border-color .2s}.game-card:hover{transform:translateY(-5px)}.card-artwork{position:relative;aspect-ratio:1.09;background:radial-gradient(ellipse at 50% 75%,color-mix(in srgb,var(--game-color) 14%,#15181d),#15181d);display:flex;align-items:center;justify-content:center;padding:15px}.card-artwork img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 8px 10px #0006);border-radius:4px}.cover-fallback{padding:20px;text-align:center;font-size:1.3rem;color:var(--game-color);font-weight:700}.cover-edit{position:absolute;right:10px;bottom:10px;background:#101317d9;color:#eee;border:1px solid #5559;border-radius:6px;font-size:.75rem;padding:7px;opacity:0}.game-card:hover .cover-edit,.cover-edit:focus{opacity:1}.card-band{background:transparent;border-top:1px solid #30364088;border-bottom:0;padding:14px 16px 0;letter-spacing:0;font-size:.75rem}.card-body{padding:12px 16px 16px}.game-card h2{font-size:1.125rem;line-height:1.35;margin-bottom:10px}.card-meta{font-size:.75rem;line-height:1.5;margin-bottom:18px}.card-body .button{justify-content:space-between}.library-footer{border-top:1px solid var(--line);margin-top:30px;padding-top:20px}.button{border-radius:9px}select{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:10px;font-size:.875rem;min-height:42px;max-width:100%}
#player-dialog{overflow:hidden;position:fixed}.player-toolbar{padding:12px 18px;gap:14px;z-index:3;background:#13161b}.playing-heading{min-width:0;max-width:420px}.playing-heading h2{font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-actions{display:flex;align-items:center;gap:8px;overflow-x:auto;flex-shrink:0;max-width:100%}.player-actions .button{font-size:.8125rem;padding:10px 12px}.player-actions select{font-size:.8125rem}.player-toolbar .tiny-label{font-size:.75rem}#player-container{height:0;min-height:0;flex:1;position:relative;overflow:hidden}#player-container iframe,#player-container video{display:block;width:100%;height:100%;border:0;object-fit:contain;background:#000}
#player-dialog.immersive{width:100vw;height:100vh;height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.immersive .playing-heading,.immersive #room-strip{display:none}.immersive .player-toolbar{padding:5px 8px;justify-content:center}.immersive .player-actions .button{min-height:38px;padding:8px 10px}.immersive .player-actions select{min-height:38px;padding:8px}
.floating-panel{position:absolute;z-index:8;top:86px;right:18px;width:min(680px,calc(100vw - 36px));max-height:calc(100vh - 110px);max-height:calc(100dvh - 110px);overflow:auto;background:#1c2027f8;border:1px solid #465140;border-radius:16px;padding:24px;box-shadow:0 18px 80px #000a}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.panel-heading h2,.panel-heading h3{margin:0;font-size:1.4rem;letter-spacing:-.5px}.key-guides{display:grid;grid-template-columns:1fr 1fr;gap:16px}.key-guides p{font-size:.875rem;line-height:1.9;margin:0 0 16px}.key-guides strong{color:var(--accent)}kbd{font:inherit;font-size:.8125rem;border:1px solid #4e5661;background:#292f38;padding:2px 5px;border-radius:4px;color:#f3f5f8}.floating-panel .muted{line-height:1.6;margin:12px 0}.controller-row{display:flex;align-items:center;gap:20px;font-size:.875rem;margin:12px 0}.controller-row select{margin-left:auto;width:65%;min-width:0}.panel-actions{display:flex;gap:8px;margin:18px 0;flex-wrap:wrap}#multitap-label{display:block;font-size:.875rem;line-height:1.6}#multitap{accent-color:var(--accent)}
.small-dialog{position:fixed;inset:0;margin:auto;width:min(560px,calc(100vw - 28px));height:max-content;max-height:calc(100vh - 28px);max-height:calc(100dvh - 28px);border:1px solid var(--line);border-radius:18px;overflow:auto;padding:28px;box-shadow:0 18px 100px #0008}.small-dialog .muted{line-height:1.6;margin:14px 0}.small-dialog label{display:flex;flex-direction:column;gap:8px;font-size:.875rem;margin:16px 0}.small-dialog input{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:12px;color:var(--text);min-width:0}.small-dialog form{width:100%}#lan-code{text-transform:uppercase;letter-spacing:3px}#lan-error{color:#ffacaa;font-size:.875rem;line-height:1.6}#submit-lan{width:100%;margin-top:10px}
#room-strip{display:flex;align-items:center;gap:12px;padding:8px 18px;border-bottom:1px solid var(--line);font-size:.75rem;background:#1b2218;flex-shrink:0}#room-strip>div:first-child{display:flex;flex-direction:column;gap:5px;white-space:nowrap}#room-code{color:var(--accent)}#room-status{color:var(--muted)}#room-members{display:flex;gap:6px;overflow-x:auto;flex:1}.member-chip{background:#293025;padding:7px 9px;border-radius:20px;white-space:nowrap}.room-strip .button,#room-strip .button{font-size:.75rem;padding:8px 10px;min-height:36px}
.virtual-controls{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 24px;background:#191e25;flex-shrink:0;touch-action:none}.virtual-controls button{background:#303946;color:var(--text);border:1px solid #526076;border-radius:10px;height:44px;min-width:44px;font-weight:700;touch-action:none;user-select:none;-webkit-user-select:none}.virtual-controls button:active{background:#596b43}.dpad{display:grid;grid-template-columns:repeat(3,44px);grid-template-rows:repeat(2,44px);gap:4px}.dpad button:nth-child(1){grid-column:2;grid-row:1}.dpad button:nth-child(2){grid-column:1;grid-row:2}.dpad button:nth-child(3){grid-column:2;grid-row:2}.dpad button:nth-child(4){grid-column:3;grid-row:2}.action-pad{display:grid;grid-template-columns:repeat(4,minmax(44px,60px));gap:5px}.action-pad button{font-size:.8125rem}.audio-button{position:absolute;z-index:5;left:50%;top:50%;transform:translate(-50%,-50%)}
@media(min-width:1500px){.game-grid{grid-template-columns:repeat(auto-fill,minmax(225px,1fr))}}
@media(max-width:1100px){.network{display:none}.topbar{gap:12px;padding:0 24px}.topbar .primary{margin-left:0}main{padding:32px 24px}.workspace{grid-template-columns:210px minmax(0,1fr)}.player-toolbar{flex-wrap:wrap}.playing-heading{width:100%;max-width:none}.player-actions{width:100%}.floating-panel{top:132px;max-height:calc(100vh - 150px);max-height:calc(100dvh - 150px)}}
@media(max-width:700px){.topbar{height:auto;min-height:138px;flex-wrap:wrap;padding:19px 18px;gap:12px}.brand{width:100%}.topbar>.button{flex:1;font-size:.8125rem}.workspace{display:block}.sidebar{padding:12px 18px}.console-button{font-size:.8125rem}main{padding:25px 18px}.library-heading h1{font-size:1.85rem}.game-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.card-artwork{padding:8px}.card-body{padding:12px}.card-band{padding:12px 12px 0;font-size:.75rem}.game-card h2{font-size:1rem}.cover-edit{opacity:1;padding:5px;font-size:.75rem}.player-toolbar{padding:8px 12px;gap:8px}.playing-heading h2{font-size:.875rem;margin:0}.playing-heading .tiny-label{display:none}.player-actions .button{font-size:.75rem;min-width:max-content;max-width:none;white-space:nowrap;min-height:40px}.player-actions select{font-size:.75rem;min-width:140px}.key-guides{grid-template-columns:1fr}.floating-panel{top:108px;right:10px;width:calc(100vw - 20px);max-height:calc(100vh - 122px);max-height:calc(100dvh - 122px);padding:18px}.small-dialog{padding:20px}.small-dialog .panel-heading h2{font-size:1.3rem}#room-strip{flex-wrap:wrap;padding:8px 12px;gap:7px}#room-members{order:3;flex-basis:100%}.virtual-controls{padding:8px 12px;gap:10px}.dpad{grid-template-columns:repeat(3,40px);grid-template-rows:repeat(2,40px)}.virtual-controls button{height:40px;min-width:40px}.action-pad{grid-template-columns:repeat(4,minmax(35px,48px));gap:4px}}
@media(max-height:500px) and (orientation:landscape){.playing-heading{display:none}.player-toolbar{padding:5px 8px}.floating-panel{top:60px;max-height:calc(100vh - 70px);max-height:calc(100dvh - 70px)}.virtual-controls{position:absolute;bottom:8px;left:0;right:0;background:transparent;pointer-events:none;padding:0 18px}.virtual-controls button{pointer-events:auto;background:#293342bb}#room-strip{padding:5px 12px}}
/* Deep blue, glacier blue and warm orange. */
:root{--bg:#0e1729;--panel:#19253b;--line:#30405b;--text:#f3f6ff;--muted:#b0bed4;--accent:#82c7ff}
body{background:radial-gradient(ellipse at 80% -10%,#2a427077,transparent 50%),var(--bg)}.primary{background:#ffa27d;color:#241609}.primary:hover{background:#ffb798}.accent,.brand svg{color:var(--accent);fill:var(--accent)}.console-button[aria-pressed=true]{background:#213e5c;color:#b5e2ff;border-color:#3f6385}.game-card{background:#19253b}.card-artwork{background:radial-gradient(ellipse at 50% 75%,color-mix(in srgb,var(--game-color) 14%,#17233a),#101b2e)}.sidebar-note .online-dot{color:#b2dcff}.network:before,.online-dot:before{background:#82c7ff;box-shadow:0 0 12px #82c7ff66}.player-toolbar{background:#0e1729}.floating-panel{background:#19253bf8;border-color:#446388}.player-actions select,.small-dialog input{background:#19253b}.secondary:hover{background:#243954}.card-meta,.library-footer{color:#afbed5}.member-chip{background:#243b58}#room-strip{background:#15273f}#toast{background:#b8dfff;color:#112338}.empty-state{background:linear-gradient(130deg,#172943,#121e32)}
#players-overview{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:8px 18px;border-bottom:1px solid var(--line);background:#142137;flex-shrink:0;font-size:.8125rem}#players-total{color:#b9e2ff;font-weight:700}#pads-total{color:#ffba9b}#memory-status{color:var(--muted);margin-left:auto;font-size:.75rem}#players-overview .button{font-size:.75rem;min-height:34px;padding:7px 10px}.name-row,.profile-count{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.875rem;margin:12px 0}.name-row input{background:#0f1b2e;color:#f3f6ff;padding:10px 12px;border:1px solid #3d516f;border-radius:8px;width:65%;min-width:0}.profile-count select{width:65%}.immersive #players-overview{display:none}#controls-panel .key-guides{margin-top:22px;border-top:1px solid var(--line);padding-top:20px}#save-information{white-space:normal}
@media(max-width:700px){#players-overview{gap:7px 12px;padding:7px 12px;font-size:.75rem}#memory-status{margin-left:0;flex-basis:100%;order:3}#players-overview .button{margin-left:0;font-size:.75rem}.name-row input,.profile-count select{width:58%}}
@media(max-height:500px) and (orientation:landscape){#players-overview{padding:4px 10px}#memory-status{display:none}}
/* Shared TV screen and a phone controller without video streaming. */
.tv-panel{width:min(620px,calc(100vw - 36px));border-color:#6399c5}.tv-connect{display:grid;grid-template-columns:210px 1fr;gap:24px;align-items:center}.tv-connect svg{display:block;width:100%;height:auto;border-radius:12px}.tv-instructions{line-height:1.65;font-size:.9375rem}.tv-room-code{font-size:1.8rem;letter-spacing:5px;font-weight:800;margin:16px 0 8px;color:#ffa27d}#tv-players{font-size:.875rem;color:#b8e3ff;font-weight:700}#tv-players.room-full{color:#ffba9b}.tv-link{display:block;font-size:.75rem;overflow-wrap:anywhere;padding:14px 0;color:#c3e7ff;text-decoration:underline}.tv-panel>.muted{margin:14px 0 0;line-height:1.6}
.phone-mode #player-container{flex:0 0 auto;height:auto;min-height:0;background:transparent;overflow:auto}.phone-heading{padding:24px max(20px,env(safe-area-inset-left));text-align:center}.phone-heading>.tiny-label{color:#ffa27d;letter-spacing:2px}.phone-heading h3{font-size:1.65rem;letter-spacing:-.7px;margin:12px 0}.phone-heading .muted{line-height:1.6}.phone-status{font-size:.8125rem;color:#b8e3ff;margin:16px 0}.phone-name{display:flex;gap:14px;align-items:center;justify-content:center;font-size:.875rem}.phone-name input{background:#192e4a;border:1px solid #4d6e93;border-radius:10px;color:#fff;padding:12px;max-width:60%;min-width:0}.phone-mode .virtual-controls{position:static;flex:1;display:flex;align-items:center;justify-content:space-around;padding:24px max(18px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom));background:radial-gradient(ellipse at 50% 100%,#274b74,#12223b);pointer-events:auto;gap:25px}.phone-mode .virtual-controls button{height:62px;min-width:62px;background:#284461;border:1px solid #6183a3;border-radius:16px;font-size:1rem;box-shadow:0 5px 0 #080e19;touch-action:none}.phone-mode .virtual-controls button:active{background:#82c7ff;color:#112338;box-shadow:none;transform:translateY(3px)}.phone-mode .dpad{grid-template-columns:repeat(3,62px);grid-template-rows:repeat(2,62px);gap:7px}.phone-mode .action-pad{grid-template-columns:repeat(4,62px);gap:9px}.phone-mode .action-pad button:nth-last-child(-n+4){border-radius:50%;color:#ffbe9f}.phone-mode #controls-panel{z-index:10}.phone-mode .player-actions{overflow-x:auto}.phone-mode .player-toolbar{flex-shrink:0}.phone-mode #memory-status{display:none}
@media(max-width:600px){.tv-connect{grid-template-columns:140px 1fr;gap:16px}.tv-room-code{font-size:1.4rem;letter-spacing:3px}.tv-instructions{font-size:.8125rem}.tv-panel .panel-heading{align-items:flex-start}.tv-panel .panel-heading h3{font-size:1.15rem}.phone-heading{padding:20px 16px 12px}.phone-heading h3{font-size:1.35rem}.phone-mode .virtual-controls{flex-direction:column;gap:26px;justify-content:center;padding:20px 16px max(24px,env(safe-area-inset-bottom))}.phone-mode .action-pad{grid-template-columns:repeat(4,58px)}.phone-mode .virtual-controls button{min-width:58px;height:58px}.phone-mode .dpad{grid-template-columns:repeat(3,58px);grid-template-rows:repeat(2,58px)}.phone-mode #room-strip{font-size:.6875rem}.phone-mode #copy-room{display:none}}
@media(max-height:600px) and (orientation:landscape){.phone-mode .phone-heading{padding:7px 16px}.phone-mode .phone-heading>.tiny-label,.phone-mode .phone-heading>.muted,.phone-mode .phone-heading h3{display:none}.phone-mode .phone-heading{display:flex;align-items:center;justify-content:space-around;gap:16px}.phone-mode .phone-status{margin:8px 0;font-size:.75rem}.phone-mode .phone-name{font-size:.75rem}.phone-mode .phone-name input{padding:8px}.phone-mode .virtual-controls{position:static;flex-direction:row;padding:12px 28px max(16px,env(safe-area-inset-bottom));gap:20px}.phone-mode #players-overview{display:none}.phone-mode #room-strip{padding:5px 12px}.phone-mode #room-members,.phone-mode #copy-room{display:none}.phone-mode .playing-heading{display:none}.phone-mode .player-actions{justify-content:center}.phone-mode .virtual-controls button{height:52px;min-width:52px}.phone-mode .dpad{grid-template-columns:repeat(3,52px);grid-template-rows:repeat(2,52px)}.phone-mode .action-pad{grid-template-columns:repeat(4,52px)}}
.phone-mode{overflow:auto!important}.phone-mode #players-overview,.phone-mode #room-strip{display:none}.phone-mode .virtual-controls{flex:1 0 auto}
#startup-panel{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 18px;background:#192b46;border-bottom:1px solid var(--line);font-size:.8125rem;flex-shrink:0}#startup-status{flex:1;min-width:180px;line-height:1.5}#startup-panel .button{font-size:.75rem;white-space:normal}#startup-details{flex-basis:100%;white-space:pre-wrap;overflow-wrap:anywhere;max-height:180px;overflow:auto;font-size:.75rem;line-height:1.6;margin:4px 0;padding:12px;background:#101c30;user-select:text}

/* Explicit sizing and dialogs for older television browsers. */
dialog:not([open]){display:none}dialog{top:0;right:0;bottom:0;left:0}.small-dialog{height:auto;height:max-content}.dialog-fallback{position:fixed;z-index:1001}.dialog-fallback-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000c;z-index:1000}.small-dialog.dialog-fallback{top:50%;left:50%;right:auto;bottom:auto;transform:translate(-50%,-50%);margin:0;width:calc(100vw - 28px);max-width:560px;height:auto;max-height:calc(100vh - 28px);max-height:calc(100dvh - 28px)}.launch-error{border:1px solid #975f60;background:#2d2637;border-radius:10px;padding:16px;margin:0 0 20px;line-height:1.6}.launch-error p{margin:0 0 8px}.launch-error summary{cursor:pointer}.launch-error pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.75rem;max-height:180px;overflow:auto}
