@font-face{font-family:Nimbus;src:url('assets/NimbusSans-Regular.otf')}@font-face{font-family:Nimbus;src:url('assets/NimbusSans-Bold.otf');font-weight:700}
:root{font-family:Nimbus,Arial,sans-serif;color:#fff7e7;background:#08142b;font-synthesis:none;--yellow:#ffe600;--muted:#bdcce8;--glass:rgba(8,22,51,.82)}
*{box-sizing:border-box}body{margin:0;min-height:100svh}button,input,summary{font:inherit}button,summary{cursor:pointer;-webkit-tap-highlight-color:transparent}button{color:inherit}button:disabled{cursor:default}button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #fff36a;outline-offset:5px}button{touch-action:manipulation}button:hover:not(:disabled){filter:brightness(1.1)}[hidden]{display:none!important}
.scenery{position:fixed;inset:0;background:linear-gradient(90deg,rgba(2,10,32,.23),transparent 75%),url('assets/play-07.png') center/cover no-repeat;z-index:-3}
body.playing .scenery{background-image:linear-gradient(rgba(2,12,33,.57),rgba(3,14,31,.70)),url('assets/play-07.png');filter:saturate(1.1)}
.dust{position:fixed;inset:0;pointer-events:none;z-index:-1;background-image:radial-gradient(circle,#fff9bfaa 1px,transparent 2px),radial-gradient(circle,#a6edff80 1px,transparent 3px);background-size:171px 163px,289px 271px;animation:drift 24s ease-in-out infinite alternate;opacity:.35}
@keyframes drift{to{transform:translateY(-18px);opacity:.65}}
.topbar{min-height:110px;padding:17px clamp(20px,4vw,68px);display:flex;align-items:center;gap:28px;background:linear-gradient(#020b22b8,#06102c55,transparent);position:relative;z-index:5}
.logo{width:112px;height:76px;object-fit:contain}.game-heading{flex:1}.game-heading p{color:#ffed6b;margin:0 0 5px;font-size:14px;letter-spacing:2.4px;text-transform:uppercase;font-weight:700}.game-heading h1{margin:0;font-size:clamp(19px,2.3vw,29px);font-weight:700}
.controls{display:flex;gap:10px;align-items:center}.icon-button,.menu summary{min-width:66px;min-height:67px;border:1px solid #ffffff29;border-radius:20px;background:#071d38a8;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3px;position:relative;list-style:none;padding:8px 12px;backdrop-filter:blur(12px)}
.icon{font-size:24px;line-height:1}.control-label{font-size:13px}.indicator{width:6px;height:6px;position:absolute;right:10px;top:9px;border-radius:50%;background:#99f8d3;box-shadow:0 0 9px #99f8d3}.icon-button[aria-pressed=false]{opacity:.65}.icon-button[aria-pressed=false] .indicator{background:#8e9bad;box-shadow:none}.icon-button[aria-pressed=false] .icon{text-decoration:line-through}.menu summary>span:first-child{font-size:22px}.menu summary::-webkit-details-marker{display:none}.menu-panel{position:absolute;right:clamp(20px,4vw,68px);top:92px;min-width:248px;background:#0a2043;border:1px solid #ffffff30;border-radius:20px;box-shadow:0 18px 50px #0008;padding:9px;display:grid;gap:3px}.menu-panel button{background:none;border:0;text-align:left;padding:14px;border-radius:12px;font-size:16px}.menu-panel button:hover{background:#ffffff12}.menu-panel button:disabled{opacity:.35}
.screen{animation:screen-in .6s cubic-bezier(.22,1,.36,1) both}@keyframes screen-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.welcome{min-height:calc(100svh - 148px);padding:clamp(20px,4vh,48px) clamp(24px,6vw,100px) 35px;position:relative;display:flex;align-items:center}.welcome-copy{max-width:465px;width:44%;text-shadow:0 2px 20px #020815}.eyebrow{font-size:13px;font-weight:700;letter-spacing:2.2px;color:#fff080;margin:0 0 15px}.welcome h2{font-size:clamp(40px,4.8vw,72px);line-height:1.05;letter-spacing:-2px;margin:0 0 14px}.welcome h2 em{font-style:normal;color:var(--yellow)}.welcome-line{font-size:clamp(18px,1.7vw,23px);color:#e8eeff;margin:0 0 25px}
.setup{padding:24px;background:linear-gradient(130deg,#122c50e8,#0b193ad4);border:1px solid #a4d7ff38;border-radius:25px;backdrop-filter:blur(12px);box-shadow:0 20px 70px #0004;text-shadow:none}
fieldset{border:0;padding:0;margin:0 0 20px}legend{font-size:16px;font-weight:700;margin:0 0 12px}.players-inputs{display:grid;gap:9px}.player-field{display:flex;align-items:center;gap:9px}.player-number{display:grid;place-items:center;border-radius:50%;background:#fff080;color:#10223b;min-width:29px;height:29px;font-weight:700;font-size:14px}.player-field input{min-width:0;width:100%;border:1px solid #b4d7ff4d;border-radius:13px;padding:12px;background:#040f2866;color:white;font-size:17px}.player-field input::placeholder{color:#abbad3}.remove-player{background:transparent;border:0;font-size:24px;padding:6px;color:#c4d4ed}.add-player{border:0;background:none;color:#aee9ff;font-size:14px;padding:12px 0 0}.levels{display:flex;gap:8px}.levels button{flex:1;height:45px;border-radius:12px;border:1px solid #8fa9dc5c;background:#05142da6;font-size:19px}.levels button[aria-pressed=true]{background:var(--yellow);color:#092147;border-color:var(--yellow);font-weight:700;box-shadow:0 4px 19px #ffe60025}.difficulty p{font-size:13px;margin:11px 0 0;color:var(--muted)}.primary{border:0;background:linear-gradient(120deg,#fff269,#ffe600);color:#102446;padding:16px 24px;border-radius:15px;font-weight:700;font-size:19px;box-shadow:0 7px 0 #ba8b1738,0 8px 30px #ffdf0020;transition:transform .2s}.primary:active{transform:translateY(3px)}.start{width:100%;display:flex;justify-content:space-between;align-items:center}.start span{font-size:26px}.welcome-note{color:#c5d7ef;font-size:14px;margin:18px 0 0}.robot-greeting{position:absolute;left:64%;top:8%;transform:rotate(3deg)}.robot-greeting span{display:block;background:#fff7df;color:#13264c;font-weight:700;font-size:18px;padding:16px 23px;border-radius:22px 22px 22px 4px;box-shadow:0 5px 30px #0313254d;animation:bob 5s ease-in-out infinite}@keyframes bob{50%{transform:translateY(-7px)}}
.site-credit{padding:8px 24px 15px;text-align:right;color:#b7c5df;font-size:14px;letter-spacing:1px}
.game-screen{max-width:1320px;margin:auto;padding:7px 30px 14px}.scoreboard{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:0 0 16px}.player-score{flex:0 1 180px;border:1px solid #a4c4f538;background:#061c38c9;border-radius:18px;padding:12px 15px;transition:.25s;position:relative;min-width:135px}.player-score.active{border-color:#fff287;box-shadow:0 0 0 2px #fff28726;background:#233451ed}.player-score b{display:block;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:170px}.player-score .score-value{font-size:24px;color:#fff284;font-weight:700}.player-score small{font-size:13px;color:#dce9fa}.player-score .turn-label{position:absolute;right:10px;top:-8px;font-size:10px;font-weight:700;letter-spacing:1px;padding:3px 7px;color:#112643;background:#fff287;border-radius:6px}
.play-space{display:grid;grid-template-columns:190px minmax(0,1fr);gap:22px;align-items:center}.companion{text-align:center;align-self:center}.robot-frame{height:225px;position:relative}.robot-frame img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 12px 20px #0007)}#robot-line{font-size:18px;font-weight:700;line-height:1.35;color:#fff6cf;margin:0 auto 26px;max-width:175px}.best-box{padding:14px;border:1px solid #ffffff21;border-radius:16px;display:grid;gap:5px;background:#071b3aaa}.best-box span{font-size:14px}.best-box strong{font-size:25px;color:#ffe889}.best-box small{font-size:12px;color:#bacde7}
.table-area{border:1px solid #b9dcff2c;border-radius:28px;background:linear-gradient(140deg,#15314daa,#08172bd9);box-shadow:0 16px 70px #0004,inset 0 1px 0 #ffffff19;padding:20px 24px;backdrop-filter:blur(13px)}
.table-status{display:flex;align-items:center;gap:14px;justify-content:space-between;min-height:31px;margin-bottom:16px}.table-status p{margin:0;color:#effaff;font-size:17px}.table-status>span{white-space:nowrap;color:#fff18a;font-size:15px}.board{--cols:4;display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));gap:clamp(8px,1.2vw,16px);max-width:690px;margin:auto}.board[data-pairs="4"]{max-width:600px}.board[data-pairs="6"]{max-width:510px}.board[data-pairs="8"]{max-width:520px}.board[data-pairs="10"],.board[data-pairs="12"]{max-width:770px}
.card{padding:0;border:0;background:transparent;aspect-ratio:1;perspective:900px;position:relative;min-width:0;transition:transform .2s;isolation:isolate}.card:hover:not(:disabled){transform:translateY(-3px);filter:none}.card-inner{position:absolute;inset:0;transition:transform .54s cubic-bezier(.2,.75,.2,1);transform-style:preserve-3d}.card.open .card-inner,.card.matched .card-inner{transform:rotateY(180deg)}
.card-front,.card-back{position:absolute;inset:0;border-radius:clamp(12px,1.6vw,22px);backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden;display:grid;place-items:center;border:2px solid #a6d7ff78;box-shadow:0 5px 0 #010b2190,0 7px 15px #0003}
.card-back{background:radial-gradient(ellipse at 30% 15%,#39718f,#1f3c66 55%,#132340);box-shadow:inset 0 1px 0 #f4f5d455,0 5px 0 #06152d,0 9px 15px #0003}.card-back:before{content:"";position:absolute;inset:8px;border:1px solid #d8e8ff2f;border-radius:14px}.card-back span{font-size:clamp(28px,4.5vw,59px);color:#fff29f;text-shadow:0 0 18px #ffe05566;transition:transform .2s}.card:hover .card-back span{transform:rotate(12deg) scale(1.08)}
.card-front{transform:rotateY(180deg);background:#0a1539;border-color:#ebd27e}.card-art{position:absolute;inset:0;background-image:url('assets/symbols.png');background-size:400% 300%;background-position:var(--x) var(--y)}.card.matched .card-front{border-color:#e7db85;box-shadow:0 0 0 1px #f9e38738,0 5px 15px #0003}.card.matched{opacity:.72}.card.matched .card-front:after{content:"✓";position:absolute;right:6px;bottom:6px;width:21px;height:21px;border-radius:50%;background:#fff297;color:#102a3d;display:grid;place-items:center;font-size:14px;font-weight:700}.card.new-match{animation:match-pop .6s ease}.card.new-match .card-front{box-shadow:0 0 23px #ffe08c70}
@keyframes match-pop{45%{transform:scale(1.06)}}
.table-footer{margin-top:16px;display:flex;justify-content:space-between;gap:12px;color:#becee7;font-size:14px}
.celebration{pointer-events:none;position:fixed;inset:0;z-index:10;overflow:hidden}.spark{position:absolute;color:#ffeb72;text-shadow:0 0 15px #ffcf43;font-size:30px;animation:spark .85s ease-out forwards;left:var(--left);top:var(--top)}@keyframes spark{from{opacity:1;transform:translate(0,0) scale(.5)}to{opacity:0;transform:translate(var(--dx),var(--dy)) rotate(var(--spin)) scale(1.35)}}.robot-cheer{animation:robot-jump .75s cubic-bezier(.2,.8,.3,1)}@keyframes robot-jump{0%,100%{transform:translateY(0) rotate(0)}35%{transform:translateY(-35px) rotate(-9deg) scale(1.07)}65%{transform:translateY(-10px) rotate(6deg)}}
dialog{color:#f6f5ed;background:linear-gradient(150deg,#17355c,#081934);border:1px solid #b8d6ef59;border-radius:30px;padding:35px;width:min(490px,calc(100% - 30px));box-shadow:0 30px 100px #0009;text-align:center;max-height:90svh;overflow:auto}
dialog[open]{animation:screen-in .35s ease}dialog::backdrop{background:#031127b5;backdrop-filter:blur(10px)}dialog h2{font-size:32px;margin:12px 0 18px;line-height:1.1}dialog p{font-size:17px;color:#d2def0;line-height:1.5}dialog .primary{width:100%;margin-top:10px}.secondary{display:block;margin:17px auto 0;padding:8px 4px;border:0;background:none;color:#cfe8ff;font-size:15px}.finish-stars{font-size:49px;color:#ffe984;letter-spacing:8px}.result-row{display:flex;justify-content:space-between;gap:15px;padding:12px 0;border-bottom:1px solid #b9d5f327;font-size:19px}.result-row strong{color:#fff081}.result-row small{display:block;color:#a9c3e4;font-size:13px}.rewards{padding:0;list-style:none;display:grid;gap:12px;margin:25px 0}.rewards li{display:flex;justify-content:space-between;gap:12px;text-align:left;font-size:16px}.rewards strong{color:#ffee83}#record-message{color:#ffe781;font-weight:700}
@media(min-width:1500px){.welcome-copy{max-width:510px}.welcome{padding-top:65px;padding-bottom:80px}.game-screen{padding-top:28px}.board{max-width:730px}}
@media(max-width:950px){.topbar{gap:18px;padding:16px 24px}.welcome{padding-left:35px}.welcome-copy{width:49%;max-width:435px}.robot-greeting{left:65%;top:7%}.game-screen{padding:5px 20px 15px}.play-space{grid-template-columns:125px minmax(0,1fr);gap:14px}.robot-frame{height:175px}.table-area{padding:18px}.companion #robot-line{font-size:16px}.best-box{padding:10px}.menu-panel{right:24px}}
@media(max-width:650px){.topbar{min-height:85px;padding:12px 16px;gap:13px;flex-wrap:wrap}.logo{width:74px;height:53px}.game-heading h1{font-size:19px}.game-heading p{font-size:10px;letter-spacing:1.4px}.controls{gap:6px;margin-left:auto}.icon-button,.menu summary{min-width:42px;min-height:43px;border-radius:13px;padding:7px}.control-label{display:none}.indicator{top:5px;right:5px;width:4px;height:4px}.icon{font-size:23px}.menu-panel{right:16px;top:70px}.welcome{padding:clamp(140px,26vh,225px) 20px 25px;min-height:calc(100svh - 110px);align-items:flex-end}.welcome-copy{width:100%;max-width:none}.welcome h2{font-size:40px;letter-spacing:-1px}.welcome-line{font-size:19px;margin-bottom:18px}.welcome .eyebrow{display:none}.setup{padding:20px;border-radius:23px;background:#0b203fe8}.welcome-note{font-size:13px;margin-bottom:0}.scenery{background-position:64% top;background-size:auto 77svh;background-color:#071832}.welcome:before{content:"";position:absolute;inset:100px 0 0;background:linear-gradient(transparent,#071832 60%);z-index:-1}.robot-greeting{top:20px;left:auto;right:20px}.robot-greeting span{font-size:14px;padding:12px 15px}.game-screen{padding:8px 12px 4px}body.playing .scenery{background-size:cover;background-position:65% center}.play-space{display:block}.companion{display:flex;align-items:center;justify-content:center;gap:10px;height:68px;margin-bottom:8px}.robot-frame{width:73px;height:84px;flex-shrink:0}.companion #robot-line{font-size:15px;max-width:170px;margin:0;text-align:left}.best-box{border:0;background:transparent;padding:0 0 0 8px;border-left:1px solid #ffffff30;border-radius:0;gap:2px;margin-left:auto}.best-box span{font-size:11px}.best-box strong{font-size:19px}.best-box small{font-size:10px}.scoreboard{gap:7px;margin-bottom:8px}.player-score{min-width:105px;flex:1;padding:9px 10px;border-radius:13px}.player-score b{font-size:14px;max-width:115px}.player-score .score-value{font-size:20px}.player-score small{font-size:12px}.player-score .turn-label{font-size:9px}.table-area{border-radius:21px;padding:13px 10px}.table-status{margin-bottom:13px;gap:8px}.table-status p{font-size:14px}.table-status>span{font-size:12px}.board{gap:9px;--cols:4!important}.card-back:before{inset:6px;border-radius:9px}.card-back span{font-size:31px}.table-footer{font-size:12px;gap:8px;margin-top:13px}.site-credit{padding:10px 20px;font-size:12px}dialog{padding:27px 22px}dialog h2{font-size:29px}}
@media(max-width:380px){.topbar{gap:7px;padding:10px}.logo{width:58px}.game-heading h1{font-size:16px}.game-heading p{font-size:9px}.controls{gap:4px}.icon-button,.menu summary{min-width:36px;padding:6px}.welcome{padding-left:15px;padding-right:15px}.companion #robot-line{max-width:140px}.board{gap:7px}.rewards li{font-size:14px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
body.reduce-motion *,body.reduce-motion *:before,body.reduce-motion *:after{animation:none!important;transition:none!important}


/* Pilot refinement: player identity, persistent rail and lightweight character life. */
.robot-greeting{position:static;transform:none;margin:-8px 0 20px;display:inline-block}
.robot-greeting span{font-size:15px;padding:10px 16px;animation:none;border-radius:16px 16px 16px 3px}
.player-field{position:relative;gap:7px}.player-number{background:var(--player-color);min-width:28px}
.player-color{appearance:none;width:32px;min-width:32px;height:34px;color:transparent;border:2px solid #ffffff80;background:var(--player-color);border-radius:11px;cursor:pointer;font:inherit;box-shadow:inset 0 0 0 5px #0b203f;outline-offset:3px}
.player-color option{color:#0a1b31;background:white}.player-color:focus-visible{outline:3px solid white}.player-field input{flex:1}
.play-space{grid-template-columns:190px minmax(0,1fr);align-items:start}.player-rail{position:sticky;top:16px;align-self:start;max-height:calc(100svh - 32px);overflow-y:auto;padding:10px 5px 10px;scrollbar-width:thin;scrollbar-color:#45668a transparent}
.player-rail .scoreboard{display:flex;flex-direction:column;gap:14px;margin:0 0 15px;flex-wrap:nowrap}
.player-rail .player-score{flex:none;width:100%;min-width:0;padding:12px;border-left:5px solid var(--player-color)}
.player-score.active{border-color:var(--player-color);background:color-mix(in srgb,var(--player-color) 17%,#071a34);box-shadow:0 0 0 2px color-mix(in srgb,var(--player-color) 30%,transparent),0 5px 22px #0003}
.player-score .score-value{color:var(--player-color)}.player-score .turn-label{background:var(--player-color)}
.table-area{border-top:3px solid var(--turn-color,#fff080);transition:border-color .25s}.table-status p{color:var(--turn-color,#fff7df)}
.companion .robot-frame{height:180px}.robot-frame img{transform-origin:50% 80%;animation:robot-idle 4.6s ease-in-out infinite}
.robot-frame img.robot-curious{animation:robot-curious .8s ease-in-out}.robot-frame img.robot-cheer{animation:robot-jump .75s cubic-bezier(.2,.8,.3,1)}
@keyframes robot-idle{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-6px) rotate(1.6deg) scale(1.018)}}
@keyframes robot-curious{0%,100%{transform:rotate(0)}40%{transform:rotate(-8deg) translateY(-5px)}70%{transform:rotate(3deg)}}
.robot-paused .robot-frame img{animation-play-state:paused}
@media(max-width:950px){.play-space{grid-template-columns:150px minmax(0,1fr)}.companion .robot-frame{height:145px}.player-rail .player-score b{font-size:15px}}
@media(max-width:650px){.robot-greeting{position:static;margin:0 0 16px}.robot-greeting span{font-size:14px;padding:9px 13px}.welcome-line{margin-bottom:10px}
.play-space{display:grid;grid-template-columns:100px minmax(0,1fr);gap:9px}.player-rail{top:8px;max-height:calc(100svh - 16px);padding:9px 3px}.player-rail .scoreboard{gap:14px;margin-bottom:8px}.player-rail .player-score{padding:10px 7px;border-radius:12px;border-left-width:4px}.player-rail .player-score b{font-size:14px;max-width:78px;white-space:normal;overflow-wrap:anywhere}.player-rail .player-score .score-value{display:block;font-size:23px}.player-rail .player-score small{font-size:11px}.player-score .turn-label{right:3px;font-size:9px;padding:3px 5px}
.companion{display:block;height:auto;margin:0}.companion .robot-frame{height:105px;width:100%}.companion #robot-line{font-size:13px;text-align:center;margin:0 0 14px;max-width:none}.best-box{border:0;margin:0;padding:7px 0}.best-box strong{font-size:15px}.best-box span,.best-box small{font-size:10px}.table-area{padding:12px 8px}.table-status{display:block}.table-status p{font-size:14px;line-height:1.3;margin-bottom:6px}.table-status>span{font-size:12px}.board{gap:6px}.card-back span{font-size:24px}.card-front,.card-back{border-radius:10px}.card-back:before{inset:4px;border-radius:7px}.table-footer{flex-direction:column;gap:4px}.card.matched .card-front:after{width:16px;height:16px;font-size:11px;right:3px;bottom:3px}}
@media(max-width:380px){.play-space{grid-template-columns:83px minmax(0,1fr);gap:6px}.board{--cols:3!important}.game-screen{padding:5px 8px}.player-rail .player-score b{max-width:62px}.companion .robot-frame{height:90px}}
@media(prefers-reduced-motion:reduce){.robot-frame img,.robot-frame img.robot-curious,.robot-frame img.robot-cheer{animation:none!important}}
/* Visual-only palette: native select retained hidden as state, not exposed in UI. */
.color-picker{position:relative;flex:none}.color-picker summary{list-style:none;width:34px;height:34px;border:2px solid #ffffffa0;border-radius:11px;background:var(--player-color);box-shadow:inset 0 0 0 5px #0b203f;cursor:pointer}.color-picker summary::-webkit-details-marker{display:none}
.color-swatches{position:absolute;z-index:30;left:0;top:43px;width:208px;padding:12px;display:grid;grid-template-columns:repeat(4,38px);gap:10px;background:#102947;border:1px solid #cee5ff66;border-radius:17px;box-shadow:0 10px 35px #0008}
.color-swatch{width:38px;height:38px;border-radius:50%;border:3px solid transparent;padding:0;position:relative}.color-swatch[aria-pressed=true]{border-color:white}.color-swatch[aria-pressed=true]:after{content:'✓';color:#10213b;font-weight:700;font-size:23px}.color-swatch:disabled{opacity:.2}.color-swatch:disabled:after{content:'×';color:#14243b;font-size:24px}.player-field:has(.color-picker[open]){z-index:31}
/* Avoid nested 3D faces: image is a real raster element on the revealed surface. */
.card-inner,.card.open .card-inner,.card.matched .card-inner{transform:none;transform-style:flat}
.card-front,.card-back{backface-visibility:visible;-webkit-backface-visibility:visible;transition:opacity .16s,transform .3s ease}
.card-front{opacity:0;transform:scaleX(.03);pointer-events:none}.card-back{opacity:1;transform:scaleX(1)}
.card.open .card-front,.card.matched .card-front{opacity:1;transform:scaleX(1)}
.card.open .card-back,.card.matched .card-back{opacity:0;transform:scaleX(.03);pointer-events:none}
.card-art{inset:auto;left:var(--art-left);top:var(--art-top);width:400%;height:300%;max-width:none;object-fit:fill;background:none;display:block;pointer-events:none}
/* Reserve character space; only the scores can scroll on very short screens. */
.player-rail{height:calc(100svh - 32px);max-height:760px;display:flex;flex-direction:column;overflow:hidden;padding-top:9px}
.player-rail .scoreboard{flex:0 1 auto;min-height:0;overflow-y:auto;gap:8px;margin:0 0 10px;padding:6px 3px;scrollbar-width:thin}
.player-rail .player-score{padding:7px 9px;border-radius:13px;min-height:51px}.player-rail .player-score b{font-size:14px}.player-rail .player-score .score-value{font-size:20px}.player-rail .player-score small{font-size:11px}.player-rail .turn-label{top:-5px;font-size:9px;padding:2px 5px}
.player-rail .companion{flex:0 0 auto;width:100%;margin-top:0}.companion .robot-frame{height:clamp(90px,18svh,155px)}.companion #robot-line{font-size:15px;margin:0 auto 8px}.best-box{padding:8px;gap:2px}.best-box strong{font-size:18px}.best-box span{font-size:12px}.best-box small{font-size:10px}
@media(max-width:650px){.player-rail{height:calc(100svh - 16px);max-height:none}.player-rail .player-score{padding:6px;min-height:49px}.player-rail .player-score .score-value{display:inline;font-size:17px}.player-rail .player-score b{font-size:12px}.player-rail .player-score small{font-size:10px}.player-rail .companion #robot-line{font-size:12px}.companion .robot-frame{height:90px}.best-box strong{font-size:13px}.best-box span,.best-box small{font-size:10px}}
@media(max-height:540px){.companion .robot-frame{height:70px}.player-rail .best-box{display:none}.companion #robot-line{font-size:13px}}
.player-rail{height:calc(100svh - 145px);max-height:680px;min-height:210px}
@media(max-width:650px){.player-rail{height:calc(100svh - 110px);max-height:none}}
/* Start-align overflow so the first player is reachable at scrollTop=0. */
.player-rail .scoreboard{justify-content:flex-start;overflow-anchor:none;scroll-padding-block:8px}

#finish,#universe-dialog{max-height:calc(100svh - 32px);overflow-y:auto}#finish button{white-space:normal}.journey-next{border-color:#fff080;color:#fff080}.universe-robot{display:block;width:130px;height:140px;object-fit:contain;margin:0 auto}button[hidden]{display:none!important}
