@import url('https://fonts.googleapis.com/css2?family=Fredoka:wght@500;600;700&family=Noto+Sans+KR:wght@400;500;600;700;800;900&family=Nunito:wght@600;700;800;900;1000&display=swap');
:root{color-scheme:light;--ink:#365579;--pink:#ef688c;--blue:#78b9d6;--yellow:#ffdf70;font-family:'Nunito','Noto Sans KR',sans-serif;font-synthesis:none;color:var(--ink);background:#d5f3f0}
*{box-sizing:border-box}html{min-height:100%;overscroll-behavior:none}body{margin:0;min-height:100svh;display:grid;place-items:center;overflow-x:hidden;overscroll-behavior:none}button{font:inherit;color:inherit;border:0;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:disabled{opacity:.4;cursor:default}button:focus-visible{outline:3px solid #397db5;outline-offset:4px}body.keyboard-input #board:focus-visible{outline:3px solid #397db5;outline-offset:-8px;border-radius:12%}button:active:not(:disabled){transform:translateY(2px) scale(.97)}[hidden]{display:none!important}svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.world{position:fixed;inset:0;pointer-events:none;background:#d5f3f0 url('./assets/casual-backdrop.jpg') center/cover no-repeat;z-index:-1}
.game-shell{width:min(96vw,520px,calc(100svh - 245px));min-width:300px;position:relative;padding:8px 0 max(8px,env(safe-area-inset-bottom));margin:max(2px,env(safe-area-inset-top)) auto}
body[data-screen=home] .game-shell{width:min(92vw,440px);min-width:0}.home-screen{min-height:min(770px,94svh);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6px 20px 28px}.home-top{width:100%;display:flex;justify-content:flex-end;margin-bottom:22px}.round-button{width:43px;height:43px;display:grid;place-items:center;border-radius:16px;background:#fffaf3;border:2px solid #fff;box-shadow:0 4px 0 #9ccbd7,0 5px 10px #5b97ac1c;color:#6597b6}.round-button svg{width:23px;height:23px}
.home-logo{font-family:'Fredoka','Nunito',sans-serif;font-weight:700;font-size:clamp(62px,17vw,84px);line-height:1.1;letter-spacing:-4px;position:relative;transform:rotate(-5deg);paint-order:stroke fill;-webkit-text-stroke:8px #fff;text-shadow:0 7px 0 #99c6da,0 9px 0 #ffffff;color:#508caf;z-index:2}.home-logo span:nth-child(2){color:#ee7191}.home-logo i{position:absolute;right:-4px;top:-14px;font-size:24px;font-style:normal;color:#f9ca4d;-webkit-text-stroke:4px white;letter-spacing:0}
.jelly-chip{display:inline-block;flex:none;width:40px;height:40px;background-image:url('./assets/jellies-casual.png');background-size:400% 133.3333%;background-position-y:50%;background-repeat:no-repeat;position:relative}.jelly-chip.c1{background-position-x:0%}.jelly-chip.c2{background-position-x:33.3333%}.jelly-chip.c3{background-position-x:66.6667%}.jelly-chip.c4{background-position-x:100%}.chip-symbol{position:absolute;font-size:13px;left:50%;top:65%;transform:translate(-50%,-50%);color:#fff;text-shadow:0 1px 3px #264363}
.home-crew{width:320px;max-width:100%;height:212px;position:relative;margin:12px 0 2px}.home-crew .jelly-chip{position:absolute;width:133px;height:133px;filter:drop-shadow(0 7px 0 #87bfd121)}.home-crew .c1{left:47px;top:8px;transform:rotate(-13deg);z-index:2}.home-crew .c2{right:7px;top:76px;transform:rotate(15deg);z-index:3}.home-crew .c3{left:105px;top:92px;transform:rotate(-4deg);z-index:4}.home-crew .c4{left:-9px;top:88px;transform:rotate(-12deg);z-index:3}
.home-actions{width:100%;max-width:330px}.primary,.secondary{display:block;width:100%;padding:13px 18px;border-radius:18px;font-size:16px;font-weight:900;margin-top:12px;line-height:1.5}.primary{background:#ee7798;border:2px solid #ffadc2;color:#fff;box-shadow:0 5px 0 #c85377,0 8px 13px #cd598329;text-shadow:0 1px 0 #bf507344}.secondary{background:#edf6fd;border:2px solid #fff;color:#628baa;box-shadow:0 3px 0 #c1d9e7}.home-play{min-height:83px;position:relative;text-align:left;padding:13px 65px 13px 25px;border-radius:24px;margin:5px 0 19px}.home-play>span:first-child{display:block;font-size:27px;line-height:1.3}.home-play small{display:block;font-size:12px;opacity:.9;font-weight:700;letter-spacing:.4px}.play-triangle{position:absolute;right:25px;top:23px;font-size:26px}.home-secondary{display:flex;gap:14px}.home-secondary button{flex:1;min-width:0;border-radius:19px;padding:13px 6px 10px;background:#fffaf3;border:2px solid white;box-shadow:0 4px 0 #bdd9e3;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:13px;font-weight:800}.home-secondary button>span:first-child{height:28px;color:#8e9bd2;font-size:27px;line-height:1}.home-secondary button:last-child>span:first-child{color:#e5b542}.learn-button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;background:none;padding:22px 6px 13px;font-weight:800;font-size:13px;color:#598798}.learn-button>span:first-child{border:1.5px solid #78a6b6;border-radius:50%;width:20px;height:20px;line-height:17px}.home-progress{font-size:11px;font-weight:700;color:#75a0a5;letter-spacing:.4px;margin-top:3px}
.game-header{height:57px;display:flex;align-items:center;justify-content:space-between;padding:0 24px}.play-stage{display:flex;align-items:center;flex-direction:column;gap:2px}.play-stage>span{font-size:10px;letter-spacing:1.2px;color:#6c9da8;font-weight:800}.play-stage b{font-size:17px;font-weight:900;color:#4a7c96;letter-spacing:.3px}.hud{display:flex;gap:12px;align-items:center;padding:6px 28px 0;position:relative;z-index:2;margin-bottom:-18px;height:85px}.mission{height:72px;flex:1;min-width:0;position:relative;padding:6px 10px 10px;border-radius:22px;background:#fffcf6;border:3px solid #fff;box-shadow:0 4px 0 #a7cad7;display:flex;align-items:center;flex-direction:column;justify-content:center}.hud-label{font-size:11px;font-weight:800;letter-spacing:.5px;color:#7896ad}.goals{display:flex;justify-content:center;gap:12px;min-height:39px}.goal{display:flex;gap:0;align-items:center;font-weight:1000;font-size:24px;line-height:1}.goal.complete{color:#58af9c}.mission-track{height:4px;position:absolute;bottom:5px;left:18px;right:18px;background:#e8eff0;border-radius:5px;overflow:hidden}.mission-track span{height:100%;display:block;width:0;background:#8dcebb;transition:width .35s ease}.moves-medallion{position:relative;width:75px;height:77px;flex:none;text-align:center;border:3px solid #fff1b4;border-radius:24px;background:#ffe18b;box-shadow:0 4px 0 #d4b471}.moves-medallion .hud-label{display:block;color:#ad863c;padding-top:6px;font-size:10px}.moves-medallion b{font-size:37px;line-height:1.13;font-weight:1000;color:#966a38;display:block}.moves-medallion.low{background:#ffdab7;border-color:#ffe6d0}.moves-medallion.low b{color:#c2755a}
.board-wrap{width:100%;aspect-ratio:1;position:relative;margin:0 auto;isolation:isolate}#board,#game-canvas{width:100%;height:100%}#board{touch-action:none;user-select:none;-webkit-user-select:none;outline:none}#game-canvas{overflow:hidden}#game-canvas canvas{display:block;pointer-events:none}.loading{position:absolute;inset:12%;display:flex;flex-direction:column;gap:15px;align-items:center;justify-content:center;border-radius:25px;background:#f5fbffff;color:#719db7;z-index:25;font-weight:800}.loading-star{font-size:48px;animation:loading 2s linear infinite}.loading.error{font-size:14px;text-align:center;padding:24px;line-height:1.8}@keyframes loading{to{transform:rotate(180deg)}}
.combo-callout{position:absolute;top:34%;left:4%;right:4%;text-align:center;color:#fff;font:700 40px/1 'Fredoka','Nunito',sans-serif;letter-spacing:.02em;paint-order:stroke fill;-webkit-text-stroke:6px var(--combo,#ee7f9f);text-shadow:0 4px 0 var(--combo-deep,#d9638a),0 0 22px #fff8,0 12px 20px #0002;pointer-events:none;opacity:0;z-index:30}.combo-callout[data-level='3']{font-size:46px;--combo:#f59a4a;--combo-deep:#db7a2c}.combo-callout[data-level='4']{font-size:52px;--combo:#f2b632;--combo-deep:#d69418}.combo-callout[data-level='5']{font-size:58px;--combo:#a583ed;--combo-deep:#7f5ed0}.combo-callout.show{animation:combo 1.35s cubic-bezier(.2,1.2,.3,1) both}@keyframes combo{0%{opacity:0;transform:translateY(14px) scale(.5) rotate(-4deg)}14%{opacity:1;transform:translateY(0) scale(1.18) rotate(2deg)}24%{transform:scale(.96) rotate(-1deg)}32%,68%{opacity:1;transform:translateY(0) scale(1) rotate(0)}100%{opacity:0;transform:translateY(-30px) scale(1.04)}}
.board-result{position:absolute;bottom:13%;left:17%;right:17%;background:#fffcf4f5;padding:14px 15px 18px;border:3px solid white;box-shadow:0 4px 0 #93bbce;border-radius:23px;z-index:22;text-align:center}.board-result b{font-size:16px;color:#6492ae}.board-result .primary{font-size:14px;margin-top:7px;padding:9px 6px}.tutorial-coach{display:flex;align-items:center;justify-content:center;gap:9px;margin:0 18px 22px;padding:14px 10px;background:#fffaf0;border:2px solid white;box-shadow:0 4px 0 #b2d6dd;border-radius:20px;min-height:60px;font-size:14px;line-height:1.5;text-align:center}.tutorial-step{flex:none;border-radius:50%;display:grid;place-items:center;width:25px;height:25px;background:#ef83a0;color:white;font-size:14px}
.under-board{height:33px;margin:-14px 28px 0;position:relative;display:flex;align-items:center;gap:7px}.help-button{border:2px solid white;border-radius:50%;width:25px;height:25px;flex:none;background:#eff7fb;font-weight:900;color:#86a5c0;font-size:14px}#coach{color:#7395ac;font-size:11px;font-weight:700;flex:1;line-height:1.5}.next{display:flex;align-items:center;gap:3px;background:#ffffff85;border-radius:16px;padding:1px 3px 1px 8px;flex:none}.next>span{font-size:10px;color:#7c9db4}#next{display:flex}#next .jelly-chip{width:26px;height:26px}.game-controls{display:flex;justify-content:center;gap:32px;padding:10px 20px 0}.game-controls button{display:flex;align-items:center;flex-direction:column;background:none;padding:0;min-width:59px;gap:7px}.control-orb{width:55px;height:49px;display:grid;place-items:center;border-radius:18px;background:#fffdf7;border:2px solid #fff;box-shadow:0 4px 0 #aecbda;color:#81a6c0}.control-orb svg{width:25px;height:25px;stroke-width:2.2}#hint .control-orb{background:#fff0bd;color:#c19b57;box-shadow:0 4px 0 #dbc185}.control-label{font-size:11px;font-weight:800;color:#7599ab}.level-footer{height:30px;display:flex;gap:10px;align-items:center;justify-content:center;font-size:10px;color:#8aafbb;font-weight:800;letter-spacing:1px}.level-stars{color:#e0b65a;letter-spacing:3px;font-size:13px}.empty{color:#c5dbe5}
#dialog{background:#fffdf7;border:4px solid white;color:var(--ink);border-radius:29px;padding:0;width:min(410px,calc(100vw - 30px));max-height:90svh;box-shadow:0 12px 0 #6499ba2b,0 25px 70px #447aa45c;overflow:auto}#dialog::backdrop{background:#467c9e66;backdrop-filter:blur(5px)}.modal{padding:28px 25px;text-align:center;position:relative}.modal h2{font-size:25px;letter-spacing:-.7px;margin:10px 0 17px;color:#557e9e;font-weight:1000}.modal p{font-size:14px;line-height:1.8;color:#829ab1;margin:14px 0 22px}.modal .eyebrow{font-size:10px;letter-spacing:1.5px;font-weight:900;color:#8aa8bb}.close{width:31px;height:31px;border-radius:50%;background:#e9f2f8;color:#8aa6bc;font-size:24px;line-height:1;position:absolute;right:11px;top:11px;z-index:2}.text-button{background:none;color:#8ea7ba;padding:13px 8px;font-size:12px}.setting-row{display:flex;align-items:center;justify-content:space-between;min-height:55px;border-bottom:1px solid #dae8ef;font-size:14px;font-weight:800;text-align:left}.toggle{width:50px;height:28px;border-radius:20px;background:#d8e7ef;position:relative}.toggle:after{content:'';width:21px;height:21px;border-radius:50%;position:absolute;top:3px;left:4px;background:white;box-shadow:0 2px 3px #6893b126}.toggle.on{background:#8ccfbc}.toggle.on:after{left:25px}.lang-value{padding:8px 0 8px 10px;background:none;color:#bd89ad;font-size:13px;font-weight:900}.modal p.small-note{font-size:11px;margin:16px 0;color:#91acb9}.modal-symbol{font-size:40px;color:#e9bd66;margin:0 0 10px}.modal-symbol .jelly-chip{width:90px;height:90px}.result-jellies{display:flex;justify-content:center;height:105px;padding-top:4px;margin:0 0 10px}.result-jellies .jelly-chip{width:95px;height:95px;margin:0 -10px;transform:rotate(-9deg)}.result-jellies .jelly-chip:nth-child(even){transform:rotate(11deg) translateY(-6px)}.result h2{margin:8px 0}.stars{color:#f0c354;font-size:39px;letter-spacing:5px;text-shadow:0 3px 0 #d2a34c;line-height:1.4}.stars .empty{text-shadow:none}.result p{margin:10px 0 17px}.share-status{font-size:13px;white-space:pre-line;line-height:1.6}.map-modal{padding:30px 17px}.mode-switch{display:flex;gap:5px;background:#ecf3f9;border-radius:14px;padding:5px;margin:17px 0}.mode-switch button{flex:1;border-radius:11px;padding:9px 7px;font-size:13px;font-weight:900;background:transparent;color:#91aabf}.mode-switch button.active{background:white;color:#7396b3;box-shadow:0 2px 0 #d6e4ef}.level-map{display:grid;grid-template-columns:repeat(5,1fr);gap:24px 7px;padding:15px 3px 22px}.level-node{border-radius:18px;height:47px;width:47px;margin:auto;background:#bddce9;box-shadow:0 4px 0 #8fbcd4;border:2px solid white;color:#fff;font-size:19px;font-weight:1000;position:relative}.level-node.current{background:#ef8caa;box-shadow:0 4px 0 #d27295}.level-node.done{background:#94cdbf;box-shadow:0 4px 0 #6eaf9e}.level-node small{position:absolute;font-size:10px;letter-spacing:0;bottom:-10px;left:0;right:0;color:#e8b94e;text-shadow:0 1px 0 white}.level-node[aria-disabled=true]{color:#b3c8d7;background:#e5edf3;box-shadow:0 4px 0 #ccdce7}.level-node svg{width:17px;height:17px}.map-progress{font-size:12px;color:#8da9bb;margin:5px 0 0}
#toast{position:fixed;bottom:max(25px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:100;padding:12px 20px;width:max-content;max-width:90vw;background:#fffdf4f5;border:2px solid white;border-radius:17px;box-shadow:0 5px 0 #a6cbd899,0 8px 24px #4780a433;font-size:13px;font-weight:700;text-align:center}
.reduced .loading-star{animation:none}.reduced .combo-callout.show{animation:fade 1s ease-out both}.reduced .mission-track span{transition:none}@keyframes fade{0%,100%{opacity:0}20%,75%{opacity:1}}
@media(min-width:900px){.world{background-size:auto 120%;background-color:#d5f3f0}.world:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#d5f3f0 0%,transparent 38%,transparent 62%,#d5f3f0 100%)}}
@media(max-width:380px),(max-height:680px){.game-shell{min-width:290px;width:min(96vw,calc(100svh - 235px))}.game-header{height:50px;padding:0 20px}.hud{height:80px;padding:3px 24px 0;gap:8px}.mission{height:66px}.moves-medallion{width:67px;height:71px}.moves-medallion b{font-size:34px}.goals{gap:6px}.goal{font-size:22px}.goal .jelly-chip{width:34px;height:34px}.game-controls{gap:25px;padding-top:8px}.control-orb{width:50px;height:45px}.under-board{margin-left:23px;margin-right:23px}#coach{font-size:10px}.home-screen{padding-bottom:15px;min-height:95svh}.home-top{margin-bottom:10px}.home-logo{font-size:65px}.home-crew{height:178px;margin-top:3px;transform:scale(.87);margin-bottom:-12px}.home-play{min-height:74px}.home-play>span:first-child{font-size:23px}.home-secondary button{padding:10px 6px 8px}.learn-button{padding:19px 6px 8px}.home-progress{font-size:10px}}

.goals.many{gap:3px;align-items:center}.goals.many .jelly-chip{width:27px;height:27px}.goals.many .goal{font-size:18px}
/* The same garden, companion and flower follow the player from arrival to play. */
.garden-flower{display:inline-block;flex:none;width:64px;height:64px;background:url('./assets/garden-flower.png') 0% 50%/200% 100% no-repeat;transition:transform .45s ease;pointer-events:none}.garden-flower.awake{background-position-x:100%}
.home-screen{padding-top:6px}.home-top{margin-bottom:12px}.home-logo{z-index:3}.home-garden{width:calc(100% + 30px);height:225px;margin:12px -15px 0;border:4px solid #fff6;border-radius:45% 45% 30px 30px;background:url('./assets/story-opening.jpg') center 58%/cover;position:relative;box-shadow:0 5px 0 #b9d8d966;isolation:isolate;overflow:hidden}.home-flowers{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:center;padding-bottom:15px}.home-flowers .garden-flower{width:95px;height:95px;margin:0 -22px;position:relative;transform:rotate(calc((var(--flower-order) - 2)*7deg));filter:drop-shadow(0 5px 3px #557b7833)}.home-flowers .garden-flower:nth-child(2n){margin-bottom:10px}.home-lumi{position:absolute;right:5px;bottom:4px;width:90px;height:90px;transform:rotate(9deg)}.home-message{font-size:14px;font-weight:700;line-height:1.65;text-align:center;color:#638d9e;margin:15px 0 4px;max-width:300px}.home-play>span:first-child{font-size:24px}.home-play small{font-size:13px}.home-secondary button{font-size:14px}.learn-button{font-size:14px}.home-progress{font-size:12px}
body[data-screen=opening] .game-shell{width:min(100vw,540px);min-width:0;margin:0 auto;padding:0}.opening-screen{min-height:100svh;background:#fff9ef;overflow:hidden;position:relative;display:flex;flex-direction:column}.opening-scene{height:60svh;min-height:330px;position:relative;flex:1;background:#c9eced url('./assets/story-opening.jpg') center 60%/cover;padding:calc(34px + env(safe-area-inset-top)) 26px 0;text-align:center}.opening-scene:after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:45px;background:linear-gradient(transparent,#fff9ef)}#opening-chapter{font-size:12px;font-weight:800;letter-spacing:1.5px;color:#54869b}.opening-scene h1{font-family:'Fredoka','Noto Sans KR',sans-serif;font-size:29px;line-height:1.4;font-weight:800;margin:10px 0;color:#447d95;letter-spacing:-.5px}.opening-flower{display:none}.opening-dialogue{position:relative;min-height:260px;padding:25px 30px max(12px,env(safe-area-inset-bottom));background:#fff9ef}.opening-lumi{width:135px;height:135px;position:absolute;right:14px;top:-100px;filter:drop-shadow(0 9px 4px #6a996d22);transform:rotate(7deg)}.speaker{display:inline-block;color:#b88e39;font-size:14px;font-weight:900;letter-spacing:.5px}.opening-dialogue p{font-size:17px;line-height:1.8;color:#52758b;min-height:66px;margin:6px 0 18px;word-break:keep-all}.opening-dialogue .primary{font-size:16px;min-height:52px;margin-top:8px}.opening-dialogue .text-button{display:block;margin:6px auto 0}.opening-screen[data-step="1"] .opening-lumi{transform:rotate(-7deg)}
.mission{padding-left:36px}.mission .hud-label{font-size:11px;letter-spacing:0}.stage-flower{position:absolute;left:-15px;top:7px;width:65px;height:65px;filter:drop-shadow(0 3px 0 #90b0a329)}.stage-flower.awake{transform:rotate(-7deg) scale(1.08)}.guide-focus{outline:3px solid #f4bf54;outline-offset:3px;box-shadow:0 0 0 8px #fff4b866;z-index:5}
.story-guide{margin:-2px 23px 12px;padding:15px 14px 9px 72px;min-height:120px;background:#fffaf0;border:3px solid white;border-radius:24px;box-shadow:0 4px 0 #aecfda;position:relative;z-index:6}.guide-portrait{position:absolute;left:-11px;top:0;width:82px;height:82px;filter:drop-shadow(0 4px 2px #90ab9622)}.guide-copy .speaker{font-size:12px}.guide-copy p{font-size:14px;font-weight:700;line-height:1.7;word-break:keep-all;margin:3px 0 7px;color:#52778e}.guide-copy .primary{margin:9px 0 8px;padding:9px 6px;font-size:14px;border-radius:14px}.story-guide>.text-button{display:block;margin:2px 0 -3px auto;font-size:12px;padding:5px 2px;color:#8fa5ae}.bloom-dialogue{background:#fff6df}.guided .game-shell{width:min(96vw,490px,calc(100svh - 290px));min-width:300px}.guided .under-board{margin-top:1px;margin-bottom:12px}.guided .under-board #coach{display:none}.guided .under-board .next{margin-left:auto}.guided .game-header{height:52px}.guided .hud{height:81px}.bloom-reveal{position:absolute;inset:17% 16%;z-index:21;border:4px solid #fffaf0;border-radius:44% 44% 25px 25px;background:#cde6db url('./assets/story-opening.jpg') center 65%/cover;display:grid;place-items:center;box-shadow:0 8px 0 #6daaa14d,0 12px 35px #497c8b40;animation:flower-reveal .65s ease-out both}.bloom-reveal .garden-flower{width:75%;height:auto;aspect-ratio:1;filter:drop-shadow(0 8px 3px #41695333);transform-origin:bottom;animation:flower-grow .7s ease-out both}@keyframes flower-reveal{from{opacity:0;transform:scale(.88)}to{opacity:1;transform:scale(1)}}@keyframes flower-grow{0%{transform:scale(.6) rotate(-12deg)}65%{transform:scale(1.08) rotate(4deg)}100%{transform:scale(1) rotate(0)}}
.result-garden{margin:-28px -25px 14px;height:175px;background:url('./assets/story-opening.jpg') center 65%/cover;display:grid;place-items:center;border-radius:24px 24px 0 0}.result-garden .garden-flower{width:155px;height:155px;margin-top:15px;filter:drop-shadow(0 8px 4px #708f8744)}.garden-result h2{font-size:24px}.garden-result p{font-size:15px}.level-map{background:linear-gradient(#d5eff466,#d7efdf55),url('./assets/story-opening.jpg') center/cover;border-radius:24px;gap:22px 0;padding:27px 2px 22px}.level-node,.level-node.current,.level-node.done,.level-node[aria-disabled=true]{width:55px;height:65px;background:none;box-shadow:none;border:0;border-radius:0;color:#fff;position:relative}.level-node:nth-child(2n){transform:translateY(10px)}.level-node .garden-flower{position:absolute;inset:-3px -5px;width:65px;height:65px}.level-node b{position:absolute;bottom:-1px;left:14px;width:28px;height:25px;line-height:22px;border-radius:13px;background:#7cb1a1;border:2px solid white;font-size:12px}.level-node.current b{background:#e77c99}.level-node[aria-disabled=true] b{background:#aabfc2}.level-node[aria-disabled=true]{opacity:.75}.level-node b svg{width:12px;height:12px}.map-progress{font-size:14px}
.reduced .bloom-reveal,.reduced .bloom-reveal .garden-flower{animation:none}.reduced .garden-flower{transition:none}
@media(max-height:710px){.home-garden{height:185px}.home-message{font-size:13px;margin-top:10px}.home-screen{padding-bottom:14px}.opening-scene{min-height:280px;height:52svh}.opening-dialogue{padding:18px 25px 8px;min-height:260px}.opening-dialogue p{font-size:16px;line-height:1.7}.opening-scene h1{font-size:25px}.story-guide{margin:0 20px 8px;padding-top:10px;min-height:112px}.guide-copy p{font-size:14px;line-height:1.6}.guided .game-shell{min-width:290px;width:min(95vw,calc(100svh - 280px))}}
.home-secondary small{font-size:11px;line-height:1.4;font-weight:600}.home-secondary button:disabled{opacity:.65}
.home-screen{padding-top:48px}.home-top{position:absolute;top:8px;right:24px;width:auto;margin:0}.home-garden{height:min(27svh,210px);flex-shrink:0}.home-screen .home-logo{margin-top:0}
@media(max-height:710px){.home-garden{height:155px}.home-screen .home-logo{font-size:60px}.home-play{min-height:67px;padding-top:9px;padding-bottom:9px}.home-play>span:first-child{font-size:22px}.home-secondary button{padding:8px 5px;font-size:13px}.home-message{margin-top:9px;margin-bottom:2px}.learn-button{padding-top:14px;padding-bottom:8px}}

/* A winding, playable garden map is the home screen. */
body[data-screen=home]{display:block}body[data-screen=home] .game-shell{width:min(100%,520px);margin:0 auto;padding:0}.home-screen{height:100svh;min-height:560px;display:flex;align-items:stretch;justify-content:flex-start;padding:0;overflow:hidden;background:linear-gradient(#d9f1fbdd,#e1f4e8aa)}.map-header{height:78px;flex:none;display:flex;align-items:center;gap:12px;padding:calc(10px + env(safe-area-inset-top)) 18px 12px;background:#e8f7faed;z-index:4;border-bottom:2px solid #fff9}.mini-logo{font:700 29px/1 'Fredoka',sans-serif;color:#548eac;letter-spacing:-1px;flex:1}.mini-logo b{color:#e86e95}.heart-meter{display:grid;grid-template-columns:auto auto;column-gap:6px;background:#fffaf5;border:2px solid white;border-radius:18px;min-height:45px;padding:5px 11px;box-shadow:0 3px 0 #cbdae2}.heart-meter>span{color:#ed7194;font-size:24px;grid-row:span 2;align-self:center}.heart-meter b{font-size:16px}.heart-meter small{font-size:12px;color:#839cb0;line-height:1}.home-view{flex:1;min-height:0;position:relative;display:flex;flex-direction:column}.map-heading{text-align:center;z-index:2;background:linear-gradient(#e3f4f7,#e3f4f7e0,transparent);padding:14px 10px 10px;pointer-events:none;position:absolute;top:0;left:0;right:0}.map-heading>span{font-size:12px;letter-spacing:1px;color:#7d9bad;font-weight:800}.map-heading h1{font-size:25px;margin:3px 0;color:#4f869b}.map-heading .home-progress{font-size:13px;margin:0;color:#658b98}.map-scroll{overflow-y:auto;overscroll-behavior:contain;flex:1;padding:110px 0 130px;scrollbar-width:none;background:url('./assets/casual-backdrop.jpg') center/cover fixed}.map-trail{position:relative;width:100%;min-height:400px}.trail-line{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:#fff3c9;stroke-width:30px;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 3px 0 #a0c8b077)}.trail-node{position:absolute;transform:translate(-50%,-50%);width:85px;height:85px;background:none;padding:0;isolation:isolate}.trail-node:active:not(:disabled){transform:translate(-50%,-47%) scale(.96)}.trail-node .garden-flower{position:absolute;width:110px;height:110px;left:-12px;top:-17px;filter:drop-shadow(0 5px 3px #567e6733)}.trail-node>b{position:absolute;left:22px;bottom:3px;min-width:40px;border:3px solid white;border-radius:18px;background:#8fb1bb;color:white;font-size:20px;box-shadow:0 3px 0 #719aaa}.trail-node.cleared>b{background:#79b5a1}.trail-node.current>b{background:#ed7a9b;box-shadow:0 3px 0 #c96787}.trail-node small{position:absolute;bottom:-17px;left:0;right:0;color:#e8b44b;font-size:18px;letter-spacing:2px;text-shadow:0 2px white}.trail-node:disabled{opacity:.65}.trail-node .trail-lumi{position:absolute;right:-34px;top:-24px;width:65px;height:65px;animation:lumi-hop 2s ease-in-out infinite}.map-dock{position:absolute;bottom:0;left:0;right:0;padding:22px 32px 16px;background:linear-gradient(transparent,#e8f6ed 26%);z-index:3}.map-dock .home-play{margin:8px 0 0;min-height:66px;padding:10px 50px 10px 20px;max-width:none}.map-dock .home-play>span:first-child{font-size:22px}.map-dock .home-message{margin:0 auto;font-size:14px;color:#527e85;max-width:none}.bottom-tabs{display:flex;flex:none;height:calc(80px + env(safe-area-inset-bottom));padding:7px 18px calc(8px + env(safe-area-inset-bottom));background:#fffcf7;border-top:3px solid white;box-shadow:0 -4px 15px #6e9cac15;z-index:4;gap:10px}.bottom-tabs button{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-radius:19px;background:none;color:#819eb4;min-width:0}.bottom-tabs button>span{height:29px;font-size:27px}.bottom-tabs button b{font-size:14px}.bottom-tabs button.selected{background:#e0f1e9;color:#528c79;box-shadow:inset 0 -3px #c8e3d7}.tab-page{overflow-y:auto;padding:20px}.tab-page h1{font-size:28px;margin:8px 0 14px}.reduced .trail-lumi{animation:none}@keyframes lumi-hop{0%,70%,100%{transform:translateY(0) rotate(7deg)}35%{transform:translateY(-8px) rotate(-5deg)}}
/* Inventory and in-board tools use the same painted objects as the garden. */
.tool-art{display:inline-block;flex:none;width:49px;height:72px;background:url('./assets/tools.png') 0% 50%/400% 100% no-repeat;pointer-events:none}.tool-hammer{background-position-x:33.3333%}.tool-color{background-position-x:66.6667%}.tool-twigs{background-position-x:100%}.control-orb{position:relative;width:67px;height:60px;border-radius:21px}.control-orb .tool-art{width:53px;height:77px;position:absolute;left:5px;top:-10px;filter:drop-shadow(0 3px 1px #73938d20)}.control-orb>b{position:absolute;bottom:-4px;right:-6px;border-radius:13px;min-width:26px;height:25px;display:grid;place-items:center;background:#4d8f9a;border:2px solid white;color:white;font-size:13px;z-index:2}.game-controls{gap:27px;padding-top:11px}.control-label{font-size:13px;color:#588599}.selected-tool .control-orb{outline:3px solid #eac15b;outline-offset:3px;background:#fff1c2}.play-secondary{display:flex;justify-content:center;gap:35px;margin-top:14px}.play-secondary button{background:none;color:#7093a5;font-size:13px;font-weight:800;padding:8px}.play-secondary #hint{opacity:.65}.stage-tip{position:relative;margin:0 26px 8px;padding:9px 25px 9px 47px;background:#fff9e8;border:2px solid white;border-radius:17px;display:flex;align-items:center;min-height:65px}.stage-tip .jelly-chip{position:absolute;left:-11px;width:60px;height:60px}.stage-tip p{font-size:13px;line-height:1.6;margin:0;color:#5e8293}.stage-tip button{position:absolute;right:4px;top:3px;background:none;font-size:22px;color:#7a9aaa}.tool-prompt{margin:0 25px 10px;padding:10px 13px;background:#fff1c9;border-radius:15px;display:flex;align-items:center;justify-content:space-between;font-size:14px;font-weight:800}.tool-prompt button{background:white;border-radius:10px;padding:7px 10px;font-size:13px}.goal .tool-art{width:26px;height:39px}.goal .goal-flower{width:38px;height:38px}.goals.many{gap:6px}.goals.many .goal{font-size:19px}.mini-board{display:grid;grid-template-columns:repeat(6,1fr);gap:3px;background:#88bbd0;border:8px solid #e5f2f5;border-radius:18px;padding:5px;max-width:270px;margin:15px auto}.mini-cell{aspect-ratio:1;display:grid;place-items:center;background:#b8dbe5;border-radius:7px;position:relative;color:#6d94af;font-size:26px}.mini-cell .jelly-chip{width:100%;height:100%}.mini-cell .tool-art{width:25px;height:36px}.mini-cell .garden-flower{width:34px;height:34px}.mini-cell.bud-cell{background:#ffe9ab}.mini-cell.target-cell{outline:3px solid #f2b35c;outline-offset:-1px}.color-choices,.gift-choices{display:flex;justify-content:center;gap:12px;margin:20px 0}.color-choices button{border:3px solid #c5dbe7;background:#e8f6fc;border-radius:18px;padding:5px}.color-choices .jelly-chip{width:64px;height:64px}.gift-choices button{display:flex;flex-direction:column;align-items:center;background:#edf6f4;border-radius:18px;padding:8px;flex:1;font-size:13px;font-weight:800}.modal>.tool-art{width:65px;height:95px}.garden-card{border:3px solid white;border-radius:25px;padding:20px;background:#fffaf1;box-shadow:0 5px 0 #b9d8d980;text-align:center;margin:12px 0 20px}.garden-card h2{font-size:22px;margin:5px 0 10px}.garden-card p{font-size:15px;line-height:1.7;color:#658899}.garden-card small{font-size:14px;color:#c5a04b;display:block;margin-top:18px}.page-eyebrow{font-size:12px;font-weight:900;letter-spacing:1px;color:#6b9e9a}.page-subtitle{font-size:16px;margin:0 0 20px;color:#7899a7}.daily-art{height:170px;position:relative;display:flex;align-items:center;justify-content:center}.daily-art .garden-flower{width:180px;height:180px}.daily-art .jelly-chip{width:85px;height:85px;margin-left:-40px;margin-top:60px;transform:rotate(10deg)}.reward-label{background:#eef5e7;padding:8px;border-radius:10px;font-weight:800}.reward-note{font-size:14px;line-height:1.7;color:#6c94a3;background:#ffffff94;border-radius:18px;padding:13px 16px;margin-bottom:14px}.reward-note b{display:block;color:#d089a0}.shop-tool{display:flex;gap:15px;align-items:center;padding:17px 15px;background:#fffaf3;border:2px solid white;border-radius:23px;margin-bottom:13px;box-shadow:0 4px #bad7d866}.shop-tool>.tool-art{width:60px;height:88px}.shop-tool>div{flex:1;min-width:0}.shop-tool h2{font-size:17px;margin:0 0 5px}.shop-tool p{font-size:13px;line-height:1.65;margin:0;color:#7291a1}.shop-tool .secondary{font-size:13px;padding:8px;margin-top:10px}.inventory-badge{font-size:13px;border-radius:10px;padding:2px 8px;background:#dfefea;color:#548e7b;margin-left:5px}.heart-large{color:#ef7598;font-size:55px}.coming-card{border:2px dashed #bed4d8;border-radius:20px;padding:18px;color:#6c929e;margin:25px 0}.coming-card p,.small-note{font-size:13px;line-height:1.7}.trail-node em{position:absolute;right:3px;bottom:22px;color:#b487d3;font-style:normal;font-size:23px;text-shadow:0 1px white}.trail-node.just-bloomed .garden-flower{animation:flower-grow .7s ease-out both}.chapter-controls{display:flex;justify-content:center;gap:14px;margin-top:7px;pointer-events:auto}.chapter-controls button{background:#ffffffb8;padding:4px 12px;font-size:13px;border-radius:12px;color:#7495a0}.map-heading{padding-bottom:15px}.map-scroll{padding-top:132px}.reduced .trail-node.just-bloomed .garden-flower{animation:none}.map-result-actions{display:flex;gap:8px}.result.garden-result{padding-top:20px}.result-garden{height:140px}.result-garden .garden-flower{width:130px;height:130px}
@media(max-width:380px),(max-height:700px){.game-shell{width:min(96vw,calc(100svh - 310px));min-width:290px}.game-controls{gap:23px}.control-orb{width:60px;height:54px}.control-orb .tool-art{width:48px;height:70px}.play-secondary{margin-top:10px}.stage-tip{margin-left:22px;margin-right:22px}.map-header{height:72px;padding-left:14px;padding-right:14px}.map-dock{padding:20px 24px 14px}.map-heading h1{font-size:23px}}
#toast{pointer-events:none}body[data-screen=home] #toast{bottom:calc(96px + env(safe-area-inset-bottom))}
.lesson-tool .control-orb{outline:3px solid #f0c75c;outline-offset:3px;animation:tool-invite 1.7s ease-in-out infinite}@keyframes tool-invite{50%{transform:translateY(-4px)}}.reduced .lesson-tool .control-orb{animation:none}

/* The puzzle owns the screen. Chrome stays compact; geometry owns the canvas. */
body[data-screen=play]{display:block;background:#d9f1f4}
body[data-screen=play] .world{background:radial-gradient(ellipse at 50% 35%,#f1fcfa,#d7eef4 80%)}
body[data-screen=play] .game-shell,body.guided .game-shell{width:min(100%,560px);min-width:0;margin:0 auto;padding:0}
#play-screen{height:100svh;height:100dvh;min-height:480px;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);display:flex;flex-direction:column;overflow:hidden}
.game-header,.guided .game-header{height:48px;flex:none;padding:3px 14px;gap:10px}
.game-header .round-button{width:40px;height:38px;border:0;border-radius:13px;box-shadow:0 2px #b2d6df;background:#f8fdff}
.play-stage{flex-direction:row;align-items:baseline;gap:8px}.play-stage>span{font-size:12px;letter-spacing:0;color:#658b96}.play-stage>b{font-size:16px;color:#345c72;letter-spacing:0}
.play-panel{flex:1;min-height:0;display:flex;flex-direction:column;gap:6px;padding:0 5px}
.hud,.guided .hud{height:auto;min-height:69px;flex:none;padding:0 7px;margin:0;gap:7px;align-items:stretch}
.mission{min-height:65px;height:auto;padding:5px 7px 9px;border-radius:19px;border:2px solid #fff;box-shadow:0 3px #bad7df;background:#f9fdfd;justify-content:center}
.stage-flower{display:none}.mission .hud-label{font-size:12px;color:#628696;line-height:1.15}.goals{min-height:37px;gap:10px;align-items:center;flex-wrap:wrap}.goal{font-size:23px;gap:1px;color:#365d76}.goal .jelly-chip{width:34px;height:34px}.goals.many{gap:3px 6px}.goals.many .goal{font-size:19px}.goals.many .jelly-chip{width:29px;height:29px}.goal .goal-flower{width:32px;height:32px}.goal .tool-art{width:24px;height:32px}
.mission-track{left:14px;right:14px;bottom:3px;height:3px}.moves-medallion{width:71px;height:auto;min-height:65px;border:2px solid #fff2c4;border-radius:18px;box-shadow:0 3px #dbc38d}.moves-medallion .hud-label{padding-top:4px;font-size:12px}.moves-medallion b{font-size:33px;line-height:1.1}
.board-stage{flex:1;min-height:120px;display:flex;align-items:center;justify-content:center;width:100%;overflow:visible}
.board-wrap{margin:0;width:100%;height:auto;aspect-ratio:auto;flex:none;max-width:100%}
#game-canvas{overflow:visible}.board-result{left:18%;right:18%;bottom:10%}
.play-dock{flex:none;display:flex;align-items:center;justify-content:center;gap:16px;min-height:87px;padding:4px 10px 13px;margin-top:1px;border-top:1px solid #ffffffa6;background:linear-gradient(#e7f5f700,#cce7ef66)}
.game-controls{order:0;gap:17px;padding:0;align-items:center}.game-controls button{min-width:53px;min-height:58px;gap:0;padding:0}.control-orb{height:49px;width:52px;border-radius:16px;box-shadow:0 3px #a6c8d7}.control-orb .tool-art{width:43px;height:62px;left:3px;top:-7px}.control-orb>b{right:-5px;bottom:-5px;min-width:23px;height:23px;font-size:13px}.control-label{position:absolute;width:1px;height:1px;clip:rect(0,0,0,0);overflow:hidden;white-space:nowrap}
.under-board,.guided .under-board{order:1;height:auto;min-height:46px;margin:0;padding:0;gap:0}.under-board #help,.under-board #coach{display:none}.next{flex-direction:column;gap:1px;padding:4px 5px;border-radius:13px;background:#f7fcff80;min-width:64px}.next>span{font-size:12px;color:#628594;font-weight:800}#next .jelly-chip{height:25px;width:25px}
.play-secondary,.level-footer{display:none!important}
.story-guide{flex:none;min-height:0;margin:0 9px 6px;padding:10px 13px 8px 63px;border-radius:20px;box-shadow:0 3px #aecfda}.guide-portrait{width:72px;height:72px;top:3px;left:-7px}.guide-copy .speaker{font-size:12px}.guide-copy p{font-size:14px;line-height:1.55;margin:2px 0 5px}.guide-copy .primary{padding:7px 8px;margin:5px 0;font-size:14px;min-height:37px}.story-guide>.text-button{padding:3px 0;font-size:12px}.guided .play-dock:has(.under-board[hidden]){display:none}.guided .play-dock{min-height:56px;padding:2px 10px 8px}
.stage-tip{flex:none;min-height:0;margin:0 9px;padding:9px 30px 9px 45px;border-radius:16px}.stage-tip p{font-size:13px;line-height:1.45}.stage-tip .jelly-chip{height:55px;width:55px}.stage-tip button{width:32px;height:32px}.tool-prompt{flex:none;margin:0 9px;padding:8px 12px;font-size:14px;gap:7px}.tool-prompt button{min-height:38px;flex:none}
.pause-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:12px 0 20px}.pause-actions button{margin:0;padding:10px 6px;font-size:14px}.pause-actions .primary{grid-column:span 2}
.mini-cell.void-cell{visibility:hidden}.mini-board{max-width:270px;border:0;background:#dbeaf1;gap:2px;padding:5px}.preview-goals{display:flex;align-items:center;justify-content:center;gap:15px}.preview-goals>span{display:flex;align-items:center;gap:2px;font-size:22px}.preview-goals .garden-flower{width:40px;height:40px}.preview-goals .tool-art{width:30px;height:44px}.level-preview h2{margin-bottom:12px}.level-preview .mini-board{max-width:220px;margin:12px auto}.level-preview p{margin:12px 0;font-size:14px;line-height:1.6}.level-preview .preview-reward{font-weight:800;color:#538b77}.earned-tools{display:flex;align-items:center;justify-content:center;gap:7px;font-size:19px;margin:5px 0 12px}.earned-tools .tool-art{width:31px;height:45px}
/* A grounded, ascending garden journey: ten stops and one visible destination. */
body[data-screen=home] .game-shell{width:min(100%,520px)}
.home-screen{height:100svh;height:100dvh;min-height:480px;background:#e2f2e8}
.map-header{height:calc(60px + env(safe-area-inset-top));padding:calc(7px + env(safe-area-inset-top)) 16px 7px;gap:10px;border:0;background:#f3fbf5;box-shadow:0 2px 0 #fff;flex:none}
.mini-logo{font-size:27px}.map-header .round-button{width:38px;height:38px;box-shadow:0 2px #b6d8de;border-radius:14px}.heart-meter{min-height:39px;border-radius:15px;padding:3px 9px;box-shadow:0 2px #c7dce1}.heart-meter>span{font-size:23px}.heart-meter b{font-size:14px}.heart-meter small{font-size:12px}
.map-heading{position:relative;inset:auto;flex:none;min-height:57px;padding:7px 15px 4px;background:#f3fbf5;display:grid;grid-template-columns:1fr auto;text-align:left;align-items:center;gap:0 10px;pointer-events:auto}
.map-heading>span{grid-column:1;font-size:11px;letter-spacing:1px;color:#779a87}.map-heading h1{grid-column:1;font-size:23px;margin:0;line-height:1.3;color:#386c60}.map-heading .home-progress{grid-column:2;grid-row:1/3;font-size:13px;color:#538871;background:#e5f0df;padding:8px 10px;border:1px solid #d1e4d0;border-radius:12px;white-space:nowrap}
.chapter-controls{height:34px;margin:0;flex:none;gap:6px;align-items:center;background:#f3fbf5;padding:2px 16px 6px;border-bottom:2px solid #fff}.chapter-controls button{height:25px;min-width:40px;padding:2px 11px;color:#658970;font-size:12px;background:#e4eee3;border-radius:20px}.chapter-controls .active{background:#679d7c;color:white;box-shadow:0 2px #477b5a}
.map-scroll{background:#a6c984;overflow-y:auto;flex:1;padding:0;position:relative;overscroll-behavior:contain;scroll-behavior:smooth}.map-trail{isolation:isolate;background:#c3d99d;min-height:0;overflow:hidden}.atlas-muted,.atlas-color{position:absolute;inset:0;background:url('./assets/garden-atlas.png') center/100% 100% no-repeat;pointer-events:none;z-index:-2}.atlas-muted{filter:saturate(.35) brightness(1.04)}.atlas-color{z-index:-1;mask-image:linear-gradient(to bottom,transparent calc(var(--reveal) - 6%),#000 calc(var(--reveal) + 6%));-webkit-mask-image:linear-gradient(to bottom,transparent calc(var(--reveal) - 6%),#000 calc(var(--reveal) + 6%))}.map-trail[data-chapter="1"] .atlas-color{filter:hue-rotate(-8deg)}.map-trail[data-chapter="2"] .atlas-color{filter:hue-rotate(10deg)}.map-trail[data-chapter="3"] .atlas-color{filter:hue-rotate(20deg)}
.trail-line{filter:none;stroke:none;overflow:visible}.trail-line path{fill:none;stroke-linecap:round;stroke-linejoin:round}.route-shadow{stroke:#566e414d;stroke-width:29}.route-ahead{stroke:#fff6d9;stroke-width:22;stroke-dasharray:2 27}.route-done{stroke:#ffde82;stroke-width:23}
.destination{position:absolute;top:178px;left:50%;transform:translateX(-50%);width:210px;text-align:center;background:#fffbecf5;border:3px solid #fff;border-radius:19px;padding:8px 13px 9px;box-shadow:0 4px 0 #698b694d}.destination>span{font-size:11px;letter-spacing:.4px;font-weight:900;color:#818b71}.destination b{display:block;font-size:21px;line-height:1.4;color:#467358}.destination small{font-size:12px;color:#7c9375}.destination.restored{background:#ffeaba;border-color:#fff5cf}
.trail-node{width:60px;height:60px;border-radius:50%;padding:0;background:#e7ebdf;border:4px solid #ffffed;box-shadow:0 5px 0 #88a076,0 7px 7px #315e3933;color:#718769;z-index:1;opacity:1!important}
.trail-node>b{position:static;display:block;border:0;background:none;box-shadow:none;min-width:0;border-radius:0;font-size:23px;line-height:1.2;color:inherit;text-shadow:0 1px white}
.trail-node.current{width:69px;height:69px;background:#f781a7;border-color:#fff2bc;box-shadow:0 5px #ba5075,0 0 0 6px #ffefa963,0 7px 10px #415c3a44;color:white;z-index:3}.trail-node.current>b{background:none;box-shadow:none;text-shadow:0 2px #bd5278;font-size:28px}
.trail-node.cleared{background:#82bd8b;color:#fff;box-shadow:0 5px #52895e,0 7px 7px #315e3933}.trail-node.cleared>b{background:none;text-shadow:0 1px #427a54}.trail-node:disabled{background:#dce4d3;border-color:#eff4e8;color:#829278;box-shadow:0 4px #a9b69e}.trail-node small{font-size:15px;bottom:-11px;text-shadow:0 1px #876a2f,1px 0 #fff5d3,-1px 0 #fff5d3;color:#ffe286;letter-spacing:0;font-weight:900}.trail-node em{right:-9px;bottom:-3px;background:#b68bd6;border-radius:50%;height:22px;width:22px;color:white;font-size:15px;text-shadow:none;border:2px solid white}.trail-node .trail-lumi{right:-44px;top:-32px;width:71px;height:71px;filter:drop-shadow(0 4px 1px #44736030)}.you-are-here{position:absolute;bottom:-26px;left:50%;transform:translateX(-50%);white-space:nowrap;background:#fffcf2;color:#b9577d;font-size:12px;font-weight:900;border-radius:10px;padding:3px 9px;box-shadow:0 2px #aac391}.finish-flag{position:absolute;top:-32px;left:15px;color:#e26b8f;font-size:35px;text-shadow:1px 1px white}
.map-dock{position:relative;flex:none;padding:6px 19px 12px;background:#f3fbf5;box-shadow:0 -3px 12px #3d784225;border-top:2px solid #fff}.map-dock .home-message{display:none}.chapter-reward{display:flex;align-items:center;justify-content:space-between;gap:5px;min-height:26px;font-size:12px;color:#628162;font-weight:800}.reward-tools{display:flex;align-items:center;gap:0;font-size:12px;color:#63927e}.reward-tools .tool-art{width:20px;height:29px}.reward-tools b{margin-right:5px}.map-dock .home-play{min-height:53px;padding:7px 45px 8px 18px;margin-top:4px;border-radius:19px;box-shadow:0 4px #c45c80}.map-dock .home-play>span:first-child{font-size:20px;line-height:1.1}.map-dock .home-play small{font-size:12px;margin-top:4px}.map-dock .play-triangle{right:19px;top:12px;font-size:22px}
.bottom-tabs{height:calc(65px + env(safe-area-inset-bottom));padding:4px 18px calc(5px + env(safe-area-inset-bottom));gap:18px;border-top-width:2px}.bottom-tabs button{border-radius:15px;gap:0}.bottom-tabs button>span{height:24px;font-size:23px}.bottom-tabs svg{height:22px;width:22px}.bottom-tabs button b{font-size:13px}
.result-garden{background-image:url('./assets/garden-atlas.png');background-position:center 8%;height:155px}.garden-result .result-garden .garden-flower{width:98px;height:98px;margin-top:70px}.reduced .atlas-color{transition:none}.reduced .map-scroll{scroll-behavior:auto}
@media(max-height:700px){.game-header,.guided .game-header{height:42px}.hud,.guided .hud{min-height:60px}.mission,.moves-medallion{min-height:58px}.moves-medallion b{font-size:29px}.play-dock{min-height:73px;padding-bottom:8px}.story-guide{padding-top:6px;padding-bottom:5px}.guide-copy p{font-size:13px;line-height:1.4}.guide-copy .primary{padding:5px;min-height:32px}.map-header{height:54px}.map-heading{min-height:51px}.map-heading h1{font-size:21px}.map-dock{padding-top:3px;padding-bottom:9px}.chapter-reward{font-size:11px}.map-heading .home-progress{font-size:12px;padding:7px}.bottom-tabs{height:60px}.map-dock .home-play{min-height:48px}.map-dock .home-play>span:first-child{font-size:18px}}
@media(max-width:350px){.play-stage>span{display:none}.game-controls{gap:13px}.play-dock{gap:10px}.goals.many .jelly-chip{width:24px;height:24px}.goals.many .goal{font-size:17px}.map-heading .home-progress{font-size:11px}.chapter-reward{font-size:11px}.reward-tools .tool-art{width:17px}.map-dock{padding-left:12px;padding-right:12px}}

/* CSS owns responsive sizing; Phaser owns the logical grid. Avoid auto-center margins on resized phone viewports. */
#game-canvas canvas{width:100%!important;height:100%!important;margin:0!important}#game-canvas{display:flow-root}

.trail-node.just-bloomed{animation:stop-bloom .7s ease-out}@keyframes stop-bloom{0%{transform:translate(-50%,-50%) scale(.65)}65%{transform:translate(-50%,-50%) scale(1.15)}100%{transform:translate(-50%,-50%) scale(1)}}.reduced .trail-node.just-bloomed{animation:none}
/* New friends use the same painted assets in goals, previews and the board. */
.seed-art{display:inline-block;flex:0 0 auto;width:52px;height:52px;background-image:url('./assets/seed-sprites.png');background-size:300% 100%;background-repeat:no-repeat;vertical-align:middle}.seed-0{background-position:0 0}.seed-1{background-position:50% 0}.seed-2{background-position:100% 0}.wind-goal{display:inline-flex;align-items:center;justify-content:center;width:43px;height:43px;color:#3898b9}.wind-goal svg{width:35px;height:35px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}.goal .seed-art{width:48px;height:48px}.goal .wind-goal{width:40px;height:40px}.practice-card{margin-top:20px}.practice-card .practice-art{height:68px}.practice-art{display:flex;justify-content:center;align-items:center;gap:12px}.practice-art .seed-art{width:86px;height:86px}.practice-art .wind-goal{width:70px;height:70px}.practice-art svg{width:57px;height:57px}.practice-actions{display:flex;gap:10px;margin:16px 0}.practice-actions button{flex:1;padding:12px 8px;margin:0}.practice-card small{display:block;line-height:1.5;color:#617d8b}.practice-result .practice-art{margin:0 auto 12px}.mini-cell{position:relative}.mini-cell>.seed-art{width:110%;height:110%;position:absolute;inset:-5%}.mini-cell>.mini-pot{width:68%;height:68%;inset:auto -4% -4%;z-index:2}.mini-wind{position:absolute;top:-3px;left:50%;transform:translateX(-50%);color:#fff;text-shadow:0 1px 2px #387690;font-size:16px}.preview-goals .seed-art{width:52px;height:52px}

/* Independent music / effects controls remain usable on the smallest phones. */
.audio-setting .setting-row{border-bottom:0;min-height:48px}.volume-row{display:flex;align-items:center;gap:14px;padding:0 0 10px;border-bottom:1px solid #dae8ef}.volume-row input{min-width:0;flex:1;height:34px;accent-color:#4a9b93;touch-action:pan-y}.volume-row input:disabled{opacity:.4}.volume-row output{min-width:42px;font:700 14px system-ui;color:#527b90;text-align:right}.settings-modal .setting-row{font-size:16px}.settings-modal .toggle{min-height:32px}.settings-modal .toggle:after{top:5px}.settings-modal .small-note{font-size:13px}.volume-row input:focus-visible{outline:3px solid #dbad4f;outline-offset:3px;border-radius:8px}

.puff-art{position:relative;display:inline-block;flex:0 0 auto;width:48px;height:48px;background-repeat:no-repeat;vertical-align:middle}.practice-art .puff-art{width:86px;height:86px}.mini-cell>.puff-art{width:100%;height:100%}.puff-practice-card{background:linear-gradient(145deg,#fffdf3,#fff3c6);border-color:#edce70}.puff-practice-card .page-eyebrow{margin-top:12px}.puff-practice-card .primary{margin:12px 0}.puff-practice-card small{font-size:13px}

/* One raster manifest is shared by board, goals, previews and contextual lessons. */
.special-art{position:relative;display:inline-block;flex:0 0 auto;width:48px;height:48px;background-repeat:no-repeat;vertical-align:middle}.mini-cell>.special-art{width:100%;height:100%}.goal>.special-art{width:43px;height:43px}.lesson-art{display:flex;justify-content:center;margin:10px auto}.lesson-art .special-art,.lesson-art .seed-art{width:108px;height:108px}
#stage-tip-icon{position:absolute;left:-9px;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:56px;height:56px}#stage-tip-icon .special-art,#stage-tip-icon .seed-art{width:58px;height:58px}#stage-tip-icon .jelly-chip{position:static;width:55px;height:55px}#stage-tip-phase{display:block;font-size:12px;line-height:1.25;letter-spacing:.02em;color:#b88538;margin-bottom:3px}.stage-tip p{font-size:14px;line-height:1.4}.map-new-friend{background:#fff5d6;border:2px solid #fff;border-radius:16px;padding:8px 13px;color:#927143;font:800 12px Nunito,sans-serif;box-shadow:0 3px 0 #d5bb7626;margin:0 auto 8px;display:block;min-height:36px}.map-new-friend[hidden]{display:none}

.stage-powers,.preview-powers{display:flex;align-items:center;justify-content:center;gap:4px;min-height:34px;padding:2px 6px;margin:4px auto 0;background:transparent;color:#547c8a;font:800 12px Nunito,sans-serif;flex:none}.stage-powers[hidden]{display:none}.stage-powers .special-art,.stage-powers .seed-art,.preview-powers .special-art,.preview-powers .seed-art{width:30px;height:30px}.stage-powers span{margin-right:4px}.power-rule{display:flex;gap:12px;text-align:left;align-items:center;margin:16px 0}.power-rule>div{flex:1}.power-rule b{font-size:16px}.power-rule p{font-size:14px;line-height:1.55;margin:4px 0}.power-rule .special-art,.power-rule .seed-art{width:60px;height:60px}

.special-any{position:relative;display:inline-block;flex:0 0 auto;width:48px;height:48px;vertical-align:middle}.goal>.special-any,.preview-goals .special-any{width:46px;height:46px}#stage-tip-icon .special-any{width:58px;height:58px}.lesson-art .special-any{width:108px;height:108px}
.special-any>.special-art,#stage-tip-icon .special-any>.special-art,.lesson-art .special-any>.special-art{position:absolute;width:64%;height:64%}.special-any>.special-art:nth-child(1){left:0;top:0}.special-any>.special-art:nth-child(2){right:0;top:10%}.special-any>.special-art:nth-child(3){left:16%;bottom:0}.special-any.any-2>.special-art:nth-child(2){top:auto;bottom:0}.special-any.any-4>.special-art:nth-child(3){left:6%}.special-any>.special-art:nth-child(4){right:6%;bottom:0}
#stage-tip-restart{position:static;width:auto;height:auto;min-height:34px;display:block;margin-top:4px;padding:3px 7px;border-radius:8px;background:#fff;color:#346773;font-size:14px;text-decoration:underline}#stage-tip-restart[hidden]{display:none}

/* Coach card: guidance sits right above the board and speaks in pictures first. */
#stage-tip.coach-card{position:relative;flex:none;align-self:center;display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"step formula swipe" "text text text" "restart restart restart";align-items:center;column-gap:10px;row-gap:4px;width:min(100% - 18px,430px);margin:2px auto 0;padding:9px 40px 10px 14px;border-radius:20px;background:#fffdf7;border:2px solid #fff;box-shadow:0 4px 0 #b4d5df,0 10px 22px #4d8ea01f;animation:coach-in .32s cubic-bezier(.2,1.3,.4,1) both}
#stage-tip.coach-card[hidden]{display:none}#stage-tip.coach-card:not([hidden])+#stage-powers{display:none}
#stage-tip.coach-card #stage-tip-phase{grid-area:step;display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:26px;margin:0;padding:0 9px;border-radius:13px;background:#ffe9a8;color:#9a6a17;font:800 13px/1 'Nunito',sans-serif;letter-spacing:.02em}#stage-tip.coach-card #stage-tip-phase[hidden]{display:none}
#stage-tip.coach-card #stage-tip-icon{grid-area:formula;position:static;transform:none;width:auto;height:46px;display:flex;align-items:center;justify-content:center;gap:3px;min-width:0}
#stage-tip.coach-card #stage-tip-icon .jelly-chip{position:static;width:38px;height:38px;margin:0;transform:none;filter:none}#stage-tip.coach-card #stage-tip-icon .special-art,#stage-tip.coach-card #stage-tip-icon .seed-art{width:46px;height:46px}#stage-tip.coach-card #stage-tip-icon .special-any{width:50px;height:50px}#stage-tip.coach-card #stage-tip-icon .special-any>.special-art{width:64%;height:64%}#stage-tip.coach-card #stage-tip-icon .garden-flower{position:static;width:40px;height:40px}#stage-tip.coach-card #stage-tip-icon .tool-art{width:30px;height:44px}
.coach-op{font:900 19px/1 'Fredoka','Nunito',sans-serif;color:#6f93a3;margin:0 2px}.coach-square{display:grid;grid-template-columns:repeat(2,21px);gap:1px}#stage-tip.coach-card #stage-tip-icon .coach-square .jelly-chip{width:21px;height:21px}
.coach-stone{display:inline-block;width:34px;height:34px;margin-left:2px;border-radius:10px;background:linear-gradient(#c9d9e6,#9fb6c9);border:3px solid #6b92b4;box-shadow:inset 0 3px 0 #e6f0f7}
.coach-fx{display:inline-block;width:40px;height:40px;border-radius:9px;background-color:#d9edf3;background-repeat:no-repeat;--on:#ffb53e;--off:#b9d6e0;background-image:radial-gradient(circle,var(--a,var(--off)) 58%,#0000 62%),radial-gradient(circle,var(--b,var(--off)) 58%,#0000 62%),radial-gradient(circle,var(--c,var(--off)) 58%,#0000 62%),radial-gradient(circle,var(--d,var(--off)) 58%,#0000 62%),radial-gradient(circle,var(--e,var(--off)) 58%,#0000 62%),radial-gradient(circle,var(--f,var(--off)) 58%,#0000 62%),radial-gradient(circle,var(--g,var(--off)) 58%,#0000 62%),radial-gradient(circle,var(--h,var(--off)) 58%,#0000 62%),radial-gradient(circle,var(--i,var(--off)) 58%,#0000 62%);background-size:12px 12px;background-position:2px 2px,14px 2px,26px 2px,2px 14px,14px 14px,26px 14px,2px 26px,14px 26px,26px 26px}
.fx-wind-h{--d:var(--on);--e:var(--on);--f:var(--on)}.fx-wind-v{--b:var(--on);--e:var(--on);--h:var(--on)}.fx-puff{--a:var(--on);--b:var(--on);--c:var(--on);--d:var(--on);--e:var(--on);--f:var(--on);--g:var(--on);--h:var(--on);--i:var(--on)}.fx-prism{--a:var(--on);--f:var(--on);--e:var(--on);--g:var(--on)}.fx-butterfly{background:url('./assets/garden-atlas.png');background-image:none;background-color:transparent}
#stage-tip.coach-card #stage-tip-text{grid-area:text;margin:0;text-align:center;font:800 16px/1.3 'Nunito',sans-serif;color:#2f5a70}
#stage-tip.coach-card #stage-tip-swipe{grid-area:swipe;padding:5px 10px;border-radius:13px;background:#e4f4f8;color:#2f7f9d;font:800 13px/1 'Nunito',sans-serif;white-space:nowrap}#stage-tip.coach-card #stage-tip-swipe[hidden]{display:none}
#stage-tip.coach-card #stage-tip-restart{grid-area:restart;justify-self:center;margin:2px 0 0;padding:5px 12px;min-height:30px;border-radius:12px;background:#e4f4f8;color:#2f7f9d;font:800 13px 'Nunito',sans-serif;text-decoration:none}
#stage-tip.coach-card #stage-tip-close{position:absolute;right:6px;top:6px;width:28px;height:28px;border-radius:50%;background:#eef6f8;color:#7fa0ae;font-size:17px;line-height:1}
@keyframes coach-in{from{opacity:0;transform:translateY(-8px) scale(.97)}to{opacity:1;transform:none}}.reduced #stage-tip.coach-card{animation:none}
@media(max-height:700px){#stage-tip.coach-card{padding-top:6px;padding-bottom:7px}#stage-tip.coach-card #stage-tip-icon{height:38px}#stage-tip.coach-card #stage-tip-icon .jelly-chip{width:31px;height:31px}#stage-tip.coach-card #stage-tip-icon .special-art,#stage-tip.coach-card #stage-tip-icon .seed-art{width:38px;height:38px}#stage-tip.coach-card #stage-tip-text{font-size:14.5px}}

/* Result: three stars land one by one; ordinary clears need no sentence. */
.star-result{padding:24px 22px 16px}.star-result .eyebrow{font-size:12px;letter-spacing:1.2px}.star-title{margin:2px 0 0;font-size:19px;color:#3a6378}
.star-row{display:flex;justify-content:center;align-items:flex-end;gap:0;margin:16px 0 8px;height:118px}
.result-star{position:relative;width:90px;height:90px;flex:none}.result-star:nth-child(1){transform:rotate(-13deg) translateY(4px)}.result-star:nth-child(3){transform:rotate(13deg) translateY(4px)}.result-star:nth-child(2){width:110px;height:110px;transform:translateY(-14px)}
.result-star svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.star-base{fill:#e3edf2;stroke:#c6d6de;stroke-width:5;stroke-linejoin:round}.star-gold{filter:drop-shadow(0 4px 0 #d98a1f66)}
.star-row.pop .star-gold{transform-origin:50% 55%;animation:star-land .52s cubic-bezier(.2,1.5,.35,1) both;animation-delay:calc(.38s + var(--i)*.34s)}
.star-row.pop .result-star.earned::after{content:'';position:absolute;inset:8%;border-radius:50%;border:5px solid #ffd766;opacity:0;animation:star-ring .6s ease-out forwards;animation-delay:calc(.46s + var(--i)*.34s)}
.star-row.pop .result-star.earned::before{content:'';position:absolute;left:50%;top:50%;width:7px;height:7px;margin:-3px;border-radius:50%;background:#fff1a8;opacity:0;box-shadow:0 -46px #ffd766,33px -33px #fff1a8,46px 0 #ffd766,33px 33px #fff1a8,0 46px #ffd766,-33px 33px #fff1a8,-46px 0 #ffd766,-33px -33px #fff1a8;animation:star-spark .62s ease-out forwards;animation-delay:calc(.46s + var(--i)*.34s)}
@keyframes star-land{0%{transform:scale(0) rotate(-50deg);opacity:0}55%{transform:scale(1.32) rotate(8deg);opacity:1}75%{transform:scale(.93) rotate(-3deg)}100%{transform:scale(1) rotate(0)}}
@keyframes star-ring{0%{transform:scale(.4);opacity:.9}100%{transform:scale(1.7);opacity:0}}@keyframes star-spark{0%{transform:scale(.3);opacity:1}100%{transform:scale(1.25);opacity:0}}
.star-note{min-height:20px;margin:0 0 6px;font:800 14px/1.4 'Nunito',sans-serif;color:#8aa3b0}.star-note.best{color:#e08a1e}
.result-minor{display:flex;justify-content:center;gap:22px;margin-top:6px}.result-minor .text-button{display:inline-block;margin:0;padding:8px 4px;font-size:13px}
.garden-result .star-row{height:84px;margin:8px 0 2px}.garden-result .result-star{width:62px;height:62px}.garden-result .result-star:nth-child(2){width:74px;height:74px}

/* The board never moves: guidance and tool prompts share one reserved slot above it instead of pushing the layout. */
.coach-slot{position:relative;flex:none;height:92px;z-index:7}.coach-slot>#stage-tip.coach-card,.coach-slot>.tool-prompt{position:absolute;left:50%;top:2px;transform:translateX(-50%);margin:0}
#stage-tip.coach-card{animation:coach-drop .32s cubic-bezier(.2,1.3,.4,1) both}@keyframes coach-drop{from{opacity:0;transform:translate(-50%,-8px) scale(.97)}to{opacity:1;transform:translate(-50%,0)}}.reduced #stage-tip.coach-card{animation:none}
.coach-slot>.tool-prompt{width:min(100% - 18px,430px);box-sizing:border-box;padding:12px 12px 12px 16px;border-radius:20px;background:#fff6d8;border:2px solid #fff;box-shadow:0 4px 0 #e4cf93;font-size:15px}.coach-slot>.tool-prompt[hidden]{display:none}
.coach-slot #stage-powers{display:none}
body[data-screen=play] #toast{bottom:calc(112px + env(safe-area-inset-bottom))}
@media(max-height:700px){.coach-slot{height:78px}body[data-screen=play] #toast{bottom:calc(84px + env(safe-area-inset-bottom))}}
/* Narrow phones: the swipe pill drops under the formula so nothing overlaps. */
@media(max-width:359px){#stage-tip.coach-card{grid-template-columns:auto 1fr;grid-template-areas:"step formula" "text text" "restart restart";padding:7px 34px 8px 10px;column-gap:6px}#stage-tip.coach-card #stage-tip-swipe{display:none}#stage-tip.coach-card #stage-tip-icon{height:36px;justify-content:flex-start}#stage-tip.coach-card #stage-tip-icon .jelly-chip{width:28px;height:28px}#stage-tip.coach-card #stage-tip-icon .special-art,#stage-tip.coach-card #stage-tip-icon .seed-art{width:36px;height:36px}#stage-tip.coach-card #stage-tip-phase{min-width:38px;height:22px;font-size:12px;padding:0 6px}#stage-tip.coach-card #stage-tip-text{font-size:14px}.coach-op{font-size:16px}}

/* Lumi speaks from the same slot as the coach card; her notes never push the board. */
.coach-slot>#story-guide.coach-story{position:absolute;left:50%;top:2px;transform:translateX(-50%);box-sizing:border-box;width:min(100% - 18px,430px);min-height:0;margin:0;padding:9px 12px 9px 58px;display:flex;align-items:center;gap:8px;border-radius:20px;background:#fffdf7;border:2px solid #fff;box-shadow:0 4px 0 #b4d5df,0 10px 22px #4d8ea01f;z-index:8}.coach-slot>#story-guide.coach-story[hidden]{display:none}
#story-guide.coach-story .guide-portrait{position:absolute;left:-6px;top:50%;transform:translateY(-50%);width:60px;height:60px;margin:0}#story-guide.coach-story .guide-copy{flex:1;min-width:0;text-align:left}#story-guide.coach-story .speaker{display:none}
#story-guide.coach-story #guide-message{margin:0;font:800 15px/1.35 'Nunito',sans-serif;color:#2f5a70}
#story-guide.coach-story #guide-next{flex:none;width:auto;margin:0;padding:9px 14px;border-radius:14px;font-size:14px;line-height:1.2;white-space:nowrap}#story-guide.coach-story #guide-next[hidden]{display:none}
#story-guide.coach-story #guide-skip{position:absolute;right:10px;bottom:-22px;margin:0;padding:2px 4px;font-size:11px;color:#8aa3b0;background:none}#story-guide.coach-story #guide-skip[hidden]{display:none}
@media(max-width:359px){#story-guide.coach-story #guide-message{font-size:13.5px}#story-guide.coach-story{padding-left:50px}#story-guide.coach-story .guide-portrait{width:52px;height:52px}}

/* The dock keeps one height whether or not tools are showing, so the board above it stays put. */
body[data-screen=play] .play-dock{min-height:92px;box-sizing:border-box}@media(max-height:700px){body[data-screen=play] .play-dock{min-height:76px}}
.guided .play-dock:has(.under-board[hidden]){display:flex}

#story-guide.coach-story #guide-message{white-space:pre-line}
/* Hint lives in the dock with the tools instead of inside the pause menu. */
.dock-hint .control-orb svg{width:62%;height:62%}.dock-hint:disabled{opacity:.45}.dock-hint .control-orb{background:#fffdf7}
body[data-screen=play] .game-controls{gap:clamp(8px,4vw,22px)}
@media(max-width:359px){body[data-screen=play] .game-controls{gap:6px;padding-left:6px;padding-right:6px}body[data-screen=play] .control-orb{width:54px;height:50px;border-radius:18px}}

/* Account: one email field and a six-digit code, nothing else. */
.account-button{margin-top:10px}
.account-modal .field{display:block;text-align:left;margin:14px 0 4px}
.account-modal .field span{display:block;font:800 12px/1 'Nunito',sans-serif;color:#7f9cab;margin:0 0 6px 4px}
.account-modal .field input{width:100%;box-sizing:border-box;padding:13px 14px;border-radius:16px;border:2px solid #dbe9f0;background:#fbfdff;font:800 16px 'Nunito',sans-serif;color:#2f5a70;outline:none}
.account-modal .field input:focus{border-color:#8fd0e8;background:#fff}
.account-modal #account-code{letter-spacing:.32em;text-align:center;font-size:22px}
.account-note{margin:10px 0 0;font:800 13px/1.45 'Nunito',sans-serif;color:#d0743f}
.account-sent{margin:10px 0 0;font:700 13px/1.45 'Nunito',sans-serif;color:#6b8a99}
.pick-rows{display:grid;gap:8px;margin:14px 0 4px}
.pick-rows>div{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 14px;border-radius:16px;background:#f4fafd;border:2px solid #e2eef4}
.pick-rows b{font:900 14px 'Nunito',sans-serif;color:#3a6378}.pick-rows span{font:800 13px 'Nunito',sans-serif;color:#6b8a99}
.cloud-note{white-space:pre-line;line-height:1.5}

/* Swipe preview: a small badge promises a chain before release. */
.preview-badge{position:absolute;left:50%;top:10px;transform:translateX(-50%);z-index:25;padding:5px 13px;border-radius:14px;background:#fff6d6;border:2px solid #fff;box-shadow:0 3px 0 #e2c178;font:900 15px/1.2 'Fredoka','Nunito',sans-serif;color:#d9861c;pointer-events:none;animation:badge-in .22s cubic-bezier(.2,1.4,.4,1) both}.preview-badge[hidden]{display:none}
@keyframes badge-in{from{opacity:0;transform:translate(-50%,-6px) scale(.8)}to{opacity:1;transform:translate(-50%,0)}}.reduced .preview-badge{animation:none}
/* Near miss: what is left, and one clear way to keep going. */
.near-result h2{color:#e0763a}.near-goals{display:flex;justify-content:center;gap:16px;margin:12px 0 16px}.near-goals>span{display:flex;align-items:center;gap:3px;font:900 22px 'Fredoka','Nunito',sans-serif;color:#3a6378}.near-goals .jelly-chip{width:40px;height:40px}.near-goals .special-art,.near-goals .special-any{width:44px;height:44px}.near-goals .garden-flower{width:40px;height:40px}.near-goals .tool-art{width:28px;height:42px}.near-goals .seed-art{width:48px;height:48px}
.near-note{margin:6px 0 0;font:700 12px/1.4 'Nunito',sans-serif;color:#8aa3b0}
.moves-medallion.bonus{animation:moves-bonus .9s cubic-bezier(.2,1.4,.4,1)}@keyframes moves-bonus{0%{transform:scale(1)}30%{transform:scale(1.22)}60%{transform:scale(.96)}100%{transform:scale(1)}}.reduced .moves-medallion.bonus{animation:none}

/* Only runs that open with guidance keep the slot; everywhere else the board is centred in the space it has. */
.coach-slot{height:0}.coach-slot.reserved{height:92px}@media(max-height:700px){.coach-slot{height:0}.coach-slot.reserved{height:78px}}
/* Choosing a tool target covers the tool row itself, so nothing above the board moves. */
body[data-screen=play] .play-dock{position:relative}
.play-dock>#tool-prompt.tool-prompt{position:absolute;inset:6px 10px 8px;z-index:6;margin:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 12px 0 18px;border-radius:22px;background:#fff6d8;border:2px solid #fff;box-shadow:0 4px 0 #e4cf93;font:800 15px/1.3 'Nunito',sans-serif;color:#6b5a2e}
.play-dock>#tool-prompt.tool-prompt[hidden]{display:none}
.play-dock>#tool-prompt #tool-cancel{flex:none;padding:9px 14px;border-radius:14px;background:#fff;color:#8a6d2c;font:800 14px 'Nunito',sans-serif;box-shadow:0 2px 0 #e4cf93}

/* “?” help (build 42): a small dot beside a title or setting, opening a short sheet over the current screen. */
.help-dot{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin:0 0 0 6px;padding:0;border-radius:50%;background:#e9f2f8;color:#6f97aa;font:800 13px Nunito,sans-serif;line-height:1;vertical-align:middle;flex:none;position:relative;top:-1px}
.help-dot::after{content:"";position:absolute;inset:-10px}
h1 .help-dot{width:26px;height:26px;font-size:15px;top:-3px}
.setting-row span .help-dot{margin-left:5px}
.cloud-note .help-dot{width:18px;height:18px;font-size:11px;margin-left:4px;top:0}
.coach-card #stage-tip-help{position:absolute;right:6px;bottom:6px;width:28px;height:28px;margin:0;font-size:14px;top:auto}
#help-sheet{background:#fffdf7;border:4px solid white;color:var(--ink);border-radius:29px;padding:0;width:min(380px,calc(100vw - 40px));max-height:86svh;box-shadow:0 12px 0 #6499ba2b,0 25px 70px #447aa45c;overflow:auto}
#help-sheet::backdrop{background:#467c9e40}
.help-modal h2{margin-bottom:10px}
.help-lines{list-style:none;margin:0 0 18px;padding:0;text-align:left}
.help-lines li{position:relative;padding:9px 0 9px 18px;border-bottom:1px solid #e3eef3;font-size:14px;line-height:1.55;color:#56798a}
.help-lines li:last-child{border-bottom:0}
.help-lines li::before{content:"";position:absolute;left:3px;top:17px;width:7px;height:7px;border-radius:50%;background:#f2a3bb}
.powers-modal .rules-basic{font-size:14px;line-height:1.55;color:#56798a;margin:4px 0 6px}
.power-rule .rule-art,.power-rule .tool-art{position:static;flex:none;width:52px;height:52px;margin:0 4px;transform:none;animation:none;filter:none}
