/* Shared dialogs borrow the physical objects used in each game's tutorial. */
body[class] #join-dialog{width:min(440px,92vw,61dvh);max-width:none;max-height:94dvh;padding:0;border:0;border-radius:0;background:none;box-shadow:none;overflow:visible;color:var(--join-ink);filter:drop-shadow(0 16px 24px #08162466)}
body #join-dialog::backdrop,body #settings-dialog::backdrop{background:#081729b8;backdrop-filter:blur(7px)}
.join-artifact{width:100%;aspect-ratio:2/3;position:relative;container-type:inline-size;background:url('/assets/postal-letter-v2.png') center/contain no-repeat}
.join-face{position:absolute;inset:12% 15% 23%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:0}
body #join-dialog h2{font-family:Georgia,serif;margin:0;display:flex;align-items:center;justify-content:center;gap:10px;font-size:clamp(20px,7cqw,32px);line-height:1.15}
#join-heading small{font-family:inherit;font-size:.36em;letter-spacing:.16em}body #join-room{letter-spacing:.13em}
body #join-dialog .join-qr-paper{width:100%;max-width:270px;padding:3px;border-radius:8px;box-shadow:0 3px 10px #15272e18;min-height:0;flex-shrink:1;aspect-ratio:1;display:grid;place-items:center}
body #join-qr{display:block;width:100%;height:100%;max-width:none;object-fit:contain;border-radius:5px}body #join-qr[hidden]{display:none}
body #join-link{font-size:clamp(12px,4.3cqw,20px);line-height:1.2;margin:0;color:var(--join-ink);font-weight:800;flex:none}
body #join-network{min-height:26px;font-size:12px;padding:3px 7px;max-width:100%;margin:0}
body #join-message{font-size:14px;margin:0}body #join-dialog .join-close{right:-10px;top:-15px;width:32px;height:32px;min-height:32px;border-radius:50%;font-size:24px;background:var(--join-ink);color:#fff9e9;box-shadow:0 2px 0 #0004;z-index:1}
body.theme-solomon #join-dialog{width:min(400px,88vw,63dvh)}
.theme-solomon .join-artifact{aspect-ratio:.74;background:linear-gradient(#fffdf7,#eaf0fc);border:9px solid #19345f;border-radius:38px;box-shadow:inset 0 0 0 2px #7691bc,0 0 0 2px #d5ae57,8px 12px 0 #11274866}
.theme-solomon .join-artifact::before{content:'';position:absolute;left:40%;right:40%;height:8px;top:10px;background:#19345f;border-radius:8px}
.theme-solomon .join-artifact::after{content:'';position:absolute;left:39%;right:39%;height:4px;bottom:10px;background:#19345f;border-radius:8px}
.theme-solomon .join-face{inset:9% 7% 8%}
.theme-sketch .join-artifact{background-image:url('/assets/arks-easel-v2.png')}.theme-sketch .join-face{inset:13% 17% 26%;gap:5px}
.theme-sketch #join-dialog .join-close{right:-8px;top:-10px}.theme-sketch #join-link{font-size:clamp(11px,4cqw,18px)}
.theme-campfire .join-artifact{background-image:url('/assets/census-tablet-v2.png')}.theme-campfire .join-face{inset:13% 13% 13%}
.theme-letters .join-face{inset:14% 15% 25%}
/* Settings are an illustrated game menu, with only the controls scrolling on short displays. */
body #settings-dialog{--menu-ink:#19385e;--menu-accent:#bd9139;--menu-paper:#faf3df;width:min(640px,92vw);max-height:92dvh;border:7px solid #234777;border-radius:30px;padding:22px 26px 26px;background:radial-gradient(ellipse at 0 0,#fff9e8,transparent 65%),linear-gradient(135deg,#f7eed4,#e9e0c9);color:var(--menu-ink);box-shadow:inset 0 0 0 2px #dcba68,0 0 0 2px #d1af58,8px 10px 0 #0e244d66,0 25px 75px #08172a66;overflow:visible}
body #settings-dialog::before{content:'ROYAL ARRANGEMENTS';display:block;text-align:center;letter-spacing:.22em;font-size:11px;font-weight:900;color:var(--menu-accent);margin:0 0 12px}
.settings-heading{padding-bottom:14px;border-bottom:2px solid var(--menu-accent);margin-bottom:16px}
body .settings-heading h2{font-family:Georgia,serif;font-size:34px;color:var(--menu-ink);margin:0}
.settings-scroll{max-height:calc(92dvh - 155px);overflow:auto;scrollbar-width:thin;scrollbar-color:var(--menu-accent) transparent;padding:0 5px 4px}
body.host.lobby #settings-dialog #settings{gap:14px 18px}
body.host.lobby #settings-dialog #settings label{font-size:15px;font-weight:800;color:var(--menu-ink);gap:6px}
body #settings-dialog select{background:#fffaf0;border:2px solid color-mix(in srgb,var(--menu-accent) 60%,#fff);border-radius:13px;color:var(--menu-ink);box-shadow:0 3px 0 #0000000e;max-width:100%}
body #settings-dialog input{accent-color:var(--menu-accent)}
body #settings-dialog button{background:var(--menu-ink);color:var(--menu-paper);border:2px solid var(--menu-accent);border-radius:14px;box-shadow:0 4px 0 #0002}
body #settings-dialog button:hover{filter:brightness(1.15);transform:translateY(-1px)}
body #settings-dialog .audio-settings{border:1px solid color-mix(in srgb,var(--menu-accent) 60%,transparent);padding:12px;border-radius:15px;background:#ffffff40}
.theme-sketch #settings-dialog{--menu-ink:#285846;--menu-accent:#9b632d;--menu-paper:#f6f1dd;border-color:#8b582e;background:repeating-linear-gradient(0deg,#fbf3df 0 80px,#cbb68e 81px,#fbf3df 83px);box-shadow:inset 0 0 0 3px #d6ad6d,7px 9px 0 #543c27,0 25px 75px #08172a66}
body.theme-sketch #settings-dialog::before{content:'THE PAINT LOCKER';color:#3c775b}
.theme-campfire #settings-dialog{--menu-ink:#5d432d;--menu-accent:#a9703c;--menu-paper:#fff2d8;border-color:#78634a;background:radial-gradient(ellipse at 0 0,#fff0cb99,transparent 70%),linear-gradient(125deg,#e5d4ae,#cbb68b);border-radius:38px 26px 31px 22px;box-shadow:inset 0 0 0 3px #eee0c0,7px 9px 0 #4a3a2d,0 25px 75px #08172a66}
body.theme-campfire #settings-dialog::before{content:'CAMP ARRANGEMENTS'}
.theme-letters #settings-dialog{--menu-ink:#245c64;--menu-accent:#be7b54;--menu-paper:#fcf6e8;border:3px solid #a8beb3;background:radial-gradient(ellipse at 0 0,#bdd4c480,transparent 55%),radial-gradient(ellipse at 100% 100%,#e9b29b70,transparent 50%),#fcf7e9;border-radius:6px 25px 9px 28px;box-shadow:inset 0 0 0 5px #f5ead1,7px 9px 0 #b5765c,0 25px 75px #08172a66}
body.theme-letters #settings-dialog::before{content:'THE DISPATCH DESK'}
/* Leave generous room for all four round titles and the full-body roster. */
body.host.theme-solomon.phase-instructions .round-copy h2{font-size:clamp(30px,4.3vw,72px);line-height:1.14;white-space:normal;overflow:visible;overflow-wrap:normal;text-wrap:balance}
body.host.theme-solomon.phase-instructions .round-copy{justify-content:center;gap:10px;overflow:visible;max-height:none}
body.host.theme-solomon.phase-instructions .round-copy .eyebrow{font-size:clamp(24px,3vw,42px);line-height:1.15;flex:none}
body.host.theme-solomon.phase-instructions .round-scene{padding:4px 12px;overflow:visible}
/* A real stage sits behind the existing cast and unchanged phone demonstration. */
body.host.theme-solomon:is(.phase-intro,.phase-intro-ready) .question-panel{background:url('/assets/solomon-stage-v1.png') center/cover no-repeat;isolation:isolate}
body.host.theme-solomon:is(.phase-intro,.phase-intro-ready) .solomon-theatre>.announcer{height:100%;max-height:100%;align-self:end}
body.host.theme-solomon:is(.phase-intro,.phase-intro-ready) .solomon-advisor-group>.character-art{max-height:100%;align-self:flex-end}
@media(max-width:480px),(max-height:600px){body #settings-dialog{padding:14px 16px 18px}.settings-scroll{max-height:calc(92dvh - 140px)}body.host.lobby #settings-dialog #settings{gap:10px}.settings-heading{margin-bottom:12px;padding-bottom:10px}body .settings-heading h2{font-size:28px}body #join-dialog .join-face{gap:5px}}
body.host.lobby #settings-dialog #settings label:has(#controller-player){grid-column:1/-1}
