/* The shared park, palette and phone frame come from hub.css. */
body.conta-page{height:100dvh;overflow:hidden;background:none}
.conta-page .shell{display:flex;flex-direction:column;padding:0;min-height:0;height:calc(100dvh - 48px);overflow:hidden}
.game-header{height:58px;flex:0 0 58px;padding:5px 9px;gap:4px}
.game-header h1{font-size:20px;letter-spacing:-.5px;margin:0;white-space:nowrap}
.game-header>a{display:grid;place-items:center;width:36px;min-height:44px}
.game-header>a img{width:28px;height:28px}
.header-tools{display:flex;gap:4px}.header-tools button{display:grid;place-items:center;width:36px;min-height:44px;padding:7px;border-radius:13px;background:#e3f5f9;color:var(--blue);font-size:18px;font-weight:800}.header-tools svg{width:23px;height:23px}
.game-setup{flex:1;min-height:0;display:flex;flex-direction:column;padding:10px 16px 12px}
.setup-content{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;justify-content:flex-start;padding:2px 3px 10px}
.setup-art{text-align:center;margin:0 0 16px;flex-shrink:0}.setup-art p{font-size:13px;font-weight:700;margin:8px 0 0}
.welcome-art{display:flex;align-items:center;justify-content:center;height:180px;border-radius:20px;background:#e3f5f9;gap:20px;padding:10px}
.welcome-art>img{height:100%;max-width:48%;object-fit:contain}.sample{font-size:27px;font-weight:900;padding:10px 16px;border:2px solid #e9dcc5;border-radius:16px;background:#fffdf8;transform:rotate(3deg)}.sample span{display:block;font-size:20px}.sample b{display:block;font-size:20px;color:#d66d8b}
.game-setup fieldset{border:0;padding:0;margin:0 0 10px;flex-shrink:0}.game-setup legend{font-size:14px;font-weight:800;margin-bottom:9px}
.choices{display:flex;gap:7px}.choice{position:relative;flex:1}.choice input{position:absolute;opacity:0;width:1px;height:1px}.choice>span{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:68px;padding:9px 8px;border:2px solid #e8ddce;background:#fffdf8;border-radius:14px;font-size:25px;gap:2px;cursor:pointer}.choice small{font-size:13px;font-weight:700}.choice input:checked+span{border-color:var(--blue);background:#e3f5f9;color:var(--blue)}.choice input:focus-visible+span{outline:3px solid var(--blue);outline-offset:3px}
.setting-row{display:flex;justify-content:space-between;align-items:center;margin:9px 0;font-size:13px;font-weight:700;min-height:44px;flex-shrink:0}.setting-row strong,.setting-row select{background:white;border:1px solid #d9cbbb;border-radius:12px;padding:12px;font-size:12px}.setting-row select{max-width:62%;min-height:44px}.rules-note{font-size:12px;line-height:1.5;color:#765e4d;margin:6px 0}.records-link{align-self:stretch;flex-shrink:0;display:flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:12px 18px;border:2px solid #b9dfe3;border-radius:14px;background:#e3f5f9;box-shadow:0 3px 0 #c5e6e8;color:var(--blue);font-weight:800;font-size:15px;text-decoration:none;margin-top:12px}.records-link:active{transform:translateY(2px);box-shadow:none}
.setup-footer{flex:0 0 auto;padding:10px 3px 2px;border-top:1px solid var(--line);background:var(--ivory)}.setup-footer .primary{width:100%;margin:0;min-height:50px}.primary{font-size:15px}.record-item{display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid var(--line);padding:15px 0;font-size:14px}.record-item strong{color:var(--blue)}
#play{flex:1;min-height:0;display:flex;flex-direction:column;padding:6px 12px 12px;gap:6px}
.status{display:flex;align-items:center;gap:8px;min-height:40px;flex-shrink:0}.status>button{width:40px;min-height:40px;border-radius:12px;background:#e3f5f9;color:var(--blue);font-size:25px}.status>span:first-of-type{flex:1;font-size:11px;font-weight:800;min-width:0}
#lives{display:block;border:2px solid #f0b8cb;background:#fff0f5;border-radius:14px;padding:1px 9px;color:#c42e60;font-size:29px;letter-spacing:2px;line-height:1.15;white-space:nowrap}
.score-row{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:32px;padding:5px 10px;border:1px solid #e3d7c8;background:#fffdf8;border-radius:12px;font-size:12px;flex-shrink:0}.score-row strong{font-size:15px;color:var(--blue)}
.time-row{display:flex;align-items:center;gap:8px;flex-shrink:0;min-height:24px}.time-row>span{font-size:22px}.time-row strong{font-size:11px;min-width:29px}#time-bar{appearance:none;flex:1;min-width:0;height:19px;border:2px solid #d1d8b5;border-radius:12px;overflow:hidden;background:#e8ebdc;color:#80b957;accent-color:#80b957}#time-bar::-webkit-progress-bar{background:#e8ebdc;border-radius:10px}#time-bar::-webkit-progress-value{background:#80b957;border-radius:10px;transition:width .2s linear}#time-bar::-moz-progress-bar{background:#80b957;border-radius:10px}#time-bar.running-low::-webkit-progress-value{background:#eda34c}#time-bar.running-low::-moz-progress-bar{background:#eda34c}
.activity{flex:1;min-height:120px;display:flex;align-items:center;justify-content:center}.math{width:100%;text-align:center}.instruction-row{display:flex;align-items:center;justify-content:center;gap:12px}#instruction{font-size:14px;color:#765e4d;margin:0}#steps{font-size:12px;color:#765e4d;white-space:nowrap}.equation{font-size:42px;line-height:1.15;font-weight:900;letter-spacing:2px;margin:5px 0 10px}.equation b{color:#ce477b}
.quantities{display:flex;align-items:center;justify-content:center;gap:7px}.group{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:62px;border:2px solid #e5dfce;border-radius:18px;background:white;padding:7px}.group strong{font-size:23px;line-height:1.15;margin-bottom:5px}.items{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;max-width:100%}.item-row{display:flex;align-items:center;justify-content:center;gap:4px}.item{display:grid;place-items:center;position:relative;font-size:28px;min-width:26px;line-height:1.15;min-height:30px;transition:opacity .6s,transform .6s}.item.removed{opacity:.2;transform:translateY(5px);filter:grayscale(1);animation:take-away .8s ease both}.item.removed:after{content:'╱';position:absolute;color:#654333}.item.counting{background:#ffe797;border-radius:10px;transform:scale(1.1)}.item small{position:absolute;top:-8px;right:-4px;font-size:15px;background:#754633;color:white;padding:1px 5px;border-radius:8px}.group .empty{display:block;min-height:32px;height:32px;width:44px;min-width:0;padding:0;background:transparent;border:2px dashed #cfc7b6;border-radius:10px;margin:0}.join{font-size:28px;color:#d66d8b}.highlight .group{border-color:#dfb85c;box-shadow:0 0 0 3px #ffedbd}.resolved .group{animation:pop .5s}
/* Character and keypad share the same height, leaving room for large touch targets. */
.bottom{display:grid;grid-template-columns:minmax(100px,.7fr) minmax(0,1.3fr);grid-template-rows:auto auto;align-items:center;gap:8px 10px;flex-shrink:0}.helpers{grid-column:1/-1;display:flex;justify-content:center;gap:10px}.helpers button{min-height:44px;padding:8px 17px;background:#e3f5f9;color:var(--blue);border-radius:14px;font-size:14px;font-weight:800}.companion{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;align-self:stretch}.companion p{background:white;border:1.5px solid #e4dac4;border-radius:16px 16px 4px 16px;padding:8px;font-size:12px;text-align:center;line-height:1.25;margin:0 0 3px;width:100%}.companion img{height:clamp(160px,24dvh,215px);width:100%;object-fit:contain;transition:transform .3s}.companion.celebrate img{transform:rotate(-4deg) translateY(-5px)}
.keypad{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.keypad button{height:58px;min-height:58px;padding:0;font-size:36px;line-height:1;font-weight:900;border:2px solid #dfd1ba;border-bottom:5px solid #d3c3a9;border-radius:16px;background:#fff;color:var(--blue)}.keypad button:last-child{grid-column:span 2}.keypad button:active{transform:translateY(2px)}.keypad button.correct{background:#d6efba;border-color:#95be6d;color:#315c20}.keypad button.retry{background:#fff0c1;border-color:#e9c966}.keypad button:disabled{opacity:1;cursor:default}
#fingers-modal{text-align:center;max-width:440px;max-height:calc(100dvh - 24px);overflow-y:auto;padding:22px 18px}#fingers-modal h2{font-size:19px;padding:0}.fingers-letsy{height:min(26dvh,200px);width:160px;object-fit:contain}#hands{display:flex;justify-content:center;align-items:center;gap:6px;margin:12px 0}.hand-set{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;max-width:44%;gap:2px}.hand-set b{width:100%;font-size:27px}.hand{width:65px;height:78px}.hand-operator{font-size:27px}.hand-set svg:only-of-type{width:78px}#fingers-modal .equation{font-size:32px}.conta-page dialog{max-height:calc(100dvh - 24px);overflow-y:auto}
.result{flex:1;min-height:0;overflow-y:auto;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:14px}.result-star{font-size:36px}.result h1{font-size:28px;margin:0}.result>img{height:145px;object-fit:contain}.summary{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;width:100%}.summary div{background:#f1eddf;padding:10px;border-radius:16px;font-size:12px}.summary b{display:block;font-size:27px}.result>a{min-height:44px;display:grid;place-items:center;font-size:13px}
@keyframes take-away{from{opacity:1;transform:none;filter:none}to{opacity:.2;transform:translateY(5px);filter:grayscale(1)}}@keyframes pop{50%{transform:scale(1.05)}}
@media(max-width:520px){.conta-page .shell{height:100dvh;width:100%;max-width:none;margin:0;border:0;border-radius:0}.game-header{padding-top:env(safe-area-inset-top);flex-basis:calc(56px + env(safe-area-inset-top));height:calc(56px + env(safe-area-inset-top))}#play,.game-setup{padding-bottom:max(10px,env(safe-area-inset-bottom))}}
@media(max-height:700px){.game-header{height:50px;flex-basis:50px}#play{gap:4px;padding-top:4px}.activity{min-height:110px}.equation{font-size:35px;margin:3px 0 5px}.group strong{font-size:20px}.group{padding:5px}.item{font-size:25px;min-width:23px;min-height:26px}.keypad button{height:51px;min-height:51px;font-size:33px}.companion img{height:168px}.helpers button{min-height:42px}.welcome-art{height:145px}.result>img{height:90px}}
@media(max-height:590px){#play{gap:3px}.time-row{min-height:20px}#time-bar{height:15px}.activity{min-height:100px}.status{min-height:36px}.status>button{min-height:36px}.score-row{min-height:27px}.equation{font-size:31px}.keypad button{height:46px;min-height:46px;font-size:31px}.keypad{gap:5px}.companion img{height:145px}.companion p{font-size:11px;padding:5px}.group{padding:4px}.group strong{font-size:18px;margin-bottom:2px}#instruction{font-size:12px}.item{font-size:23px;min-height:24px}.helpers button{min-height:40px}.bottom{gap:5px 10px}}
@media(orientation:landscape) and (max-height:540px){.conta-page .shell{top:8px;bottom:8px;left:5%;width:90%;max-width:none;height:calc(100dvh - 16px);border-radius:24px}.game-header{height:44px;flex-basis:44px}.setup-content{display:grid;grid-template-columns:1fr 1fr;gap:3px 18px;align-content:start;align-items:start}.setup-art{grid-column:1;grid-row:1/6;margin:0}.welcome-art{height:145px}.setup-content fieldset,.setting-row,.rules-note,.records-link{grid-column:2;margin:0}.setup-footer{padding-top:5px}.setup-footer .primary{min-height:44px}.rules-note{font-size:10px}.choice>span{min-height:52px}.setting-row{min-height:38px}.setting-row select,.setting-row strong{min-height:38px;padding:8px}#play{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:36px 28px 20px minmax(0,1fr);gap:4px 16px}.status,.score-row,.time-row,.activity{grid-column:1}.status{grid-row:1}.score-row{grid-row:2}.time-row{grid-row:3}.activity{grid-row:4;min-height:0}.bottom{grid-column:2;grid-row:1/5;align-self:center;grid-template-columns:minmax(70px,.6fr) minmax(0,1.4fr)}.keypad button{height:45px;min-height:45px;font-size:31px}.companion img{height:135px}.helpers button{min-height:40px;padding:6px 10px}.equation{font-size:30px}.item{font-size:23px}.result{display:grid;grid-template-columns:1fr 1fr}.result>img{grid-row:2/5;grid-column:1;height:155px}.result-star{display:none}.result h1{grid-column:1/-1;font-size:24px}.result .summary,.result>.primary,.result>a{grid-column:2}.fingers-letsy{height:90px}.hand{height:58px;width:46px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
/* Clear, prominent counters and deterministic heart shapes. */
.score-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;min-height:62px;padding:6px 0;border:2px solid #c4dfe8;background:#edf8fb;border-radius:17px;text-align:center}
.score-row>div{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.score-row>div+div{border-left:1px solid #c4dfe8}.score-row strong{font-size:29px;line-height:1.05;font-weight:900;color:var(--blue)}.score-row span{font-size:12px;font-weight:800;color:#654333}
#lives{display:flex;align-items:center;justify-content:center;gap:3px;padding:4px 7px;letter-spacing:0;min-height:40px}.life-slot{display:grid;place-items:center;width:29px;height:29px}.life-heart{width:29px;height:28px;overflow:visible;transition:transform .25s,fill .25s}.life-heart path{stroke:#c42e60;stroke-width:2;stroke-linejoin:round}.life-heart.full{fill:#df3970;transform:scale(1)}.life-heart.lost{fill:none;transform:scale(.62)}.life-heart.lost path{stroke:#a18b93}
.result{position:relative;isolation:isolate}.result>*:not(#record-confetti){position:relative;z-index:1}#record-confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:2;border-radius:24px}#record-confetti i{position:absolute;top:-20px;left:var(--x);width:9px;height:14px;border-radius:3px;opacity:0;animation:record-fall var(--duration) var(--delay) ease-in forwards}
.result.new-record{background:radial-gradient(ellipse at 50% 36%,#fff0ba 0,transparent 65%)}.result.new-record h1{font-size:clamp(32px,8vw,42px);font-weight:900;line-height:1.05;color:#a74909;text-shadow:0 2px 0 #ffe298;letter-spacing:-1px;background:#fff1bc;border:2px solid #efc35a;border-radius:20px;padding:10px 16px;transform:rotate(-2deg)}.result.new-record>img{height:clamp(150px,28dvh,230px);animation:record-jump .8s ease-in-out 3;transform-origin:center bottom}.result.new-record .result-star{font-size:36px}
@keyframes record-fall{0%{opacity:1;transform:translateY(0) rotate(0)}90%{opacity:1}100%{opacity:0;transform:translate(var(--drift),85dvh) rotate(var(--turn))}}@keyframes record-jump{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-15px) rotate(3deg)}}
@media(max-height:700px){.score-row{min-height:53px;padding:4px 0}.score-row strong{font-size:25px}.result.new-record>img{height:150px}.result.new-record h1{font-size:32px;padding:8px 12px}.result.new-record .result-star{display:none}}
@media(max-height:590px){.score-row{min-height:45px}.score-row strong{font-size:22px}.score-row span{font-size:11px}.activity{min-height:90px}.result.new-record>img{height:125px}.result.new-record h1{font-size:28px}}
@media(orientation:landscape) and (max-height:540px){#play{grid-template-rows:36px 49px 20px minmax(0,1fr)}.score-row{min-height:49px}.score-row strong{font-size:24px}.result.new-record>img{height:150px}.result.new-record h1{font-size:27px}.result.new-record .result-star{display:none}}
@media(prefers-reduced-motion:reduce){.result.new-record>img,#record-confetti i{animation:none!important}.life-heart{transition:none!important}}
@media(max-height:700px) and (orientation:portrait){#play{gap:3px}.score-row{min-height:47px}.score-row strong{font-size:24px}.keypad{gap:5px}.keypad button{height:46px;min-height:46px}.bottom{gap:5px 10px}.helpers button{min-height:40px}.companion img{height:145px}.activity{min-height:100px}}
.result.new-record{background:#fff9ee}.result.new-record #result-letsy{border-radius:24px}
#play{position:relative;isolation:isolate}#play-confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:5;border-radius:24px}#play-confetti i{position:absolute;top:-20px;left:var(--x);width:9px;height:14px;border-radius:3px;opacity:0;animation:record-fall var(--duration) var(--delay) ease-in forwards}.setup-art .game-banner{display:block;width:100%;height:auto;max-height:190px;object-fit:contain;border-radius:20px}.setting-row>.picker-trigger{max-width:62%;min-width:140px}.parental-footer{margin-top:0}
@media(prefers-reduced-motion:reduce){#play-confetti i{animation:none!important}}

/* Reserve the start action inside the visible mobile/PWA viewport. */
@media(max-width:520px){
 .conta-page .shell{position:fixed;top:0;left:0;bottom:auto;width:100%;max-width:none;margin:0;border:0;border-radius:0;height:var(--conta-viewport-height,100dvh);min-height:0}
 .conta-page .game-setup{flex:1 1 0;min-height:0;overflow:hidden;padding-bottom:max(10px,env(safe-area-inset-bottom,0px))}
 .conta-page .setup-content{flex:1 1 0;min-height:0}
 .conta-page .setup-footer{flex-shrink:0}
}

.setup-art img.game-banner{display:block;width:100%;height:auto!important;max-height:none!important;aspect-ratio:2/1;object-fit:contain;object-position:center;border-radius:20px}

/* Both clocks remain visible; the game scrolls inside its fixed frame when needed. */
.conta-page #play{overflow-y:auto;min-height:0}.time-row>span{font-size:11px;min-width:40px}.time-row progress{min-width:0}.setting-row label{font-size:13px}
@media(orientation:landscape) and (max-height:540px){#play{grid-template-rows:36px 49px 20px 20px minmax(100px,1fr)}#question-timer-row{grid-column:1;grid-row:4}.activity{grid-row:5}.bottom{grid-row:1/6}}
#question-time-bar{accent-color:#9b4bc3}#question-time-bar::-webkit-progress-value{background:#9b4bc3}#question-time-bar::-moz-progress-bar{background:#9b4bc3}#question-time-bar.running-low{outline:2px solid #d84134;outline-offset:2px;animation:question-warning .6s ease-in-out infinite alternate}@keyframes question-warning{to{opacity:.5}}@media(prefers-reduced-motion:reduce){#question-time-bar.running-low{animation:none}}
#question-time-bar{appearance:none;flex:1;min-width:0;height:12px;border:0;border-radius:8px;overflow:hidden;background:#e6e1d9}#question-time-bar::-webkit-progress-bar{background:#e6e1d9;border-radius:8px}#question-time-bar::-webkit-progress-value{border-radius:8px}#question-time-bar::-moz-progress-bar{border-radius:8px}
/* Match the word game's timer geometry, including fixed label columns. */
.time-row{display:grid;grid-template-columns:43px minmax(0,1fr) 33px;align-items:center;gap:10px;min-height:22px;margin:3px 0;width:100%;box-sizing:border-box}.time-row>span{min-width:0;font-size:11px;font-weight:800;text-align:left}.time-row>strong{min-width:0;font-size:13px;font-weight:800;text-align:right;font-variant-numeric:tabular-nums}#time-bar,#question-time-bar{appearance:none;width:100%;min-width:0;height:12px;box-sizing:border-box;border:0;border-radius:8px;overflow:hidden;background:#e6e1d9}#time-bar{accent-color:#005fc4}#time-bar::-webkit-progress-bar,#question-time-bar::-webkit-progress-bar{background:#e6e1d9;border-radius:8px}#time-bar::-webkit-progress-value,#time-bar.running-low::-webkit-progress-value{background:#005fc4;border-radius:8px}#time-bar::-moz-progress-bar,#time-bar.running-low::-moz-progress-bar{background:#005fc4;border-radius:8px}#question-time-bar::-webkit-progress-value{background:#9b4bc3;border-radius:8px}#question-time-bar::-moz-progress-bar{background:#9b4bc3;border-radius:8px}.time-row progress.running-low{outline:2px solid #d84134;outline-offset:2px;animation:question-warning .6s ease-in-out infinite alternate}@media(prefers-reduced-motion:reduce){.time-row progress.running-low{animation:none}}
