/* Shared authored Poyo atlas crops, reused on the catalogue and game page. */
.sky-portrait,.sky-tile{display:block;width:65px;aspect-ratio:542/668;background:url('/assets/sky-spirit-cute.png') 15.016% 56.621%/327.306% 132.784% no-repeat;margin:0 auto}
.sky-tile{width:49px;flex-shrink:0;margin:0}.hurt-portrait{background-position:87.013% 56.621%;width:37px;margin:0 auto 2px}
.game-tile+.game-tile{margin-top:12px}
.sky-page{--mint:#ffce94;--yellow:#ffe3a1;--panel:#253447;--line:#415166;--muted:#bfcddc;background:radial-gradient(ellipse at 15% 0%,#334c63,transparent 64%),#182738}
.sky-page .game-shell{border-color:#61768a;background:#273b4d}.sky-page .scorebar,.sky-page .run-stats{background:#293e52}.sky-page .run-stats{border-color:#536a7c}.sky-page .icon-btn{background:#344b62;border-color:#64798d}.sky-page .stage-label strong{color:#ffd7a4}
.sky-page .arena{height:auto;aspect-ratio:6/5;min-height:320px;background:#bde5ee}.sky-page .arena-label{color:#456479;font-weight:600;left:14px;top:10px}.sky-page .tiny-square{background:#bc8650}.sky-page .level-toast{color:#6b4b6b;text-shadow:0 2px 0 #fff9}
.sky-page .overlay{background:#24394edb;backdrop-filter:blur(3px);padding:18px 22px}.sky-page .overlay>div{max-width:320px}.sky-page h1{color:#ffe0b8;font-size:29px}.sky-page .start-tag{color:#e9edf2;font-size:14px;margin-bottom:13px}.sky-page .mini-instructions{margin-bottom:16px}.sky-page .primary{background:#ffd39e;color:#503c39;box-shadow:0 3px 0 #b68163}.sky-page .secondary{background:#344b61;border-color:#73879c}.sky-page .countdown-number{color:#ffdcaf}
.hop-controls{display:flex;flex-direction:column;gap:6px;padding:12px 16px 10px!important;background:#293e52!important}.jump-button{width:100%;min-height:51px;border:1px solid #f8cb9a;border-bottom:4px solid #b18468;border-radius:12px;background:#ffdfb7;color:#523f3b;display:flex;align-items:center;justify-content:center;gap:12px;font-weight:800;-webkit-user-select:none;user-select:none;touch-action:none;-webkit-touch-callout:none}.jump-button>span:first-child{font-size:25px}.jump-button small{font:10px monospace;letter-spacing:.08em;opacity:.75}.jump-button.is-held{transform:translateY(2px);border-bottom-width:2px;background:#f1c491}.hop-controls p{font-size:11px!important;color:#c5d2de!important;margin:0}.sky-page .score-breakdown{gap:13px}.sky-page #result-stats{margin:0 0 5px;font-size:12px}.sky-page #result-detail{font-size:12px;margin:0 0 3px}.sky-page .result-time strong{font-size:43px;line-height:1.2}.sky-page .overlay h2{font-size:20px;margin:3px 0}.sky-page .best-message{margin:0 0 9px}.sky-page .result-actions .button{min-height:40px;padding:7px 12px}.sky-page .result-actions .secondary{margin-top:8px}.sky-page .result-actions .micro{margin:5px 0}.sky-page .result-actions .text-button{padding:5px}.sky-page .intro h2{font-size:32px}.sky-page .game-tile{background:#243e50}.sky-page .howto li::marker{color:#ffd7a4}
/* Home: two actual playable choices, with no game engine loaded here. */
.home-page{background:radial-gradient(ellipse at 10% 0%,#234455,transparent 70%),#102c3a}.home-main{max-width:1060px}.home-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:40px 0 27px}.home-heading h1{font-size:clamp(25px,3.6vw,36px);color:#effdf5;margin:9px 0 8px}.home-heading p{color:#b7d1da;font-size:14px;margin:0}.game-count{font:12px monospace;color:#c5dce3;letter-spacing:.1em;white-space:nowrap;border-bottom:1px solid #648d94;padding:10px 0}.catalogue{display:grid;grid-template-columns:1fr 1fr;gap:24px}.catalogue-card{border:1px solid #537386;border-radius:20px;overflow:hidden;background:#173c4c;transition:transform .18s,border-color .18s;min-width:0}.catalogue-card:hover{transform:translateY(-3px);border-color:#b3d9d9}.card-scene{height:238px;position:relative;overflow:hidden}.sky-scene{background:linear-gradient(160deg,#9dd9ec,#dbede7 60%,#ffdebb)}.sea-scene{background:radial-gradient(ellipse at 70% 0%,#287c91,transparent 80%),linear-gradient(#155c72,#0c3b52)}.card-number{position:absolute;left:21px;top:16px;color:#355970;font:12px monospace;letter-spacing:.1em}.sea-scene .card-number{color:#bdedef}.new-label{position:absolute;right:19px;top:15px;color:#5d423c;background:#ffe2bb;border:1px solid #d5b78d;border-radius:7px;font:11px monospace;padding:4px 9px;letter-spacing:.09em}.scene-poyo{position:absolute;width:103px;left:26%;top:51px;transform:rotate(-9deg);filter:drop-shadow(0 6px 8px #8e817422)}.scene-cloud{position:absolute;width:180px;height:60px;background:url('/assets/sky-sprites.png') 5.263% 79.774%/212.903% 656.545% no-repeat}.cloud-one{left:4%;top:164px}.cloud-two{right:-4%;top:152px;width:156px;height:52px}.scene-star{position:absolute;right:23%;top:62px;width:36px;height:34px;background:url('/assets/sky-sprites.png') 81.526% 80.416%/486.047% 516.049% no-repeat;transform:rotate(9deg)}.scene-jelly{position:absolute;left:24%;top:30px;width:178px;height:178px;transform:rotate(-8deg)}.scene-pearl{position:absolute;width:45px;height:45px;background:url('/assets/sea-sprites.png') 0 100%/200% 200% no-repeat}.pearl-one{right:20%;top:83px}.pearl-two{right:34%;top:153px;width:32px;height:32px}.scene-enemy{position:absolute;right:5%;top:145px;width:83px;height:83px;background:url('/assets/sea-sprites.png') 100% 0/200% 200% no-repeat;transform:rotate(12deg)}.card-info{padding:24px 25px 22px}.card-info>.eyebrow{font-size:11px;color:#b4cfd5}.hop-card .card-info>.eyebrow{color:#f1c9a5}.card-info h2{font-size:25px;line-height:1.4;margin:8px 0 10px;letter-spacing:.01em;color:#f3fff7}.card-info>p{font-size:14px;line-height:1.8;color:#b6d1dc;margin:0;min-height:51px}.card-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:25px}.control-tag{font-size:12px;color:#c0d7df}.card-play{display:inline-flex;align-items:center;gap:17px;background:#b4efda;border-radius:10px;color:#20483e;padding:11px 15px;font-size:14px;font-weight:750;white-space:nowrap}.hop-card .card-play{background:#ffdab0;color:#533e35}.card-best{display:block;color:#e4d9a9;font-size:11px;line-height:1.7;margin-top:14px}.card-best:empty{display:none}.home-note{font-size:12px;color:#afcbd4;text-align:center;margin:24px 0 0}
@media(max-width:760px){.sky-page .arena{height:auto;min-height:320px;aspect-ratio:6/5}.sky-page h1{font-size:25px}.sky-page .sky-portrait{width:79px}.sky-page .hurt-portrait{width:43px}.sky-page .start-tag{font-size:13px}.sky-page .overlay{padding:12px 16px}.sky-page .result-time strong{font-size:35px}.sky-page .score-breakdown{font-size:11px;gap:12px}.sky-page .result-actions .button{min-height:38px;padding:6px 10px}.sky-page .best-message{font-size:12px;margin-bottom:6px}.sky-page .result-actions .micro{margin:3px 0;font-size:10px}.sky-page .result-actions .text-button{font-size:12px;padding:3px}.sky-page .result-time{margin:0}.hop-controls{padding:10px 12px 8px!important}.jump-button{min-height:49px}.home-heading{padding:27px 0 23px}.home-heading h1{font-size:24px}.home-heading .eyebrow{font-size:10px}.home-heading p{font-size:12px;max-width:280px}.game-count{display:none}.catalogue{grid-template-columns:1fr;gap:23px}.card-scene{height:213px}.card-info{padding:20px}.card-info h2{font-size:23px}.card-info>p{font-size:13px;min-height:0}.card-bottom{margin-top:19px}.scene-poyo{top:40px;width:98px}.cloud-one{top:148px}.cloud-two{top:144px}.scene-jelly{top:18px}.home-note{text-align:left;line-height:1.8}}
/* The new finite challenge keeps the goal, precision grades and retry visible. */
.course-progress{height:5px;background:repeating-linear-gradient(90deg,#526779 0, #526779 calc(20% - 2px),#253b4d calc(20% - 2px),#253b4d 20%)}.course-progress>span{display:block;height:100%;width:0;background:#96f1e5}
.sky-page .run-stats{font-size:12px;gap:8px}.sky-page .run-stats small{font-size:11px}.sky-page .overlay.is-result{align-items:flex-start}.sky-page .overlay.is-result>div{max-height:none;margin:auto 0}.sky-page .game-shell.is-result .arena{min-height:460px}.sky-page .game-shell.is-result .hop-controls{display:none}.sky-page #result-portrait{width:43px;margin:0 auto 3px}.sky-page .sky-portrait{width:62px}.sky-page #result-detail{font-size:13px}.sky-page #result-stats{margin:2px 0 8px}.precision-results{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;border-block:1px solid #657689;padding:9px 0;margin:6px 0 9px}.precision-results>div{display:flex;flex-direction:column;gap:1px}.precision-results span{font:11px monospace;color:#e9d7b1;letter-spacing:.04em}.precision-results strong{font:700 25px system-ui;color:#fff4d9}.precision-results small{font-size:10px;color:#c5d1dd}.precision-results>div:nth-child(2) strong{color:#b4e5e7}.precision-results>div:nth-child(3) strong{color:#cfbecd}.sky-page h1{font-size:27px}.scene-poyo{width:92px!important;top:39px!important;left:28%;transform:rotate(-12deg)}.sky-page .start-tag{font-size:14px}.sky-page .mini-instructions{font-size:14px}
@media(max-width:760px){.sky-page .game-shell.is-result .arena{min-height:442px}.sky-page h1{font-size:23px}.sky-page .sky-portrait{width:56px}.sky-page .result-actions .button{min-height:43px}.sky-page .result-actions .text-button{padding:7px}.sky-page .result-time strong{font-size:39px}.sky-page .result-actions .micro{font-size:11px}.sky-page .best-message{font-size:13px}.card-info h2{font-size:21px}.sky-page .run-stats{font-size:11px}.sky-page .run-stats small{font-size:10px}}

.ground-result{font-size:12px;color:#e5d7b4;margin:4px 0 7px}.ground-result b{font-size:17px;margin-left:7px}.ground-result small{font-size:11px}.sky-page .score-breakdown{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 12px;max-width:330px;margin:8px auto 10px}.sky-page .game-shell.is-result .arena{min-height:510px}
@media(max-width:760px){.sky-page .game-shell.is-result .arena{min-height:490px}.sky-page .score-breakdown{font-size:11px;gap:9px}}
