.host-game-panel{grid-column:1/-1}.host-game-panel>p{max-width:760px}.host-game-panel form{max-width:380px}.host-game-panel form .game-button{margin:18px 0}.host-current-word{font-size:40px;font-weight:900;color:#245943;margin:10px 0}.host-word-winner{font-size:30px;font-weight:900;color:#245943}.word-host-actions{display:flex;flex-wrap:wrap;gap:12px;margin:18px 0}.word-host-actions .game-button{width:auto;min-width:190px}.host-buzz-status{min-height:26px}.word-scores{margin-bottom:22px}.word-scores ol{max-width:600px;padding:0;list-style:none}.word-scores li{display:flex;gap:16px;justify-content:space-between;padding:8px 0;border-bottom:1px solid #cfbd8f;overflow-wrap:anywhere}.phone-game{background:#fff9df;border:3px solid #c9a23b;border-radius:10px;padding:18px;margin:20px 0;text-align:center}.phone-game[hidden]{display:none}.phone-game h2{font-size:24px;color:#245943}.phone-game-word{font-size:32px;font-weight:900;margin:12px 0}.phone-game-status{font-size:16px;min-height:48px}.phone-game .game-button{width:100%;margin-top:14px}.phone-game .quiet{margin-bottom:0}
.phone-playing .phone-content{padding-top:24px}.phone-playing .phone-greeting,.phone-playing .phone-message{display:none}.phone-playing .phone-content>.elf-name{font-size:30px;line-height:1.15;margin-bottom:12px}.phone-playing .phone-game{margin-top:12px}
:root{--red:#dc2b0c;--gold:#ffce67;--green:#245943;--olive:#6e622d;--cream:#fff9df;--corner:10px;font:700 16px/1.45 Georgia,'Times New Roman',serif;color:#243f31;background:#34281e}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}a{color:inherit}button,a,input,select,summary{touch-action:manipulation}button,summary{cursor:pointer}button:disabled{opacity:.6;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #fff;outline-offset:4px;box-shadow:0 0 0 7px var(--green)}h1,h2,p{margin:0}h1,h2{line-height:1.12}h1,h2,.private-brand{font-family:Ultra,Georgia,serif;font-weight:400}h2{font-size:24px}p{line-height:1.5}input,select{width:100%;min-height:52px;border:2px solid #90805c;border-radius:var(--corner);background:#fffdf2;color:#243f31;padding:12px 14px;font-weight:700}label{display:block;margin:18px 0 7px;font-size:14px}input::placeholder{color:#827963}hr{border:0;border-top:1px solid #c7b88f;margin:25px 0}details{margin-top:20px}summary{min-height:36px;padding:7px 0;font-size:13px}details a{line-height:2.2}[hidden]{display:none!important}.room-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}.outlined{font-family:Ultra,Georgia,serif;color:white;-webkit-text-stroke:.16em var(--red);paint-order:stroke fill;letter-spacing:.01em;filter:drop-shadow(0 2px 1px #66331d24)}
.game-button,.preview-tile{display:flex;align-items:center;justify-content:center;background:var(--red);color:white;border:5px solid var(--gold);border-radius:var(--corner);font:900 18px/1.15 Georgia,'Times New Roman',serif;text-align:center;padding:15px 18px;min-height:60px;text-decoration:none;box-shadow:0 6px 12px #3e2b1c28;overflow-wrap:anywhere}.game-button:hover{background:#c6260a}.game-button:active{transform:translateY(1px)}.small-button{border:2px solid #8c743e;border-radius:var(--corner);background:#fff7dc;color:var(--green);min-height:48px;padding:10px 14px;font-size:13px;font-weight:900}.small-button:hover{background:#ffecb6}.quiet{font-size:12px;line-height:1.7;color:#4f5c44;margin:13px 0}.kicker{font-size:11px;font-weight:900;letter-spacing:.13em}.connection-notice{position:fixed;z-index:20;bottom:10px;left:10px;max-width:calc(100% - 20px);background:#fff8dc;color:#614b1d;border:1px solid #b48f38;padding:8px 12px;border-radius:8px;font-size:12px}.error-notice{position:relative;z-index:21;background:#fff1da;color:#842e13;padding:13px 20px;border-bottom:2px solid #ad5d2b;font-size:13px;overflow-wrap:anywhere}.tv-view #error{position:fixed;top:0;left:0;right:0}.loading{padding:100px 25px;text-align:center;background:#f8ebc6;min-height:100vh}
/* Public TV: a full, centered 16:9 composition over the unchanged clean room art. */
.tv-view{height:100vh;overflow:hidden;display:grid;place-items:center;background:#241e18}.tv-view #app{width:100%;height:100%;display:grid;place-items:center}.tv-stage{position:relative;width:min(100vw,177.777778vh);aspect-ratio:16/9;overflow:hidden;container-type:inline-size;background:#ba8a50}.family-heading{position:absolute;left:6%;top:0;width:88%;height:25%;display:flex;align-items:center;justify-content:center;text-align:center;font-size:6.05cqw;line-height:.99;letter-spacing:.025em;overflow-wrap:anywhere;text-wrap:balance}.family-heading>span{display:block;width:100%}.family-line{display:block}.brand-heading{position:absolute;left:6%;width:88%;height:19%;bottom:3%;display:flex;align-items:center;justify-content:center;text-align:center;font-size:6.05cqw;line-height:1.08;overflow-wrap:anywhere;text-wrap:balance;-webkit-text-stroke:.16em var(--red)}.brand-heading>span{display:block;width:100%}.qr-panel{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:22.4%;padding:.6cqw;background:var(--cream);border:.65cqw solid var(--olive);border-radius:.7cqw}.qr-panel img{display:block;width:100%;height:auto;aspect-ratio:1}.qr-missing{height:36%;display:flex;align-items:center;justify-content:center;text-align:center;font-size:2cqw}.scan-instruction{position:absolute;top:72%;left:29%;width:42%;text-align:center;font-size:1.7cqw;font-weight:900;color:#394b26;text-shadow:0 1px 2px #fff5cd}.tv-welcome{position:absolute;left:32%;top:25.2%;width:36%;height:3.8%;display:flex;gap:.5cqw;flex-direction:row;align-items:center;justify-content:center;text-align:center;pointer-events:none}.welcome-label{font-size:1cqw;font-weight:900;color:#45502d;text-shadow:0 1px 2px #fff5d4}.tv-welcome strong{display:block;flex:0 1 auto;min-width:0;width:auto;font-size:2cqw;line-height:1.1;white-space:nowrap;-webkit-text-stroke:.12em var(--red)}.fullscreen-tool{position:absolute;right:1%;bottom:1%;border:0;border-radius:7px;padding:4px 9px;font-size:22px;color:white;background:#463b2b88;opacity:.2}.fullscreen-tool:hover,.fullscreen-tool:focus-visible{opacity:1}
/* Private screens reflow; a landscape TV composition is never shrunk onto a phone. */
.private-view{background:#f6e7be}.private-header{min-height:75px;padding:18px 4%;display:flex;justify-content:space-between;align-items:center;gap:20px;background:#fff6da;border-bottom:2px solid #c5b786}.private-brand{text-decoration:none;color:var(--green);font-size:23px}.private-header>span{font-size:10px;text-transform:uppercase;letter-spacing:.12em;text-align:right}.home-scene{position:relative;min-height:calc(100dvh - 75px);overflow:hidden}.home-scene::after{content:'';position:absolute;inset:0;background:#68451a18;pointer-events:none}.home-content{position:relative;z-index:1;max-width:620px;margin:auto;text-align:center;padding:65px 35px}.home-content h1{font-size:clamp(43px,6vw,80px);line-height:1.12}.home-invitation{margin:35px 0 24px;color:#fff8dc;text-shadow:0 2px 3px #473113;font-size:19px}.home-content>.game-button{width:100%;max-width:370px;margin:auto}.fallback-entry{max-width:370px;margin:25px auto;background:#fff3d8e8;border-radius:10px;padding:5px 20px}.fallback-entry form{padding-bottom:18px}.fallback-entry .game-button{width:100%;margin-top:14px;font-size:16px;min-height:52px}.host-layout{max-width:1320px;margin:auto;padding:35px 30px 50px;display:grid;grid-template-columns:1fr 1fr;gap:25px}.host-intro{grid-column:1/-1}.host-intro h1{font-size:47px;color:var(--green);margin:12px 0 18px}.host-intro p{font-size:14px}.host-panel{background:#fff7df;border:2px solid #cfbd8f;border-radius:14px;padding:28px;min-width:0}.host-panel h2{color:var(--green);margin-bottom:18px}.host-panel .game-button{width:100%;font-size:16px;min-height:56px}.host-control-row{display:flex;justify-content:space-between;gap:15px;align-items:center;font-size:13px;margin-top:20px}.host-panel form .game-button{margin-top:22px}.save-status{font-size:12px;color:#36563c;min-height:20px;margin-top:12px}.roster-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.roster-heading>span{font-size:12px;white-space:nowrap}.host-roster{padding:0;list-style:none;display:grid;gap:10px}.host-roster li{display:flex;align-items:center;gap:12px;background:#f0e6c9;border-radius:8px;padding:14px}.host-roster li>span{color:#ad7d21}.host-roster strong{font-size:17px;overflow-wrap:anywhere}.host-roster small{margin-left:auto;white-space:nowrap;font-size:10px;color:#4f5c44}.host-qr .qr-panel{position:static;transform:none;width:155px;padding:5px;border:5px solid var(--olive);border-radius:7px;margin:15px 0}.host-join-link{font-size:13px;overflow-wrap:anywhere;margin-bottom:15px}.host-panel details{border-top:1px solid #d8cba9;padding-top:6px}.recovery-panel{max-width:570px;margin:60px auto;padding:35px;background:#fff8e4;border:2px solid #cabb90;border-radius:14px}.recovery-panel h1{font-size:36px;color:var(--green);margin-bottom:22px}.recovery-panel p{margin-bottom:24px}.recovery-panel a{display:block;text-align:center;margin-top:22px}
.phone-view .private-header{min-height:68px;padding:16px 20px}.phone-view .private-brand{font-size:17px}.phone-view .private-header>span{font-size:8px;max-width:100px}.phone-scene{position:relative;min-height:calc(100dvh - 68px);overflow:hidden;background:#c49350}.phone-scene>.room-art{object-fit:cover;object-position:50% 50%;opacity:.8}.phone-scene::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#f2d09885,#f4d49ba8 45%,#f2d09885);pointer-events:none}.phone-content{position:relative;z-index:1;width:min(620px,100%);min-height:calc(100dvh - 68px);margin:auto;padding:35px 28px 32px;display:flex;flex-direction:column;justify-content:center;text-align:center}.phone-kicker{font-size:11px;letter-spacing:.12em;color:var(--green);font-weight:900;margin-bottom:19px}.phone-title{font-size:clamp(35px,4.6vw,51px);line-height:1.16;margin-bottom:28px;-webkit-text-stroke:.12em var(--red)}.phone-content form{text-align:left}.phone-content label{font-size:14px;color:#2e442e}.phone-content input,.phone-content select{background:#fff9e9;min-height:53px}.phone-content form .game-button{margin-top:27px;width:100%;font-size:17px}.phone-greeting{font-family:'Alfa Slab One',Georgia,serif;font-weight:800;font-size:43px;line-height:1.1;letter-spacing:.025em;color:var(--gold);-webkit-text-stroke:5px var(--green);paint-order:stroke fill;margin-bottom:30px}.elf-name{font-size:clamp(42px,6vw,72px);line-height:1.19;text-transform:uppercase;overflow-wrap:anywhere;text-wrap:balance;word-spacing:2px;margin:0 0 36px;-webkit-text-stroke:.17em var(--red)}#step-heading:focus{outline:none}.elf-actions{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:10px 0}.elf-actions .game-button{font-size:17px;padding:16px 8px;min-height:67px}.phone-footnote{font-size:11px;color:#354931;line-height:1.6;margin-top:23px}.phone-message{font-size:18px;color:#30472b;line-height:1.65;margin:0 0 28px}.phone-content>.small-button{align-self:center;margin-top:16px}.duplicate-note,.availability-note{font-size:13px;color:#37482c;background:#fff4d2ec;border:1px solid #ac945d;border-radius:8px;padding:13px;line-height:1.5;margin:0 0 20px}.availability-note{margin-top:20px}.saved-elves{margin-top:24px;border-top:1px solid #8b794e;padding-top:8px}.saved-elves summary{font-size:12px}.saved-elves .small-button{display:block;width:100%;margin-top:10px}.draft-view{justify-content:center}.draft-view .phone-greeting{margin-bottom:40px}
/* Separate, non-playable visual studies. No buttons here launch games. */
.design-view{background:#30251b;min-height:100vh}.design-toolbar{padding:16px 24px;color:#fff8df;background:#245943;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;align-items:center;font-size:13px}.design-toolbar span{font-size:11px}.design-toolbar nav{display:flex;gap:18px}.preview-stage{position:relative;width:min(100%,1600px);aspect-ratio:16/9;margin:20px auto;overflow:hidden;container-type:inline-size}.preview-stage .room-art{transform:scale(1.4)}.menu-stack{position:absolute;left:15%;right:15%;top:6.5%;bottom:6.5%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr));gap:6.5% 3%}.preview-tile{font-size:2.8cqw;border-width:.58cqw;border-radius:calc(10cqw / 12.8);padding:.5cqw 1cqw;min-height:0;box-shadow:0 .6cqw 1cqw #3e2b1c30}.menu-stack .preview-tile:nth-child(1){grid-column:1/-1;grid-row:1;width:48.5%;justify-self:center}.menu-stack .preview-tile:nth-child(2){grid-column:1/-1;grid-row:2;width:48.5%;justify-self:center}.menu-stack .preview-tile:nth-child(3){grid-column:1;grid-row:3}.menu-stack .preview-tile:nth-child(4){grid-column:2;grid-row:3}.menu-stack .preview-tile:nth-child(5){grid-column:1/-1;grid-row:4;width:48.5%;justify-self:center}.trivia-title{position:absolute;left:17%;width:66%;top:3%;text-align:center;font-size:6.4cqw}.trivia-question{position:absolute;left:20%;width:64%;top:20.5%;font-size:2.8cqw;text-align:center;color:var(--olive);font-weight:900}.trivia-answers{position:absolute;left:20%;right:16%;top:33%;bottom:10%;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:repeat(3,minmax(0,1fr));gap:7% 5%}.trivia-answers .preview-tile{font-size:2.45cqw}
@media(min-width:1500px){.game-button{border-radius:14px}.tv-stage .qr-panel{border-radius:1cqw}.fullscreen-tool{font-size:30px}}
@media(max-width:740px){.private-header{padding:17px 20px}.private-brand{font-size:19px}.private-header>span{font-size:8px}.home-content{padding:60px 22px}.home-content h1{font-size:48px}.host-layout{display:flex;flex-direction:column;padding:28px 16px;gap:20px}.host-intro h1{font-size:36px}.host-intro p{font-size:13px}.host-panel{padding:23px}.host-roster li{gap:8px}.host-roster strong{font-size:15px}.host-roster small{font-size:8px}.host-control-row{font-size:12px}.recovery-panel{margin:35px 18px;padding:28px}.phone-content{padding:38px 24px 30px}.phone-title{font-size:38px}.elf-name{font-size:45px}.phone-greeting{font-size:39px}.elf-actions{gap:12px}.elf-actions .game-button{font-size:16px;border-width:4px}.phone-content form .game-button{font-size:16px}.design-toolbar{padding:15px}.preview-stage{margin-top:15px}}
@media(max-width:350px){.phone-content{padding-left:18px;padding-right:18px}.phone-title{font-size:33px}.elf-name{font-size:39px}.elf-actions{grid-template-columns:1fr;gap:12px}.elf-actions .game-button{min-height:58px}.private-brand{font-size:15px}.phone-message{font-size:16px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.scan-instruction{left:50%;width:max-content;max-width:45%;transform:translateX(-50%);background:none;padding:0}
.name-measure{position:absolute;visibility:hidden;white-space:nowrap;pointer-events:none}
.host-trivia-options{padding:0;list-style:none;display:grid;gap:10px;margin:18px 0}.host-trivia-options li{padding:12px 16px;border:2px solid #cfbd8f;border-radius:10px;background:#f0e6c9;overflow-wrap:anywhere}
.phone-trivia-question{font-size:22px;line-height:1.3;font-weight:900;margin:16px 0;overflow-wrap:anywhere}
.phone-trivia-choices{border:0;padding:0;margin:0 0 18px;min-width:0;text-align:left}.phone-trivia-choices legend{font-size:13px;padding:0;margin-bottom:8px}
.phone-trivia-option{display:flex;align-items:center;gap:12px;margin:10px 0;padding:12px;border:2px solid #c9a23b;border-radius:10px;min-height:54px;background:#fff4d7;color:#173f2e;cursor:pointer;font-size:16px;line-height:1.3;overflow-wrap:anywhere}
.phone-trivia-option input{width:22px;height:22px;min-height:0;flex-shrink:0;margin:0;accent-color:#245943}.phone-trivia-option span{min-width:0}.phone-trivia-option:has(input:checked){border-color:#245943;background:#dceccf}.phone-trivia-option:has(input:focus-visible){outline:3px solid #245943;outline-offset:2px}.phone-trivia-correct{background:#dceccf;border-color:#245943}.phone-trivia-answer{font-weight:900;margin-top:12px;overflow-wrap:anywhere}
.phone-view #trivia-submit{width:100%;background:#245943;color:#fff4d7;margin:0 0 18px}
.phone-view .phone-game .phone-trivia-option{color:#173f2e;text-shadow:none;font-size:16px}
.host-song-prompt{font-size:clamp(24px,4vw,38px);font-weight:900;line-height:1.25;margin:18px 0;color:#245943;overflow-wrap:anywhere}
.host-answer{background:#f0e6c9;border:2px solid #c9a23b;border-radius:10px;padding:12px 16px;margin:18px 0 22px}
.host-answer summary{font-size:14px}.host-answer p{margin:10px 0;overflow-wrap:anywhere}.host-answer strong{font-size:22px}
.phone-song-prompt{font-size:24px;line-height:1.3;font-weight:900;margin:15px 0;overflow-wrap:anywhere}
.phone-song-answer{font-size:21px;line-height:1.3;padding:12px 0;color:#245943;font-weight:900;overflow-wrap:anywhere}
/* Private host control center: game navigation never changes the public TV. */
.host-view{background:#173e30;color:#fff4d7;min-height:100dvh}
.host-view .private-header{background:#173e30;border-color:#cda34d;color:#fff4d7}
.host-view .private-brand{color:#fff4d7}
.host-shell{max-width:1040px;margin:0 auto;padding:20px 28px 50px}
.host-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.host-toolbar .small-button{text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.host-settings-link{margin-left:auto}
.host-toolbar [aria-current=page]{background:#ffce67}
.host-session-strip{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:18px 0 28px;font-size:12px;color:#f6dfab}
#host-tv-summary::before{content:'●';margin-right:8px;color:#ffce67}
#host-tv-summary[data-state=linked]::before{color:#a6df8c}
.host-hub-heading{text-align:center;margin:6px 0 28px}
.host-hub-heading h1,.host-page-heading h1{font-family:'Alfa Slab One',Georgia,serif;font-weight:400;font-size:clamp(38px,6vw,60px);color:#fff4d7;line-height:1.1;letter-spacing:.025em;margin:8px 0 12px}
.host-hub-heading p{font-size:16px;color:#f6dfab;overflow-wrap:anywhere}
.host-game-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.host-game-tile{min-width:0;min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:22px 16px;text-align:center;text-decoration:none;border:4px solid #e8ba58;border-radius:10px;background:#a82018;color:#fff4d7;box-shadow:0 6px 0 #102e2366}
.host-game-tile:nth-child(even){background:#285a43}
.host-game-tile:hover{border-color:#ffe6a4;background:#882019}
.host-game-tile:nth-child(even):hover{background:#326b50}
.host-game-tile strong{font-size:23px;font-weight:900;line-height:1.15;overflow-wrap:anywhere}
.host-game-icon{display:block;width:58px;height:58px;color:#ffdb87;flex-shrink:0}
.host-game-icon svg{display:block;width:100%;height:100%}
.host-tile-status{font-size:12px;font-weight:900;color:#ffe7b3;line-height:1.3}
.host-game-ready .host-tile-status{background:#fff4d7;color:#173e30;padding:5px 12px;border-radius:20px}
.host-game-tile:last-child{grid-column:1/-1;justify-self:center;width:calc(50% - 10px)}
.host-hub-note{text-align:center;color:#f6dfab;font-size:13px;margin:26px 0 0}
.host-current-game{border:1px solid #e8ba58;border-radius:10px;padding:16px 18px;background:#234d3b;margin-bottom:22px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:14px}
.host-current-game a{font-weight:900;text-underline-offset:3px}
.host-page-heading{margin-bottom:24px}
.host-shell .host-panel{color:#243f31}
.host-shell .host-layout{padding:0;gap:20px}
.host-planned-panel{display:flex;align-items:center;flex-direction:column;gap:18px;text-align:center;padding:40px 24px}
.host-planned-panel .host-game-icon{width:82px;height:82px;color:#245943}
.host-planned-panel h2{margin:0}
.host-planned-panel p{max-width:440px}
.host-planned-panel .quiet{margin:0}
.host-planned-panel .small-button{display:inline-flex;align-items:center;text-decoration:none;margin-top:8px}
@media(max-width:740px){.host-shell{padding:18px 16px 36px}.host-game-grid{gap:14px}.host-game-tile{min-height:158px;padding:18px 10px;gap:9px}.host-game-tile strong{font-size:20px}.host-game-tile:last-child{width:calc(50% - 7px)}.host-game-icon{width:46px;height:46px}.host-session-strip{margin:16px 0 24px;font-size:11px}.host-hub-heading{margin-bottom:24px}.host-shell .host-layout{display:flex;flex-direction:column}.host-shell .word-host-actions{display:grid;grid-template-columns:1fr}.host-shell .word-host-actions button{width:100%;min-width:0}}
@media(max-width:350px){.host-game-tile strong{font-size:18px}.host-game-tile{min-height:155px;border-width:3px;padding:16px 8px}.host-tile-status{font-size:11px}.host-game-ready .host-tile-status{padding:5px 8px}.host-toolbar .small-button{font-size:12px}}
.preview-stage{width:min(100%,1600px,calc((100dvh - 110px) * 16 / 9))}

/* Let the longest title option fit within narrow host panels. */
.host-panel{min-width:0}.host-panel select{min-width:0;max-width:100%}

.title-choice-preview{margin:6px 0 0;overflow-wrap:anywhere}

/* Portrait elf identity: supplied cabin/sign, real nickname and touch controls. */
.phone-view{background:#183e30}
.phone-view .private-header{background:#183e30;color:#fff4d7;border-bottom:2px solid #d9aa4e}
.phone-view .private-brand{color:#fff4d7}
.phone-view .phone-scene{background:#34251b}
.phone-view .phone-scene>.room-art{opacity:1;object-position:47% 50%}
.phone-view .phone-scene:after{background:linear-gradient(180deg,rgba(27,15,8,.12),rgba(27,15,8,.48) 55%,rgba(27,15,8,.65))}
.phone-view .phone-content{width:min(520px,100%);padding:24px 24px 30px;justify-content:center;color:#fff4d7}
.elf-reveal-banner{position:relative;width:calc(100% + 24px);margin:-8px -12px 14px;aspect-ratio:770/370;flex-shrink:0}
.elf-reveal-banner>img{display:block;width:100%;height:auto}
.phone-view .elf-reveal-banner .phone-greeting{position:absolute;left:13%;top:50%;width:74%;margin:0;color:#123f2f;font-family:Georgia,'Times New Roman',serif;font-weight:bold;font-size:clamp(28px,7vw,43px);line-height:1.1;letter-spacing:0;-webkit-text-stroke:0;text-shadow:0 1px 0 #fff1c9}
.phone-view .elf-name{font-family:'Alfa Slab One',Georgia,serif;font-size:clamp(44px,10vw,68px);font-weight:400;line-height:1.12;letter-spacing:.025em;color:#fff8dc;-webkit-text-stroke:.055em #ae2117;paint-order:stroke fill;text-shadow:0 3px 5px #24130b;margin-bottom:28px}
.phone-view .phone-footnote,.phone-view .phone-message,.phone-view .phone-kicker,.phone-view .phone-content label{color:#fff4d7;text-shadow:0 1px 3px #24130b}
.phone-view .phone-message{font-size:17px;line-height:1.5;margin-bottom:20px}
.phone-view .phone-footnote{font-size:12px}
.phone-view .elf-actions{gap:12px;margin:8px 0 0}
.phone-view .elf-actions .game-button{border:3px solid #edc466;border-radius:10px;min-height:62px;font-size:17px;box-shadow:0 4px 8px #24130b55}
.phone-view #confirm{background:#245943;color:#fff8dc}
.phone-view #confirm:hover{background:#173f2e}
.phone-view #reroll{background:#ae2117;color:#fff8dc}
.phone-view .saved-elves{color:#fff4d7;border-color:#d9aa4e}
.phone-view .small-button{background:#fff4d7;border-color:#d9aa4e;color:#173f2e;text-shadow:none}
.phone-view .phone-title{font-family:'Alfa Slab One',Georgia,serif;font-weight:400;-webkit-text-stroke:.05em #ae2117;line-height:1.12}
.phone-view.phone-playing .elf-reveal-banner{display:none}
.phone-view.phone-playing .phone-content{justify-content:flex-start}
.phone-view .phone-game,.phone-view .phone-game-word,.phone-view .phone-game-status{color:#173f2e;text-shadow:none}
@media(max-width:350px){.phone-view .phone-content{padding:20px 18px 26px}.phone-view .elf-actions{grid-template-columns:1fr}.phone-view .elf-name{font-size:44px}.phone-view .elf-actions .game-button{min-height:56px}}
.host-charades-clock,.phone-charades-clock{font-family:'Alfa Slab One',Georgia,serif;font-size:3.2rem;line-height:1.1;color:#174c36;margin:16px 0;text-align:center}
.phone-charades-clue{font-family:'Alfa Slab One',Georgia,serif;font-size:2rem;line-height:1.2;color:#174c36;background:#fff3cf;border:2px solid #c69a40;border-radius:12px;padding:20px 14px;overflow-wrap:anywhere;text-align:center}
.phone-charades-actor{font-family:'Alfa Slab One',Georgia,serif;font-size:2rem;text-align:center;overflow-wrap:anywhere}
.charades-options{margin-top:16px}
#charades-first{margin-bottom:16px}
.elf-return{margin:18px 0;padding:14px;border:2px solid #bd9345;border-radius:10px;background:#fff8e4;color:#173f31;overflow-wrap:anywhere}
.elf-return-qr{display:block;width:200px;max-width:100%;height:auto;margin:16px auto}
.elf-return input{width:100%;min-width:0;box-sizing:border-box;font-size:14px}
.save-elf{margin:18px auto;max-width:460px;text-align:left}
.save-elf>summary{cursor:pointer;font-weight:bold;color:#fff5d4;text-shadow:0 1px 3px #163e2f}
.save-elf>button{margin-top:12px}
.host-roster li>button{grid-column:2/-1;justify-self:start;margin-top:8px}
.rather-results{margin:18px 0;padding:12px;border:2px solid #c9a54c;border-radius:10px;background:#fff1c9;color:#173f31;overflow-wrap:anywhere}
.rather-results p{margin:8px 0}

/* Private host palette: flat game-night colors, October 29. */
.host-view{--red:#a82018;--gold:#ffce67;--green:#245943;--cream:#fff3d6;background:#245943;color:#fff3d6}
.host-view .private-header{justify-content:center;min-height:88px;padding:20px 24px;background:#a82018;border-bottom:3px solid #ffce67;color:#fff3d6}
.host-view .private-header>span{display:block;width:100%;font-family:'Alfa Slab One',Georgia,serif;font-size:clamp(26px,2.4vw,32px);font-weight:400;line-height:1.15;letter-spacing:.025em;text-transform:none;text-align:center;color:#fff3d6}
.host-view .host-panel{background:#fff3d6;border:2px solid #d2aa57;border-radius:10px;color:#214b38}
.host-view .host-panel h2{font-family:'Alfa Slab One',Georgia,serif;font-weight:700;color:#245943}
.host-view .host-page-heading h1,.host-view .host-hub-heading h1{color:#fff3d6}
.host-view .host-page-heading .kicker,.host-view .host-session-strip,.host-view .host-hub-heading p,.host-view .host-hub-note{color:#ffe1a0}
.host-view .game-button{background:#a82018;border-color:#ffce67;color:#fff3d6}
.host-view .game-button:hover{background:#8d1b15}
.host-view .small-button{background:#fff3d6;border-color:#d2aa57;color:#245943}
.host-view .small-button:hover{background:#ffe7b5}
.host-view .host-toolbar [aria-current=page]{background:#ffce67;color:#214b38}
.host-view input,.host-view select{background:#fffaf0;border-color:#c8a965;color:#214b38}
.host-view .host-panel .quiet{color:#4c5d48}
.host-view .host-panel hr{border-color:#dac18a}
.host-view .host-game-tile{border-color:#ffce67;background:#a82018;color:#fff3d6}
.host-view .host-game-tile:nth-child(even){background:#1b4b37}
.host-view .host-game-tile:hover{background:#8d1b15}
.host-view .host-game-tile:nth-child(even):hover{background:#153e2d}

/* Host blue/white refinement sampled from user's winter-blue swatch, October 29. */
.host-view{--cream:#fff;background:#083878;color:#fff}
.host-view .private-header{background:#083878;color:#fff}
.host-view .private-header>span,.host-view .host-page-heading h1,.host-view .host-hub-heading h1{color:#fff}
.host-view .host-panel{background:#fff;border-color:#8aa6c8;color:#203d63}
.host-view .host-panel h2,.host-view .host-word-winner,.host-view .host-current-word{color:#083878}
.host-view input,.host-view select{background:#fff;border:2px solid #7595bc;color:#203d63}
.host-view input::placeholder{color:#6d8099}
.host-view .small-button{background:#fff;border:2px solid #7595bc;color:#083878}
.host-view .small-button:hover{background:#eaf2fc}
.host-view .host-toolbar [aria-current=page]{background:#ffce67;border-color:#d6a54a;color:#163766}
.host-view .game-button{color:#fff}
.host-view .host-panel .quiet{color:#42546c}
.host-view .host-panel hr{border-color:#c8d5e5}
.host-view .host-current-game{background:#10477e}
.host-view .host-game-ready .host-tile-status{background:#fff;color:#083878}

.host-view .host-toolbar [aria-current=page]{background:#fff;border-color:#7595bc;color:#083878}

/* One white clickable tile per game; no separate button-like status badge. */
.host-view .host-game-tile,.host-view .host-game-tile:nth-child(even){background:#fff;color:#083878;border:2px solid #7595bc;box-shadow:none}
.host-view .host-game-tile:hover,.host-view .host-game-tile:nth-child(even):hover{background:#eaf2fc;border-color:#083878}
.host-view .host-game-tile .host-game-icon{color:#083878}
.host-view .host-game-ready .host-tile-status{background:transparent;padding:0;border-radius:0;color:#42546c}

/* Host refinement: no header rule; Setup actions match Restore this elf. */
.host-view .private-header{border-bottom:0}
.host-view [data-host-page="setup"] .game-button{background:#fff;color:#083878;border:2px solid #7595bc;box-shadow:none}
.host-view [data-host-page="setup"] .game-button:hover{background:#eaf2fc}

/* Setup actions: user's intended beige button fill. */
.host-view [data-host-page="setup"] .game-button,.host-view [data-host-page="setup"] .small-button{background:#fff7dc;color:#083878;border-color:#7595bc}
.host-view [data-host-page="setup"] .game-button:hover,.host-view [data-host-page="setup"] .small-button:hover{background:#ffecb6}

/* Elf entry: remove the top header; give the registration heading the top space. */
.phone-view .private-header{display:none}
.phone-view .phone-scene,.phone-view .phone-content{min-height:100vh;min-height:100dvh}
.phone-registration .phone-content{justify-content:flex-start;padding-top:20px}
.phone-registration .phone-kicker{font-family:'Alfa Slab One',Georgia,serif;font-size:clamp(28px,7vw,38px);font-weight:400;line-height:1.2;letter-spacing:.025em;color:#fff9df;text-shadow:0 2px 5px #352417;margin-bottom:16px}
