@charset "UTF-8";
:root{--forest:#153e32;--deep:#082b25;--cream:#fff9e9;--gold:#d5ac68;--rose:#d57e92;--text:#234738;--muted:#70816e;--atlas:url('assets/game-atlas.png');--objects:url('assets/garden-objects.png');font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);color-scheme:light;font-synthesis:none}
*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--deep);min-width:320px}button,input,textarea{font:inherit}button{cursor:pointer;color:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default;opacity:.48}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #f4bf54;outline-offset:4px}h1,h2,h3,p{margin-top:0}button{border:0}button:disabled:hover{transform:none}.app-shell{max-width:1600px;margin:auto;padding:0 28px}.topbar{height:85px;display:flex;align-items:center;justify-content:space-between;gap:20px;color:#fff7e4}.brand{display:flex;align-items:center;gap:11px;background:none;color:inherit;text-align:left;font:29px/1 Georgia,serif;padding:0;letter-spacing:-.8px}.brand-heart{font-size:46px;color:#e8b4a7;line-height:1}.brand small{display:block;font:700 10px/1.4 -apple-system,system-ui;letter-spacing:2.8px;color:#d3bd90;margin-top:8px}.topbar nav{display:flex;background:#ffffff09;border:1px solid #d0b87529;border-radius:30px;padding:5px;gap:4px}.topbar nav button{background:none;color:#d1ddce;padding:10px 19px;font-size:14px;border-radius:24px;transition:.2s}.topbar nav button.active{background:#e8d6ad;color:#274434;box-shadow:0 2px 8px #0002}.topbar nav button:hover:not(.active){background:#ffffff10}.wallet{display:flex;align-items:center;gap:16px}.wallet-item{display:flex;align-items:center;gap:7px;font-size:17px;font-variant-numeric:tabular-nums}.wallet-item .sprite{width:30px;height:30px}.gold{color:#efd29b}.round-button{background:#ffffff0d;border:1px solid #ffffff30;border-radius:50%;height:37px;width:37px;font-size:20px;color:#efe2c8}.round-button:hover{background:#ffffff1f}.sprite{display:inline-block;flex-shrink:0;background-image:var(--atlas);background-size:400% 400%;background-repeat:no-repeat;width:48px;height:48px;vertical-align:middle}.a0{background-position:0 0}.a1{background-position:33.333% 0}.a2{background-position:66.667% 0}.a3{background-position:100% 0}.a4{background-position:0 33.333%}.a5{background-position:33.333% 33.333%}.a6{background-position:66.667% 33.333%}.a7{background-position:100% 33.333%}.a8{background-position:0 66.667%}.a9{background-position:33.333% 66.667%}.a10{background-position:66.667% 66.667%}.a11{background-position:100% 66.667%}.a12{background-position:0 100%}.a13{background-position:33.333% 100%}.a14{background-position:66.667% 100%}.a15{background-position:100% 100%}.garden-object{display:block;background-image:var(--objects);background-repeat:no-repeat;background-size:300% 200%;width:100%;aspect-ratio:1}.o0{background-position:0 0}.o1{background-position:50% 0}.o2{background-position:100% 0}.o3{background-position:0 100%;background-size:300% 185%}.o4{background-position:50% 100%;background-size:300% 183%}.o5{background-position:100% 100%;background-size:300% 185%}.view{animation:appear .3s ease}.eyebrow{display:block;font-size:11px;font-weight:750;letter-spacing:2px;line-height:1.6;color:#b08b4a}.garden-world{position:relative;aspect-ratio:1.5;isolation:isolate;border:1px solid #bca86b65;border-radius:25px;overflow:hidden;background:#577e35;box-shadow:0 20px 70px #0005}.world-art,.world-light{position:absolute;inset:0;pointer-events:none;z-index:-1;transition:filter 1.8s,background 1.8s}.world-art{background:url('assets/garden-map.png') center/100% 100%}.world-light{background:linear-gradient(90deg,#062d285e,transparent 30%),linear-gradient(0deg,#072e2bee,transparent 28%)}.theme-sunset .world-art{filter:sepia(.18) saturate(1.25) brightness(.84)}.theme-sunset .world-light{background:linear-gradient(140deg,#fbc26215,#6e253234),linear-gradient(0deg,#092d2ce8,transparent 28%)}.theme-night .world-art{filter:brightness(.47) saturate(.75) hue-rotate(13deg)}.theme-night .world-light{background:linear-gradient(120deg,#06275040,#11234a40),linear-gradient(0deg,#051f2be8,transparent 30%)}.world-heading{position:absolute;top:27px;left:29px;z-index:4;pointer-events:none;color:#fff5db;text-shadow:0 2px 20px #063024;max-width:260px}.world-heading .eyebrow{color:#f2dbab;font-size:10px}.world-heading h1{font:normal clamp(27px,3.2vw,48px)/1.04 Georgia,serif;letter-spacing:-1px;margin:9px 0 12px}.world-heading p{font-size:12px;color:#ffedc7}.time-control{position:absolute;right:22px;top:22px;display:flex;gap:4px;background:#173a32d9;border:1px solid #dfc78d66;border-radius:30px;padding:5px;z-index:7;backdrop-filter:blur(10px)}.time-control button{width:35px;height:35px;border-radius:50%;font-size:21px;background:none;color:#e8d8b0}.time-control button.active{background:#e5c990;color:#274530}.garden-plots{position:absolute;inset:0}.plot{position:absolute;left:var(--x);top:var(--y);width:20%;aspect-ratio:1;transform:translate(-50%,-62%);background:none;padding:0;border:none;isolation:isolate;transition:filter .35s;z-index:3}.plot:hover{z-index:6;filter:brightness(1.08)}.plot .garden-object{transform:scale(var(--scale,1));transform-origin:center 80%;transition:transform .6s,filter .5s;filter:drop-shadow(0 10px 8px #17340d30)}.plot.tier-1{--scale:.72}.plot.tier-2{--scale:.86}.plot.tier-3{--scale:1}.plot.variant-1 .garden-object{filter:drop-shadow(0 0 13px #fce59490) saturate(.78) hue-rotate(-12deg)}.plot.tier-0 .garden-object{opacity:0}.plot:hover.tier-0 .garden-object{opacity:.25;filter:grayscale(1)}.plot-add{position:absolute;left:50%;top:67%;transform:translate(-50%,-50%);display:grid;place-items:center;border-radius:50%;height:46px;width:46px;background:linear-gradient(#fff4d2,#d5b574);border:2px solid #ffffdb;box-shadow:0 5px 14px #17331777,0 0 0 5px #ffffff26;color:#4c5d32;font-size:31px;animation:breathe 3s infinite}.plot.locked .plot-add{background:#304d37ba;border-color:#b3bd9355;font-size:18px;color:#d4ddbe;box-shadow:none;animation:none}.plot-name{position:absolute;left:50%;bottom:-13px;transform:translateX(-50%);border:1px solid #e7d09c99;border-radius:20px;white-space:nowrap;background:#163c31e6;color:#fff0d0;padding:6px 12px;font-size:12px;backdrop-filter:blur(5px);box-shadow:0 3px 8px #0002}.plot-name small{margin-left:6px;color:#e2b86f;letter-spacing:1px;font-size:10px}.plot.locked .plot-name{opacity:.72}.plot.selected .plot-name{background:#e9c98b;color:#214131;border-color:#fff5d6}.plot.upgraded .garden-object{animation:build-in 1.1s cubic-bezier(.2,.9,.3,1.3)}.theme-night .plot:not(.tier-0) .garden-object{filter:brightness(.95) drop-shadow(0 0 14px #e2b35599)}.world-caption{position:absolute;bottom:143px;left:32px;color:#f3e0b4;font:italic 14px Georgia,serif;opacity:.85}.next-adventure{position:absolute;left:24px;right:24px;bottom:20px;display:flex;align-items:center;gap:20px;background:#fff8e9f2;border:1px solid #ffedb7;border-radius:20px;padding:19px 22px;box-shadow:0 10px 40px #09231977;backdrop-filter:blur(12px);z-index:9}.avatar-stack{display:flex;width:112px;flex-shrink:0}.avatar-stack .sprite{width:65px;height:65px;background-color:#dce6c5;border-radius:50%;border:2px solid #fff8e9}.avatar-stack .sprite+span{margin-left:-18px;background-color:#ecdcbb}.next-copy{flex:1;min-width:0}.next-copy .eyebrow{font-size:10px;letter-spacing:1.4px}.next-copy h2{font:normal 27px/1.15 Georgia,serif;margin:5px 0}.next-copy p{font-size:13px;line-height:1.5;margin:7px 0 0;color:#7a866d}.primary-button{display:flex;align-items:center;justify-content:center;gap:16px;background:linear-gradient(135deg,#316d4c,#174e3c);color:#fff5d9;border:1px solid #22553d;padding:15px 25px;border-radius:13px;font-size:15px;font-weight:700;box-shadow:inset 0 1px 0 #ffffff22,inset 0 -3px 0 #001b2a25,0 5px 13px #29402a1f;transition:transform .18s,filter .18s}.primary-button:hover{filter:brightness(1.12);transform:translateY(-1px)}.primary-button span{font-size:21px}.soft-button{background:#eeead6;border:1px solid #d7ceb4;border-radius:11px;padding:12px 17px;font-size:14px;line-height:1.4;font-weight:650}.soft-button:hover{background:#e5e7cc}.text-button{display:block;border:0;background:none;padding:10px;font-size:14px;color:#778268;margin:auto}.text-button:hover{text-decoration:underline}.build-panel{position:absolute;top:80px;right:22px;width:310px;max-height:calc(100% - 235px);overflow:auto;padding:23px;background:#fff8eaf7;border:1px solid #e7ca91;box-shadow:0 12px 50px #102d3280;border-radius:19px;backdrop-filter:blur(12px);z-index:12;animation:appear .25s ease}.build-panel .garden-object{width:125px;margin:-6px auto 10px}.build-panel h2{font:normal 28px/1.1 Georgia,serif;margin:9px 0}.build-panel p{font-size:14px;line-height:1.6;color:#6d795e}.build-panel .primary-button{width:100%;margin-top:15px}.build-panel .primary-button .sprite{width:24px;height:24px}.build-panel .build-stages{display:flex;gap:6px;margin:15px 0}.build-stages span{flex:1;height:6px;border-radius:5px;background:#e0dbc4}.build-stages span.done{background:#7fa46a}.build-panel .secondary-copy{font-size:12px;margin:10px 0 0}.build-variant{display:flex;gap:8px;margin-top:14px}.build-variant button{flex:1;padding:9px 4px;border:1px solid #b9c4a5;border-radius:9px;font-size:12px;background:#edf0df}.build-variant button.active{background:#cfdcb5}.fireflies{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity 1s;z-index:2}.theme-night .fireflies,.theme-sunset .fireflies{opacity:1}.firefly{position:absolute;left:var(--x);top:var(--y);width:4px;height:4px;border-radius:50%;background:#fff3a7;box-shadow:0 0 9px 3px #f7cf6866;animation:firefly 5s ease-in-out infinite alternate;animation-delay:var(--delay)}
.play-top{display:flex;justify-content:space-between;align-items:center;padding:0 3px 17px;gap:15px;color:#d8deca}.back-button{font-size:13px;background:none;color:inherit;padding:5px 0}.back-button:hover{color:#fff1c6}.back-button span{display:inline-grid;place-items:center;border:1px solid #c3cdab88;border-radius:50%;width:20px;height:20px;margin-left:7px}.play-top .eyebrow{margin:0;color:#c6bc91;font-size:10px;letter-spacing:1.6px}.play-layout{display:grid;grid-template-columns:minmax(220px,.88fr) minmax(375px,1.45fr) minmax(170px,.63fr);gap:20px;align-items:start}.story-panel{border:1px solid #bdbd8544;background:#173c31;border-radius:20px;overflow:hidden;color:#ebecd6;padding:0 24px 24px}.chapter-art{height:190px;margin:0 -24px 24px;position:relative;background:linear-gradient(0deg,#15392ff0,#47654644),url('assets/garden-map.png') 40% 35%/180%;display:flex;align-items:center;justify-content:center}.chapter-art .garden-object{width:170px}.chapter-number{position:absolute;left:20px;bottom:15px;font:italic 42px Georgia,serif;color:#f1d59c99}.story-panel>.eyebrow{font-size:10px;letter-spacing:1.5px}.story-panel h2{font:normal 28px/1.17 Georgia,serif;margin:12px 0 23px}.dialogue-line{display:flex;align-items:flex-start;gap:10px;margin-bottom:21px}.avatar{width:44px;height:44px;border-radius:50%;background-color:#b5c39c;border:1px solid #a8bc8377}.dialogue-line p{font-size:14px;line-height:1.65;margin:0;color:#d5dec5}.dialogue-line p b{display:block;font-size:11px;letter-spacing:.5px;color:#e1c592;margin-bottom:3px}.chapter-mini{display:flex;gap:7px;border-top:1px solid #ffffff12;padding-top:20px}.mini-level{height:7px;border-radius:9px;background:#ffffff25;flex:1}.mini-level.done{background:#d2ae6c}.mini-level.current{background:#e5d7ad;box-shadow:0 0 10px #e7d69655}.board-panel{background:var(--cream);border:1px solid #d2be89;border-radius:22px;padding:22px 25px 12px;box-shadow:0 15px 50px #001d2333;min-width:0}.level-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:16px}.level-heading .eyebrow{font-size:10px;letter-spacing:1.9px;margin-bottom:4px}.level-heading h2{font:normal 27px/1.14 Georgia,serif;letter-spacing:-.5px;margin:0}.moves-badge{display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;width:57px;height:60px;border-radius:16px;background:#214e3c;color:#fff2d7;box-shadow:inset 0 -3px 0 #0002}.moves-badge b{font-size:27px;line-height:1.1;font-variant-numeric:tabular-nums}.moves-badge span{font-size:12px;margin-top:2px;color:#d9ddc0}.moves-badge.low{background:#a94c60}.goals{display:flex;gap:8px}.goal{display:flex;gap:7px;align-items:center;flex:1;min-width:0;background:#fffdf5;border:1px solid #dcd8c4;border-radius:12px;padding:8px}.goal .sprite{width:34px;height:34px}.goal b{font-size:15px;white-space:nowrap}.goal small{display:block;color:#7b866d;font-size:10px;margin-bottom:2px}.goal b span{color:#859175;font-weight:400;font-size:12px}.goal.done{background:#e6efd9;border-color:#afc598}.goal.vine-goal .sprite{width:30px}.score-line{display:flex;justify-content:space-between;align-items:center;margin:13px 0 7px;font-size:12px;color:#6d7f60}.score-line b{font-size:13px;font-variant-numeric:tabular-nums;color:#345844}.score-line small{font-size:12px;color:#8e997f;font-weight:400}progress{display:block;width:100%;height:6px;border:0;border-radius:8px;overflow:hidden;background:#e9e1cc;accent-color:#d490a0;margin-bottom:15px}progress::-webkit-progress-bar{background:#e9e1cc;border-radius:8px}progress::-webkit-progress-value{background:linear-gradient(90deg,#b16b85,#e8a9ac);border-radius:8px;transition:width .3s}progress::-moz-progress-bar{background:#d490a0}.board-wrap{position:relative;max-width:clamp(310px,calc(100dvh - 378px),540px);margin:auto}.board{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;padding:9px;background:linear-gradient(140deg,#d2d8bb,#e5dfc8);border:1px solid #c2c6a8;border-radius:17px;box-shadow:inset 0 2px 4px #35492a18,0 6px 20px #6a765310;touch-action:none;user-select:none;-webkit-user-select:none}.tile{aspect-ratio:1;position:relative;display:grid;place-items:center;min-width:0;border:1px solid #fff9;border-radius:12px;background:var(--tile);padding:3px;box-shadow:inset 0 2px 0 #fffc,inset 0 -3px 0 #0000000c,0 2px 3px #26381422;transition:transform .16s,opacity .2s;touch-action:none}.type-0{--tile:#f5d8df}.type-1{--tile:#ecdfc2}.type-2{--tile:#d9e9c6}.type-3{--tile:#e5d9ec}.type-4{--tile:#d3e5e9}.type-5{--tile:#f2e4b4}.tile>.sprite{width:92%;height:92%;pointer-events:none;filter:drop-shadow(0 2px 1px #3a4c231c);z-index:2}.tile:hover{transform:translateY(-2px);z-index:5;filter:brightness(1.05)}.tile.selected{outline:3px solid #b98c36;outline-offset:0;transform:scale(.9);z-index:5}.tile.hinted{animation:hint 1s infinite;z-index:5}.tile.clearing{animation:pop .32s ease-in forwards;z-index:6}.tile.entering{animation:fall .24s ease-out}.tile.invalid{animation:shake .32s}.tile.special-row:after,.tile.special-column:after{content:'↔';position:absolute;inset:0;display:grid;place-items:center;font-size:34px;font-weight:900;color:#fff8c0;text-shadow:0 0 5px #995921;z-index:3;background:linear-gradient(0deg,transparent 42%,#ffdb8580 43% 58%,transparent 59%);pointer-events:none}.tile.special-column:after{content:'↕';background:linear-gradient(90deg,transparent 42%,#ffdb8580 43% 58%,transparent 59%)}.tile.special-bloom{box-shadow:inset 0 0 0 3px #fff5c5,0 0 8px #b670a0}.tile.special-bloom:after{content:'✿';position:absolute;right:0;bottom:0;font-size:23px;color:#ffd899;z-index:4;text-shadow:0 1px 3px #682666}.tile.special-rainbow{background:conic-gradient(#e9a5d8,#b2d9ea,#badeac,#f5df86,#eda2bf);box-shadow:inset 0 0 0 2px #fffc,0 0 9px #eec085}.tile .vine{position:absolute;inset:auto -3px -3px auto;width:70%;height:70%;pointer-events:none;z-index:4;opacity:.9;filter:drop-shadow(0 2px 2px #35421c99)}.tile .vine.double{width:92%;height:92%;opacity:1}.vine-depth{position:absolute;left:2px;bottom:2px;border-radius:50%;height:15px;width:15px;background:#25462a;color:#fff4ce;font-size:10px;display:grid;place-items:center;z-index:5}.board.busy{pointer-events:none}.board.wand-mode .tile{cursor:crosshair}.board.wand-mode{box-shadow:0 0 0 3px #e3afcf,0 0 24px #dfaad8}.combo{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);white-space:nowrap;background:#1a523ef2;border:1px solid #f3cf80;border-radius:30px;box-shadow:0 6px 24px #234f4680;padding:12px 22px;color:#fff0bc;font-size:21px;font-weight:800;opacity:0;pointer-events:none;z-index:10}.combo.show{animation:combo 1s forwards}.game-feedback{display:flex;align-items:center;justify-content:center;min-height:36px;text-align:center;font-size:12px;line-height:1.5;color:#718264;margin:9px 0}.game-tools{display:flex;gap:7px;justify-content:center}.tool-button{display:flex;align-items:center;justify-content:center;gap:6px;background:#efecd9;border:1px solid #d6d3b9;border-radius:11px;padding:9px;font-size:12px;position:relative}.tool-button>.sprite{width:28px;height:28px}.tool-button b{font-size:10px;background:#315e3f;color:#fff0c7;border-radius:50%;display:grid;place-items:center;width:19px;height:19px;position:absolute;top:-5px;right:-5px}.tool-button:first-child{min-width:64px}.tool-button:first-child span{font-size:23px}.tool-button.active{background:#f0d4e4;outline:2px solid #c580aa}.tool-button:hover{background:#e3e8ce}.restart-button{font-size:11px;padding:12px 8px 3px}.reward-panel{padding:24px 10px 20px 3px;color:#cbd7bd}.reward-panel>.eyebrow{font-size:10px;letter-spacing:1.5px;color:#d0b787}.reward-stars{display:flex;gap:2px;margin:15px 0}.reward-stars .sprite{width:39px;height:39px}.reward-panel h3{font:normal 24px/1.22 Georgia,serif;color:#f4e6c6;margin:14px 0}.reward-panel p{font-size:13px;line-height:1.7;margin:0}.tip-card{border-top:1px solid #ffffff1b;border-bottom:1px solid #ffffff1b;margin-top:25px;padding:22px 0}.tip-card strong{display:block;color:#e8ce9b;font-size:13px;margin-bottom:9px}.tip-card .sprite{width:45px;height:45px;margin-bottom:8px}.music-button{display:flex;align-items:center;gap:12px;background:none;color:#d1dab9;padding:22px 0 0;text-align:left;font-size:13px}.music-button>span{font-size:28px;color:#dcbb82}.music-button small{display:block;font-size:10px;color:#8fa98c;margin-top:4px}.music-button.on>span{animation:musicpulse 2s infinite}@keyframes musicpulse{50%{opacity:.5;transform:scale(1.12)}}
.collection-view{background:var(--cream);border:1px solid #c8ad73;border-radius:22px;padding:35px 36px}.collection-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px}.collection-heading h1{font:normal 39px/1.15 Georgia,serif;margin:9px 0 0;letter-spacing:-1px}.collection-heading>p{font-size:14px;color:#81906e;margin:0}.chapter-list{display:grid;grid-template-columns:1fr 1fr;gap:18px}.chapter-card{border:1px solid #ddd7bd;border-radius:18px;padding:18px 20px;background:#f4f0df;overflow:hidden}.chapter-card-head{display:flex;align-items:center;gap:18px}.chapter-card-head .garden-object{width:90px;flex-shrink:0;filter:drop-shadow(0 4px 5px #53652933)}.chapter-card h2{font:normal 24px/1.13 Georgia,serif;margin:5px 0 6px}.chapter-card p{font-size:12px;line-height:1.5;color:#7f8a6e;margin:0}.chapter-card .eyebrow{font-size:10px;letter-spacing:1.5px}.level-path{display:flex;justify-content:space-between;gap:10px;position:relative;margin:20px 0 6px}.level-path:before{content:'';position:absolute;left:6%;right:6%;top:24px;height:3px;background:#d4d9bd}.level-node{width:48px;height:48px;position:relative;border-radius:50%;display:grid;place-items:center;background:#dde3cb;border:2px solid #fffbee;box-shadow:0 3px 6px #5e73511a;font-size:17px;font-weight:750;color:#929e7d;z-index:1}.level-node.done{background:#4d7950;color:#fff1c4;border-color:#d1c784}.level-node.current{background:linear-gradient(#f0d89a,#d3b05d);color:#4a5532;box-shadow:0 0 0 4px #d5c78666,0 5px 12px #596a3333}.level-node:not(:disabled):hover{transform:translateY(-3px)}.level-node small{position:absolute;bottom:-12px;left:50%;transform:translateX(-50%);letter-spacing:0;color:#e1ba64;font-size:12px;white-space:nowrap;text-shadow:0 1px 1px #45633c}.chapter-card.locked .garden-object{filter:grayscale(.8);opacity:.65}.memory-list{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.memory-card{border-radius:16px;border:1px solid #d5cfb9;overflow:hidden;background:#fffdf4}.memory-picture{height:190px;background:linear-gradient(#092d2744,#163a31aa),url('assets/garden-map.png') center/180%;position:relative;display:flex;align-items:center;justify-content:center}.memory-picture .garden-object{width:180px}.memory-card.locked .memory-picture{filter:grayscale(.7);opacity:.55}.memory-lock{position:absolute;inset:0;display:grid;place-items:center;font-size:42px;color:#fff4ce;text-shadow:0 3px 10px #123d2c}.memory-content{padding:20px}.memory-content h2{font:normal 25px/1.15 Georgia,serif;margin:7px 0 12px}.memory-content p{font:italic 15px/1.6 Georgia,serif;color:#758365;margin:0}.memory-content .eyebrow{font-size:10px;letter-spacing:1.3px}.album-note{display:flex;align-items:center;justify-content:center;gap:20px;margin:33px 0 0}.album-note .sprite{height:70px;width:70px}.album-note p{font:italic 16px/1.7 Georgia,serif;color:#708261;text-align:center;margin:0}.album-note b{font-weight:400;color:#ab8b54}.modal{width:min(540px,calc(100vw - 30px));max-height:calc(100dvh - 40px);overflow:auto;padding:35px;border-radius:24px;border:1px solid #dbc18b;background:var(--cream);color:var(--text);box-shadow:0 25px 100px #0006}.modal::backdrop{background:#062b259e;backdrop-filter:blur(8px)}.modal-close{position:absolute;right:13px;top:10px;background:none;color:#7d8669;border:0;font-size:27px;width:35px;height:35px}.modal h2{font:normal 34px/1.13 Georgia,serif;letter-spacing:-.7px;margin:10px 0 18px}.modal h3{font:normal 25px Georgia,serif;margin:24px 0 8px}.modal p{font-size:14px;line-height:1.7;color:#788465}.modal .primary-button{width:100%;margin-top:15px}.modal .soft-button{width:100%;margin-top:10px}.result-modal{text-align:center;overflow-x:hidden}.result-stars{display:flex;justify-content:center;gap:6px;margin:8px 0 22px}.result-stars .sprite{width:68px;height:68px;filter:drop-shadow(0 5px 5px #ad86352a)}.result-stars .sprite.empty{filter:grayscale(1);opacity:.22}.result-stars .sprite:nth-child(2){transform:translateY(-9px);width:77px;height:77px}.result-reward{display:flex;justify-content:center;align-items:center;gap:10px;font-size:17px;color:#ab853d;background:#f0e9d1;border-radius:12px;padding:13px}.result-reward .sprite{width:32px;height:32px}.result-dialogue{display:flex;align-items:center;gap:10px;margin:22px 0}.result-dialogue .sprite{width:73px;height:73px;flex-shrink:0}.result-dialogue blockquote{font:italic 19px/1.5 Georgia,serif;color:#537448;margin:0;text-align:left}.result-unlock{font-size:13px;line-height:1.6;padding:13px;background:#e7edda;border:1px solid #c5d2ac;border-radius:10px;color:#5c7750}.help-modal{width:min(690px,calc(100vw - 30px))}.rules-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:22px 0}.rules-grid>div{border:1px solid #dedbc4;border-radius:12px;padding:17px;background:#f4f0df}.rules-grid span{font:29px Georgia,serif;color:#bc9852;display:block;margin-bottom:9px}.rules-grid b{font-size:14px}.rules-grid p{margin:7px 0 0;font-size:13px}.help-vines{display:flex;gap:20px;align-items:center;padding:14px 0}.help-vines p{margin:0}.help-vines .sprite{width:70px;height:70px}.secondary-copy{font-size:12px!important;color:#8d957c!important}.switch-row{display:flex;align-items:center;justify-content:space-between;padding:15px 0;border-bottom:1px solid #dfdcc7;font-size:14px}.switch-row input{appearance:none;width:44px;height:25px;border-radius:20px;background:#c9cdb7;position:relative;cursor:pointer;transition:.2s}.switch-row input:checked{background:#548254}.switch-row input:after{content:'';position:absolute;left:3px;top:3px;height:19px;width:19px;border-radius:50%;background:#fffbee;box-shadow:0 1px 3px #0003;transition:left .2s}.switch-row input:checked:after{left:22px}#personal-form>label{display:block;font-size:13px;color:#657756;margin:15px 0}#personal-form input,#personal-form textarea{display:block;width:100%;margin-top:7px;border:1px solid #d0d1b8;border-radius:9px;background:#fffdf6;padding:11px 13px;color:#244a36;font-size:15px;resize:vertical}.small-modal{max-width:430px}.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);max-width:calc(100vw - 30px);background:#fff5dc;border:1px solid #d3b472;border-radius:13px;box-shadow:0 9px 35px #0005;padding:14px 23px;font-size:14px;line-height:1.5;color:#30573e;text-align:center;z-index:100;opacity:0;pointer-events:none;transition:.25s}.toast.visible{opacity:1;transform:translate(-50%,0)}footer{display:flex;justify-content:space-between;gap:16px;color:#92ac8d;font-size:11px;line-height:1.5;padding:17px 3px 20px}.particle{position:fixed;left:var(--x);top:var(--y);pointer-events:none;color:#f8db80;font-size:var(--size,20px);z-index:100;animation:particle 1.1s forwards}.celebration{position:fixed;left:var(--x);top:-30px;color:var(--c);font-size:var(--size);pointer-events:none;z-index:100;animation:confetti 3s ease-in forwards;animation-delay:var(--delay)}
@keyframes appear{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}@keyframes breathe{50%{transform:translate(-50%,-50%) scale(1.07);filter:brightness(1.08)}}@keyframes build-in{0%{transform:scale(.2);opacity:.1}60%{transform:scale(1.07)}100%{transform:scale(var(--scale,1));opacity:1}}@keyframes firefly{0%,100%{opacity:.25;transform:translate(0,0)}50%{opacity:1;transform:translate(17px,-20px)}}@keyframes hint{50%{transform:scale(.87);outline:3px solid #bc923c}}@keyframes pop{40%{transform:scale(1.13);filter:brightness(1.2)}100%{transform:scale(.15);opacity:0}}@keyframes fall{from{transform:translateY(-22px);opacity:.25}to{transform:none;opacity:1}}@keyframes shake{25%,75%{transform:translateX(-4px)}50%{transform:translateX(4px)}}@keyframes combo{0%{opacity:0;transform:translate(-50%,-10%) scale(.8)}20%,70%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-100%)}}@keyframes particle{to{transform:translate(var(--dx),var(--dy)) scale(.3);opacity:0}}@keyframes confetti{to{transform:translateY(105vh) rotate(250deg);opacity:0}}
@media(min-width:1500px){.app-shell{padding:0 38px}.garden-world{max-height:calc(100dvh - 132px);aspect-ratio:auto;height:calc((100vw - 76px)/1.5)}.play-layout{gap:26px}.board-panel{padding:26px 32px 15px}.story-panel{padding-left:28px;padding-right:28px}.chapter-art{margin-left:-28px;margin-right:-28px;height:220px}.board-wrap{max-width:500px}}
@media(max-width:1120px){.app-shell{padding:0 20px}.topbar{gap:15px;height:80px}.brand{font-size:26px}.topbar nav button{padding:9px 14px}.wallet{gap:10px}.wallet-item{font-size:15px}.wallet-item .sprite{width:26px;height:26px}.play-layout{grid-template-columns:minmax(220px,.85fr) minmax(375px,1.5fr);gap:20px}.reward-panel{display:none}.board-panel{padding:22px}.board-wrap{max-width:450px}.story-panel{margin-bottom:0}.world-heading{top:22px;left:24px}.world-heading h1{font-size:34px}.world-heading .eyebrow{font-size:9px}.world-heading p{font-size:11px}.next-adventure{padding:15px 17px;gap:15px;left:18px;right:18px;bottom:17px}.next-copy h2{font-size:24px}.next-copy p{font-size:12px}.next-adventure .primary-button{padding:14px 17px}.avatar-stack{width:95px}.avatar-stack .sprite{width:58px;height:58px}.build-panel{top:75px;width:285px;max-height:calc(100% - 205px);padding:20px}.plot-name{font-size:11px;padding:5px 9px}.plot-add{width:39px;height:39px;font-size:27px}.world-caption{bottom:133px;font-size:12px}.collection-view{padding:28px}.collection-heading h1{font-size:34px}.memory-list{gap:14px}.memory-picture{height:155px}.memory-picture .garden-object{width:155px}.memory-content{padding:17px}.chapter-card-head{gap:12px}.chapter-card-head .garden-object{width:72px}.chapter-card h2{font-size:21px}.chapter-card p{font-size:11px}}
@media(max-width:760px){.app-shell{padding:0 12px}.topbar{height:auto;min-height:110px;flex-wrap:wrap;gap:8px 10px;padding:17px 4px 13px}.brand{font-size:25px}.brand-heart{font-size:37px}.brand small{font-size:9px;letter-spacing:2px}.wallet{margin-left:auto;gap:10px}.wallet-item{font-size:14px}.round-button{height:31px;width:31px;font-size:17px}.wallet-item .sprite{width:24px;height:24px}.topbar nav{order:3;width:100%;padding:3px;justify-content:center;background:transparent;border:0}.topbar nav button{flex:1;font-size:12px;padding:8px 10px}.garden-world{aspect-ratio:auto;height:calc(100dvh - 167px);min-height:570px;border-radius:19px}.world-art{background-size:cover;background-position:center}.garden-plots{inset:65px -20% 85px}.world-heading{top:19px;left:19px}.world-heading h1{font-size:27px;line-height:1.1;margin:7px 0}.world-heading .eyebrow{font-size:8px;letter-spacing:1.3px}.world-heading p{font-size:10px;margin:8px 0}.time-control{top:15px;right:14px;padding:3px}.time-control button{height:29px;width:29px;font-size:17px}.plot{width:24%}.plot-name{font-size:9px;padding:5px 8px;bottom:-11px}.plot-name small{font-size:8px;margin-left:4px}.plot-add{width:34px;height:34px;font-size:24px}.next-adventure{left:11px;right:11px;bottom:11px;padding:14px;gap:9px;flex-wrap:wrap;border-radius:16px}.avatar-stack{width:68px}.avatar-stack .sprite{height:44px;width:44px}.avatar-stack .sprite+span{margin-left:-14px}.next-copy h2{font-size:21px;margin:4px 0 0}.next-copy .eyebrow{font-size:8px;letter-spacing:.8px}.next-copy p{display:none}.next-adventure>.primary-button{width:100%;font-size:14px;padding:12px;margin-top:4px}.world-caption{display:none}.build-panel{position:absolute;left:12px;right:12px;width:auto;top:90px;max-height:calc(100% - 245px);padding:18px 22px;border-radius:16px}.build-panel .garden-object{float:left;width:100px;margin:0 17px 8px 0}.build-panel h2{font-size:26px}.build-panel p{font-size:13px}.build-panel .build-stages{clear:both}.play-top{padding:0 0 11px}.play-top .eyebrow{display:none}.back-button{font-size:12px}.play-layout{display:flex;flex-direction:column;gap:12px}.story-panel{order:2;width:100%;padding:18px;border-radius:16px}.chapter-art,.story-panel>.eyebrow,.story-panel>h2,.chapter-mini{display:none}.dialogue{display:flex;gap:14px}.dialogue-line{flex:1;margin:0;gap:8px}.dialogue-line .avatar{width:35px;height:35px}.dialogue-line p{font-size:12px;line-height:1.5}.dialogue-line p b{font-size:10px}.board-panel{order:1;width:100%;padding:20px 18px 10px;border-radius:18px}.board-wrap{max-width:470px}.level-heading h2{font-size:25px}.level-heading{margin-bottom:14px}.level-heading .eyebrow{font-size:9px}.moves-badge{height:56px;width:53px}.moves-badge b{font-size:25px}.goals{gap:6px}.goal{padding:7px 5px;gap:4px}.goal .sprite{width:30px;height:30px}.goal small{font-size:9px}.goal b{font-size:14px}.goal b span{font-size:11px}.board{gap:4px;padding:7px;border-radius:14px}.tile{border-radius:10px;padding:2px}.game-feedback{font-size:11px;min-height:33px;margin:7px 0}.tool-button{font-size:11px;padding:8px;gap:5px}.tool-button .sprite{width:24px;height:24px}.tool-button:first-child{min-width:57px}.game-tools{gap:9px}.restart-button{padding-top:13px;font-size:10px}.collection-view{padding:23px 18px;border-radius:18px}.collection-heading{display:block;margin-bottom:24px}.collection-heading h1{font-size:31px}.collection-heading>.soft-button{margin-top:18px;font-size:12px}.collection-heading>p{font-size:12px;margin-top:10px}.chapter-list{grid-template-columns:1fr;gap:16px}.chapter-card{padding:15px 17px}.chapter-card h2{font-size:23px}.chapter-card p{font-size:12px}.chapter-card-head .garden-object{width:83px}.level-path{margin:19px 0 10px}.level-node{height:45px;width:45px}.memory-list{grid-template-columns:1fr 1fr;gap:12px}.memory-picture{height:125px}.memory-picture .garden-object{width:130px}.memory-content{padding:14px}.memory-content h2{font-size:22px}.memory-content p{font-size:13px}.memory-content .eyebrow{font-size:8px}.album-note{gap:10px}.album-note .sprite{width:45px;height:45px}.album-note p{font-size:13px}.modal{padding:28px 24px}.modal h2{font-size:30px}.modal p{font-size:13px}.modal .eyebrow{font-size:10px}.result-stars .sprite{width:60px;height:60px}.result-stars .sprite:nth-child(2){width:67px;height:67px}.rules-grid{gap:10px}.rules-grid>div{padding:13px}.rules-grid p{font-size:12px}.result-dialogue blockquote{font-size:17px}footer{font-size:10px;padding:13px 3px 15px}.toast{font-size:13px;padding:12px 17px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.tile.hinted{outline:3px solid #c7a357}.tile.clearing{opacity:.15}.combo.show{opacity:1}.celebration,.particle{display:none}}

/* Keep the map and its interactive places in the same coordinate system. */
.garden-scene{position:absolute;inset:0;isolation:isolate}
.iphone-install{margin:20px 0;padding:15px;border:1px solid #d0d1b8;border-radius:12px;background:#f4f0df}
.iphone-install summary{cursor:pointer;font-weight:650;line-height:1.5}
.iphone-install p{margin:12px 0 0}
@media(max-width:760px){
  body{-webkit-text-size-adjust:100%}
  .app-shell{padding:env(safe-area-inset-top) max(10px,env(safe-area-inset-right)) calc(82px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}
  .topbar{min-height:80px;padding:12px 0;gap:8px;flex-wrap:wrap}
  .brand{font-size:22px;gap:5px}.brand-heart{font-size:34px}.brand small{font-size:9px;letter-spacing:1.4px}
  .wallet{gap:7px}.wallet-item{gap:3px;font-size:13px}.wallet-item .sprite{width:22px;height:22px}
  .round-button{width:44px;height:44px;flex-shrink:0}
  .topbar nav{position:fixed;left:0;right:0;bottom:0;width:auto;margin:0;z-index:30;background:#103c32f7;border-top:1px solid #d0b87555;border-radius:0;padding:8px max(10px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));backdrop-filter:blur(12px)}
  .topbar nav button{min-height:44px;font-size:14px;padding:8px 6px}
  .garden-world{display:flex;flex-direction:column;min-height:0;height:auto;aspect-ratio:auto;background:#244e38}
  .world-heading{position:relative;top:auto;left:auto;max-width:none;padding:19px 18px 8px;order:0}
  .world-heading h1{font-size:29px;margin:5px 0 8px}.world-heading h1 br{display:none}
  .world-heading .eyebrow{font-size:10px;letter-spacing:1.4px}
  .world-heading p{font-size:13px;margin:0}
  .garden-scene{position:relative;inset:auto;width:100%;aspect-ratio:1.5;order:2;margin:2px 0 0}
  .world-art{background-size:100% 100%}.world-light{background:linear-gradient(0deg,#244e3870,transparent 20%)}
  .garden-plots{inset:0}.plot{width:20%;min-width:44px;min-height:44px}
  .plot-name{font-size:10px;padding:4px 6px;bottom:-13px}.plot-name small{display:none}.plot-add{width:36px;height:36px}
  .time-control{position:relative;inset:auto;order:1;align-self:flex-end;margin:0 14px 4px;padding:2px;gap:2px}
  .time-control button{width:44px;height:44px;font-size:22px}
  .next-adventure{position:relative;inset:auto;order:3;margin:8px 10px 10px;padding:14px;gap:10px}
  .next-copy .eyebrow{font-size:10px}.next-copy h2{font-size:22px}.next-adventure>.primary-button{min-height:48px;font-size:16px}
  .build-panel{position:absolute;top:100px;left:10px;right:10px;max-height:calc(100% - 118px);padding:20px;z-index:12}
  .board-panel{padding:16px 10px 10px}.board-wrap{max-width:470px;min-width:0}
  .level-heading{gap:10px}.level-heading>div:first-child{min-width:0}.level-heading h2{font-size:25px;overflow-wrap:break-word}.moves-badge{flex-shrink:0}
  .goal{min-width:0;flex-wrap:wrap;justify-content:center}.goal small{font-size:11px}.goal b{font-size:15px}
  .game-feedback{font-size:13px}.game-tools{display:grid;grid-template-columns:.65fr 1fr 1.1fr;gap:8px}
  .tool-button{min-height:48px;min-width:0;font-size:12px;flex-wrap:wrap;gap:3px;padding:7px 4px}.tool-button:first-child{min-width:0}
  .restart-button,.back-button,.text-button,.build-variant button{min-height:44px;font-size:14px}
  .modal-close{width:44px;height:44px;top:5px;right:6px}
  .modal{max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 24px);padding:30px 20px}
  .modal p{font-size:15px}#personal-form input,#personal-form textarea{font-size:16px}
  .dialogue{display:block}.dialogue-line+.dialogue-line{margin-top:14px}.dialogue-line p{font-size:14px}.dialogue-line p b{font-size:12px}
  .chapter-card p{font-size:14px}.chapter-list{min-width:0}.level-path{gap:6px}.level-node{width:44px;height:44px;flex-shrink:0}
  .memory-list{grid-template-columns:1fr}.memory-picture{height:170px}.memory-content p{font-size:15px}.memory-content .eyebrow{font-size:11px}
  .toast{bottom:calc(82px + env(safe-area-inset-bottom))}
}
@media(max-width:360px){
  .brand{font-size:19px}.brand-heart{font-size:27px}.brand small{letter-spacing:.5px}
  .wallet{gap:4px}.wallet-item{font-size:12px}.wallet-item .sprite{width:18px;height:18px}
  .collection-view{padding:20px 10px}.chapter-card{padding:15px 10px}.level-path{gap:4px}
  .plot-name{font-size:9px}.rules-grid{grid-template-columns:1fr}
}
@media(max-width:420px){.rules-grid{grid-template-columns:1fr}.board{gap:3px;padding:5px}.board-panel{padding-left:6px;padding-right:6px}}
