body.theme-pitch{--teal:#007f89;--ink:#24224d;--paper:#fff1ca;--gold:#f2b331;background:#efbd68 url('/assets/pitch-background-v1.png') center/cover fixed no-repeat}
/* The tutorial gives the painted scroll the full stage. */
.host.theme-pitch .pitch-intro-panel{gap:0;padding:8px 16px}
.pitch-tutorial-wrap{display:flex;flex-direction:column;align-items:center;gap:8px;width:100%;flex:1;min-height:0}
.pitch-tutorial-tabs{display:flex;justify-content:center;gap:10px;flex:none}
.theme-pitch .pitch-tutorial-tabs button{padding:7px 18px;font-size:clamp(15px,1.35vw,22px);border:2px solid transparent;border-radius:30px;box-shadow:none;background:#fff9e8;color:#24224d}
.theme-pitch .pitch-tutorial-tabs button[aria-pressed="true"]{background:#007f89;color:#fff9e8;border-color:#005b69}
.pitch-tutorial-scene{display:grid;grid-template-columns:minmax(0,.65fr) minmax(0,1.5fr) minmax(0,.65fr);align-items:center;justify-items:center;gap:6px;flex:1;min-height:0;width:100%;max-width:1500px}
.pitch-host{display:flex;align-items:center;justify-content:center;height:100%;min-height:0;width:100%;margin:0}
.pitch-host-art{display:block;position:relative;overflow:hidden;min-height:0;height:92%;max-width:100%;flex:0 1 auto}
.pitch-host-art img{position:absolute;max-width:none!important;max-height:none!important;width:auto;pointer-events:none}
.pitch-tutorial-device{position:relative;aspect-ratio:1;height:100%;max-width:100%;min-height:0;align-self:center}
.pitch-tutorial-scroll{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}
.pitch-scroll-screen{position:absolute;inset:18% 24% 17% 24%;display:flex;align-items:center;justify-content:center;container-type:inline-size}
.pitch-scroll-step{width:100%;display:flex;flex-direction:column;align-items:center;gap:clamp(7px,1.5vh,18px);color:#24224d}
.pitch-scroll-step[hidden]{display:none!important}
.pitch-scroll-step small{font:900 clamp(12px,4.5cqw,22px)/1.15 system-ui;letter-spacing:.04em;color:#9a4933}
.pitch-scroll-step h3{font:700 clamp(24px,12.5cqw,58px)/1.12 Georgia,serif;margin:0;overflow-wrap:anywhere}
.pitch-scroll-step p{font:650 clamp(20px,10cqw,44px)/1.16 system-ui;margin:0;overflow-wrap:anywhere}
.pitch-demo-reply,.pitch-demo-option{width:100%;padding:10px 8px;border:2px solid #d7b363;border-radius:12px;background:#fffaf0c9}
.pitch-demo-option.selected{border-color:#007f89;background:#daf1e3}
.pitch-demo-lock{display:block;width:100%;padding:10px 5px;border-radius:11px;background:#007f89;color:#fff9e8;font:800 clamp(18px,9cqw,40px)/1.1 system-ui}
.pitch-demo-score{font:900 clamp(44px,25cqw,115px)/1 system-ui;color:#007f89}
.pitch-demo-double{font:900 clamp(17px,7cqw,34px)/1.1 system-ui;color:#ad4936}
@media(max-height:650px){.host.theme-pitch .pitch-intro-panel{padding:5px 8px}.pitch-tutorial-wrap{gap:3px}.theme-pitch .pitch-tutorial-tabs button{font-size:14px;padding:4px 12px}.pitch-scroll-step{gap:5px}.pitch-demo-reply,.pitch-demo-option{padding:5px 4px}.pitch-demo-lock{padding:5px 3px}}
@media(prefers-reduced-motion:no-preference){.pitch-host.speaking .pitch-host-art{animation:pitch-host-talk 1.3s ease-in-out infinite}.pitch-demo-lock{animation:pitch-demo-lock 3s ease-in-out infinite}@keyframes pitch-host-talk{50%{transform:translateY(-3px) rotate(.4deg)}}@keyframes pitch-demo-lock{70%,100%{box-shadow:0 0 0 3px #f2b33199}}}
.theme-pitch button{background:#007f89;box-shadow:0 3px 0 #004f60;color:#fff9e8}.theme-pitch button.secondary{background:#454079}.theme-pitch .code-box{color:#fff8d9}.theme-pitch #settings-dialog{background:#fff2cf;color:#24224d}
.host.theme-pitch .layout{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto auto;min-height:0}.host.theme-pitch #gameplay{grid-column:1;grid-row:1;min-height:0;height:100%}.host.theme-pitch #controls,.host.theme-pitch #status{grid-column:1}.pitch-panel{height:100%;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center;padding:22px;background:#fff5d9ee;border:2px solid #efb44d;box-shadow:0 5px 0 #b56b3930;color:#25234b;overflow:hidden}.pitch-panel h2{font-size:clamp(26px,3.1vw,54px);line-height:1.13;margin:0;max-width:1100px;overflow-wrap:anywhere}.pitch-kicker{font-size:clamp(14px,1.3vw,22px);font-weight:900;letter-spacing:.1em;color:#ab4c35;margin:0}.pitch-footnote,.pitch-round-note{font-size:clamp(16px,1.8vw,28px);margin:0}.pitch-tutorial{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;width:100%;max-width:1100px}.pitch-tutorial article{padding:22px;border-radius:22px;background:#fffaf0;border-bottom:6px solid #ee7861}.pitch-tutorial strong{font-size:56px;color:#008a94}.pitch-tutorial h3{font:700 34px Georgia,serif;margin:6px}.pitch-tutorial p{font-size:23px;margin:0}.pitch-progress{font-size:22px;font-weight:750;margin:0}.pitch-roster{display:grid!important;grid-template-columns:repeat(var(--pitch-columns,6),minmax(0,1fr));grid-auto-rows:minmax(0,1fr);width:100%;height:100%;min-height:0;flex:1;gap:12px}.pitch-roster .character-spotlight{min-width:0;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:5px}.pitch-roster .character-art{height:min(30vh,230px);max-width:100%;width:auto}.pitch-roster .character-name{font-size:clamp(20px,2vw,32px);line-height:1.1;overflow-wrap:anywhere}.pitch-roster .character-points{font-size:clamp(20px,2vw,34px);line-height:1.15}.pitch-answers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;min-height:0;flex:1;width:100%;align-items:stretch}.pitch-answer{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;border-radius:24px;background:#fffdf3;border:3px solid #08a2a4;padding:20px;min-height:0;overflow:hidden}.pitch-answer:nth-child(2){border-color:#ed785e}.pitch-answer p{font-size:clamp(26px,3.6vw,60px);font-weight:800;line-height:1.12;margin:0;overflow-wrap:anywhere}.pitch-answer .character-art{height:min(20vh,160px);width:auto;max-width:80%}.pitch-answer strong,.pitch-points{font-size:clamp(18px,1.9vw,30px);line-height:1.1}.pitch-champion{font-size:clamp(22px,2.3vw,38px);font-weight:800;margin:0}.pitch-waiting>.character-art{flex:0 1 auto;height:min(40dvh,300px);width:auto;max-width:90%}
.phone.theme-pitch.playing main{height:100dvh;max-height:100dvh;padding:8px;display:flex;flex-direction:column;overflow:hidden}.phone.theme-pitch.playing #room{display:flex;flex-direction:column;flex:1;min-height:0;height:100%}.phone.theme-pitch .room-heading{height:50px;min-height:50px;margin-bottom:8px}.phone.theme-pitch .room-heading img{height:48px;width:145px;object-fit:contain}.phone.theme-pitch .layout{display:flex;flex-direction:column;min-height:0;flex:1;gap:8px}.phone.theme-pitch #gameplay{display:flex;flex:1;min-height:0}.phone.theme-pitch .pitch-panel{width:100%;padding:12px;gap:10px}.phone.theme-pitch .pitch-panel h2{font-size:clamp(19px,5.5vw,30px)}.phone.theme-pitch #controls{flex:none}.phone.theme-pitch #status:empty{display:none}.phone.theme-pitch .pitch-kicker{font-size:12px}.pitch-writing form{display:flex;flex-direction:column;gap:8px;width:100%;flex:1;min-height:0}.pitch-writing textarea{width:100%;flex:1;min-height:70px;max-height:230px;resize:none;border:2px solid #d6b571;border-radius:14px;padding:14px;background:#fffdf4;font:600 22px/1.3 system-ui;color:#25234b}.pitch-count{text-align:right;font-size:12px}.pitch-phone-vote .pitch-vote-choices{display:flex;flex-direction:column;gap:10px;flex:1;min-height:0;width:100%}.pitch-vote-choices button{display:flex;gap:10px;flex:1;min-height:0;padding:12px;background:#fffdf3;color:#24224d;border:3px solid #d1bb87;box-shadow:none;font-size:clamp(18px,5vw,26px);line-height:1.2;overflow-wrap:anywhere}.pitch-vote-choices button.selected{border-color:#007f89;background:#d9f5ee}.phone .pitch-answers{gap:8px}.phone .pitch-answer{padding:9px;gap:7px}.phone .pitch-answer p{font-size:clamp(16px,4.7vw,25px)}.phone .pitch-answer .character-art{height:min(18dvh,110px)}.phone .pitch-answer strong,.phone .pitch-points{font-size:16px}.phone .pitch-roster{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.phone .pitch-roster .character-art{height:min(18dvh,140px)}.phone .pitch-roster .character-name,.phone .pitch-roster .character-points{font-size:16px}.phone .pitch-champion{font-size:20px}
/* The joining QR uses the very same painted scroll and ink pot. */
body.theme-pitch #join-dialog{--join-ink:#24224d;--join-edge:#e5a94d;--join-paper:#fff6df;background:#fff1ce}
.theme-pitch .join-layout{--join-object-width:min(calc((100dvh - 24px)*.96),54vw)}
body.theme-pitch #join-dialog .join-artifact{aspect-ratio:1;width:min(100cqw,100cqh);height:auto;background:url('/assets/pitch-tutorial-scroll-v2.png') center/contain no-repeat;border:0;border-radius:0;box-shadow:none}
body.theme-pitch #join-dialog .join-face{inset:18% 24% 20%;border:0;border-radius:0;background:none;box-shadow:none;gap:8px}
body.theme-pitch #join-dialog .join-qr-paper{background:#fff6df;width:min(100cqw,calc(100cqh - 42px));padding:0;border-radius:0}
body.theme-pitch #join-dialog .join-close{top:-25px;right:-18px;background:#fff4d5;color:#24224d;border:1px solid #d7b363;box-shadow:none;border-radius:50%}
@media(max-aspect-ratio:1/1){.theme-pitch .join-layout{--join-object-width:100%}}
/* Centre compact phone cards, leaving the village visible around their content. */
.phone.theme-pitch.playing main{padding:16px 12px}
.phone.theme-pitch .layout{justify-content:center;align-items:center;gap:12px}
.phone.theme-pitch #gameplay{width:100%;flex:0 1 auto;justify-content:center;align-items:center;min-height:0}
.phone.theme-pitch .pitch-panel{height:auto;max-height:100%;width:calc(100% - 16px);padding:16px;gap:12px;flex:0 1 auto}
.phone.theme-pitch #controls{width:calc(100% - 16px);flex:none;justify-content:center}
.phone.theme-pitch .pitch-writing form{flex:none;gap:8px}
.phone.theme-pitch .pitch-writing textarea{height:clamp(95px,22dvh,180px);min-height:70px;flex:none}
.phone.theme-pitch .pitch-waiting>.character-art{height:min(30dvh,220px)}
.phone.theme-pitch .pitch-phone-vote .pitch-vote-choices{flex:none}
.phone.theme-pitch .pitch-vote-choices button{min-height:65px;flex:none}
/* Score and final groups centre whole rows, including an incomplete last row. */
.theme-pitch .pitch-summary>h2,.theme-pitch .pitch-summary>.pitch-champion{flex:none}
.theme-pitch .pitch-summary-stage{display:flex!important;flex-wrap:wrap;align-content:center;align-items:center;justify-content:center;gap:12px;width:100%;height:100%;min-height:0;flex:1}
.theme-pitch .pitch-summary-stage .character-spotlight{flex:none;align-items:center;justify-content:center;gap:5px;min-width:0;min-height:0}
.theme-pitch .pitch-summary-stage .character-art{flex:none;max-width:100%}
.theme-pitch .pitch-summary-stage .character-name,.theme-pitch .pitch-summary-stage .character-points{max-width:100%;text-align:center;line-height:1.1}
.theme-pitch .pitch-summary-stage .winning-spotlight .character-points{color:#007f70}
.phone.theme-pitch:is(.phase-pitch-scores,.phase-pitch-results) #gameplay{flex:1}
.phone.theme-pitch .pitch-panel.pitch-summary{width:100%;height:100%;background:none;border:0;box-shadow:none;padding:8px;gap:10px}
.phone.theme-pitch .pitch-summary>h2,.phone.theme-pitch .pitch-summary>.pitch-champion{padding:8px 12px;background:#fff5d9ee;border-radius:16px;max-width:100%}
.phone.theme-pitch .pitch-summary-stage{gap:8px}
.phone.theme-pitch .pitch-summary-stage .character-name,.phone.theme-pitch .pitch-summary-stage .character-points{font-size:clamp(12px,3.8vw,17px);padding:2px 5px;background:#fff5d9ee;border-radius:6px}
@media(orientation:landscape) and (max-height:500px){.phone.theme-pitch.playing main{padding:8px 12px}.phone.theme-pitch .layout{gap:6px}.phone.theme-pitch .pitch-writing textarea{height:75px;min-height:50px}.phone.theme-pitch .pitch-writing{max-width:760px}.phone.theme-pitch .pitch-waiting>.character-art{height:50dvh}.phone.theme-pitch .pitch-summary-stage{gap:6px}}
/* Six games retain a single, clear selection row. */
.host.choosing-game #games{gap:clamp(8px,1.5vw,24px)}
/* Larger in-question Solomon roster with full-body avatars. */
.host.theme-solomon:is(.phase-question,.phase-reading) .layout{grid-template-rows:minmax(0,1fr) minmax(130px,27vh) auto auto}
.host.theme-solomon:is(.phase-question,.phase-reading) #people-panel{height:100%;min-height:0;padding:4px 8px;background:#fff6dfd9}
.host.theme-solomon:is(.phase-question,.phase-reading) #players{height:100%;grid-template-columns:repeat(var(--roster-columns,6),minmax(0,1fr));grid-template-rows:repeat(var(--roster-rows,1),minmax(0,1fr));gap:5px}
.host.theme-solomon:is(.phase-question,.phase-reading) .player-card{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:3px;padding:3px;min-height:0}
.host.theme-solomon:is(.phase-question,.phase-reading) .player-card .player-name{font-size:clamp(22px,2.3vw,36px);line-height:1.05;flex:none}
.host.theme-solomon:is(.phase-question,.phase-reading) .player-card .badge{font-size:clamp(21px,2.1vw,34px);line-height:1.05;flex:none}
.host.theme-solomon:is(.phase-question,.phase-reading) .player-card .character-art{max-width:100%;flex:none;height:100px}
@media(max-height:650px){.pitch-panel{padding:12px;gap:8px}.pitch-tutorial article{padding:12px}.pitch-tutorial strong{font-size:36px}.pitch-tutorial h3{font-size:27px}.pitch-tutorial p{font-size:19px}.host.theme-solomon:is(.phase-question,.phase-reading) .layout{grid-template-rows:minmax(0,1fr) minmax(110px,29vh) auto auto}.host.theme-solomon:is(.phase-question,.phase-reading) .player-card .player-name{font-size:20px}.host.theme-solomon:is(.phase-question,.phase-reading) .player-card .badge{font-size:19px}}
@media(orientation:landscape) and (max-height:500px){.phone.theme-pitch .room-heading{height:35px;min-height:35px}.phone.theme-pitch .room-heading img{height:32px}.phone.theme-pitch .pitch-panel{gap:5px;padding:8px}.phone.theme-pitch .pitch-panel h2{font-size:19px}.phone.theme-pitch .pitch-writing{display:grid;grid-template-columns:1fr 1.2fr;grid-template-rows:auto 1fr;text-align:left}.phone .pitch-writing form{grid-column:2;grid-row:1/4;height:100%}.phone .pitch-writing textarea{font-size:18px;min-height:45px}.phone .pitch-vote-choices{flex-direction:row!important}.phone .pitch-waiting{flex-direction:row}.phone .pitch-waiting>.character-art{height:60dvh}.phone .pitch-roster .character-art{height:22dvh}.phone .pitch-answer .character-art{height:18dvh}}

.host.theme-solomon:is(.phase-question,.phase-reading) #players{grid-template-columns:repeat(var(--roster-count),minmax(0,1fr));grid-template-rows:minmax(0,1fr)}
.host.theme-solomon:is(.phase-question,.phase-reading) .player-card .portrait{width:clamp(64px,10vh,108px);height:clamp(64px,10vh,108px);max-width:90%;max-height:none;flex:none}
/* Keep large labels even when legacy crowded-roster rules apply. */
body.host.theme-solomon:is(.phase-question,.phase-reading) #players .player-card .player-name{font-size:clamp(24px,2.3vw,36px);line-height:1.08;white-space:normal;text-align:center}
body.host.theme-solomon:is(.phase-question,.phase-reading) #players .player-card .badge{font-size:clamp(23px,2.1vw,34px);line-height:1.08;text-align:center}
body.host.theme-solomon:is(.phase-question,.phase-reading) #players.crowded-roster .player-card .player-name{font-size:clamp(20px,1.65vw,28px)}
body.host.theme-solomon:is(.phase-question,.phase-reading) #players.crowded-roster .player-card .badge{font-size:clamp(19px,1.55vw,26px)}
@media(max-height:650px){body.host.theme-solomon:is(.phase-question,.phase-reading) #players .player-card .player-name{font-size:22px}body.host.theme-solomon:is(.phase-question,.phase-reading) #players .player-card .badge{font-size:21px}body.host.theme-solomon:is(.phase-question,.phase-reading) #players.crowded-roster .player-card .player-name{font-size:18px}body.host.theme-solomon:is(.phase-question,.phase-reading) #players.crowded-roster .player-card .badge{font-size:17px}}

/* v090: mirror the entire actor, keeping talking transforms inside. */
.pitch-host[data-speaker="matthew"]{transform:scaleX(-1)}
.pitch-host-art{flex:none;width:auto;max-width:none}
.pitch-host-region{display:block;overflow:hidden}
