:root{color-scheme:dark;--bg:#111319;--panel:#1b1e27;--panel-alt:#222632;--line:#303441;--text:#eff0f6;--muted:#a5a9bc;--accent:#a4acff;--accent-bright:#b7bdff;--green:#91dab3;--danger:#ffa2aa;--radius:18px;font-family:Inter,"Pretendard","Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:14px;line-height:1.6}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:3px}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}ul,ol{padding:0;margin:0;list-style:none}[hidden]{display:none!important}.muted{color:var(--muted)}.site-header{height:88px;max-width:1512px;padding:0 48px;display:flex;align-items:center;justify-content:space-between;margin:auto;border-bottom:1px solid #242731}.brand{display:flex;align-items:center;gap:12px;font-size:24px;font-weight:850;letter-spacing:-1.3px}.brand-sub{display:inline-block;margin-left:13px;padding-left:13px;border-left:1px solid var(--line);font-size:12px;letter-spacing:-.2px;color:var(--muted);font-weight:500}.brand-dice{width:33px;height:33px;border-radius:9px;background:var(--accent);display:block;position:relative;transform:rotate(-8deg)}.brand-dice i{position:absolute;width:5px;height:5px;border-radius:50%;background:#24283b;left:8px;top:8px}.brand-dice i:nth-child(2){left:14px;top:14px}.brand-dice i:nth-child(3){left:20px;top:20px}.header-note{color:var(--muted);font-size:12px;display:flex;align-items:center;gap:9px}.status-dot,.chat-live-dot{width:6px;height:6px;border-radius:50%;background:var(--green);display:inline-block}.home-screen{max-width:1136px;margin:0 auto;padding:96px 32px 26px;display:grid;grid-template-columns:1.2fr 1fr;gap:64px 90px}.hero-copy{padding-top:16px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:var(--muted)}.hero-copy>.eyebrow{display:flex;align-items:center;gap:10px}.short-line{height:1px;width:28px;background:var(--accent)}.hero-copy h1{font-size:clamp(44px,4.3vw,62px);line-height:1.2;letter-spacing:-3px;margin:29px 0 25px;font-weight:850}.hero-copy h1 span{color:var(--accent)}.hero-description{color:var(--muted);font-size:15px;line-height:1.9;letter-spacing:-.3px}.game-preview{margin-top:36px;padding-top:26px;border-top:1px solid var(--line);display:flex;gap:16px;align-items:center}.preview-icon{width:60px;height:64px;border:1px solid #484b65;border-radius:14px;background:#252937;color:var(--accent);font-size:37px;font-weight:800;text-align:center;line-height:64px;transform:rotate(-6deg)}.preview-label{font-size:10px;color:var(--accent)}.game-preview h2{font-size:17px;letter-spacing:-.3px;margin-top:2px}.game-tag{display:inline-block;margin-left:6px;padding:2px 6px;border:1px solid var(--line);border-radius:5px;color:var(--muted);font-size:10px;vertical-align:middle;font-weight:400}.game-preview p{color:var(--muted);font-size:12px;margin-top:3px}.hero-details{display:flex;gap:17px;margin-top:25px;color:#84899e;font-size:11px}.hero-details span+span::before{content:"·";margin-right:17px}.entry-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:30px 32px;box-shadow:0 16px 60px #00000018}.card-topline{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.card-topline .eyebrow{color:var(--accent)}.tiny-dice{letter-spacing:3px;color:#555b70}.entry-card h2{font-size:25px;letter-spacing:-1px;margin-bottom:5px}.entry-card>.muted{font-size:13px;margin-bottom:27px}label{display:block;font-size:12px;font-weight:650;margin-bottom:8px;color:#d4d7e3}input,textarea,select{width:100%;background:#14171e;border:1px solid #373b48;border-radius:9px;color:var(--text);min-height:48px;padding:11px 13px;outline:none}input::placeholder,textarea::placeholder{color:#73798f}input:hover,textarea:hover,select:hover{border-color:#51566b}.button{min-height:44px;border:1px solid transparent;border-radius:9px;padding:10px 16px;font-size:13px;font-weight:650;display:inline-flex;align-items:center;justify-content:center;gap:12px;line-height:1.4;transition:background .15s}.button-primary{background:var(--accent);color:#171b34}.button-primary:hover:enabled{background:var(--accent-bright)}.button-secondary{background:#2b303e;border-color:#3a4052;color:var(--text)}.button-secondary:hover:enabled{background:#383f51}.button-quiet{background:transparent;color:var(--muted)}.button-quiet:hover:enabled{background:#252a36}.button-wide{width:100%;margin-top:14px;min-height:49px;justify-content:space-between}.button-small{padding:7px 11px;min-height:44px;font-size:12px;background:#303647;color:var(--text)}.button-danger{background:#482c36;color:#ffc1c6}.form-divider{display:flex;align-items:center;gap:12px;color:#848a9e;font-size:11px;margin:23px 0}.form-divider::before,.form-divider::after{content:"";height:1px;background:var(--line);flex:1}.join-controls{display:flex;gap:8px}.join-controls input{min-width:0;letter-spacing:3px;text-transform:uppercase}.join-controls button{white-space:nowrap;padding-left:19px;padding-right:19px}.entry-note{border-top:1px solid var(--line);padding-top:18px;margin-top:24px;font-size:11px;color:#9298ad;text-align:center;line-height:1.8}.home-footer{grid-column:1/-1;display:flex;justify-content:space-between;border-top:1px solid #242731;padding-top:22px;color:#747b91;font-size:10px;letter-spacing:.2px}.inline-error{color:var(--danger);font-size:12px;margin-top:14px}.connection-banner{max-width:1416px;margin:16px auto 0;padding:10px 16px;background:#393023;border:1px solid #695634;border-radius:9px;color:#f3d498;display:flex;align-items:center;justify-content:space-between;gap:15px}.room-screen{max-width:1512px;margin:auto;padding:28px 36px 36px}.room-topbar{display:flex;align-items:center;justify-content:space-between;margin:0 0 24px}.room-label{font-size:11px;color:var(--muted)}.room-heading>div{display:flex;align-items:center;gap:12px}.room-heading h1{font-size:26px;letter-spacing:3px;font-weight:750}.round-badge{font-size:10px;border:1px solid var(--line);border-radius:5px;color:var(--muted);padding:2px 7px;letter-spacing:0}.room-actions{display:flex;gap:6px}.room-grid{display:grid;grid-template-columns:minmax(190px,.76fr) minmax(360px,1.8fr) minmax(260px,1fr);gap:18px;align-items:stretch;min-height:620px}.panel{border:1px solid var(--line);border-radius:14px;background:var(--panel);min-width:0;overflow:hidden}.panel-heading{padding:20px 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:5px}.panel-heading h2{font-size:13px;display:flex;align-items:center;gap:8px}.panel-heading-note{font-size:10px;color:#858ba0}.count-badge{background:#303545;border-radius:5px;padding:1px 6px;font-size:10px;color:#c4c9da}.participants-panel{display:flex;flex-direction:column}.player-list{padding:13px 10px}.player-item{display:flex;align-items:center;gap:10px;padding:10px 7px;border-radius:8px;min-width:0}.player-item.is-me{background:#262b3a}.avatar{position:relative;width:33px;height:33px;background:#343b54;color:#c0c7ff;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex:0 0 auto}.avatar.tone-1{background:#334c45;color:#b0dfc9}.avatar.tone-2{background:#514033;color:#e9c7a3}.avatar.tone-3{background:#4a354c;color:#dbb5df}.avatar::after{content:"";position:absolute;right:-1px;bottom:-1px;width:7px;height:7px;background:var(--green);border:2px solid var(--panel);border-radius:50%}.disconnected .avatar::after{background:#787f94}.player-text{min-width:0;flex:1}.player-name{display:flex;align-items:center;gap:5px;font-size:12px;font-weight:600;min-width:0}.player-name>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.me-tag{font-size:9px;color:var(--accent);font-weight:400}.crown{color:#e4c480;font-size:13px}.player-status{font-size:10px;color:#858da3}.kick-button{padding:0;width:28px;min-width:28px;min-height:44px;border:0;background:transparent;color:#80889e;font-size:16px}.kick-button:hover{color:var(--danger)}.participants-note{display:flex;align-items:center;gap:10px;padding:20px 17px;margin-top:auto;border-top:1px solid var(--line);font-size:10px;color:#8991a8}.small-icon{font-size:25px;color:#6d7591}.game-panel{display:flex;flex-direction:column;padding:26px}.game-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.game-panel-heading h2{font-size:23px;letter-spacing:-.8px;margin-top:3px}.game-panel-heading .eyebrow{font-size:9px;letter-spacing:1.7px}.phase-label{font-size:11px;padding:5px 10px;border:1px solid #464e72;background:#2c324b;color:#c4c9ff;border-radius:20px;white-space:nowrap}.phase-progress{display:flex;gap:6px;margin:23px 0 26px}.phase-progress li{flex:1;min-width:0;font-size:9px;color:#737c92;padding-top:8px;border-top:3px solid #343a4b;white-space:nowrap}.phase-progress li.active{border-color:var(--accent);color:#d3d7ff}.phase-progress li.done{border-color:#647097}.game-stage{flex:1;min-width:0}.stage-title{font-size:22px;line-height:1.4;letter-spacing:-.6px;margin-bottom:9px}.stage-description{color:var(--muted);font-size:13px;line-height:1.85;margin-bottom:22px}.lobby-art{height:114px;display:flex;justify-content:center;align-items:center;margin:2px 0 16px}.lobby-card{width:69px;height:88px;border-radius:13px;background:#2d3349;border:1px solid #4c557c;display:flex;align-items:center;justify-content:center;font-size:35px;color:var(--accent);font-weight:800;transform:rotate(-12deg)}.lobby-card:last-child{margin-left:-20px;transform:rotate(13deg);background:#444057;border-color:#746585;color:#d7b5e7}.centered{text-align:center}.rule-chips{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin:16px 0 27px}.rule-chips span{font-size:10px;padding:5px 9px;border:1px solid var(--line);border-radius:6px;color:var(--muted)}.setting-field{border-top:1px solid var(--line);padding-top:21px;margin-top:18px}.setting-field select{min-height:46px}.help-text{color:#9199ae;font-size:11px;margin-top:10px;line-height:1.8}.stage-action{width:100%;margin-top:20px;min-height:48px}.waiting-note{padding:13px 14px;background:#252b3a;border:1px solid #3b435e;border-radius:9px;color:#bcc4dd;font-size:12px;margin-top:18px;line-height:1.8}.private-card{border:1px solid #4a506e;background:#252a3d;border-radius:11px;padding:13px 16px;margin-bottom:22px}.private-top{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:11px;color:#c8cdef}.private-card .muted{font-size:10px;margin-top:6px;color:#909bb9}#secret-content{border-top:1px solid #444a65;margin-top:12px;padding:17px 0 9px;text-align:center}#secret-role{font-size:12px;color:#c2c9fa}#secret-word{font-size:31px;font-weight:800;letter-spacing:-1px;margin:5px 0}#secret-description{font-size:11px;color:#aab4d2}#secret-content.is-liar #secret-word{color:#f3bbcd}.turn-card{background:#292f43;border:1px solid #495376;border-radius:12px;padding:21px;text-align:center;margin:18px 0}.turn-card .eyebrow{color:#a9b4dc;font-size:9px}.speaker-name{font-size:26px;letter-spacing:-.7px;margin:6px 0;color:#e5e8ff;overflow-wrap:anywhere}.talk-list{display:grid;grid-template-columns:1fr 1fr;gap:7px}.talk-list li{display:flex;align-items:center;gap:9px;padding:9px 10px;border:1px solid var(--line);border-radius:7px;min-width:0;font-size:11px;color:var(--muted)}.talk-list li span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.talk-list li.current{border-color:#636da7;background:#2e3550;color:#e3e6ff}.talk-list li.spoken{opacity:.55}.order-number{font-size:10px;color:#9da8cd}.vote-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:15px 0}.vote-option{background:#242a37;border:1px solid #3b4354;border-radius:9px;min-height:48px;color:#dbe0ef;padding:10px;font-size:12px;overflow-wrap:anywhere}.vote-option.selected{border-color:var(--accent);background:#383f60;color:#e6e9ff}.progress-copy{font-size:12px;color:var(--accent);margin:12px 0}.game-panel-footer{margin-top:24px;border-top:1px solid var(--line);padding-top:16px;display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:10px;color:#949eb7;min-height:40px}.text-button{background:none;border:0;color:#909ab4;font-size:10px;min-height:44px;padding:0}.text-button:hover{color:#d0d5e4}.chat-panel{display:flex;flex-direction:column;position:relative;max-height:calc(100dvh - 210px);min-height:620px}.chat-messages{flex:1;min-height:0;overflow-y:auto;padding:20px 16px;scrollbar-width:thin;scrollbar-color:#485064 transparent}.chat-message{margin-bottom:19px;overflow-wrap:anywhere}.chat-message:last-child{margin-bottom:0}.chat-meta{display:flex;align-items:baseline;gap:7px;margin-bottom:3px}.chat-author{font-size:11px;font-weight:700;color:#cad0e8;overflow-wrap:anywhere}.chat-message.own .chat-author{color:var(--accent)}.chat-time{color:#7b859d;font-size:9px;white-space:nowrap}.chat-body{font-size:12px;color:#d6dcea;white-space:pre-wrap;line-height:1.75}.chat-empty{position:absolute;top:43%;left:12px;right:12px;text-align:center;color:#a3abc0;font-size:12px;pointer-events:none}.chat-empty span{font-size:10px;color:#7e899f}.chat-form{padding:14px 14px 12px;border-top:1px solid var(--line);background:#1b1e27}.chat-input-wrap{display:flex;align-items:flex-end;border:1px solid #424a60;border-radius:10px;background:#141821;padding:4px}.chat-input-wrap:focus-within{border-color:var(--accent)}.chat-input-wrap textarea{min-width:0;padding:10px 8px;border:0;min-height:43px;max-height:100px;resize:none;background:transparent;font-size:12px}.chat-input-wrap textarea:focus-visible{outline:none}.chat-send{width:38px;min-width:38px;min-height:43px;border:0;border-radius:7px;background:#8994d7;color:#141b38;font-size:23px}.chat-help{display:block;font-size:9px;color:#758199;margin:7px 2px 0}.result-banner{padding:21px 16px;background:#2d3d37;border:1px solid #4c7862;border-radius:12px;margin-bottom:22px;text-align:center}.result-banner.liar-win{background:#43313e;border-color:#855673}.result-banner h3{font-size:23px;letter-spacing:-.6px;color:#b6eccd}.result-banner.liar-win h3{color:#efbfdd}.result-banner p{font-size:11px;color:#becbbf;margin-top:5px}.result-facts{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}.result-fact{background:#252a38;border-radius:9px;padding:14px}.result-fact dt{font-size:10px;color:var(--muted);margin-bottom:5px}.result-fact dd{font-size:17px;font-weight:700;margin:0;overflow-wrap:anywhere}.tally-title{font-size:12px;margin:19px 0 11px}.tally-list li{display:flex;justify-content:space-between;gap:12px;font-size:12px;padding:8px 0;border-bottom:1px solid #303644}.tally-list li span:first-child{overflow-wrap:anywhere}.tally-list li span:last-child{color:var(--accent);white-space:nowrap}.toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);max-width:calc(100vw - 32px);width:max-content;background:#dce1fa;color:#171d35;padding:13px 21px;border-radius:10px;box-shadow:0 8px 30px #0005;font-size:13px;z-index:20}.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}
@media(min-width:1600px){.home-screen{padding-top:120px}}
@media(max-width:1100px){.site-header{padding:0 28px}.home-screen{gap:50px;padding-top:65px}.room-screen{padding:24px 20px}.room-grid{grid-template-columns:175px minmax(300px,1.6fr) minmax(230px,1fr);gap:12px}.game-panel{padding:20px}.panel-heading{padding:18px 13px}.participants-note{padding:17px 12px}.panel-heading-note{display:none}.player-list{padding:10px 6px}.player-item{gap:7px}.room-grid .avatar{width:29px;height:29px}.phase-progress li{font-size:8px}}
@media(max-width:850px){.site-header{height:74px}.room-grid{grid-template-columns:minmax(0,1.4fr) minmax(240px,1fr)}.game-panel{grid-column:1;grid-row:1}.chat-panel{grid-column:2;grid-row:1;min-height:560px}.participants-panel{grid-column:1/-1;grid-row:2}.player-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.participants-note{display:none}.panel-heading-note{display:block}.hero-copy h1{font-size:46px}.home-screen{gap:35px;padding:48px 25px 25px}.entry-card{padding:25px}.hero-details{gap:8px;font-size:10px}.hero-details span+span::before{margin-right:8px}.hero-description{font-size:13px}}
@media(max-width:640px){.site-header{height:68px;padding:0 20px}.brand{font-size:22px}.brand-sub{font-size:10px;margin-left:10px;padding-left:10px}.brand-dice{width:30px;height:30px}.header-note{font-size:0;gap:0}.header-note .status-dot{width:6px;height:6px}.home-screen{display:flex;flex-direction:column;padding:34px 22px 24px;gap:31px}.hero-copy{padding-top:0}.hero-copy>.eyebrow{font-size:8px;letter-spacing:1.5px}.hero-copy h1{font-size:45px;letter-spacing:-2.7px;margin:21px 0 17px}.hero-description{font-size:13px;line-height:1.85}.game-preview{margin-top:24px;padding-top:20px}.preview-icon{width:47px;height:53px;font-size:29px;line-height:53px;border-radius:11px}.game-preview h2{font-size:15px}.game-preview p{font-size:11px}.hero-details{margin-top:18px;font-size:10px;gap:13px}.hero-details span+span::before{margin-right:13px}.entry-card{padding:25px 24px}.entry-card h2{font-size:24px}.entry-card>.muted{font-size:12px;margin-bottom:24px}.home-footer{font-size:9px;gap:12px;flex-wrap:wrap;padding-top:18px}.home-footer span:last-child{font-size:8px;letter-spacing:.5px}.room-screen{padding:20px 12px 28px}.room-topbar{align-items:flex-start;gap:10px;margin-bottom:18px;padding:0 3px}.room-heading h1{font-size:24px}.room-heading>div{gap:7px;flex-wrap:wrap}.room-heading .round-badge{font-size:9px}.room-actions{gap:2px}.room-actions .button{font-size:11px;padding:10px;min-height:44px}.room-label{font-size:10px}.room-grid{display:flex;flex-direction:column;min-height:0;gap:14px}.game-panel{order:0;padding:23px 20px}.chat-panel{order:1;min-height:0;height:420px;max-height:none}.participants-panel{order:2}.game-panel-heading h2{font-size:23px}.phase-progress li{font-size:9px}.stage-title{font-size:22px}.game-panel-footer{margin-top:20px;padding-top:7px}.player-list{grid-template-columns:1fr 1fr;padding:10px}.player-item{padding:9px 7px;gap:9px}.room-grid .avatar{width:32px;height:32px}.panel-heading{padding:18px}.chat-messages{padding:19px}.chat-body{font-size:13px}.chat-author{font-size:12px}.chat-form{padding:12px 14px}.chat-input-wrap textarea{font-size:16px}.chat-help{font-size:9px}.chat-send{min-height:44px;width:44px}.connection-banner{margin:10px 12px 0;font-size:12px;padding:10px 12px}.connection-banner .button{white-space:nowrap}.toast{bottom:max(20px,env(safe-area-inset-bottom));font-size:12px}.kick-button{min-width:30px}.lobby-art{height:105px}.rule-chips{margin-bottom:22px}input,select{font-size:16px}.vote-option{min-height:50px}.private-card{padding:12px 14px}.talk-list li{font-size:12px}.entry-card .button{font-size:13px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}/* Practical text sizes and touch targets. */
body{font-size:16px}.eyebrow,.header-note,.panel-heading-note,.room-label,.chat-help,.chat-time,.home-footer,.brand-sub,.entry-note,.game-panel-footer,.phase-progress li{font-size:12px}.player-name,.player-status,.chat-author,.chat-body,.stage-description,.progress-copy,.talk-list li,.vote-option,.tally-title,.tally-list li,.setting-label,label{font-size:14px}.chat-body{font-size:16px}.kick-button{min-width:44px;min-height:44px}.text-button{font-size:13px}.chat-input-wrap textarea{font-size:16px}.game-stage select{margin:12px 0 22px}.game-stage .button-wide{margin-top:20px}.game-stage form input{margin:8px 0}.game-stage .stage-description{margin:12px 0;line-height:1.8}.player-info{min-width:0;flex:1}.player-name,.player-status{display:block;overflow-wrap:anywhere}.player-status{font-size:12px;color:var(--muted)}.player-item.disconnected{opacity:.6}.avatar{flex-shrink:0}.phase-progress{flex-wrap:wrap;gap:8px}.room-grid{grid-template-columns:220px minmax(0,1fr) 310px}.game-panel,.chat-panel,.participants-panel{min-width:0}.game-stage input,.game-stage select{width:100%}.result-banner p{font-size:14px}.private-card p{overflow-wrap:anywhere}#secret-role{font-size:16px}#secret-word{font-size:28px;font-weight:800}#secret-description{font-size:14px}.chat-messages{overscroll-behavior:contain}.home-screen{padding-top:60px}.hero-copy h1{font-size:52px}.hero-description{font-size:16px}.hero-details{font-size:13px}
@media(max-width:1100px){.room-grid{grid-template-columns:175px minmax(0,1fr) 270px}.room-screen{padding:20px 12px}.game-panel{padding:18px}}
@media(max-width:850px){.room-grid{display:flex;flex-direction:column}.game-panel{order:0}.chat-panel{order:1;height:420px;min-height:0;max-height:none}.participants-panel{order:2}.player-list{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-copy h1{font-size:40px}}
@media(max-width:640px){.hero-copy{display:none}.home-screen{padding:26px 16px}.entry-card{padding:25px 22px}.home-footer{font-size:12px}.home-footer span:last-child{display:none}.entry-card>.muted,.entry-note,.entry-card label,.entry-card .button{font-size:14px}.room-actions .button{font-size:12px}.stage-title{font-size:23px}.room-heading .round-badge,.phase-progress li,.chat-help{font-size:12px}.game-panel{padding:22px 16px}.player-list{grid-template-columns:1fr}.vote-option{font-size:15px}.chat-panel{height:430px}.game-panel-footer{flex-wrap:wrap;font-size:12px}}
.confirm-dialog{width:min(430px,calc(100vw - 32px));padding:26px;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:16px;box-shadow:0 20px 80px #0008}.confirm-dialog::backdrop{background:#0009}.confirm-dialog p{font-size:16px;line-height:1.8}.dialog-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}.dialog-actions button{min-width:84px;min-height:48px}

/* Nickname entry, room directory and chat-first room flow. */
.home-screen{display:flex;flex-direction:column;max-width:480px;width:100%;padding:52px 24px 36px;gap:28px}
.home-screen .hero-copy{display:block;padding:0}
.home-screen .hero-copy h1{font-size:46px;line-height:1.2;margin:20px 0 18px;letter-spacing:-2px}
.home-screen .hero-description{font-size:16px}
.home-screen .entry-card{width:100%;padding:24px}
.home-screen #enter-button{margin-top:20px;min-height:50px;font-size:16px}
.lobby-screen{width:100%;max-width:760px;padding:32px 24px 48px;margin:0 auto}
.lobby-heading{margin-bottom:24px}
.lobby-heading h1{font-size:30px;margin:6px 0;letter-spacing:-1px}
.lobby-heading .eyebrow{letter-spacing:0;overflow-wrap:anywhere}
.lobby-heading .muted{font-size:15px}
#open-create-button{font-size:16px;min-height:48px}
.directory-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:24px 0 12px}
.directory-heading h2{font-size:16px}
.room-list{display:grid;gap:12px}
.room-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.room-card.invited{border-color:var(--accent)}
.room-card-info{min-width:0}
.room-card h3{font-size:18px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.room-card .muted,.room-card-status{font-size:13px}
.room-card-status{color:var(--green)}
.room-card-action{display:flex;align-items:center;gap:14px;flex-shrink:0}
.room-card-action .button{min-width:70px;min-height:46px}
.room-occupancy{white-space:nowrap;font-size:14px;color:var(--muted)}
.invited-label{font-size:11px;color:var(--accent);font-weight:500}
.directory-empty{padding:48px 20px;text-align:center;border:1px dashed var(--line);border-radius:14px;color:var(--muted);line-height:1.9}
.directory-empty span{font-size:14px}
.sheet-dialog{width:min(520px,calc(100vw - 32px));max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain;padding:22px;background:var(--panel);color:var(--text);border:1px solid #414762;border-radius:18px;box-shadow:0 20px 80px #0008}
.sheet-dialog::backdrop{background:#090c18b3}
.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}
.dialog-heading h2{font-size:20px}
.dialog-heading .button{min-width:44px;min-height:44px;font-size:24px;padding:6px}
#create-room-form label{margin:18px 0 8px}
#create-room-form .button-wide{margin-top:24px;font-size:16px}
#create-game:disabled{opacity:1;color:var(--text)}
body.in-room{height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden}
body.in-room>.site-header{display:none}
body.in-room>main{display:flex;flex:1;min-height:0;width:100%}
body.in-room .connection-banner{flex:none;margin:6px 12px}
body.in-room .room-screen{display:flex;flex-direction:column;flex:1;min-height:0;width:100%;max-width:960px;padding:14px 18px;margin:0 auto;gap:12px}
.room-screen .room-topbar{flex:none;margin:0;padding:0;align-items:center;gap:12px}
.room-screen .room-heading h1{font-size:24px}
.room-screen .room-heading>div{gap:10px;align-items:center}
#room-menu-button{font-size:24px;min-width:48px;min-height:48px}
.room-screen .room-grid{display:flex;flex-direction:column;flex:1;min-height:0;gap:12px}
.room-screen .game-panel{flex:none;padding:12px 16px;border-radius:14px}
.room-screen .game-panel-heading h2{font-size:16px;margin:0}
.room-screen .phase-label{font-size:12px;padding:3px 9px}
.game-summary{font-size:14px;color:#c1c7df;margin:6px 0;overflow-wrap:anywhere;line-height:1.5}
.summary-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}
.room-screen .phase-progress{display:inline;margin:0;color:var(--muted);font-size:12px}
.summary-deadline{font-size:12px;color:var(--muted);white-space:nowrap}
#game-details-button{min-height:44px;font-size:13px;padding:9px 14px}
.room-screen .chat-panel{flex:1;min-height:0;height:auto;max-height:none;border-radius:14px}
.room-screen .chat-panel>.panel-heading{flex:none;padding:8px 16px}
.room-screen .chat-panel>.panel-heading h2{font-size:13px}
.room-screen .chat-panel .panel-heading-note{font-size:12px}
.room-screen .chat-messages{flex:1;min-height:0;padding:18px}
.chat-message{width:fit-content;max-width:85%;margin:0 0 18px}
.chat-message.own{margin-left:auto}
.chat-message.own .chat-meta{justify-content:flex-end}
.chat-meta{gap:10px;margin-bottom:5px}
.chat-author{font-size:12px}.chat-time{font-size:11px}
.chat-body{padding:10px 13px;background:#272c3e;border:1px solid #353b54;border-radius:4px 16px 16px 16px;text-align:left;font-size:15px;line-height:1.65}
.chat-message.own .chat-body{background:#a4a0ed;border-color:#a4a0ed;color:#161a30;border-radius:16px 4px 16px 16px}
.room-screen .chat-form{flex:none;padding:10px 12px max(10px,env(safe-area-inset-bottom))}
.room-screen .chat-help{display:none}
.room-screen .chat-send{min-width:44px;min-height:44px}
.room-screen .chat-input-wrap textarea{font-size:16px}
.room-menu{margin:12px 12px auto auto;width:min(360px,calc(100vw - 24px))}
.room-menu .participants-panel{border:0;background:transparent}
.room-menu .panel-heading{padding:0 0 12px}
.room-menu .panel-heading-note{display:block}
.room-menu .player-list{display:block;padding:0;max-height:40dvh;overflow-y:auto}
.room-menu .player-item{padding:8px 0}
.room-menu .participants-note{display:none}
.menu-info{padding:18px 0;margin-top:14px;border-top:1px solid var(--line)}
.menu-info h3{font-size:15px;margin-bottom:8px}
.menu-info p{font-size:14px;color:var(--muted)}
.menu-actions{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--line);padding-top:16px}
.menu-actions #leave-button{color:var(--danger)}
.game-dialog .stage-title{font-size:21px}
.game-dialog .private-card{margin-bottom:18px}
.game-dialog .game-panel-footer{flex-wrap:wrap;gap:4px;margin-top:18px}
.game-dialog .game-stage .stage-description{line-height:1.65}
@media(max-width:640px){
 .home-screen{padding:30px 22px;gap:24px}
 .home-screen .hero-copy h1{font-size:42px}
 .home-screen .entry-card{padding:22px}
 .lobby-screen{padding:24px 16px}
 .room-card{padding:14px;gap:10px}
 .room-card-action{gap:10px}
 .room-card-action .button{min-width:60px;padding:10px 12px}
 .room-card h3{font-size:16px}
 .room-occupancy{font-size:13px}
 .sheet-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 24px);padding:20px;margin:auto auto 8px;border-radius:18px}
 .room-menu{width:min(360px,calc(100vw - 16px));margin:8px 8px auto auto}
 body.in-room .room-screen{padding:8px;gap:8px}
 .room-screen .room-heading h1{font-size:21px}
 .room-screen .room-grid{gap:8px}
 .room-screen .game-panel{padding:10px 12px}
 .room-screen .chat-messages{padding:12px}
 .room-screen .room-label{font-size:11px}
 .game-summary{font-size:13px}
 .room-screen .round-badge{font-size:11px}
 .chat-message{max-width:90%}
}

/* Nickname change: small, isolated additions. */
.lobby-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
#lobby-nickname-button{flex:0 0 auto;min-height:44px}
.nickname-dialog form .button-wide{margin-top:22px}
.chat-message.system{width:100%;max-width:100%;margin:4px 0 16px;text-align:center}
.chat-message.system .chat-body{display:inline-block;padding:4px 10px;border:0;background:transparent;color:var(--muted);font-size:12px;line-height:1.5;border-radius:0}
@media(max-width:640px){.lobby-heading{gap:8px}.lobby-heading .muted{max-width:240px}#lobby-nickname-button{padding:8px 10px;font-size:12px}}

.brand-mask{display:block;width:40px;height:40px}.brand-mask svg{display:block;width:100%;height:100%}

/* Arena layout and the metal control panels share the map's palette. */
@font-face{font-family:Galmuri;src:url('/css/assets/fonts/Galmuri11.woff2') format('woff2');font-display:swap;font-weight:400}
body.has-arena{height:var(--room-viewport-height,100dvh)}
body.has-arena .room-screen{max-width:1000px;padding:10px 14px;gap:8px}
body.has-arena .room-topbar{min-height:40px}
body.has-arena .room-label{display:none}
body.has-arena .room-heading h1{font-size:22px}
body.has-arena .room-grid{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(180px,65fr) minmax(155px,35fr);gap:8px}
.arena-panel{grid-column:1;grid-row:1;min-height:0;min-width:0;display:flex;flex-direction:column;overflow:hidden;background:#161c25;border:1px solid #414957;border-radius:5px}
.arena-surface{flex:1;min-height:0;min-width:0;display:grid;grid-template-columns:84px minmax(0,1fr) 136px;position:relative;overflow:hidden;background:#161c25}
.arena-viewport{grid-column:2;grid-row:1;min-width:0;min-height:0;position:relative;overflow:hidden}
#arena-canvas{display:block;width:100%;height:100%;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;outline-offset:-4px}
#arena-canvas:focus-visible{outline:2px solid var(--green)}
body.has-arena .game-panel.arena-controls{grid-column:3;grid-row:1;display:flex;flex-direction:column;justify-content:center;gap:18px;align-self:stretch;min-width:0;margin:0;padding:12px 8px;background:transparent;border:0;box-shadow:none}
.arena-controls .summary-actions{display:flex;flex-direction:column;gap:8px;margin:0;align-items:stretch}
.arena-controls #game-details-button{word-break:keep-all;overflow-wrap:normal}
.arena-controls .phase-progress{display:block;color:#a5adaf;font:11px/1.6 Galmuri,monospace;text-align:center}
.game-shortcuts{display:flex;flex-direction:column;gap:8px}
.metal-button{position:relative;min-height:46px;padding:10px 6px;border:1px solid #667078;border-radius:2px;background:linear-gradient(#343b40,#22292e);box-shadow:inset 0 1px #929a9e50,inset 0 -3px #11181d,0 3px 5px #0005;color:#dee5d8;font:12px/1.6 Galmuri,monospace;white-space:normal;overflow-wrap:anywhere}
.metal-button::before,.metal-button::after{content:'';position:absolute;width:3px;height:3px;background:#a1a8aa80;top:4px;box-shadow:0 1px #111}
.metal-button::before{left:4px}.metal-button::after{right:4px}
.metal-button:hover:not(:disabled){background:linear-gradient(#434c4f,#293538);border-color:#b2c1b0;color:#efffdc}
.metal-button:active:not(:disabled){box-shadow:inset 0 2px 4px #0008;transform:translateY(1px)}
.metal-button:focus-visible{outline:2px solid #c4df9a;outline-offset:3px}
.map-control-hint{margin:0;color:#869096;text-align:center;font-size:11px;line-height:1.7}
.map-notice{position:absolute;z-index:2;left:calc(var(--map-left,0px) + var(--map-size,100%)*.075);top:calc(var(--map-top,0px) + var(--map-size,100%)*.0125);width:calc(var(--map-size,100%)*.85);height:clamp(64px,calc(var(--map-size,100%)*.125),100px);padding:6px 10px;border:1px solid #92a3aa3d;border-top-color:#bdcbd04d;border-bottom-color:#09111652;border-radius:2px;background:linear-gradient(180deg,#101b23a3,#10191f7a);box-shadow:inset 0 1px #d7e6e50a,0 2px 8px #0003;color:#e0e9d7;text-shadow:0 1px 2px #000;font-family:Galmuri,monospace;display:flex;flex-direction:column;gap:4px;overflow:hidden}
.map-notice-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#b0bbae;font-size:11px;line-height:1.1;flex:none}
#map-timer{color:#e2edba;font:16px/1 Galmuri,monospace;font-variant-numeric:tabular-nums;white-space:nowrap}
#map-timer.time-low{color:#ffcf86}
#map-message{margin:0;font-size:14px;line-height:1.5;white-space:nowrap;overflow-x:auto;scrollbar-width:none;flex:none;text-shadow:0 1px 3px #000}
#map-message.has-speaker::before{content:'';display:inline-block;width:10px;height:10px;margin-right:6px;border:1px solid #adb8b680;background:var(--speaker-color);border-radius:50%}
#map-detail{color:#c1ccc3;font-size:11px;line-height:1.5;min-height:17px;white-space:nowrap;overflow-x:auto;scrollbar-width:thin}
.vote-counts{display:flex;align-items:center;gap:7px}
.vote-counts span{display:inline-flex;align-items:center;gap:3px;flex:none;color:#dce6dd;font-family:system-ui,sans-serif;font-variant-numeric:tabular-nums}
.vote-counts i{display:inline-block;width:10px;height:10px;border-radius:50%;border:1px solid #c3cbca70}
.round-intro{position:absolute;z-index:3;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}
.choice-countdown{position:absolute;z-index:2;left:50%;top:52%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:4px;pointer-events:none;color:#f0dfac;font:11px/1.4 Galmuri,monospace;text-shadow:0 2px 3px #000,0 0 8px #000}
.choice-countdown strong{font:52px/1 Galmuri,monospace}
.map-notice.hearing .map-notice-heading>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.map-notice.hearing #map-message{white-space:normal;overflow-wrap:anywhere;font-size:clamp(10px,2.6vw,14px);line-height:1.35}
.map-notice.hearing #map-message.has-speaker::before{display:none}
.countdown-number{font:80px/1 Galmuri,monospace;color:#e0edc6;text-shadow:0 4px #111b21,0 0 24px #bcdc8350}
.round-countdown{text-align:center;max-width:94%;padding:12px 16px;color:#e0edc6;font:13px/1.5 Galmuri,monospace;text-shadow:0 2px 3px #000}
.round-countdown p{margin:0 0 10px}.round-countdown #round-recap{margin:12px 0 0;color:#d1dac4;font-size:11px}
.map-notice.my-turn{border-color:#bdd4a56b;box-shadow:inset 0 1px #d7e6e50a,0 0 8px #a4d08812}
body.has-arena .arena-controls .is-my-turn{border-color:#b1c99d;color:#e4f0d8;box-shadow:inset 0 0 10px #a4d08816}
@keyframes score-gain{0%{color:#fff5b0;text-shadow:0 0 8px #e8cf7b}100%{color:inherit;text-shadow:none}}
@media(prefers-reduced-motion:no-preference){.score-gained .score-value{animation:score-gain 1.2s ease-out}}
.intro-card{pointer-events:auto;width:min(340px,88%);max-height:calc(100% - 12px);overflow-y:auto;overscroll-behavior:contain;padding:24px 18px;border:3px ridge #778183;border-radius:2px;background:linear-gradient(135deg,#242e32f5,#0c1419f5);box-shadow:0 12px 36px #000b;color:#e2ead5;text-align:center;font-family:Galmuri,monospace;overflow-wrap:anywhere}
.intro-card .intro-eyebrow{margin:0 0 14px;font-size:11px;color:#a4b2a7}
.intro-card h2{margin:0 0 18px;font:28px/1.3 Galmuri,monospace}
.intro-card p{font-size:14px;line-height:1.8;margin:7px 0}
.intro-card .metal-button{width:100%;margin-top:18px}
.scoreboard{grid-column:1;grid-row:1;align-self:start;min-height:0;max-height:calc(100% - 20px);margin:10px 6px;padding:0;list-style:none;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.score-row{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:42px;margin-bottom:5px;padding:6px 9px;border:1px solid #444e54;border-radius:3px;background:linear-gradient(#272e34,#1b2329);box-shadow:inset 0 1px #67737b30}
.score-color{width:17px;height:17px;flex:none;border-radius:50%;box-shadow:inset 0 0 0 1px #ffffff40}
.score-value{color:#f2f4e5;font:22px/1 Galmuri,monospace;font-variant-numeric:tabular-nums}
.arena-toolbar{display:flex;align-items:center;gap:8px;min-height:32px;padding:4px 10px;border-top:1px solid #3b4350;background:#1b2029}
#arena-status{flex:1;min-width:0;margin:0;font-size:11px;color:#a5afba;line-height:1.5;overflow-wrap:anywhere}
body.has-arena .chat-panel{grid-column:1;grid-row:2;border-radius:5px;overflow:hidden}
body.has-arena .chat-panel>.panel-heading{padding:4px 12px;min-height:26px}
body.has-arena .chat-messages{padding:8px 12px}
body.has-arena .chat-message{margin-bottom:8px;max-width:92%}
body.has-arena .chat-body{padding:5px 10px;font-size:13px;line-height:1.45}
body.has-arena .chat-meta,body.has-arena .chat-time{font-size:10px}
body.has-arena .chat-form{padding:5px 8px max(5px,env(safe-area-inset-bottom))}
body.has-arena .chat-input-wrap textarea{min-height:38px;padding:8px;font-size:16px}
body.has-arena .chat-empty{top:35px;font-size:12px}
body.has-arena .chat-empty span{display:none}
.chat-expand{display:none}
.chat-latest{min-height:24px;padding:2px 7px;border:1px solid #607681;border-radius:3px;background:#26343d;color:#e2e8ea;font:11px/1.4 Galmuri,monospace;white-space:nowrap}
.chat-latest:focus-visible{outline:2px solid #c0d7e5;outline-offset:2px}
body.has-arena .sheet-dialog{max-height:calc(var(--room-viewport-height,100dvh) - 24px);border-color:#616b70;border-radius:4px;background:linear-gradient(145deg,#262e35,#171d25)}
body.has-arena .dialog-heading h2{font-family:Galmuri,monospace;font-size:17px}
.talk-record{display:grid;grid-template-columns:5em minmax(0,1fr);gap:12px;padding:14px 0;border-bottom:1px solid #343943;font-size:14px;line-height:1.7}
.talk-record:last-child{border-bottom:0}
.talk-record h3{min-width:0;margin:0;font-size:inherit;line-height:inherit;overflow-wrap:anywhere}
.talk-record-history{min-width:0;margin:0;padding:0;list-style:none;overflow-wrap:anywhere}
.talk-record-history li{display:inline;margin-right:12px}
.talk-record-history li:last-of-type{margin-right:0}
.talk-record-number{color:#b5c8d0;white-space:nowrap}
@media(min-width:1024px) and (min-height:541px){
 body.has-arena .room-screen{max-width:none}
 body.has-arena .room-grid{grid-template-columns:minmax(0,1fr) clamp(300px,24vw,380px);grid-template-rows:minmax(0,1fr)}
 .arena-surface{grid-template-columns:84px minmax(0,1fr) 160px}
 .arena-controls.lobby #game-details-button{white-space:nowrap}
 body.has-arena .chat-panel{grid-column:2;grid-row:1}
}
@media(max-width:640px){
 body.has-arena .room-screen{padding:6px max(6px,env(safe-area-inset-left)) max(4px,env(safe-area-inset-bottom));gap:5px}
 body.has-arena .room-grid{gap:5px;grid-template-rows:minmax(180px,60fr) minmax(148px,40fr)}
 body.has-arena.chat-expanded .room-grid{grid-template-rows:minmax(180px,35fr) minmax(148px,65fr)}
 body.has-arena .chat-panel>.panel-heading{padding:3px 10px}
 body.has-arena .chat-panel .panel-heading-note{display:none}
 body.has-arena .chat-expand{display:block;min-height:32px;padding:4px 10px;border:1px solid #53616b;border-radius:3px;background:linear-gradient(#303b44,#202931);color:#e2e8ea;font:12px/1.4 Galmuri,monospace}
 body.has-arena .chat-expand:focus-visible{outline:2px solid #c0d7e5;outline-offset:2px}
 body.has-arena .chat-latest{min-height:32px;font-size:12px}
 body.has-arena .chat-messages{padding:7px 10px}
 body.has-arena .chat-message:not(.system){width:auto;max-width:none;margin:0 0 6px;font-size:13px;line-height:1.55;text-align:left}
 body.has-arena .chat-message:not(.system) .chat-meta{display:contents}
 body.has-arena .chat-author{display:inline-block;max-width:6em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;font-size:12px;line-height:20.15px}
 body.has-arena .chat-message:not(.system) .chat-body::before{content:' › ';color:#82919f;white-space:pre}
 body.has-arena .chat-message:not(.system) .chat-body{display:inline;padding:0;border:0;border-radius:0;background:transparent;color:#e4e8ef;font-size:13px;line-height:1.55;overflow-wrap:anywhere}
 body.has-arena .chat-time{display:none}
 body.has-arena .chat-message.system{margin:4px 0 8px}
 body.has-arena .room-topbar{min-height:36px}body.has-arena .room-heading h1{font-size:19px}
 .arena-surface{grid-template-columns:54px minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto}
 body.has-arena .game-panel.arena-controls{grid-column:1 / 3;grid-row:2;display:grid;grid-template-columns:1fr 2fr;gap:6px;padding:6px;border-top:1px solid #333f47}
 .arena-controls .summary-actions{gap:0}.arena-controls .summary-actions>div,.map-control-hint{display:none}
 .arena-controls.lobby .summary-actions{grid-column:1 / -1}
 .game-shortcuts{display:grid;grid-template-columns:1fr 1fr;gap:6px}
 .arena-controls.voting .summary-actions,.arena-controls.info-only .summary-actions{display:none}
 .arena-controls.voting .game-shortcuts,.arena-controls.info-only .game-shortcuts{grid-column:1 / -1}
 .metal-button{min-height:44px;font-size:11px;padding:7px 4px}
 .map-notice{padding:4px 6px;gap:2px}
 .map-notice-heading{font-size:10px}#map-timer{font-size:12px}#map-message{font-size:11px;line-height:1.5}#map-detail{font-size:10px;line-height:1.4}
 .vote-counts{gap:5px}.vote-counts i{width:8px;height:8px}
 .scoreboard{margin:8px 4px;max-height:calc(100% - 16px)}
 .score-row{min-height:27px;padding:5px;gap:4px;margin-bottom:3px;border-radius:2px}.score-color{width:11px;height:11px}.score-value{font-size:14px}
 .intro-card{padding:16px 10px}.intro-card h2{font-size:24px;margin-bottom:12px}.intro-card p{font-size:12px}.intro-card .metal-button{margin-top:10px}
 body.chat-expanded .intro-card{padding:8px}
 body.chat-expanded .intro-card .intro-eyebrow{display:none}
 body.chat-expanded .intro-card h2{font-size:20px;margin:0 0 4px}
 body.chat-expanded .intro-card p{font-size:12px;line-height:1.4;margin:3px 0}
 body.chat-expanded .intro-card .metal-button{margin-top:6px}
 .arena-toolbar{padding:3px 7px;min-height:28px}#arena-status{font-size:10px}
}
@media(max-height:540px) and (min-width:600px){
 body.has-arena .room-screen{padding:4px 8px;gap:4px}body.has-arena .room-topbar{min-height:32px}
 body.has-arena .room-grid,body.has-arena.chat-expanded .room-grid{grid-template-columns:minmax(0,1.6fr) minmax(220px,1fr);grid-template-rows:minmax(0,1fr);gap:5px}
 body.has-arena .chat-expand{display:none}
 body.has-arena .chat-panel{grid-column:2;grid-row:1}.arena-surface{grid-template-columns:54px minmax(0,1fr) 100px}
 .intro-card{padding:8px}.intro-card h2{font-size:20px;margin-bottom:6px}.intro-card p{font-size:11px;margin:3px 0}.intro-card .metal-button{margin-top:5px}
}
/* Bottom controls are separate from canvas movement input. */
body.has-arena .room-screen{position:relative;max-width:1600px;height:var(--room-viewport-height,100dvh);padding:8px;gap:0}
body.has-arena .room-actionbar{flex:none;display:flex;align-items:center;justify-content:flex-end;gap:6px;min-height:54px;padding:4px 7px;border:1px solid #525e64;background:linear-gradient(#283137,#141d23);box-shadow:inset 0 1px #83909540}
body.has-arena .game-panel.arena-controls{display:flex;flex-direction:row;align-items:center;justify-content:center;flex:1;max-width:640px;gap:8px;margin-inline:auto;padding:0;border:0;background:none}
body.has-arena .arena-controls .summary-actions>div{display:none}
body.has-arena .arena-controls .summary-actions{display:flex;flex:1;min-width:0;gap:0}
body.has-arena .arena-controls .summary-actions:has(#game-details-button[hidden]){display:none}
body.has-arena .game-shortcuts{display:flex;flex-direction:row;flex:2;min-width:0;gap:8px}
body.has-arena .room-actionbar .keyboard-control{flex:1}
body.has-arena .arena-controls .metal-button{min-height:44px;white-space:nowrap;padding:8px 16px;word-break:keep-all}
body.has-arena .room-actionbar>.keyboard-control:has(>#room-menu-button){flex:none;margin-left:0}
body.has-arena #room-menu-button{min-width:44px;min-height:44px;width:44px;margin:0;padding:4px;font-size:22px;line-height:1}
.menu-room-code{margin:0 0 16px;color:#a6b5bd;font-size:12px}
.menu-room-code strong{margin-left:8px;color:#e0e8dd;font:16px Galmuri,monospace;letter-spacing:2px}
body.has-arena .room-grid,body.has-arena.chat-expanded .room-grid{display:flex;flex:1;flex-direction:column;gap:0;min-height:0}
body.has-arena .arena-panel{flex:1;border-radius:5px 5px 0 0;border-bottom:0}
.arena-surface{display:block;flex:1;min-height:0}
.arena-viewport{width:100%;height:100%}
.arena-chat-touch{display:none;position:absolute;inset:0;z-index:1;margin:0;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}
body.mobile-room.keyboard-open .arena-chat-touch{display:block}
body.mobile-room.keyboard-open .map-notice{pointer-events:none}
.keyboard-control{display:inline-grid;position:relative;min-width:0;vertical-align:middle}
.keyboard-control>button{width:100%}
.keyboard-control:has(>button[hidden]){display:none}
.keyboard-control:has(>#room-menu-button){flex:none;margin-left:auto}
.keyboard-control:has(>.button-wide){display:grid}
.keyboard-activation{display:none;position:absolute;inset:0;z-index:1;margin:0;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;user-select:none}
body.mobile-room.keyboard-open .keyboard-activation{display:block}
#keyboard-panel-backdrop{position:absolute;inset:0;margin:0;background:#0009;-webkit-tap-highlight-color:transparent;touch-action:none}
body.has-arena dialog.keyboard-sheet[open]{position:absolute;top:8px;left:50%;right:auto;bottom:auto;transform:translateX(-50%);margin:0;width:min(440px,calc(100% - 20px));max-height:var(--room-panel-height,calc(100% - 76px));overflow-y:auto;overscroll-behavior:contain}
body.keyboard-panels .chat-form,body.keyboard-panels .room-actionbar{position:relative;z-index:100}
#game-dialog.keyboard-sheet{padding:12px}
.keyboard-sheet #game-stage[data-phase="LOBBY"]>.stage-description{display:none}
@media(any-pointer:coarse){
 dialog.sheet-dialog[open],dialog.confirm-dialog[open]{position:fixed;top:calc(var(--room-viewport-top,0px) + 8px);bottom:auto;left:50%;right:auto;transform:translateX(-50%);margin:0;max-height:calc(var(--room-viewport-height,100dvh) - 16px)}
}
.map-notice{left:4%;top:1.5%;width:92%;height:clamp(68px,12%,94px)}
body.has-arena:not(.mobile-room) .map-notice{min-height:84px}
body.has-arena:not(.mobile-room) .scoreboard{top:calc(clamp(84px,12%,94px) + 14px)}
.scoreboard{position:absolute;z-index:1;left:4%;top:calc(clamp(68px,12%,94px) + 14px);display:grid;grid-auto-flow:column;grid-template-rows:repeat(var(--score-rows,6),auto);gap:3px;max-height:none;margin:0;padding:0;overflow:visible;pointer-events:none}
.score-row{min-height:22px;min-width:40px;margin:0;padding:3px 5px;gap:6px;background:none;border:0;box-shadow:none;opacity:.8}
.arena-viewport.voting .scoreboard{left:50%;transform:translateX(-50%)}
.score-color{width:10px;height:10px}.score-value{font-size:14px}
body.has-arena .chat-panel{position:absolute;z-index:1;left:5%;bottom:10%;width:min(560px,75%);height:min(138px,27%);min-height:0;max-height:none;display:flex;flex-direction:column;background:none;border:0;border-radius:0;overflow:hidden;pointer-events:none}
body.has-arena .chat-messages{display:flex;flex-direction:column;flex:1;padding:0 5px;overflow-y:hidden;overflow-anchor:none;scrollbar-width:none;min-height:0;mask-image:linear-gradient(transparent,#000 10px);text-shadow:1px 1px 2px #000,-1px -1px 2px #000,0 0 4px #000}
body.has-arena .chat-messages::before{content:'';flex:1}
body.has-arena .chat-message,body.has-arena .chat-message:not(.system){flex:none;width:auto;max-width:none;margin:0 0 4px;text-align:left;font-size:14px;line-height:1.5}
body.has-arena .chat-meta{display:contents}
body.has-arena .chat-author{display:inline-block;max-width:6em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;font-size:13px;line-height:21px}
body.has-arena .chat-time{display:none}
body.has-arena .chat-message .chat-body,body.has-arena .chat-message:not(.system) .chat-body{display:inline;padding:0;border:0;border-radius:0;background:none;color:#f1f3f5;font-size:14px;line-height:1.5;overflow-wrap:anywhere}
body.has-arena .chat-message:not(.system) .chat-body::before{content:': ';color:#b6c4ca;white-space:pre}
body.has-arena .chat-message.system .chat-body{font-size:12px;color:#a6b5bd}
body.has-arena.chat-expanded .chat-panel{height:65%;max-height:calc(100% - 110px);width:min(650px,90%);background:#101a22ed;border:1px solid #71818b;border-radius:3px;pointer-events:auto;box-shadow:0 4px 18px #0009}
body.has-arena.chat-expanded .chat-messages{padding:10px;overflow-y:auto;scrollbar-width:thin;touch-action:pan-y;overscroll-behavior:contain;user-select:text;mask-image:none}
body.has-arena .chat-form{display:flex;flex:none;align-items:center;gap:8px;padding:4px 7px;border:1px solid #526069;border-top:3px solid #10171b;border-radius:0 0 5px 5px;background:linear-gradient(#253038,#151e24)}
.chat-history-actions{display:flex;flex:none;gap:4px}
body.has-arena .chat-expand,body.has-arena .chat-latest{display:block;min-height:44px;padding:5px 8px;border:1px solid #53616b;border-radius:2px;background:linear-gradient(#303b44,#202931);color:#e2e8ea;font:12px/1.4 Galmuri,monospace;white-space:nowrap}
body.has-arena .chat-input-wrap{flex:1;min-width:0;padding:0 3px;border-radius:2px;border-color:#53616b;background:#10191f}
body.has-arena .chat-input-wrap textarea{padding:10px;min-height:44px;max-height:76px;font-size:16px}
body.has-arena .chat-send{min-width:44px;min-height:44px;background:transparent;color:#e4ebeb;font-size:22px}
body.has-arena .chat-form.guess-mode .chat-input-wrap{border-color:#c4ae74;background:#25251c}
body.has-arena .guess-mode .chat-send{font:12px/1.4 Galmuri,monospace;min-width:54px;color:#f1deaa}
body.has-arena .arena-toolbar{display:none}
/* Mobile rooms stay inside the visible viewport, including Safari keyboard panning. */
body.has-arena.mobile-room{position:fixed;top:var(--room-viewport-top,0px);left:0;width:100%;height:var(--room-viewport-height,100dvh);overflow:hidden}
body.has-arena.mobile-room .room-screen{flex:none;height:100%;max-height:var(--mobile-room-height,calc(100vw + 112px))}
body.has-arena.mobile-room .arena-panel{overflow:hidden}
body.has-arena.mobile-room .arena-surface{flex:none;height:var(--mobile-map-height,100vw)}
@media(max-width:640px){
 body.has-arena .room-screen{padding:4px max(4px,env(safe-area-inset-left)) max(4px,env(safe-area-inset-bottom))}
 body.has-arena.mobile-room .scoreboard{--score-rows:4}
 body.has-arena .room-actionbar{padding:4px}
 body.has-arena .game-panel.arena-controls,body.has-arena .game-shortcuts{gap:4px}
 body.has-arena .arena-controls .metal-button{padding:6px;font-size:11px}
 .scoreboard{left:4%;gap:2px}.score-row{min-height:19px;min-width:34px;padding:2px 3px;gap:4px}.score-value{font-size:11px}.score-color{width:8px;height:8px}
 body.has-arena .chat-panel{width:90%;height:min(108px,25%)}
 body.has-arena .chat-message,body.has-arena .chat-message:not(.system),body.has-arena .chat-message .chat-body,body.has-arena .chat-message:not(.system) .chat-body{font-size:13px;line-height:1.55}
 body.has-arena .chat-author{font-size:12px;line-height:20.15px}
 body.has-arena .chat-form{gap:4px;padding:3px}
 body.has-arena .chat-expand,body.has-arena .chat-latest{font-size:10px;padding:4px}
 body.has-arena .chat-input-wrap textarea{padding:10px 5px}
}
@media(max-height:540px) and (min-width:600px){
 body.has-arena .room-screen{padding:3px 6px}
 .scoreboard{--score-rows:3;top:82px}
 body.has-arena .chat-panel{height:25%;width:65%}
 .map-notice{height:64px;padding:4px 6px;gap:2px}
 .map-notice-heading{font-size:10px}#map-timer{font-size:12px}#map-message{font-size:11px;line-height:1.5}#map-detail{font-size:10px;line-height:1.4}
}
/* In-game menus use the same metal frame and display palette as the arena. */
body.has-arena .arena-dialog{--accent:#bfd2a4;--accent-bright:#dce8c5;--muted:#a8b9bb;--line:#3d4f56;--panel:#18242b;padding:20px;border:1px solid #738389;border-top-color:#9ba9ab;border-bottom-color:#35434a;border-radius:3px;background:linear-gradient(145deg,#29383eef,#101c23fa);box-shadow:inset 0 0 0 3px #34434a80,0 14px 48px #0009;color:#dce5dc;font:12px/1.7 Galmuri,monospace;scrollbar-width:thin;scrollbar-color:#60747a #132027}
.arena-dialog::backdrop{background:#050d12b3}
.arena-dialog::before,.arena-dialog::after{content:'';position:absolute;top:7px;width:3px;height:3px;background:#acb9b780;box-shadow:0 1px #080e12;pointer-events:none}
.arena-dialog::before{left:7px}.arena-dialog::after{right:7px}
.arena-dialog .dialog-heading{gap:12px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #71878b50}
body.has-arena .arena-dialog .dialog-heading h2{color:#dfebcd;font:18px/1.5 Galmuri,monospace;letter-spacing:0}
.arena-dialog .button{min-height:44px;padding:9px 12px;border:1px solid #63767e;border-radius:2px;background:linear-gradient(#35454c,#202e35);box-shadow:inset 0 1px #a7b8ba33,inset 0 -2px #09151b;color:#dce5dc;font:12px/1.6 Galmuri,monospace;word-break:keep-all}
.arena-dialog .button:hover:enabled{background:linear-gradient(#465b61,#293e46);border-color:#a7b9b5;color:#f0f5e6}
.arena-dialog .button-primary{border-color:#7d9276;background:linear-gradient(#42594a,#293e31);color:#e0edcb}
.arena-dialog .button-primary:hover:enabled{border-color:#b9cda0;background:linear-gradient(#536d55,#344e38)}
.arena-dialog .button-wide{justify-content:center;min-height:48px;margin-top:14px;font-size:13px}
.arena-dialog .dialog-heading .close-dialog{min-width:44px;width:44px;padding:4px;font-size:22px}
.arena-dialog :is(button,input,select):focus-visible{outline:2px solid #c2d7a6;outline-offset:2px}
.arena-dialog :is(input,select){min-height:46px;padding:10px 12px;border:1px solid #526a75;border-radius:2px;background:#0c1920;box-shadow:inset 0 2px 5px #0005;color:#dce8df;font:16px/1.5 Galmuri,monospace}
.arena-dialog :is(input,select):hover{border-color:#859e9d}
.arena-dialog select{appearance:none;-webkit-appearance:none;padding-right:32px;background-image:linear-gradient(45deg,transparent 50%,#afc5b4 50%),linear-gradient(135deg,#afc5b4 50%,transparent 50%);background-position:calc(100% - 17px) 50%,calc(100% - 12px) 50%;background-size:5px 5px;background-repeat:no-repeat}
.arena-dialog .game-stage select{margin:0}
.arena-dialog.keyboard-sheet #game-stage[data-phase="LOBBY"]>.stage-title{display:none}
.arena-dialog.keyboard-sheet .dialog-heading{margin-bottom:8px;padding-bottom:8px}
.arena-dialog.keyboard-sheet label:not(.keyboard-activation){margin:6px 0 4px}
.arena-dialog.keyboard-sheet :is(input,select){min-height:44px;padding-top:8px;padding-bottom:8px}
.arena-dialog.keyboard-sheet .button-wide{min-height:44px;margin-top:8px}
.arena-dialog label:not(.keyboard-activation){margin:14px 0 7px;color:#b9ccca;font:12px/1.6 Galmuri,monospace}
.arena-dialog .stage-title{margin-bottom:8px;color:#d6e2d3;font:16px/1.65 Galmuri,monospace;letter-spacing:0;overflow-wrap:anywhere}
.arena-dialog .game-stage .stage-description{margin-bottom:14px;font-size:12px;line-height:1.8;overflow-wrap:anywhere}
.arena-dialog .game-stage .stage-description:last-child{margin:12px 0 0}
.arena-dialog .game-panel-footer{margin-top:16px;padding-top:12px;color:#99afb2}
.arena-dialog .text-button{color:#c4b697;font:11px/1.6 Galmuri,monospace}
.arena-dialog .talk-list li{border-radius:2px;background:#14232b;color:#afc0c2}
.arena-dialog .talk-list li.current{border-color:#8caa83;background:#2a3e35;color:#e2edcc}
.arena-dialog .order-number{color:#c1cfa9}
.arena-dialog .result-banner{padding:16px;border-radius:2px;background:#233a30;border-color:#708d74}
.arena-dialog .result-banner.liar-win{background:#382b2a;border-color:#8e7066}
.arena-dialog .result-banner h3,.arena-dialog .result-banner.liar-win h3{font:19px/1.6 Galmuri,monospace;color:#deebcd}
.arena-dialog .result-fact{padding:12px;border:1px solid #40545c;border-radius:2px;background:#122129}
.arena-dialog .result-fact dd{font-size:16px}
.arena-dialog .menu-room-code{display:flex;align-items:center;justify-content:space-between;padding:9px 11px;border:1px solid #445b62;background:#0e1d24;color:#aabfbd}
.arena-dialog .menu-room-code strong{color:#deebc9}
.arena-dialog .panel-heading h2,.arena-dialog .menu-info h3{font:12px/1.6 Galmuri,monospace;color:#bcd0c8}
.arena-dialog .count-badge{border:1px solid #4e646a;border-radius:2px;background:#132229;color:#d2dfc5}
.arena-dialog .player-item{padding:9px 2px;border-bottom:1px solid #3d4f5659;border-radius:0}
.arena-dialog .player-item:last-child{border-bottom:0}
.arena-dialog .avatar{width:28px;height:28px;border-radius:2px;box-shadow:inset 0 0 0 1px #ffffff30}
.arena-dialog .player-info{flex:1;min-width:0}
.arena-dialog .player-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:12px/1.6 Galmuri,monospace}
.arena-dialog .player-status{color:#96adb0;font-size:10px}
.arena-dialog .kick-button{color:#c8aaa0;font:10px/1.6 Galmuri,monospace}
.arena-dialog .menu-info{margin-top:12px;padding:12px 0}
.arena-dialog .menu-info p{font-size:11px;line-height:1.8;overflow-wrap:anywhere}
.arena-dialog .menu-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:18px;padding-top:0;border-top:0}
.arena-dialog .menu-actions .button{padding:8px 5px;font-size:11px;white-space:nowrap}
.arena-dialog .menu-actions #leave-button{color:#d9b0a4;border-color:#705b56;background:linear-gradient(#403735,#292524)}
@media(max-width:640px){body.has-arena .arena-dialog{padding:16px}.arena-dialog .dialog-heading{margin-bottom:12px;padding-bottom:10px}}
/* Entry and directory share the arena floor, metal trim and display font. */
body:has(#home-screen:not([hidden]),#lobby-screen:not([hidden])){background:#0b1116}
body:has(#home-screen:not([hidden]),#lobby-screen:not([hidden]))>.site-header{display:none}
body:has(#home-screen:not([hidden]),#lobby-screen:not([hidden]))>main{min-height:100svh;display:grid;place-items:center;padding:40px 20px;background:radial-gradient(ellipse at 50% 42%,#15232844,#060c11e8 85%),url('/css/assets/conversation-room-v1.png') center/cover no-repeat}
#home-screen,#lobby-screen{position:relative;max-width:440px;width:100%;margin:0;padding:12px;gap:0;border:1px solid #637178;border-top-color:#9aa6aa;border-bottom-color:#28343b;border-radius:4px;background:linear-gradient(135deg,#333e44,#172127 70%);box-shadow:0 0 0 4px #0c1217,inset 0 0 0 4px #202a30,0 22px 65px #0009;font-family:Galmuri,monospace}
#home-screen::before,#home-screen::after,#lobby-screen::before,#lobby-screen::after{content:'';position:absolute;top:6px;bottom:6px;width:3px;background:linear-gradient(#86928f 3px,transparent 3px calc(100% - 3px),#86928f calc(100% - 3px));pointer-events:none}
#home-screen::before,#lobby-screen::before{left:6px}#home-screen::after,#lobby-screen::after{right:6px}
#home-screen .hero-copy{display:block;padding:38px 14px 34px;border:3px solid #465359;border-top-color:#18242b;border-bottom-color:#758387;background:repeating-linear-gradient(0deg,#0b1518 0 2px,#101d20 2px 4px);box-shadow:inset 0 0 24px #0009;text-align:center}
#home-screen .hero-copy .eyebrow{color:#96aa99;font:11px/1.5 Galmuri,monospace;letter-spacing:5px}
#home-screen .hero-copy h1{margin:14px 0 0;color:#dcebc9;font:40px/1.4 Galmuri,monospace;letter-spacing:0;white-space:nowrap;text-shadow:0 2px #050b0c,0 0 18px #bbd89525}
#home-screen .entry-card{padding:28px 22px 20px;border:0;border-radius:0;background:none;box-shadow:none}
#home-screen label{display:block;margin:0 0 10px;color:#bac6c8;font:13px/1.6 Galmuri,monospace}
#home-screen #nickname{width:100%;min-height:54px;margin:0;padding:14px 12px;border:1px solid #4d6069;border-radius:2px;background:#0c171d;box-shadow:inset 0 2px 5px #0006;color:#e3ebdf;font:16px/1.5 Galmuri,monospace;outline:none}
#home-screen #nickname::placeholder{color:#7d9098}
#home-screen #nickname:focus{border-color:#b1cba1;box-shadow:inset 0 2px 5px #0006,0 0 0 2px #b1cba126}
#home-screen #enter-button{display:flex;align-items:center;justify-content:center;width:100%;min-height:54px;margin-top:18px;padding:12px 36px;color:#deebcd;border-color:#6d8076;background:linear-gradient(#3e514c,#273833);font:14px/1.6 Galmuri,monospace;white-space:nowrap;letter-spacing:0}
#home-screen #enter-button>span{position:absolute;right:16px}
.button[href="/solo"]{justify-content:center;text-align:center}
#home-screen #enter-button:hover:not(:disabled){background:linear-gradient(#52665a,#35493d);border-color:#b2c1a5;color:#f0ffdc}
#home-screen .inline-error{margin-top:14px;font:12px/1.8 Galmuri,monospace}
@media(max-width:480px){
 body:has(#home-screen:not([hidden]))>main{padding:28px 20px}
 #home-screen .hero-copy{padding:32px 10px 28px}
 #home-screen .hero-copy h1{font-size:32px}
 #home-screen .entry-card{padding:24px 14px 16px}
}

/* Lobby-only controls and dialogs; room controls keep their existing layout. */
body:has(#lobby-screen:not([hidden]))>main{display:block;padding:48px 24px;min-height:100svh}
#lobby-screen{max-width:760px;margin:0 auto}
#lobby-screen .lobby-heading{align-items:center;margin:0;padding:24px;border:3px solid #465359;border-top-color:#18242b;border-bottom-color:#758387;background:repeating-linear-gradient(0deg,#0b1518 0 2px,#101d20 2px 4px);box-shadow:inset 0 0 24px #0009}
#lobby-screen .lobby-heading>div{min-width:0}
#lobby-screen .eyebrow{color:#96aa99;font:10px/1.6 Galmuri,monospace;letter-spacing:3px}
#lobby-screen h1{margin:8px 0 12px;color:#dcebc9;font:30px/1.4 Galmuri,monospace;letter-spacing:0;text-shadow:0 2px #050b0c,0 0 18px #bbd89525}
#lobby-screen .lobby-player{margin:0;color:#b5c6c7;font:12px/1.8 Galmuri,monospace;overflow-wrap:anywhere}
#lobby-screen .lobby-player::before{content:'';display:inline-block;width:6px;height:6px;margin-right:8px;vertical-align:2px;background:#b1cba1;box-shadow:0 0 6px #b1cba144}
#lobby-screen .lobby-directory{padding:22px 12px 12px}
#lobby-screen .button,body:has(#lobby-screen:not([hidden])) :is(#create-dialog,#nickname-dialog) .button{min-height:44px;padding:10px 14px;border:1px solid #667078;border-radius:2px;background:linear-gradient(#343f46,#222d33);box-shadow:inset 0 1px #929a9e50,inset 0 -3px #11181d,0 2px 4px #0004;color:#d0dada;font:12px/1.6 Galmuri,monospace;white-space:nowrap;letter-spacing:0}
#lobby-screen .button:hover:not(:disabled),body:has(#lobby-screen:not([hidden])) :is(#create-dialog,#nickname-dialog) .button:hover:not(:disabled){background:linear-gradient(#46565e,#2c3c44);border-color:#99abae;color:#edf3e9}
#lobby-screen .button:focus-visible,body:has(#lobby-screen:not([hidden])) :is(#create-dialog,#nickname-dialog) .button:focus-visible{outline:2px solid #c9dda9;outline-offset:3px}
#lobby-screen #open-create-button,#lobby-screen .room-card-action .button:not(:disabled),body:has(#lobby-screen:not([hidden])) :is(#create-dialog,#nickname-dialog) .button-primary{color:#deebcd;border-color:#6d8076;background:linear-gradient(#3e514c,#273833)}
#lobby-screen #open-create-button{min-height:54px;font-size:15px}
#lobby-screen #open-create-button:hover:not(:disabled),#lobby-screen .room-card-action .button:hover:not(:disabled),body:has(#lobby-screen:not([hidden])) :is(#create-dialog,#nickname-dialog) .button-primary:hover:not(:disabled){background:linear-gradient(#52665a,#35493d);border-color:#b2c1a5}
#lobby-screen .directory-heading{margin:24px 0 14px}
#lobby-screen .directory-heading h2{display:flex;align-items:center;gap:8px;color:#c0cccc;font:13px/1.6 Galmuri,monospace}
#lobby-screen .count-badge{padding:2px 6px;border:1px solid #4d6062;border-radius:2px;background:#111d22;color:#c4d5ba;font:11px/1.5 Galmuri,monospace}
#lobby-screen .room-list{gap:10px}
#lobby-screen .room-card{position:relative;padding:18px;border:1px solid #46565d;border-left:3px solid #78968a;border-radius:2px;background:linear-gradient(110deg,#17252bee,#101b21ee);box-shadow:inset 0 1px #74868c20,0 3px 8px #0003}
#lobby-screen .room-card.invited{border-color:#b5c999}
#lobby-screen .room-card h3{color:#e0e8d8;font:17px/1.6 Galmuri,monospace;letter-spacing:1px}
#lobby-screen .room-card .muted{margin:5px 0 8px;color:#a4b5ba;font:12px/1.8 Galmuri,monospace;overflow-wrap:anywhere}
#lobby-screen .room-card-status{color:#b0cda9;font:11px/1.6 Galmuri,monospace}
#lobby-screen .room-occupancy{color:#adbec3;font:12px/1.6 Galmuri,monospace}
#lobby-screen .room-card-action{gap:18px}
#lobby-screen .room-card-action .button{min-width:76px}
#lobby-screen .invited-label{color:#c7d6a8;font:10px/1.6 Galmuri,monospace;letter-spacing:0}
#lobby-screen .directory-empty{margin:0;padding:48px 16px;border:1px solid #3c4e57;border-radius:2px;background:#101c22;color:#a5b8bf;font:13px/1.9 Galmuri,monospace}
#lobby-screen .inline-error{font:12px/1.8 Galmuri,monospace}
body:has(#lobby-screen:not([hidden])) .toast{border:1px solid #6d8076;border-radius:3px;background:#243731;color:#e0ebd4;box-shadow:0 4px 16px #0008;font:12px/1.8 Galmuri,monospace}
body:has(#lobby-screen:not([hidden])) :is(#create-dialog,#nickname-dialog){padding:24px;border:1px solid #7c8d92;border-top-color:#a5b0ad;border-bottom-color:#35444b;border-radius:3px;background:linear-gradient(135deg,#2c393f,#16232a);box-shadow:0 0 0 4px #0c141a,inset 0 0 0 4px #34434a,0 24px 80px #000a;color:#d7e1dc;font-family:Galmuri,monospace}
body:has(#lobby-screen:not([hidden])) :is(#create-dialog,#nickname-dialog)::backdrop{background:#060d12cc}
body:has(#lobby-screen:not([hidden])) :is(#create-dialog,#nickname-dialog) .dialog-heading{padding-bottom:14px;border-bottom:1px solid #506269}
body:has(#lobby-screen:not([hidden])) :is(#create-dialog,#nickname-dialog) h2{color:#dcebc9;font:20px/1.5 Galmuri,monospace}
body:has(#lobby-screen:not([hidden])) :is(#create-dialog,#nickname-dialog) .close-dialog{min-width:44px;padding:6px;font-size:22px}
body:has(#lobby-screen:not([hidden])) :is(#create-dialog,#nickname-dialog) label{color:#bdcccc;font:12px/1.7 Galmuri,monospace}
body:has(#lobby-screen:not([hidden])) :is(#create-dialog,#nickname-dialog) :is(input,select){min-height:50px;border:1px solid #526872;border-radius:2px;background:#0c1920;color:#e1eade;box-shadow:inset 0 2px 5px #0005;font:16px/1.6 Galmuri,monospace}
body:has(#lobby-screen:not([hidden])) :is(#create-dialog,#nickname-dialog) :is(input,select):focus{border-color:#b1cba1;box-shadow:0 0 0 2px #b1cba126;outline:none}
body:has(#lobby-screen:not([hidden])) :is(#create-dialog,#nickname-dialog) .button-wide{min-height:50px;font-size:14px}
@media(max-width:640px){
 body:has(#lobby-screen:not([hidden]))>main{padding:24px 16px max(32px,env(safe-area-inset-bottom))}
 #lobby-screen{padding:10px}
 #lobby-screen .lobby-heading{padding:20px 14px;gap:12px}
 #lobby-screen h1{font-size:26px}
 #lobby-screen #lobby-nickname-button{padding:8px 10px;font-size:11px}
 #lobby-screen .lobby-directory{padding:18px 4px 4px}
 #lobby-screen .directory-heading{gap:6px;margin-top:20px}
 #lobby-screen .directory-heading h2{gap:5px;font-size:12px}
 #lobby-screen #refresh-rooms{padding:8px;font-size:11px}
 #lobby-screen .room-card{padding:14px 12px;gap:12px}
 #lobby-screen .room-card h3{font-size:15px}
 #lobby-screen .room-card .muted{font-size:11px}
 #lobby-screen .room-card-action{flex-direction:column;gap:8px}
 #lobby-screen .room-card-action .button{min-width:70px;padding:10px;font-size:12px}
}
/* Owned gestures stay attached to the local character, above the touch focus layer. */
.avatar-action-anchor{position:absolute;z-index:6}.avatar-action-anchor>.keyboard-control{display:block;width:100%;height:100%}#avatar-emotes{display:block;width:100%;height:100%;min-height:0;padding:0;border:0;background:transparent;box-shadow:none;color:transparent;cursor:pointer}#avatar-emotes:focus-visible{outline:1px dashed #c9e3a3;outline-offset:2px}.avatar-emote-menu{position:absolute;z-index:12;width:150px;padding:5px;background:#132127f5;border:1px solid #8faaa0;box-shadow:0 4px 15px #0008}.avatar-emote-menu>.keyboard-control,.avatar-emote-menu button{width:100%}.avatar-emote-menu button{min-height:44px;white-space:nowrap;font-size:12px}
