/* Direct controls stay outside the world, within both thumbs' reach. */
body.relay-playing{position:fixed;inset:0;width:100%;overflow:hidden;overscroll-behavior:none}
.relay-screen{max-width:620px;height:var(--play-height,100dvh);margin:0 auto;padding:12px 14px max(8px,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:9px;position:relative;overflow:hidden;touch-action:manipulation}
.relay-header{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-shrink:0}
.relay-header>div:last-child{display:flex;gap:6px}.relay-header span{font-size:11px;color:#a03454}.relay-header h1{font-size:25px;line-height:1.25;margin-top:3px;color:#693b48}
.relay-header button,.relay-footer button{border:1px solid #eaa7ba;border-radius:15px;background:#fffafa;color:#a63255;min-height:44px;padding:8px 10px;font:inherit;font-size:12px}.relay-header h1{font-size:22px;white-space:nowrap}
.platform-world{flex:1;min-height:160px;border:2px solid #e99ab2;border-radius:30px;position:relative;overflow:hidden;background:linear-gradient(#ffeadd,#ffe0e5 64%,#f4bdcf);isolation:isolate;outline-offset:-5px}
.hill{position:absolute;width:150%;left:-25%;height:38%;bottom:-8%;border-radius:50% 60% 0 0;pointer-events:none;z-index:-1}
.hill-back{background:#ecc1c8;bottom:9%;left:-50%;rotate:8deg}.hill-front{background:#e4a5bb;rotate:-6deg}
.cloud{position:absolute;border-radius:60px;background:#fff9e9;width:85px;height:25px;opacity:.8;z-index:-1}.cloud:before,.cloud:after{content:'';position:absolute;border-radius:50%;background:inherit;bottom:8px;width:36px;height:32px;left:13px}.cloud:after{left:41px;width:28px;height:24px}.cloud-a{top:28%;left:-10px;scale:.8}.cloud-b{top:17%;right:-15px}
.stage-hud{position:absolute;top:12px;left:14px;right:14px;z-index:20;pointer-events:none;display:flex;align-items:center;justify-content:space-between;gap:4px;flex-wrap:wrap}
.turn-pill{background:#c34065;color:#fff8ee;border-radius:20px;padding:6px 12px;font-size:13px;box-shadow:0 2px #a7395115}
.stage-progress{font-size:12px;color:#9e3c5a;background:#fff8eddd;padding:6px 9px;border-radius:15px}
.stage-hud p{flex-basis:100%;text-align:center;margin:10px 0 0;color:#783e51;font-size:21px;line-height:1.25;text-wrap:balance;overflow-wrap:anywhere;text-shadow:0 1px #fffaf0}
.relay-screen[data-phase=watch] .platform-layer{opacity:.18}.relay-screen[data-phase=watch] .stage-hud p{margin-top:25px;padding:18px 12px;border-radius:20px;background:#fff8ee;box-shadow:0 4px #c76d8615;line-height:1.45}.relay-screen[data-phase=watch] .stage-hud p:empty{visibility:hidden}.relay-screen:is([data-phase=recall],[data-phase=flow],[data-phase=celebrate],[data-phase=fall],[data-phase=gameover]) .stage-hud p{visibility:hidden}
.platform-layer{position:absolute;inset:0;pointer-events:none}
.verse-divider-layer{position:absolute;inset:0;pointer-events:none}.verse-divider{position:absolute;left:0;right:0;height:0;pointer-events:none}.verse-divider:before{content:'';position:absolute;left:10px;right:10px;top:0;border-top:2px dashed #b87691;z-index:1}.verse-divider>span{position:absolute;top:0;z-index:3;transform:translate(-50%,-50%);padding:2px 7px;border:1px solid #c58b9d;border-radius:4px;background:#fff4dc;color:#784457;font-size:14px;line-height:1;white-space:nowrap;box-shadow:0 2px #d9adb64d}.word-platform{z-index:2}
@media(max-height:740px){.verse-divider>span{font-size:12px;padding-top:1px;padding-bottom:1px}}@media(max-height:540px){.verse-divider>span{font-size:11px;padding-top:0;padding-bottom:0}}
.word-platform{position:absolute;left:0;top:0;min-height:54px;padding:12px 7px 10px;border:2px solid #be8c6b;border-top:9px solid #afbd7e;border-radius:13px 13px 17px 17px;background:#ffe9b9;box-shadow:inset 0 -7px #e8c28a,0 5px #ad775b25;will-change:transform;text-align:center;color:#71503a;line-height:1.2;font-size:17px}
.word-platform:before{content:'';position:absolute;top:100%;left:14%;right:14%;height:18px;background:#c58a71;clip-path:polygon(0 0,100% 0,80% 80%,54% 100%,20% 66%);opacity:.85}
.word-platform span{display:block;overflow-wrap:break-word;word-break:keep-all;text-wrap:balance}
.platform-world{border-radius:20px;background:linear-gradient(#fff0de,#ffe6e9 64%,#edbdd0)}
.word-platform{border-radius:5px 5px 7px 7px;border-top-color:#acbd80;box-shadow:inset 0 -7px #e8c28a,0 5px #ad775b35}
.platform-half{border-radius:5px 5px 7px 7px}
.hill{border-radius:0;clip-path:polygon(0 40%,8% 40%,8% 25%,20% 25%,20% 12%,33% 12%,33% 0,51% 0,51% 15%,70% 15%,70% 30%,85% 30%,85% 45%,100% 45%,100% 100%,0 100%)}
.word-platform.checkpoint{min-height:55px;border-top-color:#b9bc83;background:repeating-linear-gradient(115deg,#cf977e 0 25px,#c58b75 26px 28px);color:#fff7e7;border-color:#b57b66;border-top-color:#b9bc83;font-size:13px;padding:12px;box-shadow:inset 0 -8px #b9806a}
.word-platform.checkpoint:before{display:none}.word-platform.passed{border-top-color:#86ad83;background:#e4ecbd;color:#577448}.word-platform.passed:after{content:'✓';position:absolute;right:5px;top:4px;color:#668a5e;font-size:11px}
.word-platform.cracked{border-color:transparent;background:transparent;box-shadow:none}.word-platform.cracked>span{opacity:0}.word-platform.cracked:before,.word-platform.cracked:after{display:none}.platform-half{position:absolute;inset:-9px -2px -2px;padding:12px 7px 10px;border:2px solid #be8c6b;border-top:9px solid #be6467;border-radius:13px 13px 17px 17px;background:#e5a691;box-shadow:inset 0 -7px #c5876f;overflow-wrap:break-word;word-break:keep-all;text-wrap:balance}.half-left{clip-path:polygon(0 0,53% 0,46% 33%,56% 58%,47% 100%,0 100%)}.half-right{clip-path:polygon(53% 0,100% 0,100% 100%,47% 100%,56% 58%,46% 33%)}
.player-sheep{position:absolute;left:0;top:0;z-index:12;width:58px;transform-origin:50% 92%;will-change:transform;pointer-events:none;filter:drop-shadow(0 3px 0 #9a64522a)}
.player-sheep .play-sheep{display:block;width:100%;aspect-ratio:120/124;object-fit:contain;transform-origin:50% 100%;image-rendering:auto}
.player-sheep.walking .play-sheep{rotate:calc(var(--stride) * .18)}
.player-sheep.airborne .play-sheep{transform:scale(.96,1.04) rotate(-3deg)}
.player-sheep.hurt .play-sheep{transform:scale(1.06,.92) rotate(8deg)}
@media(prefers-reduced-motion:reduce){.player-sheep.walking .play-sheep{rotate:none}.player-sheep .play-sheep{transform:none}}
.landing-sparks{position:absolute;inset:0;pointer-events:none;z-index:15}.landing-sparks i{position:absolute;top:0;left:0;font-style:normal;font-size:20px;color:#fff4b4;text-shadow:0 1px #cc9c69;opacity:0}
.beat-dots{position:absolute;bottom:10px;left:50%;translate:-50%;display:flex;gap:7px;z-index:10}.beat-dots i{width:6px;height:6px;border-radius:50%;background:#fff2e5;border:1px solid #bf8d9d}.beat-dots i.on{background:#c64569;box-shadow:0 0 0 3px #ffebcd}
.beat-dots{display:none}
.lava-lake{position:absolute;left:0;top:0;width:100%;height:calc(100% + 90px);z-index:13;pointer-events:none;border-top:4px solid #ffe9a1;background:radial-gradient(ellipse at 25% 0,#ffbd58aa,transparent 45%),linear-gradient(#f58a43,#e45b48 55px,#b93755 200px);box-shadow:0 -8px 25px #f6a04555;will-change:transform}
.lava-lake:before{content:'';position:absolute;left:-20px;right:-20px;top:0;height:16px;background:radial-gradient(ellipse at 50% 0,#ffe8a1 0 45%,transparent 49%) 0 0/46px 16px;animation:lava-wave 3s linear infinite;animation-play-state:paused}
.lava-lake i{position:absolute;left:calc(6% + var(--bubble)*17%);top:calc(27px + var(--bubble)*7px);width:calc(9px + var(--bubble)*2px);height:8px;border:2px solid #ffd58a;border-radius:50%;opacity:.6;animation:lava-bubble 2.4s ease-in-out infinite;animation-delay:calc(var(--bubble)*-.38s);animation-play-state:paused}
.lava-lake i:nth-child(odd){top:14px;width:12px;height:20px;border:0;border-radius:60% 15% 55% 45%;rotate:-25deg;background:#ffe28b}
.lava-lake.rising:before,.lava-lake.rising i{animation-play-state:running}
.relay-screen:has(.relay-cover:not([hidden])) .lava-lake:before,.relay-screen:has(.relay-cover:not([hidden])) .lava-lake i{animation-play-state:paused}
.lava-warning{position:absolute;left:12px;bottom:10px;z-index:21;pointer-events:none;padding:5px 9px;border:1px solid #e9af8a;border-radius:12px;background:#fff3dbef;color:#923f36;font-size:11px;line-height:1.3;max-width:calc(100% - 24px)}
.lava-near{box-shadow:inset 0 -14px 38px #ee774055}.lava-near .lava-warning{background:#a83942;color:#fff8e9;border-color:#a83942}.platform-world.splashed .fall-splash{color:#fff3d3;text-shadow:0 2px #b34047}
@keyframes lava-wave{to{background-position:46px 0}}
@keyframes lava-bubble{0%,100%{scale:.7;opacity:.4}50%{scale:1.2;opacity:.8}}
@media(prefers-reduced-motion:reduce){.lava-lake:before,.lava-lake i{animation:none}.lava-near{box-shadow:none}}
.platform-world.hurt{box-shadow:inset 0 0 20px #cf416b55}.fall-splash{display:none;position:absolute;bottom:10px;left:40%;color:#6f8eab;font-size:30px;rotate:-10deg;z-index:18}.platform-world.splashed .fall-splash{display:block}
.play-message{text-align:center;flex-shrink:0;min-height:40px;padding:1px 4px;color:#9c3c59}.play-message strong{display:block;font-size:16px;line-height:1.3}.play-message p{font-size:12px;color:#986b7b;line-height:1.3;margin-top:4px}
.game-controls{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-shrink:0;padding:0 5px 5px;touch-action:none}
.direction-pad{display:flex;gap:10px}
.game-controls button{display:flex;align-items:center;justify-content:center;flex-direction:column;width:72px;height:70px;border:2px solid #e09caf;border-radius:21px;background:#fff8ef;color:#bd3a5e;box-shadow:0 5px #dda1b2;font:inherit;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.game-controls b{font-size:25px;line-height:1}.game-controls small{font-size:11px;margin-top:5px}.game-controls .jump-button{width:102px;background:#cc456a;color:#fff8ef;border-color:#ba3358;box-shadow:0 5px #9a2e4d;flex-direction:row;gap:7px;font-size:20px}
.game-controls .jump-button b{font-size:34px}.game-controls button.pressed{translate:0 4px;box-shadow:0 1px #bc7890;background:#fbd2db}.game-controls .jump-button.pressed{background:#b8365b}
.game-controls button:disabled{opacity:.4}.game-controls button:focus-visible{outline:3px solid #72334d;outline-offset:4px}
.turn-actions{display:none;text-align:center;flex-shrink:0}.turn-actions:has(> :not([hidden])){display:block}.turn-actions .primary-button{min-height:48px;width:100%;font-size:18px}.turn-actions .text-button{min-height:44px}
.relay-screen[data-phase=ready] .game-controls,.relay-screen[data-phase=guide-done] .game-controls,.relay-screen[data-phase=retry] .game-controls{display:none}
.relay-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-shrink:0}.relay-footer span{font-size:10px;color:#9b7080;text-align:right}.relay-footer button{min-height:44px;font-size:12px;padding:6px 10px}
.voice-result{border:1px solid #e3bdc8;border-radius:12px;max-height:75px;overflow:auto;margin-bottom:5px;padding:7px;font-size:14px}.voice-result small{color:#946375;font-size:11px}
.gameover-sheet{position:absolute;left:24px;right:24px;top:50%;transform:translateY(-50%);z-index:30;background:#fff9ed;border:3px solid #cb6b88;border-radius:28px;box-shadow:0 10px #9c335435,0 0 0 100vmax #61344555;text-align:center;padding:25px 20px;display:flex;flex-direction:column;gap:16px}.gameover-label{font-size:14px;color:#ba3b5c}.gameover-sheet h2{font-size:27px}.gameover-sheet p{font-size:14px;line-height:1.5;color:#936377}.gameover-sheet .text-button{min-height:44px}
.relay-screen[data-phase=gameover] .relay-header{pointer-events:none}
.relay-cover{position:absolute;inset:0;z-index:35;background:#fff6f9fa;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px;text-align:center}.relay-cover img{width:100px}.relay-cover h2{font-size:28px}.relay-cover .primary-button{max-width:300px}.relay-cover .text-button{min-height:44px;font-size:15px}
.relay-result-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0}.relay-result-stats>div{background:#fff0f3;border-radius:15px;padding:14px;text-align:center}.relay-result-stats strong{display:block;color:var(--rose);font-size:28px}.relay-result-stats span{font-size:13px;color:var(--muted)}
@media(max-height:740px){.relay-screen{padding:8px 10px 7px;gap:6px}.relay-header h1{font-size:22px}.game-controls button{height:62px;width:67px}.game-controls .jump-button{width:96px}.stage-hud{top:9px;left:10px;right:10px}.stage-hud p{font-size:18px;margin-top:7px}.word-platform{font-size:16px;padding:9px 6px}.play-message{min-height:34px}.play-message strong{font-size:14px}.play-message p{font-size:11px}.relay-footer button{min-height:44px}}
@media(max-height:540px){.relay-screen{padding:4px 8px;gap:4px}.relay-header h1{font-size:17px}.relay-header span{font-size:9px}.relay-header button{min-height:44px;font-size:11px}.platform-world{min-height:130px;border-radius:20px}.stage-hud{top:5px;left:8px;right:8px}.turn-pill,.stage-progress{font-size:10px;padding:3px 8px}.stage-hud p{margin-top:3px;font-size:14px}.word-platform{font-size:13px;min-height:40px;padding:7px 5px;border-top-width:7px}.word-platform.checkpoint{font-size:11px;min-height:42px}.game-controls{padding-bottom:4px}.game-controls button{width:58px;height:48px;border-radius:15px}.game-controls b{font-size:20px}.game-controls small{display:none}.game-controls .jump-button{height:48px;width:90px;font-size:17px}.game-controls .jump-button b{font-size:26px}.play-message{min-height:17px}.play-message strong{font-size:12px}.play-message p{display:none}.relay-footer{min-height:44px}.relay-footer button{min-height:44px;padding:3px 9px}.relay-footer span{font-size:9px}.beat-dots{bottom:4px}.turn-actions .primary-button{min-height:44px}.gameover-sheet{gap:8px;padding:15px 20px}.gameover-sheet h2{font-size:23px}.relay-cover{gap:10px}.relay-cover img{display:none}}
@media(min-width:700px) and (min-height:741px){.relay-screen{padding:18px 16px 14px;gap:11px}.word-platform{font-size:20px}.game-controls{padding-left:12px;padding-right:12px}.game-controls button{width:82px;height:72px}.game-controls .jump-button{width:124px}.stage-hud p{font-size:25px}}
@media(prefers-reduced-motion:reduce){.player-sheep{filter:none}.platform-world.hurt{box-shadow:none}}

.intro-danger{color:#a13d43}.intro-content{max-width:440px}.intro-welcome{display:flex;align-items:center;gap:12px;margin-right:14px}.intro-welcome img{flex-shrink:0}.intro-welcome h2{font-size:26px;line-height:1.15}.intro-welcome p{font-size:14px;color:#8b596b;margin-top:5px}.intro-how{font-size:16px;line-height:1.5;color:#704452;margin:15px 0}.play-options{border:0;margin:13px 0 0;padding:0}.play-options legend{font-size:15px;color:#7c3e52;margin-bottom:6px}.play-options legend small{font-size:11px;color:#946477;margin-left:7px}.option-row{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.option-row label{position:relative;min-width:0}.option-row input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}.option-row span{display:flex;min-height:44px;align-items:center;justify-content:center;flex-direction:column;padding:7px 3px;background:#fff7f8;border:1.5px solid #d9a3b4;border-radius:12px;font-size:17px;color:#865163}.option-row small{font-size:12px;color:#946477;margin-top:2px}.option-row input:checked+span{background:#f9d8e2;border:2px solid #b53355;color:#962b48;padding:6.5px 2.5px}.option-row input:focus-visible+span{outline:3px solid #81425b;outline-offset:3px}.intro-pace{text-align:center;font-size:12px;line-height:1.35;margin:10px 0;color:#98707e}.input-methods{border:0;padding:0;margin:12px 0 14px;display:grid;grid-template-columns:1fr 1fr;gap:9px}.input-methods legend{font-size:15px;margin-bottom:8px}.input-methods label{position:relative}.input-methods input{position:absolute;left:12px;top:13px;accent-color:#b73857}.input-methods label>span{display:block;background:#fff8f8;border:1px solid #dca8b9;border-radius:15px;padding:10px 6px 10px 33px;font-size:17px}.input-methods small{display:block;font-size:11px;color:#906577}.input-methods input:checked+span{background:#fce0e8;border:2px solid #bd3d5d;padding:9px 5px 9px 32px}.input-methods input:disabled+span{opacity:.5}.voice-notice{display:flex;gap:9px;align-items:flex-start;margin:13px 0 14px;color:#775362;font-size:13px;line-height:1.4}.voice-notice input{margin-top:4px;accent-color:#b73857}.voice-notice small{display:block;font-size:11px;margin-top:4px}.intro-other{width:100%;margin-top:7px;min-height:44px;font-size:14px}.intro-content>.primary-button{min-height:48px}
@media(max-height:740px){.intro-content{padding:18px 20px}.intro-welcome img{width:44px;height:40px}.intro-welcome h2{font-size:23px}.intro-how{margin:10px 0;font-size:14px}.play-options{margin-top:9px}.input-methods{margin-top:8px;margin-bottom:10px}.intro-other{margin-top:2px}.intro-pace{margin:8px 0;font-size:11px}}
@media(max-width:420px){.wordmark{font-size:18px}.wordmark>span{font-size:24px}#profile-button{max-width:100px}}

/* The narrow green ledge is the collision surface; its hanging label is only text. */
.word-platform.precision{height:17px;min-height:17px;padding:0;border-width:1px;border-top-width:7px;border-radius:5px 5px 8px 8px;box-shadow:inset 0 -4px #e8c28a,0 3px #ad775b25}
.word-platform.precision>span{position:absolute;top:0;left:50%;width:var(--word-label-width);transform:translateX(-50%);padding:0;border:1px solid #d8b797;border-radius:7px;background:#fff3ddeb;color:#684632;font-size:14px;line-height:1.08;word-break:keep-all;overflow-wrap:break-word;text-wrap:balance;box-shadow:0 2px #ad775b15}
.word-platform.precision.passed>span{background:#eef2d7eb;color:#4f6a4b;border-color:#a7bc91}
.word-platform.precision:before{height:10px}
.word-platform.precision.passed:after{top:-1px;right:3px;font-size:10px}
.word-platform.precision .platform-half{inset:-7px -1px -1px;padding:0;border-width:1px;border-top-width:7px;overflow:hidden;font-size:0}


@media(max-width:349px){.word-platform.precision>span{font-size:13px}}
