/* Shared game shell: the Pairs visual system, within each approved universe. */
:root{--header:100px;--night:#08182d;--game-glass:#0b2138e8;--game-edge:#c5dfff40;--game-text:#fff7e7;--game-muted:#d4e2ef;--game-accent:#fff080}
body{background:var(--night);color:var(--game-text)}body.kawaii{--night:#201634;--game-glass:#251a3fea;background:var(--night)}
.world-background{background-image:linear-gradient(270deg,var(--night) 0%,transparent 85%),var(--scene);background-position:center;background-size:cover}
body:not(.in-game) .world-background{background-image:linear-gradient(270deg,var(--night) 0%,transparent 72%),var(--scene)}
body.bosque:not(.in-game) .world-background{background-position:left center}
.in-game .world-background{background-image:linear-gradient(180deg,#08182d33,transparent 38%,#08182d44),var(--scene)}
.game-header{height:var(--header);padding:15px clamp(18px,3vw,54px);gap:26px;background:linear-gradient(180deg,#08182de6,#08182d4d,transparent);color:var(--game-text);box-shadow:none}
.brand{min-width:112px}.brand img{width:122px;height:48px;filter:drop-shadow(0 2px 4px #09102780)}.brand span{color:#e8e1f0;font-size:14px;letter-spacing:2px;margin-top:5px}
.game-heading{flex:1;min-width:0}.game-heading p{font-size:13px;line-height:1.3;letter-spacing:2px;font-weight:700;text-transform:uppercase;color:var(--game-accent);margin-bottom:8px}.game-header h1{font-size:clamp(19px,2vw,29px);line-height:1.12;color:var(--game-text);text-shadow:0 2px 7px #08182d}
.tools{gap:10px}.icon-button{width:auto;min-width:70px;height:67px;min-height:67px;padding:9px 12px;border:1px solid var(--game-edge);border-radius:20px;background:var(--game-glass);color:var(--game-text);display:flex;flex-direction:column;justify-content:center;gap:5px;backdrop-filter:blur(12px)}
.icon-button svg{width:25px;height:25px}.control-label{font-size:12px;font-weight:700;line-height:14px}.icon-button:hover{background:#284765}.icon-button[aria-pressed=false]:after{width:28px;top:24px}.icon-button[aria-pressed=true]:before{content:'';position:absolute;right:10px;top:9px;width:6px;height:6px;background:#71ead7;border-radius:50%;box-shadow:0 0 8px #71ead7}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline-color:var(--game-accent)}
.setup-screen{display:block;width:min(1440px,100%);min-height:calc(100svh - var(--header));margin:0 auto;padding:24px clamp(24px,5vw,80px) 54px}.welcome-copy{width:47%;max-width:520px;margin-left:auto}
.intro{background:none;padding:0;border-radius:0;box-shadow:none;color:var(--game-text);text-shadow:0 2px 14px #08182d}.intro>p:first-child{font-size:13px;letter-spacing:2px;text-transform:uppercase;color:var(--game-accent);margin-bottom:15px}.intro h2{font-size:clamp(40px,4.7vw,66px);line-height:1.02;letter-spacing:-1.6px;color:var(--game-text);margin-bottom:18px}.intro h2 em{font-style:normal;color:var(--game-accent)}.intro p{font-size:20px;line-height:1.4}.intro-rules{border:0;padding:0;gap:4px;margin:18px 0 24px}.intro-rules strong{font-size:20px;color:var(--game-accent)}.intro-rules span{font-size:16px}.intro .privacy-note{display:none}
.setup-panel{background:var(--game-glass);border:1px solid var(--game-edge);padding:24px;border-radius:25px;box-shadow:0 18px 65px #03112666;backdrop-filter:blur(14px);color:var(--game-text)}.setup-panel h2{font-size:23px;margin-bottom:20px}.team-hint,.how-to p{color:var(--game-muted)}legend{font-size:16px}.player-field input,.setup-selects select{background:#071b32bd;border-color:#c5dfff55;color:var(--game-text)}.player-field input::placeholder{color:#bed0e3}.setup-selects select option{background:#0b2138;color:var(--game-text)}.remove-player,.add-player,.presets button,.how-to summary{color:#bfe5ff}.player-field .player-number{color:#231c36}.color-picker summary{box-shadow:inset 0 0 0 5px #0b2138;border-color:#ffffffaa}.table-choice span{background:#08182dcc;color:var(--game-text);border-color:var(--game-edge)}.table-choice input:checked+span{background:var(--game-accent);color:#18243c;border-color:var(--game-accent)}.motion-check input{accent-color:#c8a0ff}.privacy-note{color:var(--game-muted)}#setup-error{color:#ffbeb8}
/* The challenge and clock form one centered unit; the player rail uses the right. */
#play-screen{grid-template-columns:minmax(0,1fr) clamp(240px,24vw,310px);grid-template-rows:auto minmax(0,1fr) auto;gap:12px 24px;padding:8px clamp(16px,2.5vw,42px) 16px}
.mission{grid-column:1;grid-row:1;width:min(490px,88%);justify-self:center;align-self:start;padding:0;gap:9px;min-width:0}.mission-capsule,.kawaii .mission-capsule{display:block;min-width:0;width:100%;padding:12px 18px 10px;border-radius:24px;border:1px solid var(--game-edge);background:var(--game-glass);box-shadow:0 6px 22px #08182d55;backdrop-filter:blur(12px);color:var(--game-text)}
#question-title{font-size:clamp(48px,6vw,80px);line-height:1.04;letter-spacing:1px;margin:0;white-space:nowrap}.kawaii #question-title{font-size:clamp(36px,4.7vw,64px)}.clock-row{width:100%;max-width:none;margin:0;position:relative;display:block;height:23px}.time-track{width:100%;height:23px;border:2px solid #ffffffe6;box-shadow:0 2px 8px #08182d80;background:#152439d9}#time-label{position:absolute;right:11px;top:4px;line-height:15px;min-width:0;font-size:14px;color:#fff;text-shadow:0 1px 3px #08182d,0 0 5px #08182d;font-weight:700}
.player-panel{grid-column:2;grid-row:1/4;display:flex;flex-direction:column;gap:13px;min-height:0;padding:2px}.player-status{flex:none;min-width:0}.turn-heading{flex-direction:column;align-items:flex-start;gap:5px;padding:13px 18px 14px;background:var(--game-glass);border:1px solid var(--game-edge);border-left:6px solid var(--turn-color);border-radius:19px;color:var(--game-text);box-shadow:0 5px 20px #08182d40;backdrop-filter:blur(12px)}.turn-heading>span{font-size:12px;text-transform:uppercase;letter-spacing:1.5px;font-weight:700;color:var(--turn-color)}#turn-title{font-size:25px;line-height:1.15;max-width:100%;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.player-panel #feedback{position:static;transform:none;display:flex;align-items:flex-start;gap:11px;text-align:left;width:100%;height:115px;margin:12px 0 0;padding:14px;border:1px solid var(--game-edge);border-radius:19px;background:var(--game-glass);color:var(--game-text);box-shadow:0 5px 20px #08182d40;backdrop-filter:blur(12px);white-space:normal;pointer-events:none}
.player-panel #feedback[data-kind=success]{background:#103d2bf2;color:#f0fff1;border-color:#71e09c}.player-panel #feedback[data-kind=miss]{background:#4b1f28f2;color:#fff5ed;border-color:#ff9f97}.player-panel #feedback[data-kind=success] #feedback-icon{background:#21834b;color:white}.player-panel #feedback[data-kind=miss] #feedback-icon{background:#d33b36;color:white}.feedback-copy{gap:6px}.feedback-copy strong{font-size:21px;line-height:24px;white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.feedback-copy>span{font-size:14px;line-height:18px}#feedback-icon{width:38px;height:38px}#feedback-icon svg{width:28px;height:28px}
.combo{position:static;display:block;max-width:none;white-space:normal;margin:10px 2px 0;padding:0;color:var(--game-accent);font-size:16px;text-align:left;background:none;border-radius:0;box-shadow:none;text-shadow:0 2px 5px #08182d}
.scoreboard{display:flex;flex-direction:column;justify-content:flex-start;gap:9px;padding:3px 2px 8px;min-height:0;overflow-y:auto;overflow-x:hidden}.player-score{flex:none;max-width:none;width:100%;min-width:0;min-height:53px;padding:7px 11px;border:1px solid var(--game-edge);border-left:5px solid var(--player);border-radius:15px;background:var(--game-glass);color:var(--game-text);box-shadow:none;gap:10px}.player-score.active{border:1px solid #ffffffdb;border-left:5px solid var(--player);background:var(--player);box-shadow:0 0 0 1px #08182d99;color:#231c36}.player-identity{flex:1}.player-name{font-size:15px;max-width:none}.player-score b{font-size:22px;color:var(--player)}.player-score.active b{color:#231c36}.player-score .player-number{width:26px;height:26px;font-size:13px;color:#231c36}.turn-label{font-size:9px;line-height:10px;height:10px}
.arena{grid-column:1;grid-row:2;margin:0;max-width:none;width:100%;min-width:0;justify-self:stretch}.journey-bar{grid-column:1;grid-row:3;width:100%;margin:0;padding:12px 18px;background:var(--game-glass);border:1px solid var(--game-edge);color:var(--game-text);border-radius:19px;box-shadow:0 6px 22px #08182d40;backdrop-filter:blur(12px)}.progress-copy span{color:var(--game-accent)}.progress-copy strong{font-size:13px}.keyboard-hint{color:var(--game-muted)}
/* 60% of the previous font size; cqw also bounds text to its actual target. */
.target{container-type:inline-size}.target strong{font-size:min(clamp(19.2px,2.76vw,40.8px),32cqw);letter-spacing:-.5px}.target .key{bottom:14%;right:24%}
dialog,.finish-panel{background:var(--game-glass);color:var(--game-text);border:1px solid var(--game-edge);backdrop-filter:blur(18px)}dialog h2,.finish-panel h2{color:var(--game-text)}dialog .secondary,.finish-panel .secondary{background:#ffffff15;color:var(--game-text);border:1px solid var(--game-edge)}dialog .exit-game{color:var(--game-text);border-color:var(--game-edge)}dialog .privacy-note{color:var(--game-muted)}.finish-panel #results>div{background:#ffffff12}.finish-panel #results b{color:var(--game-accent)}#welcome-menu button,#welcome-menu a{width:100%;margin-top:10px}#welcome-menu p{color:var(--game-muted)}
.is-paused .player-panel *{animation-play-state:paused!important}
.player-panel #feedback{height:138px}
@media(max-width:1000px){:root{--header:88px}.game-header{gap:18px;padding:10px 22px}.brand{min-width:95px}.brand img{width:105px;height:42px}.game-header h1{font-size:20px}.game-heading p{font-size:10px;letter-spacing:1.3px}.icon-button{min-width:61px;height:60px;min-height:60px;padding:8px}.welcome-copy{width:50%}.setup-screen{padding:24px 30px 44px}.intro h2{font-size:46px}.intro p{font-size:18px}.setup-panel{padding:21px}#play-screen{gap:12px 15px;padding:8px 18px 14px;grid-template-columns:minmax(0,1fr) 240px}.mission{width:94%}#question-title{font-size:58px}.kawaii #question-title{font-size:40px}.feedback-copy strong{font-size:19px;line-height:22px}.feedback-copy>span{font-size:13px;line-height:17px}.player-panel #feedback{padding:12px;gap:9px}.player-score{min-height:48px}.keyboard-hint{display:none}.journey-bar{padding:10px 12px;gap:10px}.progress-copy{min-width:83px}#journey{gap:4px}#journey span{width:14px;height:14px}.kawaii #journey span{width:24px;height:24px}}
@media(max-width:650px){:root{--header:78px}.game-header{gap:11px;padding:9px 12px}.brand{min-width:75px}.brand img{width:79px;height:32px}.brand span{font-size:11px;margin-top:4px}.game-heading p{display:none}.game-header h1{display:block;font-size:15px;max-width:170px}.tools{gap:5px}.icon-button{min-width:36px;width:36px;height:44px;min-height:44px;padding:5px;border-radius:13px}.icon-button svg{width:21px;height:21px}.control-label{display:none}.icon-button[aria-pressed=true]:before{width:4px;height:4px;right:4px;top:5px}.icon-button[aria-pressed=false]:after{top:22px;width:23px}.world-background{background-position:20% top;background-size:auto 70svh;background-repeat:no-repeat;background-color:var(--night)}body:not(.in-game) .world-background{background-image:linear-gradient(180deg,transparent 12%,var(--night) 80%),var(--scene)}body.bosque:not(.in-game) .world-background{background-position:20% top}.in-game .world-background{background-size:cover;background-position:center}.setup-screen{width:100%;max-width:none;padding:200px 18px 30px;margin:0}.welcome-copy{width:100%;max-width:none}.intro h2{font-size:42px}.intro p{font-size:18px}.intro>p:first-child{font-size:11px}.intro-rules{margin:14px 0 20px}.setup-panel{padding:21px 16px}.team-hint{font-size:12px}.player-field input{font-size:16px}.color-swatches{width:224px;gap:8px}.setup-selects{gap:9px}.setup-selects select{font-size:14px}.table-choices{gap:5px}
 #play-screen{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr) auto;gap:9px;padding:4px 10px max(8px,env(safe-area-inset-bottom))}.mission{grid-row:1;grid-column:1;width:min(490px,100%);gap:7px}.mission-capsule,.kawaii .mission-capsule{padding:7px 12px;border-radius:19px}#question-title{font-size:52px}.kawaii #question-title{font-size:43px}.clock-row,.time-track{height:20px}#time-label{font-size:12px;line-height:14px;top:3px}
 .player-panel{grid-row:2;grid-column:1;display:flex;flex-direction:column;gap:6px;padding:0}.player-status{display:grid;grid-template-columns:110px minmax(0,1fr);gap:7px}.turn-heading{padding:8px 10px;gap:4px;justify-content:center;border-radius:13px;border-left-width:4px}.turn-heading>span{font-size:9px;letter-spacing:1px}#turn-title{font-size:16px}.player-panel #feedback{margin:0;height:112px;border-radius:13px;padding:8px;gap:7px;align-items:center}.feedback-copy{gap:3px}.feedback-copy strong{font-size:16px;line-height:18px}.feedback-copy>span{font-size:12px;line-height:14px}#feedback-icon{width:30px;height:30px}#feedback-icon svg{width:22px;height:22px}.combo{display:none}
 .scoreboard{display:flex;flex-direction:row;overflow-x:auto;overflow-y:hidden;padding:1px 2px 3px;gap:5px;scrollbar-width:none}.scoreboard:has(.player-score:only-child){display:none}.player-score{flex:0 0 120px;width:120px;min-height:38px;padding:4px 6px;gap:5px;border-radius:10px;border-left-width:3px}.player-score.active{border-left-width:3px}.player-name{font-size:11px}.player-score .player-number{width:19px;height:19px;font-size:10px}.player-score b{font-size:16px}.turn-label{font-size:8px;line-height:9px;height:9px}.arena{grid-column:1;grid-row:3}.journey-bar{grid-column:1;grid-row:4;padding:7px 10px;border-radius:14px;gap:8px}.progress-copy{min-width:78px}.progress-copy strong{font-size:11px}.progress-copy span{font-size:13px}#journey span{width:10px;height:10px;border-width:1px}.kawaii #journey span{width:19px;height:19px}#journey{gap:3px}.target strong{font-size:min(clamp(19.2px,4.8vw,25.8px),32cqw)}.target .key{width:15px;height:15px;font-size:10px;bottom:12%}.hit-feedback{width:66px;height:66px;border-width:3px}.hit-feedback svg{width:42px;height:42px}.hit-feedback.success svg{width:26px;height:26px}.hit-feedback b{font-size:18px;line-height:19px}}
@media(max-height:520px) and (min-width:541px){:root{--header:58px}.game-header{padding:5px 17px;gap:14px}.brand{min-width:90px;flex-direction:row;gap:6px}.brand img{width:73px;height:30px}.brand span{font-size:10px;margin:0}.game-heading p{display:none}.game-header h1{font-size:17px}.icon-button{min-width:46px;height:44px;min-height:44px;padding:5px;border-radius:13px}.control-label{display:none}#play-screen{grid-template-columns:minmax(0,1fr) 222px;gap:7px 14px;padding:4px 14px 8px}.mission{width:min(360px,94%);gap:5px}.mission-capsule,.kawaii .mission-capsule{padding:5px 14px;display:block;border-radius:17px}#question-title{font-size:46px}.kawaii #question-title{font-size:38px}.clock-row,.time-track{height:18px}#time-label{font-size:11px;line-height:12px;top:3px}.player-panel{gap:8px}.turn-heading{padding:7px 11px;gap:2px;border-radius:13px}.turn-heading>span{font-size:10px}#turn-title{font-size:19px}.player-panel #feedback{height:106px;margin-top:8px;padding:9px;gap:7px;border-radius:13px}.feedback-copy strong{font-size:16px;line-height:18px}.feedback-copy>span{font-size:12px;line-height:14px}#feedback-icon{width:29px;height:29px}#feedback-icon svg{width:21px;height:21px}.combo{display:none}.scoreboard{gap:5px}.player-score{min-height:40px;padding:4px 7px;gap:6px;border-radius:11px}.player-name{font-size:12px}.player-score b{font-size:17px}.player-score .player-number{width:20px;height:20px;font-size:11px}.journey-bar{padding:6px 10px;gap:9px}.progress-copy{gap:6px;min-width:0}.progress-copy strong,.progress-copy span{font-size:11px}#journey span{width:12px;height:12px}.kawaii #journey span{width:21px;height:21px}.target strong{font-size:min(18.6px,32cqw)}}
@media(max-height:520px) and (min-width:541px) and (max-width:650px){#play-screen{grid-template-rows:auto minmax(0,1fr) auto}.player-panel{grid-column:2;grid-row:1/4;padding:2px}.player-status{display:block}.scoreboard,.scoreboard:has(.player-score:only-child){display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden}.player-score{flex:none;width:100%}.arena{grid-column:1;grid-row:2}.journey-bar{grid-column:1;grid-row:3}}
#journey{min-width:0}.kawaii #journey span{flex-shrink:1;min-width:8px}
