[data-icon]:before{content:"";width:var(--icon-size,20px);height:var(--icon-size,20px);-webkit-mask:var(--icon) center / contain no-repeat;-webkit-mask:var(--icon) center / contain no-repeat;mask:var(--icon) center / contain no-repeat;background:currentColor;flex:none;display:inline-block}[data-icon=back]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z'/%3E%3C/svg%3E")}[data-icon=close]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z'/%3E%3C/svg%3E")}[data-icon=play]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 5v14l11-7z'/%3E%3C/svg%3E")}[data-icon=pause]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 19h4V5H6v14zm8-14v14h4V5h-4z'/%3E%3C/svg%3E")}[data-icon=gear]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58a.49.49 0 0 0 .12-.61l-1.92-3.32a.488.488 0 0 0-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54a.484.484 0 0 0-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58a.49.49 0 0 0-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z'/%3E%3C/svg%3E")}[data-icon=trophy]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 5h-2V3H7v2H5c-1.1 0-2 .9-2 2v1c0 2.55 1.92 4.63 4.39 4.94.63 1.5 1.98 2.63 3.61 2.96V19H7v2h10v-2h-4v-3.1c1.63-.33 2.98-1.46 3.61-2.96C19.08 12.63 21 10.55 21 8V7c0-1.1-.9-2-2-2zM5 8V7h2v3.82C5.84 10.4 5 9.3 5 8zm14 0c0 1.3-.84 2.4-2 2.82V7h2v1z'/%3E%3C/svg%3E")}[data-icon=mic]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 14c1.66 0 2.99-1.34 2.99-3L15 5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3zm5.3-3c0 3-2.54 5.1-5.3 5.1S6.7 14 6.7 11H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c3.28-.48 6-3.3 6-6.72h-1.7z'/%3E%3C/svg%3E")}[data-icon=mic-off]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 11h-1.7c0 .74-.16 1.43-.43 2.05l1.23 1.23c.56-.98.9-2.09.9-3.28zm-4.02.17c0-.06.02-.11.02-.17V5c0-1.66-1.34-3-3-3S9 3.34 9 5v.18l5.98 5.99zM4.27 3L3 4.27l6.01 6.01V11c0 1.66 1.33 3 2.99 3 .22 0 .44-.03.65-.08l1.66 1.66c-.71.33-1.5.52-2.31.52-2.76 0-5.3-2.1-5.3-5.1H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c.91-.13 1.77-.45 2.54-.9L19.73 21 21 19.73 4.27 3z'/%3E%3C/svg%3E")}[data-icon=group]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z'/%3E%3C/svg%3E")}[data-icon=person]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z'/%3E%3C/svg%3E")}[data-icon=enter]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M11 7L9.6 8.4l2.6 2.6H2v2h10.2l-2.6 2.6L11 17l5-5-5-5zm9 12h-8v2h8c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-8v2h8v14z'/%3E%3C/svg%3E")}[data-icon=leave]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17 7l-1.41 1.41L18.17 11H8v2h10.17l-2.58 2.58L17 17l5-5zM4 5h8V3H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h8v-2H4V5z'/%3E%3C/svg%3E")}[data-icon=share]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92 1.61 0 2.92-1.31 2.92-2.92s-1.31-2.92-2.92-2.92z'/%3E%3C/svg%3E")}[data-icon=link]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z'/%3E%3C/svg%3E")}[data-icon=search]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z'/%3E%3C/svg%3E")}[data-icon=keyboard]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 5H4c-1.1 0-1.99.9-1.99 2L2 17c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm-9 3h2v2h-2V8zm0 3h2v2h-2v-2zM8 8h2v2H8V8zm0 3h2v2H8v-2zm-1 2H5v-2h2v2zm0-3H5V8h2v2zm9 7H8v-2h8v2zm0-4h-2v-2h2v2zm0-3h-2V8h2v2zm3 3h-2v-2h2v2zm0-3h-2V8h2v2z'/%3E%3C/svg%3E")}[data-icon=replay]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 5V1L7 6l5 5V7c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6H4c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8z'/%3E%3C/svg%3E")}[data-icon=home]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z'/%3E%3C/svg%3E")}[data-icon=plus]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z'/%3E%3C/svg%3E")}[data-icon=wheel]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm0 2.2a7.8 7.8 0 0 1 7.6 6.1l-4.9 1a2.9 2.9 0 0 0-5.4 0l-4.9-1A7.8 7.8 0 0 1 12 4.2zM4.3 12.6l4.9 1.3a2.9 2.9 0 0 0 1.7 1.8v4a7.8 7.8 0 0 1-6.6-7.1zm8.8 7.1v-4a2.9 2.9 0 0 0 1.7-1.8l4.9-1.3a7.8 7.8 0 0 1-6.6 7.1z'/%3E%3C/svg%3E")}[data-icon=map]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.5 3l-.16.03L15 5.1 9 3 3.36 4.9c-.21.07-.36.25-.36.48V20.5c0 .28.22.5.5.5l.16-.03L9 18.9l6 2.1 5.64-1.9c.21-.07.36-.25.36-.48V3.5c0-.28-.22-.5-.5-.5zM15 19l-6-2.11V5l6 2.11V19z'/%3E%3C/svg%3E")}[data-icon=volume]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z'/%3E%3C/svg%3E")}[data-icon=check]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/%3E%3C/svg%3E")}:root{--paper:#f4e6c8;--panel:#fbf4e3;--primary:#1d6f7c;--accent:#f2a33a;--primary-dark:#134e58;--ink:#1b1a19;--muted:#6b5f4a;--line:#dcc9a2;--danger:#a8321f;--display:"Arial Black", "Segoe UI Black", "Helvetica Neue", system-ui, sans-serif;--body:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--edge:24px;--control:42px;--gap:12px;--menu-w:420px;--gutter:clamp(20px, 5vw, 80px)}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}html,body,button,input,select,label{touch-action:manipulation}*{box-sizing:border-box}html,body{overscroll-behavior:none;background:var(--paper);height:100%;color:var(--ink);font-family:var(--body);-webkit-user-select:none;user-select:none;margin:0;font-size:16px;overflow:hidden}body{-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}#stage,#stage canvas{width:100%;height:100%;display:block;position:fixed;inset:0}.hidden{display:none!important}.i18n-pending .screen{visibility:hidden;animation:0s 3s forwards i18n-reveal}@keyframes i18n-reveal{to{visibility:visible}}.screen{padding:max(var(--edge), var(--safe-top)) max(var(--edge), var(--safe-right)) max(var(--edge), var(--safe-bottom)) max(var(--edge), var(--safe-left));justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow-y:auto}#lobby,#boards,#rooms,#keys,#loading{background:var(--paper)}#result{background:#f4e6c8e6}.page{gap:var(--gap);flex-direction:column;width:min(1080px,100%);height:100%;min-height:0;max-height:700px;display:flex}.page.narrow{width:min(760px,100%)}.scroll{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:1 1 0;min-height:0;overflow-y:auto}.card{width:min(var(--menu-w), 100%);gap:var(--gap);flex-direction:column;margin-block:auto;display:flex}.card.dialog{background:var(--panel);border:2px solid var(--ink);box-shadow:6px 6px 0 var(--accent);padding:20px}h1{font-family:var(--display);letter-spacing:-.02em;color:var(--primary);text-shadow:4px 4px 0 var(--accent);margin:0;font-size:clamp(40px,4vw,52px);font-style:italic;font-weight:900;line-height:.95}h1 span{color:var(--accent);text-shadow:4px 4px 0 var(--primary)}h2{font-family:var(--display);color:var(--primary);text-transform:uppercase;margin:0;font-size:22px;font-weight:400;line-height:1.1}h3{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0;font-size:13px;font-weight:700}.tagline{color:var(--muted);margin:6px 0 0;font-size:17px}.error{color:var(--danger);margin:0;font-size:14px;font-weight:600}.error:empty{display:none}.hint{color:var(--muted);margin:0;font-size:14px;line-height:1.35}.hint:empty{display:none}.label{color:var(--muted);font-size:12px;display:block}label{color:var(--muted);flex-direction:column;gap:4px;font-size:13px;display:flex}input,select,button{font:inherit;color:var(--ink);border:2px solid var(--ink);min-height:var(--control);background:#fff;border-radius:0;min-width:0;padding:0 12px}input{-webkit-user-select:text;user-select:text}input::placeholder{color:#a89a7e}.native-select{opacity:0;pointer-events:none;border:0;width:1px;height:1px;min-height:0;padding:0;position:absolute}button{cursor:pointer;white-space:nowrap;background:var(--panel);box-shadow:3px 3px 0 var(--ink);justify-content:center;align-items:center;gap:8px;font-weight:700;transition:transform 60ms,box-shadow 60ms,background .12s;display:inline-flex}button:hover:not(:disabled){background:#fff}button:active:not(:disabled){box-shadow:0 0 0 var(--ink);transform:translate(3px,3px)}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--primary);outline-offset:2px}button.primary{background:var(--primary);color:#fff}button.primary:hover:not(:disabled){background:var(--primary-dark)}button.big{min-height:52px;font-size:18px}button:disabled{opacity:.45;cursor:default}button.selected,button[aria-selected=true]{background:var(--ink);color:var(--accent)}button.select-button{box-shadow:none;text-align:left;background:#fff;justify-content:space-between;padding:0 12px;font-weight:400;position:relative;transform:none}button.select-button>span{text-overflow:ellipsis;min-width:0;overflow:hidden}button.select-button:after{content:"";background:currentColor;flex:none;width:12px;height:8px;transition:transform .12s;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='black' stroke-width='2'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='black' stroke-width='2'/%3E%3C/svg%3E") 50%/contain no-repeat}button.select-button[aria-expanded=true]{background:var(--panel);outline:3px solid var(--primary);outline-offset:2px}button.select-button[aria-expanded=true]:after{transform:rotate(180deg)}button.select-button:disabled{opacity:.6}.select-layer{z-index:60;position:fixed;inset:0}.select-list{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;border:2px solid var(--ink);box-shadow:5px 5px 0 var(--accent);background:#fff;position:fixed;overflow-y:auto}.select-option{border-bottom:1px solid var(--line);cursor:pointer;align-items:center;gap:10px;min-height:40px;padding:6px 12px;font-size:15px;display:flex}.select-option:last-child{border-bottom:0}.select-option:before{content:"";flex:none;width:14px;height:14px}.select-option[aria-selected=true]{color:var(--primary-dark);font-weight:700}.select-option[aria-selected=true]:before{background:var(--primary);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/%3E%3C/svg%3E") 50%/contain no-repeat}.select-option.active{background:var(--ink);color:var(--accent)}.select-option.active[aria-selected=true]:before{background:var(--accent)}.select-option[aria-disabled=true]{color:#a89a7e;cursor:default}.select-layer.sheet{padding:max(12px, var(--safe-top)) max(12px, var(--safe-right)) max(12px, var(--safe-bottom)) max(12px, var(--safe-left));background:#1b1a198c;display:flex}.select-sheet{border:2px solid var(--ink);width:min(420px,100%);max-height:100%;box-shadow:6px 6px 0 var(--accent);background:#fff;flex-direction:column;margin:auto;display:flex}.select-title{background:var(--ink);color:var(--accent);font-family:var(--display);text-transform:uppercase;flex:none;padding:10px 14px;font-size:15px}.select-sheet .select-list{min-height:0;box-shadow:none;border:0;flex:auto;position:static}.select-sheet .select-option{min-height:46px;font-size:16px}button.icon-only{width:var(--control);flex:none;padding:0}input:disabled{opacity:.6;cursor:default}input[type=range]{min-height:28px;accent-color:var(--primary);background:0 0;border:0;padding:0}label.check{color:var(--ink);cursor:pointer;flex-direction:row;align-items:center;gap:8px;font-size:14px}label.check input{width:20px;height:20px;min-height:0;accent-color:var(--primary);flex:none;padding:0}label.check.boxed{min-height:var(--control);border:2px solid var(--ink);white-space:nowrap;background:#fff;align-self:flex-end;padding:0 10px;font-size:13px}.row{gap:8px;display:flex}.row>button{flex:1}.fields{gap:10px;display:flex}.fields>label{flex:1 1 0;min-width:0}.fields>label.check{flex:none}.fields .select-button,.fields input:not([type=checkbox]){width:100%}.spacer{flex:1 1 0}.segmented,.tabs{display:flex}.segmented button{box-shadow:none;flex:auto;transform:none!important}.tabs button{box-shadow:none;flex:1 1 0;transform:none!important}.segmented button+button,.tabs button+button{border-left-width:0}.bar{flex:none;align-items:center;gap:10px;min-width:0;display:flex}.bar h2{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.chip{border:1px solid var(--line);background:var(--panel);color:var(--muted);white-space:nowrap;text-overflow:ellipsis;min-width:0;padding:4px 10px;font-size:13px;overflow:hidden}#players,.board,#rooms-list,#keys-list{margin:0;padding:0;list-style:none}.board{border-top:2px solid var(--ink)}.board li{border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;justify-content:space-between;gap:12px;padding:6px 0;font-size:14px;display:flex}.board li .when{color:var(--muted);flex:none;align-self:center;margin-left:auto;font-size:12px}.board li.empty{color:var(--muted)}.board li span:first-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.loading{font-family:var(--display);color:var(--primary);text-align:center;margin:auto;font-size:clamp(26px,5vw,40px)}#menu{padding-left:max(var(--gutter), var(--safe-left));justify-content:flex-start}#version{left:max(10px, var(--safe-left));bottom:max(6px, var(--safe-bottom));color:var(--muted);opacity:.55;pointer-events:none;font-size:11px;position:fixed}.name-field input{font-weight:700}.tabs button{background:var(--paper);padding:0 6px;font-size:15px}.tabs button[aria-selected=true]{background:var(--ink);color:var(--accent)}.panel{border:2px solid var(--ink);background:var(--panel);box-shadow:6px 6px 0 var(--accent);border-top:0;flex-direction:column;gap:10px;padding:14px;display:flex}.panel-note{color:var(--muted);margin:0;font-size:13px;line-height:1.35}.panel-note.best{color:var(--primary-dark);font-weight:600}.panel-note:empty{display:none}#code{text-transform:uppercase;letter-spacing:.2em;text-align:center;flex:0 0 120px;font-weight:700}#code::placeholder{letter-spacing:.1em}.panel h3.divided{border-top:1px solid var(--line);margin-top:4px;padding-top:10px}@media (max-width:720px){.join-row>button:before{display:none}.join-row>button{font-size:14px}}.join-row{flex-wrap:wrap}.join-row>#join,.join-row>#open-rooms{flex:auto;padding:0 10px}.create-row>label.check.boxed{align-self:stretch}.panel #code{flex:0 0 96px}.menu-foot{gap:10px;margin-top:4px;display:flex}.menu-foot button{flex:1 1 0}.room-code{white-space:nowrap;flex-direction:column;line-height:1;display:flex}.code{font-family:var(--display);letter-spacing:.08em;color:var(--primary);-webkit-user-select:text;user-select:text;font-size:34px;font-weight:400;line-height:1}.lobby-body{flex:1 1 0;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:20px;min-height:0;display:grid}.lobby-cars,.lobby-side{flex-direction:column;gap:10px;min-height:0;display:flex}.lobby-side{border:2px solid var(--ink);background:var(--panel);box-shadow:6px 6px 0 var(--accent);padding:14px}#cars{flex-direction:column;gap:8px;display:flex}.car-card{border:2px solid var(--ink);background:var(--panel);border-left-width:14px;align-items:center;gap:8px;padding:7px 8px;display:flex}.car-card>.car-no{white-space:nowrap;flex:none;font-size:0;font-weight:700}.car-no:after{content:attr(data-label);font-size:14px}.car-card button>span{text-overflow:ellipsis;min-width:0;overflow:hidden}.car-card>button{box-shadow:none;background:#fff;flex:1 1 0;justify-content:flex-start;padding:0 10px;font-size:14px;overflow:hidden}.car-card>button.bot{background:var(--panel);flex:none}.car-card>.bot-seat{color:var(--muted);flex:1 1 0;font-weight:400}#players{flex-wrap:wrap;gap:6px;display:flex}#players li{border:1px solid var(--line);background:var(--panel);gap:6px;padding:3px 9px;font-size:13px;display:flex}#players li span+span{color:var(--muted)}#players li.empty{color:var(--muted);border-style:dashed}.lobby-board{flex-direction:column;flex:1 1 0;gap:6px;min-height:0;display:flex}.lobby-board .board{flex:1 1 0;min-height:0;overflow-y:auto}#boards-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));align-content:start;gap:16px 24px;padding-right:6px;display:grid}.board-card h3{color:var(--ink);text-transform:none;letter-spacing:0;margin-bottom:4px;font-size:15px}#rooms-list{flex-direction:column;gap:8px;padding:0 6px 6px 0;display:flex}#rooms-list li{border:2px solid var(--ink);background:var(--panel);flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 12px;display:flex}#rooms-list .room-info{flex:220px;min-width:0}#rooms-list .room-info strong{display:block}#rooms-list .room-info span{color:var(--muted);font-size:13px}#rooms-list input{flex:0 160px}#keys-list{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:6px 24px;padding:0 6px 6px 0;display:grid}#keys-list li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding-bottom:6px;font-size:14px;display:flex}#keys-list button{min-height:36px;box-shadow:none;flex:0 0 132px}#keys-list button.waiting{background:var(--ink);color:var(--accent)}.modal{z-index:30;padding:max(16px, var(--safe-top)) max(16px, var(--safe-right)) max(16px, var(--safe-bottom)) max(16px, var(--safe-left));background:#1b1a198c;display:flex;position:fixed;inset:0;overflow-y:auto}.modal .card{width:min(560px,100%);margin:auto}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px;display:grid}body.touch .mouse-only{display:none}.result-card{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px 28px;width:min(760px,100%);max-height:100%;display:grid}.result-main,.result-boards{flex-direction:column;gap:10px;min-height:0;display:flex}.result-boards{overflow-y:auto}.result-main p{margin:0}#result-detail{font-size:14px;line-height:1.4}#result-continue{margin-top:auto}.time{font-family:var(--display);color:var(--primary);font-variant-numeric:tabular-nums;font-size:clamp(44px,7vw,68px);line-height:1}#hud{inset:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);pointer-events:none;color:#fff;position:fixed}#hud-status{opacity:.6;text-shadow:0 1px 2px #0009;font-size:13px;position:absolute;top:10px;left:14px}#crosshair{background:#ffffff73;border-radius:50%;width:6px;height:6px;margin:-3px;transition:transform .1s;position:fixed;top:50%;left:50%}#crosshair.active{box-shadow:0 0 0 2px var(--accent);background:#fff;transform:scale(2.2)}#crosshair-label{text-align:center;text-shadow:0 1px 3px #000000e6;font-size:15px;font-weight:700;position:fixed;top:calc(50% + 18px);left:0;right:0}#problems{flex-wrap:wrap;justify-content:center;gap:5px 6px;width:min(900px,94vw);display:flex;position:absolute;bottom:40px;left:50%;transform:translate(-50%)}.problem{white-space:nowrap;color:#fffc;background:#1b1a199e;border-bottom:2px solid #ffffff59;padding:3px 9px;font-size:13px}.problem.mine{border-bottom-color:var(--accent);color:#fff;background:#1b1a19cc;font-weight:700}#banner{text-align:center;font-family:var(--display);color:#fff;-webkit-text-stroke:3px var(--primary);text-shadow:0 6px #00000040;font-size:clamp(64px,17vh,150px);font-style:italic;position:absolute;top:22%;left:0;right:0}#toasts{flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%)}.toast{background:#1b1a19d1;padding:8px 14px;font-weight:700;animation:3.2s forwards toast}@keyframes toast{0%,85%{opacity:1}to{opacity:0}}#hint{text-align:center;text-shadow:0 1px 3px #000c;font-size:14px;transition:opacity 1s;position:absolute;bottom:16px;left:0;right:0}.hud-button{pointer-events:auto;color:#fff;background:#1b1a198c;border-color:#ffffff80;min-height:36px;padding:6px 10px;font-size:13px;font-weight:400;position:absolute;top:8px;right:12px}.hud-button:hover:not(:disabled){background:#1b1a19cc}#hud-audio{pointer-events:auto;opacity:.55;background:#1b1a1973;flex-direction:column;gap:4px;padding:6px 10px;transition:opacity .2s;display:flex;position:absolute;top:52px;right:12px}#hud-audio:hover,#hud-audio:focus-within{opacity:1}#hud-audio label{color:#fff;flex-direction:row;justify-content:space-between;align-items:center;gap:8px;font-size:12px}#hud-audio input{width:96px}#overlay{font-family:var(--display);text-align:center;background:#1b1a1999;justify-content:center;align-items:center;padding:24px;font-size:36px;display:flex;position:fixed;inset:0}@media (prefers-reduced-motion:reduce){#crosshair,#hint{transition:none}}#stage canvas{touch-action:none}#touch,#rotate{display:none}body.touch #touch{display:block}#touch{--pad-bottom:max(4px, calc(14px - var(--safe-bottom)))}#touch .pad{pointer-events:none;gap:10px;display:flex;position:absolute}#touch .steer{left:14px;bottom:var(--pad-bottom)}#touch .pedals{right:14px;bottom:var(--pad-bottom);flex-wrap:wrap;justify-content:flex-end;width:174px}#touch .extra{top:34px;left:14px}#touch button{pointer-events:auto;touch-action:none;color:#fff;-webkit-tap-highlight-color:transparent;background:#1b1a196b;border:2px solid #ffffff8c;border-radius:14px;width:82px;height:82px;min-height:0;padding:0;font-size:30px}#touch button.down{background:#f2a33abf;border-color:#fff}#touch button.wide{letter-spacing:.04em;width:174px;height:44px;font-size:14px}#touch .extra button{width:auto;height:38px;padding:0 12px;font-size:13px;font-weight:400}#touch[data-mode=navigator] .steer,#touch[data-mode=navigator] .pedals,#touch[data-mode=navigator] [data-press=reset],#touch[data-mode=navigator] [data-press=horn],#touch:not([data-mode=solo]) .solo-only,body.touch #crosshair,body.touch #crosshair-label{display:none}body.touch #problems{flex-flow:column;align-items:flex-end;gap:4px;width:auto;max-width:46vw;inset:52px 12px auto auto;transform:none}body.touch .problem{text-overflow:ellipsis;max-width:100%;overflow:hidden}body.touch #toasts{max-width:44vw;top:8px}body.touch #hud-status{text-overflow:ellipsis;white-space:nowrap;max-width:28vw;overflow:hidden}@media (max-width:720px){body.touch #toasts{max-width:34vw}}body.touch .toast{text-align:center;padding:6px 12px;font-size:13px}body.touch #hud-mute{gap:0;width:44px;padding:0;font-size:0}body.touch #hud-channel{right:64px}body.touch #hint{font-size:12px;bottom:4px;left:190px;right:190px}body.touch #hud-audio label:has(.mouse-speed){display:none}@media (orientation:portrait){body.touch.in-game #rotate{z-index:20;background:var(--paper);color:var(--primary);font-family:var(--display);text-align:center;justify-content:center;align-items:center;padding:24px;font-size:30px;display:flex;position:fixed;inset:0}}#hud-channel{right:190px}#hud-pause{top:34px;left:12px;right:auto}body.demo #stage canvas,#demo{inset:auto;left:var(--demo-left);top:calc(50dvh - var(--demo-h) / 2);width:var(--demo-w);height:var(--demo-h);position:fixed}#demo{border:3px solid var(--ink);box-shadow:8px 8px 0 var(--accent);pointer-events:none;overflow:hidden}#demo-tag{background:var(--ink);color:var(--accent);font-family:var(--display);letter-spacing:.06em;text-transform:uppercase;padding:5px 12px;font-size:13px;position:absolute;top:0;left:0}#demo-loading{color:var(--muted);background:var(--paper);justify-content:center;align-items:center;margin:0;display:flex;position:absolute;inset:0}#demo.ready #demo-loading{display:none}#demo-caption{color:#fff;background:#1b1a19d1;flex-direction:column;gap:3px;padding:12px 16px 10px;display:none;position:absolute;bottom:0;left:0;right:0}#demo.ready #demo-caption{display:flex}#demo-title{color:var(--accent);font-size:clamp(16px,1.5vw,22px)}#demo-text{font-size:clamp(13px,1.1vw,16px);line-height:1.35}#demo-dots{gap:6px;margin-top:6px;display:flex}#demo-dots i{background:#ffffff4d;width:22px;height:4px}#demo-dots i.on{background:var(--accent)}#hud-place{height:36px;font-family:var(--display);color:var(--accent);background:#1b1a1999;padding:0 12px;font-size:20px;line-height:36px;position:absolute;top:34px;left:150px}#hud-talk{touch-action:none;top:78px;left:12px;right:auto}#hud-talk.on,#talk.on{background:var(--accent);color:var(--ink);border-color:var(--ink)}#talk{touch-action:none}#confetti{pointer-events:none;z-index:3;position:fixed;inset:0;overflow:hidden}#confetti i{opacity:.95;width:10px;height:16px;animation:linear forwards confetti-fall;position:absolute;top:-24px}@keyframes confetti-fall{to{transform:translate3d(var(--drift), 108dvh, 0) rotate(var(--spin));opacity:.9}}@media (prefers-reduced-motion:reduce){#confetti{display:none}}body.touch #touch .extra{top:78px}body.touch #hud-talk{top:124px}.hud-button,#touch button{box-shadow:none;transition:none;transform:none!important}.hud-button:before{--icon-size:16px}#crash{left:50%;bottom:max(12px, var(--safe-bottom));z-index:40;background:var(--primary-dark);color:#fff;padding:8px 14px;font-size:14px;position:fixed;transform:translate(-50%)}#pause{z-index:5;padding:max(16px, var(--safe-top)) max(16px, var(--safe-right)) max(16px, var(--safe-bottom)) max(16px, var(--safe-left));pointer-events:auto;background:#f4e6c8d1;display:flex;position:fixed;inset:0;overflow-y:auto}#pause .card{width:min(340px,100%);margin:auto}:root{--demo-left:calc(max(var(--gutter), var(--safe-left)) + var(--menu-w) + 56px);--demo-right:max(clamp(16px, 4vw, 72px), var(--safe-right));--demo-w:calc(100vw - var(--demo-left) - var(--demo-right));--demo-h:min(calc(100dvh - 96px), calc(var(--demo-w) * .6))}body:not(.demo) .menu-card{position:relative}@media (max-height:720px){.panel-note:not(.best){display:none}}@media (max-height:620px){:root{--edge:14px;--gap:8px}h2{font-size:18px}.panel-note:not(.best){display:none}.card.dialog{padding:14px}.code{font-size:26px}.room-code .label{font-size:11px}button.big{min-height:46px;font-size:16px}}@media (max-height:620px) and (min-width:600px){#menu{padding-left:max(var(--edge), var(--safe-left));justify-content:center}.menu-card{grid-template-rows:auto auto 1fr auto;grid-template-columns:minmax(200px,270px) minmax(300px,400px);column-gap:24px;width:auto;max-width:100%;display:grid}.menu-card>*{grid-column:1}.menu-card h1{text-shadow:3px 3px 0 var(--accent);font-size:clamp(34px,6vw,46px)}.menu-card h1 span{text-shadow:3px 3px 0 var(--primary)}.menu-card .tagline{font-size:14px}.menu-card .mode{grid-area:1/2/-1;align-self:center}.menu-card .menu-foot{flex-direction:column;grid-row:4;gap:8px}.menu-foot button{flex:none}.panel{gap:6px;padding:8px 12px}.panel h3.divided{margin-top:2px;padding-top:6px}.lobby-body{gap:14px}.lobby-cars h3,.lobby-board{display:none}#cars{gap:6px}.car-card{padding:4px 6px}.lobby-side{justify-content:space-between;gap:8px;padding:10px 12px}.lobby-side .hint{font-size:13px}.settings-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 14px}.modal .card{width:min(680px,100%)}#pause .card{grid-template-columns:1fr 1fr;width:min(560px,100%);display:grid}#pause .card>h2,#pause .card>.hint{grid-column:1/-1}}@media (max-width:1000px){.car-card>.car-no{font-size:14px}.car-no:after{content:"."}.car-card>button.bot{width:var(--control);justify-content:center;padding:0}.car-card>button.bot>span{display:none}.car-card>.bot-seat+button.bot{width:auto;padding:0 10px}.car-card>.bot-seat+button.bot>span{display:inline}.lobby-body{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}button.collapse,.bar #copy-link{width:var(--control);flex:none;gap:0;padding:0;font-size:0}#voice-status{flex:0 auto}.segmented button{padding:0 8px;font-size:13px}}@media (max-width:599px){:root{--edge:14px}#menu{padding-left:max(var(--edge), var(--safe-left));justify-content:center}.menu-card{background:#f4e6c8eb;padding:14px}h1{font-size:44px}.bar{flex-wrap:wrap}.lobby-body{flex-direction:column;padding:0 6px 6px 0;display:flex;overflow-y:auto}.lobby-cars,.lobby-side{flex:none}#players li.empty{display:none}.lobby-side{gap:8px;padding:10px 12px}.lobby-cars h3,.lobby-board{display:none}#keys-list,.settings-grid{grid-template-columns:minmax(0,1fr)}.result-card{grid-template-rows:none;grid-template-columns:minmax(0,1fr);overflow-y:auto}.result-boards{overflow:visible}}body.touch{--control:44px}body.touch #hud-audio{display:none}body.touch button:hover:not(:disabled):not(.primary):not(.selected):not([aria-selected=true]){background:var(--panel)}#splash{display:none}.splash-on #splash{--t:4.2s;z-index:100;background:var(--paper);display:block;position:fixed;inset:0;overflow:hidden}#splash canvas{opacity:0;width:100%;height:100%;position:absolute;inset:0}#splash .sp-wipe{left:var(--wx,50%);top:var(--wy,60%);background:var(--paper);border-radius:50%;width:300vmax;height:300vmax;margin:-150vmax;position:absolute;transform:scale(0)}.sp-logo{opacity:0;justify-content:center;align-items:center;gap:3.5vmin;display:flex;position:absolute;inset:0}.sp-logo img{filter:drop-shadow(1vmin 1vmin #1b1a19);height:34vmin}.sp-logo p{font-family:var(--display);letter-spacing:-.02em;color:var(--primary);text-shadow:.9vmin .9vmin 0 var(--accent);margin:0;font-size:15vmin;font-style:italic;font-weight:900;line-height:.95}.sp-logo p span{color:var(--accent);text-shadow:.9vmin .9vmin 0 var(--primary);display:block}#splash.sp-play,#splash.sp-play canvas,#splash.sp-play .sp-wipe,#splash.sp-play .sp-logo{animation:var(--t) linear both}#splash.sp-play{animation-name:sp-out}#splash.sp-play canvas{animation-name:sp-canvas}#splash.sp-play .sp-wipe{animation-name:sp-wipe}#splash.sp-play .sp-logo{animation-name:sp-logo}#splash.sp-still{animation:1.8s linear both sp-out}#splash.sp-still .sp-logo{opacity:1}@keyframes sp-out{0%,92%{opacity:1}to{opacity:0}}@keyframes sp-canvas{0%{opacity:0}5%,to{opacity:1}}@keyframes sp-wipe{0%,66%{animation-timing-function:cubic-bezier(.5,0,.3,1);transform:scale(0)}77%,to{transform:scale(1)}}@keyframes sp-logo{0%,71%{opacity:0;animation-timing-function:cubic-bezier(.2,1.6,.4,1);transform:scale(.6)rotate(-4deg)}79%,to{opacity:1;transform:scale(1)rotate(0)}}
