:root{color-scheme:light;--pink:#ed3b9b;--rose:#c82483;--purple:#684695;--cream:#fff7ef;--ink:#613b79;--muted:#986f9d;--gold:#ffcc48;--sans:"PingFang TC","Noto Sans TC","Microsoft JhengHei",system-ui,sans-serif;--serif:var(--sans)}
*{box-sizing:border-box}html{min-height:100%;background:#fac2e4}body{margin:0;min-width:320px;min-height:100svh;font:500 16px/1.5 var(--sans);color:var(--ink);-webkit-font-smoothing:antialiased;padding-bottom:env(safe-area-inset-bottom)}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit;border:0;touch-action:manipulation;transition:transform .15s,filter .15s,background .15s}button:disabled{opacity:.45;cursor:default;filter:saturate(.45)}button:active:not(:disabled){transform:translateY(3px) scale(.97)}button:hover:not(:disabled){filter:brightness(1.055)}button:focus-visible,a:focus-visible{outline:3px solid #873ce2;outline-offset:4px}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}svg{display:block;width:22px;height:22px}[hidden]{display:none!important}
.world-scene{position:fixed;inset:0;z-index:-3;background:#fac5e5 url('/assets/garden-v2.webp') center center/cover no-repeat}.world-scene:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#dd9ed008,transparent 30%,transparent 70%,#dd9ed008)}.world-glitter{position:fixed;inset:0;pointer-events:none;z-index:-1;overflow:hidden}.world-glitter i{position:absolute;font-style:normal;color:#fffced;text-shadow:0 0 9px #fff5ab;animation:twinkle 3s ease-in-out infinite;font-size:24px}.world-glitter i:nth-child(1){left:14%;top:25%}.world-glitter i:nth-child(2){left:29%;top:68%;animation-delay:-1.5s;font-size:34px}.world-glitter i:nth-child(3){left:79%;top:16%;animation-delay:-2s}.world-glitter i:nth-child(4){left:88%;top:66%;animation-delay:-.6s;font-size:36px}.world-glitter i:nth-child(5){left:20%;top:83%;animation-delay:-.4s}.world-glitter i:nth-child(6){left:70%;top:48%;animation-delay:-1.1s}
.topbar{width:min(610px,calc(100% - 28px));margin:auto;min-height:96px;display:flex;align-items:center;justify-content:space-between;gap:16px;position:relative;padding-top:6px}.brand{display:block;transform:rotate(-3deg);flex-shrink:0}.brand-name{display:block;color:#f848a6;font-weight:1000;font-size:36px;line-height:1.05;letter-spacing:-1px;-webkit-text-stroke:1px #fff9ee;paint-order:stroke fill;text-shadow:0 3px 0 #ab458f,0 5px 0 #fff9ee,0 8px 15px #ad498d38}.brand-name>span{color:#b551d9}.brand-name small{display:block;font-size:10px;font-weight:900;letter-spacing:6px;color:#fffaf2;-webkit-text-stroke:0;text-shadow:0 1px 3px #914687;line-height:1.7;text-align:center;margin-top:8px}.top-actions{display:flex;gap:9px;align-items:center}.level-button,.icon-button{background:linear-gradient(#fff9fc,#ffe3f3);border:2px solid #fffafa;box-shadow:0 4px 0 #d791c4,0 6px 10px #a650a533,inset 0 2px 0 white;color:#a53f9a;display:flex;align-items:center;justify-content:center}.level-button{border-radius:22px;padding:8px 13px;font-size:13px;font-weight:900;gap:5px;white-space:nowrap}.grid-icon{font-size:21px;line-height:1}.icon-button{width:39px;height:39px;border-radius:50%;font-size:21px;font-weight:900}.icon-button svg{width:20px;height:20px}.sound-on{display:none}.icon-button[aria-pressed=true] .sound-on{display:initial}.icon-button[aria-pressed=true] .sound-off{display:none}
.game-layout{width:min(520px,calc(100% - 28px));margin:2px auto 0;display:flex;flex-direction:column;gap:13px;position:relative}.mission-panel{position:relative}.chapter{display:flex;align-items:center;justify-content:center;gap:10px;margin:0 0 10px;text-shadow:0 1px #fff}.chapter .eyebrow{font-size:12px;letter-spacing:1px;font-weight:800;color:#af5299}.chapter h1{font-size:16px;font-weight:900;color:#97408f}.chapter p{display:none}.mission-card{display:grid;grid-template-columns:83px 1fr;grid-template-rows:auto auto;column-gap:18px;position:relative;border:4px solid #fffafc;border-radius:26px;background:linear-gradient(135deg,#fffefa,#fff0f9);padding:11px 20px 10px 12px;box-shadow:0 5px 0 #d784c54d,0 9px 20px #ba5cab23,inset 0 -3px 0 #f9d7ec;min-height:109px}.moves{display:flex;justify-content:center;align-items:center;text-align:center;grid-row:1/3;background:linear-gradient(165deg,#ff77c3,#ed429f 65%,#d8258c);border:3px solid #ffe5f6;border-radius:22px;box-shadow:0 4px 0 #b42c80,inset 0 3px 0 #ffa4d3;padding:7px 4px;color:#fff9f1;margin-top:-4px;margin-bottom:1px;transform:rotate(-3deg)}.moves .small-label{font-size:12px;white-space:nowrap;text-shadow:0 1px #b92e82}.moves strong{display:block;font-size:46px;font-weight:1000;line-height:1;letter-spacing:-2px;text-shadow:0 3px 0 #b42c80}.moves-mark{display:none}.moves.low{background:linear-gradient(#ff8a80,#ea4c69)}.objectives{display:flex;align-items:center;gap:10px;min-width:0;min-height:43px}.objectives h2{font-size:12px;writing-mode:vertical-lr;letter-spacing:1px;color:#ad639f;font-weight:800;flex:none}#objectives{display:flex;gap:10px;align-items:center;flex-wrap:wrap;min-width:0}.objective{display:flex;align-items:center;gap:3px;position:relative;min-height:37px}.objective-icon{width:35px;height:35px;display:grid;place-items:center;flex:none;font-size:29px;color:#f1b823;text-shadow:0 2px #d48c45}.objective-icon .ingredient{width:37px;height:37px}.objective-copy{display:none}.objective-amount{font-size:15px;font-weight:900;color:#98609c;white-space:nowrap}.objective.done .objective-amount{color:#539d81}.objective.done .objective-amount:after{content:' ✓';font-size:12px}.score-block{display:grid;grid-template-columns:1fr 100px;column-gap:10px;align-items:center;padding-top:5px;border-top:1px dashed #e9c4df;margin-top:3px}.score-label{display:flex;gap:7px;align-items:baseline;font-size:12px;color:#ae79a8;grid-column:1;grid-row:1;white-space:nowrap}.score-label strong{font-size:23px;color:#a54fad;letter-spacing:-.6px;font-weight:1000}.score-track{height:9px;border-radius:10px;background:#e6d1e5;box-shadow:inset 0 2px 3px #b881b133;grid-column:2;grid-row:1;position:relative;margin-right:6px;border:1px solid #dec0df}.score-track>div{height:100%;width:0;max-width:100%;border-radius:10px;transition:width .35s;background:linear-gradient(#ffc8ff,#ed64d4 45%,#d345c3)}.star{position:absolute;top:50%;transform:translate(-50%,-50%);font-size:23px;line-height:1;color:#d1afd0;text-shadow:0 2px #b793bd;-webkit-text-stroke:1px #fff8ed;paint-order:stroke fill}.star.lit{color:#ffd25d;text-shadow:0 2px #c1843a,0 0 8px #fdda79}.star-one{left:40%}.star-two{left:68%}.star-three{left:100%}.score-caption{grid-column:1/3;font-size:10px;color:#bd93b6;line-height:1.3}.restart-button{display:none}
.play-panel{min-width:0}.board-heading{display:none}.board-shell{padding:11px;border-radius:31px;background:linear-gradient(140deg,#fffafe 0%,#ffe7f7 25%,#fbaedb 62%,#fbd3ef 100%);border:3px solid #fff5fb;box-shadow:0 7px 0 #c783c2,0 10px 0 #fff6fa99,0 20px 38px #96569d50,inset 0 3px 0 #fff;position:relative;isolation:isolate;overflow:hidden}.board-shell:before{content:'';position:absolute;left:14%;right:14%;top:1px;height:3px;border-radius:50%;background:#fff;box-shadow:0 0 6px #fff;pointer-events:none}.board{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));aspect-ratio:1;gap:2px;padding:5px;border-radius:20px;background:#8980bf;box-shadow:inset 0 3px 7px #6d559e55,0 2px 0 #fff8;position:relative;touch-action:none;user-select:none;overflow:hidden;border:2px solid #af8fc8}.tile{aspect-ratio:1;width:100%;min-width:0;display:grid;place-items:center;padding:0;position:relative;border-radius:10px;background:linear-gradient(150deg,#c3bbdf,#b4aad5);border:0;touch-action:none;outline-offset:-3px;box-shadow:inset 0 1px 1px #ddd6ee66;transform:translateZ(0)}.tile.alt{background:linear-gradient(150deg,#d3c9e5,#c3b6dc)}.tile:hover:not(.selected){background:#ded2ed;filter:none}.tile:active{transform:translateZ(0)!important}.tile.selected{background:#f6e49f;box-shadow:inset 0 0 0 3px #fff5ac,0 0 12px #ffe979;z-index:4}.tile.hint{animation:hint-glow .75s ease-in-out 3;z-index:4}.tile.jelly{background:linear-gradient(145deg,#e1f6ff,#9bd8f7);box-shadow:inset 0 0 0 2px #f5fdffb3}.tile.jelly:after{content:'';position:absolute;inset:4px;border-top:2px solid #fff;border-left:1px solid #fff;border-radius:7px;pointer-events:none}.tile.jelly.double{background:linear-gradient(140deg,#f1fdff,#b7e7ff);box-shadow:inset 0 0 0 3px #fff}.piece{width:100%;height:100%;display:grid;place-items:center;position:relative;z-index:2;will-change:transform;pointer-events:none;filter:drop-shadow(0 3px 1.5px #52467977);transform-origin:center 70%}.ingredient{background-image:url('/assets/ingredients-v2.webp');background-size:300% 200%;background-repeat:no-repeat;width:100%;height:100%;display:block;aspect-ratio:1;flex:none;pointer-events:none}.ingredient-0{background-position:0 0}.ingredient-1{background-position:50% 0}.ingredient-2{background-position:100% 0}.ingredient-3{background-position:0 100%}.ingredient-4{background-position:50% 100%}.ingredient-5{background-position:100% 100%}.tile .ingredient{width:98%;height:98%;transition:filter .2s}.tile.selected .ingredient{filter:brightness(1.15)}.tile.special-h .piece:after,.tile.special-v .piece:after{content:'';position:absolute;left:9%;right:9%;height:13%;top:43%;background:repeating-linear-gradient(0deg,#fff 0 3px,#ffaaf3 3px 5px);box-shadow:0 0 7px #fff;border:1px solid #fff7;border-radius:8px}.tile.special-v .piece:after{transform:rotate(90deg)}.tile.special-w .piece{background:radial-gradient(ellipse,#ffad7888,transparent 72%)}.tile.special-w .piece:after{content:'✦';position:absolute;bottom:0;right:1%;color:#fff8ab;font-size:24px;line-height:1;filter:drop-shadow(0 0 3px #f058ba)}.tile.special-b .piece{border-radius:50%;background:conic-gradient(#ff8ca1,#f8d967,#afeea1,#81e4e6,#b1a2f3,#ffc1e9,#ff8ca1);box-shadow:inset 0 0 5px #fff,0 0 9px #fffc;transform:scale(.92)}.tile.special-b .piece:after{content:'✧';position:absolute;color:white;text-shadow:0 0 5px #ffa719;font-size:36px}.tile.special-b .ingredient{filter:brightness(1.15)}.tile.primed .piece{animation:prime .22s infinite alternate}.tile.burst .piece{animation:burst .29s cubic-bezier(.3,.05,.65,.99) forwards}.tile.flash{background:#fff1c5!important;box-shadow:inset 0 0 14px white}.tile.shake .piece{animation:shake .3s}.tile.drag-target{background:#ffe4a1;box-shadow:inset 0 0 0 2px #ffffe1}.tile.dragging{background:#dbcbed}.tile.dragging .piece{filter:drop-shadow(0 10px 4px #72527666)}.board.hammer-mode .tile{cursor:crosshair}.board.hammer-mode{outline:3px solid #fff7a0;outline-offset:2px}.board-caption{display:flex;align-items:center;justify-content:center;height:36px;padding:9px 0 0;color:#91518d;font-size:12px;font-weight:700;text-align:center;text-shadow:0 1px #fff8}
.tools{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:5px 7px 0}.tool{position:relative;display:flex;align-items:center;justify-content:center;gap:9px;border:3px solid #fff7fc;border-radius:22px;padding:9px 6px;background:linear-gradient(#fff4fe,#f8d9f3);box-shadow:0 5px 0 #c983bc,0 9px 13px #b15ba72b;min-height:65px;color:#954689}.tool:nth-child(2){background:linear-gradient(#fff8dc,#ffe3aa);box-shadow:0 5px 0 #d4a365,0 9px 13px #b15ba72b;color:#b7763e}.tool:nth-child(3){background:linear-gradient(#e9fffc,#b7ede9);box-shadow:0 5px 0 #73bcba,0 9px 13px #b15ba72b;color:#429991}.tool.active{box-shadow:0 5px 0 #db8b32,0 0 18px #ffea85;outline:3px solid #ffe677;transform:translateY(-3px)}.tool>span:nth-child(2){font-size:14px;font-weight:900;line-height:1.5;text-align:left}.tool small{font-size:10px;font-weight:600;color:inherit;opacity:.68;display:block}.tool-icon{font-size:34px;line-height:1;filter:drop-shadow(0 2px 0 #fffc);flex:none}.tool-icon svg{width:28px;height:28px;stroke-width:2.4}.tool b{position:absolute;top:-10px;right:-7px;min-width:24px;height:24px;border:2px solid #fff8ef;border-radius:50%;background:linear-gradient(#fb72ac,#e33a91);font-size:13px;line-height:20px;font-weight:900;text-align:center;color:white;box-shadow:0 2px 0 #bb4d9f}
.combo{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;z-index:9;color:#ffed8a;font-size:clamp(27px,4.5vw,47px);font-weight:1000;letter-spacing:-1px;opacity:0;text-shadow:0 4px 0 #dc439d,0 6px 0 #b259a4,0 10px 15px #7b38977a;-webkit-text-stroke:2px #fff6d2;paint-order:stroke fill}.combo.show{animation:combo-pop 1.1s ease both}.combo small{font-size:25px;letter-spacing:0;margin-top:7px;color:white}.celebration{position:absolute;inset:0;overflow:hidden;border-radius:28px;pointer-events:none;z-index:8}.particle{position:absolute;width:8px;height:8px;border-radius:3px;box-shadow:0 0 5px #fff;animation:particle-pop .68s ease-out forwards}.score-pop{position:absolute;z-index:9;color:#fff7a0;text-shadow:0 2px #d862aa,0 4px 4px #76468666;-webkit-text-stroke:1px #fff5cf;paint-order:stroke fill;font-size:24px;font-weight:1000;animation:score-pop .85s ease-out forwards;pointer-events:none}.pop-ring{position:absolute;width:20px;height:20px;border:3px solid;border-radius:50%;box-shadow:0 0 10px #fffc;animation:ring-pop .5s ease-out forwards}.clear-beam{position:absolute;left:2%;width:96%;height:15px;margin-top:-7px;border-radius:50%;background:linear-gradient(0deg,transparent,#ffb9ea,#fffaf1,#ffb9ea,transparent);box-shadow:0 0 18px #fff8db,0 0 30px #ff61bc;animation:line-sweep .5s ease-out forwards}.clear-beam.vertical{top:2%;height:96%;width:15px;margin-left:-7px;margin-top:0;background:linear-gradient(90deg,transparent,#ffb9ea,#fffaf1,#ffb9ea,transparent);animation:column-sweep .5s ease-out forwards}.blast-ring{position:absolute;width:42%;aspect-ratio:1;border:7px solid #ffe08ad9;background:radial-gradient(circle,#fff7c366,transparent 40%,#ff9cdc99 60%,transparent 73%);border-radius:50%;box-shadow:0 0 25px #fff8b0;animation:blast-wave .6s ease-out forwards}.five-glow{position:absolute;width:160%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#fff9b5aa,transparent 16%,#92efe9bb 20%,transparent 25%,#ffa0deaa 33%,transparent 38%,#b8a2f988 45%,transparent 52%);animation:blast-wave .7s ease-out forwards}
.start-gate{position:absolute;inset:0;z-index:15;background:#9d79c158;backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;border-radius:25px;transition:opacity .3s,transform .3s}.start-gate.dismissed{opacity:0;transform:scale(1.1);pointer-events:none}.start-card{width:76%;max-width:365px;text-align:center;border:4px solid #fff6f9;border-radius:29px;background:linear-gradient(#fff8fc,#ffe2f5);padding:19px 22px 15px;box-shadow:0 7px 0 #d58bbd,0 16px 32px #783d9a55;transform:rotate(-2deg)}.start-fruit{display:flex;justify-content:center;margin:-52px -10px 8px;gap:0;filter:drop-shadow(0 6px 3px #9c568347)}.start-fruit .ingredient{width:91px;height:91px;animation:fruit-bob 3s ease-in-out infinite}.start-fruit .ingredient:first-child{transform:rotate(-15deg);animation-delay:-1s}.start-fruit .ingredient:nth-child(2){margin-top:-13px;animation-delay:-2s}.start-fruit .ingredient:last-child{transform:rotate(15deg)}.start-kicker{display:inline-block;background:#f8cdea;color:#b260a4;border-radius:10px;padding:3px 10px;font-size:12px;font-weight:800}.start-card h2{font-size:27px;font-weight:1000;line-height:1.4;color:#c34aa0;margin:9px -7px 7px;letter-spacing:-1px;text-shadow:0 2px #fff}.start-card p{font-size:12px;color:#b172a4}.start-card .primary-button{margin-top:15px;font-size:22px}.start-card .primary-button span{font-size:17px;margin-left:10px}.quiet-button{background:none;font-size:12px;color:#b487a9;padding:12px 12px 3px}.audio-note{display:block;font-size:10px;color:#bc91b2;min-height:15px}.recipe-panel{display:none}footer{display:flex;align-items:center;justify-content:center;gap:12px;font-size:11px;color:#9a5894;margin:16px auto 0;padding:8px 8px 16px;max-width:580px;text-align:center}footer>span{max-width:200px;line-height:1.4}footer .audio-test{background:#fff6fa99;border:1px solid #fff9;border-radius:15px;padding:5px 10px;font-size:12px;font-weight:800;white-space:nowrap;box-shadow:0 2px 0 #d394c440}
.modal{color:#824c89;background:linear-gradient(150deg,#fffaf9,#ffe4f7);border:4px solid #fff;border-radius:29px;padding:34px;max-width:480px;width:calc(100% - 30px);max-height:90svh;overflow-y:auto;box-shadow:0 8px 0 #ba75b6,0 24px 70px #603f8d70}.modal::backdrop{background:#9a69b988;backdrop-filter:blur(7px)}.modal .eyebrow{font-size:12px;font-weight:800;letter-spacing:2px;color:#c070b3}.modal h2{font-size:26px;line-height:1.4;font-weight:1000;margin:10px 0 14px;color:#b14caa}.modal p{font-size:14px;line-height:1.8;color:#ac7ba6}.close-dialog{position:absolute;right:11px;top:10px;width:34px;height:34px;display:grid;place-items:center;background:#f8d7ed;color:#ac68a8;font-size:24px;line-height:1;border:2px solid #fff8;border-radius:50%}.primary-button{display:block;width:100%;border:3px solid #ffe8f7;border-radius:23px;background:linear-gradient(#ff8dcc,#f155b2 40%,#e333a1);padding:12px 10px;font-weight:1000;color:#fff7ed;font-size:18px;box-shadow:0 6px 0 #b42b89,inset 0 3px 0 #ffafde;text-shadow:0 2px #bf368e;margin-top:22px}.secondary-button{display:block;width:100%;border:0;background:transparent;color:#b276a4;font-size:14px;padding:12px;margin-top:11px}.help-list{font-size:14px;line-height:1.8;padding-left:18px;color:#a271a1}.help-list li{margin:8px 0}.help-list strong{color:#b24b9c}.help-note{font-size:12px!important;border-top:1px dashed #e4bddb;padding-top:14px;margin-top:16px!important}.levels-modal{max-width:520px}#level-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:13px;margin-top:25px}.level-cell{aspect-ratio:1;border:3px solid #fff4fa;border-radius:20px;background:linear-gradient(#ffeffb,#f2c9e9);color:#be7caf;font-size:23px;font-weight:1000;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 4px 0 #d393c5}.level-cell.current{background:linear-gradient(#fd8ecb,#ed4aa9);color:#fff8eb;box-shadow:0 4px 0 #b34091}.level-cell small{font-size:11px;color:#f2b337;text-shadow:0 1px #9f6f80;line-height:1.2}.level-cell .lock{font-size:10px;line-height:1.2}.compact-modal{text-align:center;max-width:400px}.result-modal{text-align:center;max-width:430px}.result-stars{font-size:47px;letter-spacing:5px;color:#ffd054;text-shadow:0 3px #d79155;-webkit-text-stroke:2px #fff7bc;paint-order:stroke fill;margin-bottom:16px}.result-stars .dim{color:#e0c5dd;text-shadow:0 3px #c197c1}.result-score{display:flex;flex-direction:column;align-items:center;background:#f6dced;border:2px solid #fff7;border-radius:20px;padding:13px;margin-top:18px;color:#b870a7}.result-score span{font-size:13px}.result-score strong{font-size:45px;line-height:1.4;letter-spacing:-2px;font-weight:1000;color:#c146a5}.modal:focus{outline:none}
@keyframes twinkle{0%,100%{opacity:.25;transform:scale(.6) rotate(0)}50%{opacity:1;transform:scale(1.1) rotate(20deg)}}@keyframes hint-glow{50%{background:#ffe9a7;box-shadow:inset 0 0 0 2px #fff;transform:scale(1.065)}}@keyframes burst{0%{transform:scale(1)}28%{transform:scale(.82,1.16)}56%{transform:scale(1.4,1.25);filter:brightness(1.5)}100%{transform:scale(0);opacity:0}}@keyframes shake{25%,75%{transform:translateX(-6px) rotate(-5deg)}50%{transform:translateX(6px) rotate(5deg)}}@keyframes combo-pop{0%{opacity:0;transform:scale(.5) rotate(-10deg)}20%{opacity:1;transform:scale(1.12) rotate(-6deg)}34%,73%{opacity:1;transform:scale(1) rotate(-6deg)}100%{opacity:0;transform:translateY(-35px) scale(1.07) rotate(-6deg)}}@keyframes particle-pop{to{transform:translate(var(--dx),var(--dy)) rotate(290deg);opacity:0}}@keyframes score-pop{0%{opacity:0;transform:translateY(0) scale(.7)}20%{opacity:1;transform:translateY(-12px) scale(1.2)}100%{opacity:0;transform:translateY(-65px) scale(.85)}}@keyframes prime{to{filter:brightness(1.7);transform:scale(1.15,.87)}}@keyframes ring-pop{from{transform:translate(-50%,-50%) scale(.3);opacity:1}to{transform:translate(-50%,-50%) scale(3.8);opacity:0}}@keyframes line-sweep{0%{transform:scaleX(0);opacity:1}55%{transform:scaleX(1);opacity:1}100%{transform:scaleX(1);opacity:0}}@keyframes column-sweep{0%{transform:scaleY(0);opacity:1}55%{transform:scaleY(1);opacity:1}100%{transform:scaleY(1);opacity:0}}@keyframes blast-wave{0%{transform:translate(-50%,-50%) scale(.2);opacity:1}100%{transform:translate(-50%,-50%) scale(1.3);opacity:0}}@keyframes fruit-bob{0%,100%{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-8px) rotate(6deg)}}
@media(min-width:700px) and (max-height:900px){.topbar{min-height:82px;width:min(560px,calc(100% - 28px))}.brand-name{font-size:32px}.game-layout{width:min(465px,58svh)}.mission-card{min-height:99px;padding-top:8px;padding-bottom:7px}.moves strong{font-size:42px}.chapter{margin-bottom:6px}.game-layout{gap:10px}.tools{min-height:60px}.tool{padding:7px 6px;min-height:61px}.board-shell{padding:9px}.board-caption{height:31px}footer{margin-top:12px}}
@media(max-width:680px){.topbar{min-height:80px;width:calc(100% - 24px);gap:10px}.brand-name{font-size:29px;letter-spacing:-1px;-webkit-text-stroke:.8px #fff9ee}.brand-name small{font-size:9px;letter-spacing:4.5px;margin-top:7px}.top-actions{gap:6px}.level-button{padding:7px 10px;font-size:12px}.grid-icon{font-size:18px}.icon-button{width:34px;height:34px;font-size:18px}.icon-button svg{width:18px;height:18px}.game-layout{width:calc(100% - 22px);max-width:500px;margin-top:0;gap:11px}.chapter{margin-bottom:8px}.chapter .eyebrow{font-size:11px;letter-spacing:.5px}.chapter h1{font-size:14px}.mission-card{border-width:3px;padding:8px 13px 8px 9px;border-radius:22px;grid-template-columns:69px 1fr;column-gap:11px;min-height:103px}.moves{border-radius:18px;padding:7px 3px}.moves strong{font-size:42px}.moves .small-label{font-size:11px}.objectives{gap:7px}.objectives h2{font-size:11px}.objective-icon{width:28px;height:28px;font-size:23px}.objective-icon .ingredient{width:32px;height:32px}#objectives{gap:8px}.objective-amount{font-size:13px}.objective{gap:2px;min-height:30px}.score-label{font-size:10px;gap:4px}.score-label strong{font-size:20px}.score-block{grid-template-columns:1fr 83px;column-gap:9px;padding-top:3px}.score-track{height:8px}.star{font-size:20px}.score-caption{font-size:9px}.board-shell{padding:8px;border-radius:26px;border-width:3px;box-shadow:0 6px 0 #c783c2,0 9px 0 #fff6fa99,0 16px 28px #96569d44}.board{padding:4px;border-radius:16px;gap:2px}.tile{border-radius:8px}.piece{filter:drop-shadow(0 2px 1px #52467970)}.tile.special-w .piece:after{font-size:18px}.tile.special-b .piece:after{font-size:28px}.board-caption{font-size:11px;height:34px;padding-top:8px}.tools{gap:12px;padding:3px 4px 0}.tool{min-height:65px;gap:5px;padding:8px 4px;border-radius:20px}.tool>span:nth-child(2){font-size:12px}.tool small{font-size:10px}.tool-icon{font-size:30px}.tool-icon svg{width:24px;height:24px}.tool b{width:22px;min-width:22px;height:22px;font-size:12px;line-height:18px;right:-6px}.start-card{width:79%;padding:13px 17px 11px;border-radius:26px}.start-fruit{margin-top:-42px;margin-bottom:5px}.start-fruit .ingredient{width:74px;height:74px}.start-card h2{font-size:24px}.start-card p{font-size:11px}.start-card .primary-button{font-size:21px;padding:9px;margin-top:13px}.start-kicker{font-size:11px}.quiet-button{padding-top:11px;font-size:11px}.audio-note{font-size:9px}footer{font-size:10px;gap:8px;margin-top:13px;padding-bottom:10px}footer .audio-test{font-size:11px;padding:5px 8px}footer>span{max-width:175px}.modal{padding:29px 23px}.modal h2{font-size:24px}#level-grid{gap:10px}.level-cell{border-radius:15px;font-size:20px}.world-scene{background-position:center;background-size:auto 100%;background-color:#fad2ed}.world-scene:after{background:#fcd7ef20}.result-stars{font-size:43px}}
@media(max-width:370px){.brand-name{font-size:24px}.brand-name small{font-size:8px;letter-spacing:4px}.topbar{min-height:72px;width:calc(100% - 20px)}.top-actions{gap:5px}.level-button{padding:6px 8px;font-size:11px}.icon-button{width:31px;height:31px}.game-layout{width:calc(100% - 16px);gap:10px}.mission-card{grid-template-columns:62px 1fr;column-gap:8px}.moves strong{font-size:39px}.score-block{grid-template-columns:1fr 73px}.tool{gap:4px;border-width:2px}.tool>span:nth-child(2){font-size:11px}.tool small{font-size:9px}.tool-icon svg{width:21px;height:21px}.start-card h2{font-size:21px}.start-fruit .ingredient{width:65px;height:65px}.objective-amount{font-size:12px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.particle,.world-glitter{display:none}}
/* English game typography and horizontal labels. */
:root{--sans:ui-rounded,"Arial Rounded MT Bold","Trebuchet MS",system-ui,sans-serif;--serif:var(--sans)}
.brand-name{font-size:46px;font-weight:1000;color:#ffd166;letter-spacing:-2px;-webkit-text-stroke:2px #fff7ed;text-shadow:0 3px 0 #d66c91,0 5px 0 #fff7ed,0 8px 15px #ad498d50}.brand-name>span{margin-left:6px;color:#f959ae;display:inline-block;transform:rotate(3deg)}.brand-name small{font-size:8px;letter-spacing:1.7px;margin-top:8px;font-weight:900;line-height:1.4}.objectives{flex-direction:column;align-items:flex-start;gap:0;justify-content:center}.objectives h2{writing-mode:horizontal-tb;font-size:10px;letter-spacing:1.2px;line-height:1.2}.objective{min-height:31px}.moves .small-label{font-size:11px;font-weight:900;letter-spacing:1.2px}.score-label{font-size:11px;font-weight:800;letter-spacing:.5px}.score-label strong{letter-spacing:-.5px}.score-caption{font-size:11px}.start-kicker{font-size:10px;letter-spacing:.7px}.start-card h2{font-size:34px;letter-spacing:-1px}.start-card p{font-size:13px}.start-card .primary-button{font-size:25px}.tool small{font-size:11px;font-weight:600}.ingredient-key>div{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:15px}.key-item{font-size:12px;text-align:center}.key-item .ingredient{width:42px;height:42px;margin:auto}.level-cell .lock{font-size:9px}.objective-amount{font-variant-numeric:tabular-nums}
@media(min-width:700px) and (max-height:900px){.brand-name{font-size:42px}.start-card h2{font-size:32px}}
@media(max-width:680px){.brand-name{font-size:35px;letter-spacing:-1.6px;-webkit-text-stroke:1.4px #fff7ed}.brand-name small{font-size:7px;letter-spacing:1px;line-height:1.4;margin-top:7px}.brand-name>span{margin-left:4px}.level-button{font-size:11px;padding:7px 9px}.grid-icon{font-size:17px}.chapter .eyebrow{font-size:9px;letter-spacing:.7px}.chapter h1{font-size:13px}.score-caption{font-size:10px}.objectives h2{font-size:9px}.moves .small-label{font-size:10px}.score-label{font-size:10px}.start-kicker{font-size:9px;letter-spacing:.5px}.start-card h2{font-size:29px}.start-card p{font-size:12px}.start-card .primary-button{font-size:23px}.tool>span:nth-child(2){font-size:14px}.tool small{font-size:9px}.start-card .audio-note{font-size:10px}footer>span{max-width:145px;font-size:10px}footer .audio-test{font-size:11px}.modal h2{font-size:27px}.modal .eyebrow{font-size:10px;letter-spacing:1px}}
@media(max-width:370px){.brand-name{font-size:30px}.brand-name small{font-size:6px;letter-spacing:.8px}.topbar{gap:8px}.level-button{font-size:10px;padding:6px 7px}.top-actions{gap:5px}.grid-icon{display:none}.tool>span:nth-child(2){font-size:12px}.tool small{font-size:9px}.tool-icon{font-size:27px}.tool-icon svg{width:22px;height:22px}.score-caption{font-size:9px}.start-card h2{font-size:27px}.start-card p{font-size:11px}footer>span{max-width:127px}}
/* The herbal trail: a full scrolling game map, with the play board one tap away. */
body.map-view{background:#eff0d9}.map-view .world-scene{background-image:linear-gradient(#fff2e988,#e8efdca6),url('/assets/trail-map-v3.webp');background-position:center;background-size:cover;filter:blur(4px);transform:scale(1.03)}.map-view .world-glitter{display:none}.map-view .topbar{width:min(660px,calc(100% - 28px));position:relative;z-index:3;padding-top:8px}.map-view footer{display:none}.map-screen{max-width:640px;margin:0 auto;padding-bottom:105px;position:relative}.map-intro{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 22px 16px;color:#755b58}.map-kicker{font-size:10px;letter-spacing:1.9px;font-weight:800;color:#a57f75}.map-intro h1{font-size:34px;line-height:1.3;font-weight:900;letter-spacing:-1px;color:#77625a;text-shadow:0 2px #fff8}.map-intro p{font-size:12px;color:#947d76;margin-top:5px}.petal-wallet{display:grid;grid-template-columns:24px 1fr;align-items:center;column-gap:4px;border-radius:20px;background:linear-gradient(#fffbee,#fbe5cf);border:3px solid #fffaf0;box-shadow:0 4px 0 #cba98b77;padding:9px 12px;color:#ad7753;min-width:92px}.petal-wallet>span{font-size:26px;line-height:1}.petal-wallet strong{font-size:22px;font-weight:900;line-height:1.3}.petal-wallet small{grid-column:1/3;font-size:8px;font-weight:900;letter-spacing:2px}.endless-banner{display:flex;align-items:center;gap:15px;width:calc(100% - 36px);margin:0 18px 18px;padding:13px 18px;border-radius:22px;background:linear-gradient(110deg,#517e73,#77a390);border:3px solid #fbfff1;color:#fff9df;text-align:left;box-shadow:0 4px 0 #466e5c,0 8px 16px #62816d20;position:relative;z-index:2}.endless-mark{font-size:52px;font-weight:800;line-height:1;color:#f8e0a4;text-shadow:0 2px #345b50}.endless-banner strong{display:block;font-size:20px;font-weight:900;letter-spacing:-.3px}.endless-banner small{display:block;font-size:11px;line-height:1.6;color:#e7f0d9}.endless-arrow{margin-left:auto;font-weight:900;font-size:13px;white-space:nowrap;color:#f5e3b0}.trail-map{position:relative;width:100%;overflow:hidden;border-radius:35px 35px 20px 20px;border:2px solid #fff4e8;border-bottom:0;box-shadow:0 14px 40px #58664727}.map-world{position:absolute;left:0;right:0;overflow:hidden;background-color:#e5d4b7;background-image:linear-gradient(#fff4dc30,#fff4dc08 65%,#d9c9d650),url('/assets/trail-map-v3.webp');background-repeat:no-repeat;background-size:cover;background-position:center;z-index:0}.map-world.world-1{background-image:linear-gradient(#f2d1a740,#f2d1a705 70%,#cedfd766),url('/assets/trail-map-v3.webp');background-position:center 30%}.map-world.world-2{background-image:linear-gradient(#ccefd366,#ccede510 65%,#cbc1de66),url('/assets/trail-map-v3.webp');background-position:center 70%}.map-world.world-3{background-image:linear-gradient(#d5c8e950,#d4c3ed00 65%,#b9b4d877),url('/assets/trail-map-v3.webp');background-position:bottom center}.world-banner{position:absolute;top:27px;left:50%;transform:translateX(-50%);width:78%;text-align:center;padding:10px 17px 13px;border-radius:22px;background:#fff8eae8;border:2px solid #fff9;box-shadow:0 4px 0 #a58a6240,0 9px 20px #81645017;backdrop-filter:blur(5px)}.world-banner>span{font-size:9px;letter-spacing:2.5px;font-weight:800;color:var(--world-color)}.world-banner h2{font-size:25px;line-height:1.35;font-weight:1000;letter-spacing:-.5px;color:#7d655b}.world-banner p{font-size:11px;color:#a08d7d;line-height:1.5;margin-top:3px}.trail-path{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:1}.trail-path path{fill:none;stroke-linecap:round;stroke-linejoin:round}.trail-shadow{stroke:#91705655;stroke-width:31;transform:translateY(5px)}.trail-base{stroke:#fff2cc;stroke-width:28}.trail-dashes{stroke:#d4b58a;stroke-width:2;stroke-dasharray:2 12}.trail-done{stroke:#a1cfae;stroke-width:22;opacity:.9}.trail-node{position:absolute;z-index:3;transform:translate(-50%,-50%);width:75px;height:75px;border-radius:50%;background:linear-gradient(155deg,#fff9ed,#f5dec4 70%,#eac9ac);border:5px solid #fff9ed;box-shadow:0 6px 0 #b99579,0 11px 11px #7b624347,inset 0 3px 1px #fffaf1;color:#a47765;display:flex;align-items:center;justify-content:center}.trail-node:hover:not(:disabled){transform:translate(-50%,-54%) scale(1.06);filter:brightness(1.04)}.trail-node:active:not(:disabled){transform:translate(-50%,-46%) scale(.96)}.trail-node .node-number{font-size:29px;font-weight:1000;line-height:1;text-shadow:0 2px #fff9;letter-spacing:-1px}.trail-node.current{width:87px;height:87px;background:linear-gradient(#eaa4ad,#d9849a 70%,#c96789);border:5px solid #fff5df;box-shadow:0 7px 0 #a65173,0 0 0 6px #fff2ca66,0 14px 18px #a3606747;color:#fffbea}.trail-node.current .node-number{text-shadow:0 3px #b25d81;font-size:34px}.trail-node.complete{background:linear-gradient(#c4e1ad,#91bba0);border-color:#fff6d6;color:#fffdec;box-shadow:0 6px 0 #648d78,0 10px 12px #58654544}.trail-node.complete .node-number{text-shadow:0 2px #709781}.trail-node.locked{opacity:.8;filter:saturate(.65);background:linear-gradient(#f6e7d1,#d8c7b7);border-color:#f9efde;color:#a79584;box-shadow:0 5px 0 #ac9a86,0 9px 12px #79655030}.node-stars{position:absolute;bottom:-12px;left:50%;transform:translateX(-50%);font-size:19px;color:#ffe08b;-webkit-text-stroke:1px #bd8b49;paint-order:stroke fill;text-shadow:0 2px 0 #a57857;white-space:nowrap;letter-spacing:-1px;line-height:1}.node-lock{position:absolute;bottom:5px;font-size:19px;line-height:.5;opacity:.5}.you-marker{position:absolute;bottom:calc(100% + 12px);left:50%;transform:translateX(-50%);background:#fff8df;color:#af667b;border:2px solid #fff;border-radius:12px;padding:5px 12px;font-size:11px;font-weight:1000;letter-spacing:1px;box-shadow:0 3px #d09e9880;animation:marker-float 2s ease-in-out infinite}.you-marker:after{content:'';position:absolute;top:100%;left:50%;width:10px;height:10px;background:#fff8df;transform:translate(-50%,-6px) rotate(45deg)}.trail-gift{position:absolute;z-index:4;transform:translate(-50%,-50%);width:77px;height:96px;padding:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:transparent;filter:saturate(.7);opacity:.82}.trail-gift:hover:not(:disabled){transform:translate(-50%,-54%) scale(1.08)}.trail-gift:active{transform:translate(-50%,-45%)}.trail-gift .booster-art{width:77px;height:77px;filter:drop-shadow(0 6px 3px #80534c66)}.trail-gift small{font-size:8px;letter-spacing:1px;font-weight:900;background:#fff5e5e8;color:#a47562;border:1px solid #fff6;border-radius:9px;padding:3px 8px;white-space:nowrap;box-shadow:0 2px 0 #b3926644}.trail-gift.ready{opacity:1;filter:none;animation:gift-glow 2s ease-in-out infinite}.trail-gift.ready small{color:#f8ffe8;background:#648f77}.trail-gift.claimed{filter:saturate(.3);opacity:.55}.map-ending{text-align:center;color:#8d7a75;padding:30px 25px 16px;background:linear-gradient(#cec6d555,#f4eddfcc);border-radius:0 0 26px 26px;margin-top:-1px}.map-ending>span{display:block;font-size:27px;color:#af9494;margin-bottom:8px}.map-ending strong{font-size:20px;font-weight:900;display:block}.map-ending p{font-size:12px;margin-top:8px}.map-ending small{display:block;font-size:10px;margin-top:15px;opacity:.75}.map-nav{display:flex;align-items:stretch;justify-content:space-around;position:fixed;bottom:max(12px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:20;width:min(550px,calc(100% - 30px));background:#fffaf0f5;border:3px solid #fff;border-radius:25px;box-shadow:0 5px 0 #c7b49b,0 12px 35px #6b655e55;padding:6px;backdrop-filter:blur(12px)}.map-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:5px 10px;background:transparent;color:#ae9686;font-size:11px;line-height:1.4;gap:1px;border-radius:18px;flex:1;font-weight:800}.map-nav button>span{font-size:28px;line-height:1.2;font-weight:800}.map-nav button.active{background:#e6efdc;color:#779077}.map-nav button:nth-child(2)>span{font-size:30px}.map-nav button:nth-child(3)>span{color:#c18b90}.map-nav button:active{transform:scale(.95)}
.booster-art{display:block;flex:none;width:100%;height:100%;aspect-ratio:1;background:url('/assets/boosters-v3.webp') 0 0/300% 200% no-repeat;pointer-events:none}.booster-0{background-position:0 0}.booster-1{background-position:50% 0}.booster-2{background-position:100% 0}.booster-3{background-position:0 100%}.booster-4{background-position:50% 100%}.booster-5{background-position:100% 100%}.pouch-modal{max-width:570px;background:linear-gradient(135deg,#fffaf0,#f3efe0);border-color:#fffdf5;color:#81685c}.pouch-modal .eyebrow{color:#96a07e}.pouch-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.pouch-title h2{color:#8c7361;font-size:29px}.pouch-title>span{background:#f4e5cb;border-radius:16px;padding:6px 12px;color:#bf866a;white-space:nowrap;font-weight:900}.pouch-modal>p{font-size:12px;color:#a89483}.pouch-items{display:grid;gap:10px;margin-top:20px}.pouch-item{display:flex;align-items:center;gap:15px;border:1px solid #ddcbb7;border-radius:19px;padding:9px 12px 10px;background:#fffdf080;box-shadow:0 2px 0 #d2bfaa22}.pouch-art{width:75px;height:75px;position:relative;flex:none}.pouch-art .booster-art{filter:drop-shadow(0 3px 2px #9b8a6255)}.pouch-art>b{position:absolute;bottom:0;right:-2px;min-width:24px;height:24px;font-size:12px;line-height:20px;text-align:center;border:2px solid #fff6d4;background:#83977c;color:white;border-radius:50%;box-shadow:0 2px #637b62}.pouch-item-copy{flex:1;min-width:0}.pouch-item h3{font-size:16px;font-weight:900;color:#8a6d59}.pouch-item p{font-size:12px;line-height:1.5;color:#a28d7d;margin:3px 0 8px}.pouch-buttons{display:flex;gap:7px}.pouch-buttons button{border:1px solid #fff6;border-radius:12px;font-weight:800;font-size:11px;padding:7px 11px;min-width:65px;background:#8fac94;color:#fffbea;box-shadow:0 3px 0 #6d8c74}.pouch-buttons button+button{background:#f1ddba;color:#a5835f;box-shadow:0 3px 0 #d2b98f}.pouch-status{min-height:35px;line-height:1.5;margin-top:15px!important;text-align:center;font-size:12px!important}.extra-tools{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:16px 5px 0}.extra-tools button{display:flex;align-items:center;gap:6px;padding:7px 12px;border:2px solid #fff5;border-radius:17px;background:#fff6e6b3;color:#a97c81;font-size:12px;font-weight:800;box-shadow:0 3px #be99a32a}.extra-tools button>span{color:#ca93a4}.extra-tools button b{background:#e8efd9;color:#8ba077;padding:1px 6px;border-radius:10px;font-size:11px}.extra-tools button+button{background:transparent;border-color:transparent;box-shadow:none;color:#a67c9a;font-size:11px}.endless-progress .star{display:none}.endless-progress #score-fill{background:linear-gradient(#caeadb,#75b4a0)}.level-preview{max-width:440px;text-align:center;background:linear-gradient(#fffbee,#f8e8df);border-color:#fffdf6}.level-preview .eyebrow{color:#bd8d86;letter-spacing:2px;margin-top:6px}.preview-number{display:grid;place-items:center;margin:18px auto 0;width:72px;height:72px;border-radius:50%;font-size:35px;font-weight:1000;color:#fff5dd;background:linear-gradient(#eab9af,#d2859f);border:4px solid white;box-shadow:0 5px #b07b87}.level-preview h2{font-size:29px;color:#9f6f6a;margin-bottom:6px}.level-preview>p{font-size:12px;line-height:1.6;color:#ad9389}.preview-goals{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:20px -8px 17px}.preview-goals>div{display:flex;flex-direction:column;align-items:center;min-width:64px;padding:8px 8px 10px;border:1px solid #efdbcd;border-radius:15px;background:#fff9eec7}.preview-goals .ingredient,.preview-goal-icon{width:43px;height:43px;display:grid;place-items:center;font-size:28px;color:#b4a466;line-height:1}.preview-goals b{font-size:16px;line-height:1.5;color:#9f766d}.preview-goals small{font-size:9px;color:#af9989;line-height:1.4}.preview-meta{display:flex;align-items:center;justify-content:space-between;border-top:1px dashed #debfba;border-bottom:1px dashed #debfba;padding:11px 3px;font-size:12px;font-weight:800;color:#b38b73}.gift-modal{text-align:center;max-width:420px;background:linear-gradient(#fff7e3,#f6e6d6)}.gift-symbol{display:block;color:#dbb36c;font-size:58px;margin:3px 0 10px;text-shadow:0 3px #f8d59e}.gift-modal h2{color:#b58b6f}.gift-modal .eyebrow{color:#b09971;font-size:10px;letter-spacing:1px}.gift-petals{display:block;font-size:29px;color:#b09360;margin:14px 0}.gift-boosters{display:flex;gap:15px;justify-content:center}.gift-boosters>div{width:100px;display:flex;align-items:center;flex-direction:column;font-size:12px;color:#a88566;font-weight:800}.gift-boosters .booster-art{width:80px;height:80px}.game-layout .chapter{flex-wrap:wrap;gap:4px 8px}.game-layout .chapter .eyebrow{font-size:9px;letter-spacing:.8px}.game-layout .chapter h1{font-size:14px}.game-layout .objectives h2{font-size:9px}.game-layout #objectives{gap:7px}.game-layout .objective-icon{width:27px;height:27px;font-size:23px}.game-layout .objective-icon .ingredient{width:30px;height:30px}.game-layout .objective-amount{font-size:13px}.game-layout .mission-card{background:linear-gradient(135deg,#fffceb,#fff0f6)}.game-layout .board-shell{background:linear-gradient(145deg,#fff9e9,#ffe5ec 55%,#e4d6e9);border-color:#fff9e9}
@keyframes marker-float{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,-6px)}}@keyframes gift-glow{0%,100%{filter:drop-shadow(0 0 1px #ffe7ac)}50%{filter:drop-shadow(0 0 12px #fff1b2)}}
@media(max-width:680px){.map-view .topbar{width:calc(100% - 24px);min-height:81px}.map-screen{width:100%;padding-bottom:102px}.map-intro{padding:8px 18px 14px;gap:10px}.map-kicker{font-size:8px;letter-spacing:1.1px}.map-intro h1{font-size:28px}.map-intro p{font-size:10px;line-height:1.5;max-width:225px}.petal-wallet{min-width:77px;padding:7px 8px;grid-template-columns:21px 1fr;border-radius:17px}.petal-wallet>span{font-size:22px}.petal-wallet strong{font-size:19px}.petal-wallet small{font-size:7px;letter-spacing:1.5px}.endless-banner{width:calc(100% - 28px);margin:0 14px 14px;gap:10px;padding:10px 12px;border-radius:20px}.endless-mark{font-size:43px}.endless-banner strong{font-size:18px}.endless-banner small{font-size:9px;max-width:200px}.endless-arrow{font-size:11px}.trail-map{border-radius:26px 26px 18px 18px;border-left:0;border-right:0}.world-banner{width:85%;top:25px;padding:10px 12px;border-radius:20px}.world-banner h2{font-size:23px}.world-banner p{font-size:10px}.world-banner>span{font-size:8px;letter-spacing:2px}.trail-node{width:65px;height:65px;border-width:4px}.trail-node .node-number{font-size:27px}.trail-node.current{width:77px;height:77px;border-width:4px}.trail-node.current .node-number{font-size:32px}.node-stars{font-size:18px}.you-marker{font-size:10px;padding:4px 11px;bottom:calc(100% + 10px)}.trail-gift{width:66px;height:88px}.trail-gift .booster-art{width:66px;height:66px}.trail-gift small{font-size:7px;letter-spacing:.6px;padding:3px 6px}.map-nav{border-radius:24px;bottom:max(12px,env(safe-area-inset-bottom));width:calc(100% - 24px);padding:5px}.map-nav button{font-size:10px;padding:4px 5px}.map-nav button>span{font-size:27px}.map-ending{padding:26px 25px 17px}.map-ending strong{font-size:18px}.map-ending p{font-size:11px}.map-ending small{font-size:9px}.pouch-modal{padding:29px 18px 22px}.pouch-title h2{font-size:25px;margin-bottom:7px}.pouch-title>span{font-size:14px;padding:5px 9px}.pouch-modal .eyebrow{font-size:9px;letter-spacing:1.5px}.pouch-modal>p{font-size:11px}.pouch-item{gap:9px;padding:8px 9px}.pouch-art{width:65px;height:65px}.pouch-art>b{min-width:22px;height:22px;line-height:18px;font-size:11px}.pouch-item h3{font-size:14px}.pouch-item p{font-size:10px;line-height:1.5;margin:3px 0 7px}.pouch-buttons{gap:6px}.pouch-buttons button{padding:6px 9px;font-size:10px;min-width:53px}.pouch-status{font-size:11px!important}.extra-tools{margin-top:14px;gap:7px}.extra-tools button{font-size:11px;padding:6px 9px}.extra-tools button+button{font-size:10px}.level-preview h2{font-size:27px}.preview-goals{gap:6px;margin-left:-12px;margin-right:-12px}.preview-goals>div{min-width:58px;padding:7px 6px 8px}.preview-goals .ingredient,.preview-goal-icon{width:37px;height:37px}.preview-goals b{font-size:14px}.preview-goals small{font-size:8px}.preview-meta{font-size:11px}.game-layout #objectives{gap:6px}.game-layout .objective-icon{width:22px;height:25px;font-size:19px}.game-layout .objective-icon .ingredient{width:27px;height:27px}.game-layout .objective-amount{font-size:12px}.game-layout .score-caption{font-size:9px}.game-layout .chapter .eyebrow{font-size:8px}.game-layout .chapter h1{font-size:12px}.game-layout .mission-card{grid-template-columns:61px 1fr;column-gap:9px;padding-right:9px}.game-layout .moves strong{font-size:40px}}
@media(max-width:370px){.map-intro h1{font-size:26px}.map-intro p{max-width:190px;font-size:9px}.endless-banner small{max-width:167px}.endless-arrow{font-size:10px}.pouch-art{width:57px;height:57px}.pouch-item h3{font-size:13px}.pouch-buttons button{font-size:9px;padding:6px 8px}.game-layout .objective-amount{font-size:11px}.game-layout #objectives{gap:4px}.game-layout .objective-icon{width:21px}.game-layout .chapter{gap:3px 5px}.game-layout .extra-tools button{font-size:10px}}

/* Keep chapter signs above the winding trail. */
.map-world{z-index:auto}.world-banner{z-index:2}

.tool-icon .booster-art{width:38px;height:38px;filter:drop-shadow(0 3px 2px #92725255)}

/* Independent music and effects controls. */
.audio-modal{max-width:430px;background:linear-gradient(140deg,#fff5f8,#f3edff)}.audio-modal h2{font-size:29px}.audio-setting{margin-top:22px;padding:16px;border:1px solid #e7cadf;border-radius:20px;background:#fff9}.audio-setting-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.audio-setting label{font-size:16px;font-weight:800;color:#96638e}.audio-switch{min-width:64px;min-height:38px;border-radius:20px;font-size:14px;font-weight:900;background:#e8d9e5;color:#9a8594;border:2px solid #fff}.audio-switch[aria-pressed="true"]{background:linear-gradient(#ed9dd0,#da7db7);color:white;box-shadow:0 3px #b35d96}.audio-slider{display:flex;align-items:center;gap:12px;margin-top:17px}.audio-slider input{min-width:0;flex:1;accent-color:#c981bb;height:30px;cursor:pointer}.audio-slider output{font-size:14px;font-weight:800;color:#ab719c;min-width:39px}.music-status{font-size:14px!important;line-height:1.5;min-height:40px;margin-top:20px!important;color:#a585a0!important}

/* Match indicators and the final cascade. */
.tile.special-f .piece{filter:drop-shadow(0 0 5px #89fff2)}.tile.special-f .piece:after{content:'✦';position:absolute;right:-2px;bottom:-2px;font-size:24px;line-height:1;color:#fffce6;text-shadow:0 0 3px #139d95,0 2px 2px #468773;z-index:2}.wisp-flight{position:absolute;width:43px;height:43px;pointer-events:none;z-index:12;filter:drop-shadow(0 0 5px #d0fff4) drop-shadow(0 0 11px #6ee7d2)}.wisp-flight .ingredient{width:100%;height:100%}.chain-counter{position:absolute;left:50%;top:-15px;transform:translateX(-50%);z-index:12;border-radius:14px;padding:4px 12px;background:linear-gradient(#fff5da,#ffdab6);color:#b17668;box-shadow:0 3px #bc798573;font-size:12px;font-weight:1000;letter-spacing:1.3px;white-space:nowrap;pointer-events:none}.chain-counter:empty{display:none}.skip-finale{position:absolute;right:12px;bottom:12px;z-index:15;padding:9px 15px;border-radius:17px;border:2px solid white;background:#fff7f4ed;color:#a675a1;font-size:13px;font-weight:900;box-shadow:0 4px #b783ad7d}

.preview-lesson{padding:13px 15px;margin:17px 0 0;border-radius:17px;border:1px solid #ddc3d6;background:linear-gradient(120deg,#fae6f2,#eff0df);text-align:left}.preview-lesson strong{font-size:14px;color:#a46d9a;font-weight:900}.preview-lesson p{font-size:14px;line-height:1.5;margin:5px 0 0;color:#97858d}

/* A full-screen top-layer stage keeps the celebration visible around its card. */
.result-modal{width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;border-radius:0;overflow:hidden;background:transparent;box-shadow:none;text-align:center}
.result-modal[open]{display:grid;place-items:center}
.result-modal::backdrop{background:radial-gradient(ellipse at 50% 30%,#de81b5a6,#724d9299);backdrop-filter:blur(7px)}
.victory-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3}
.result-card{position:relative;z-index:2;isolation:isolate;width:min(430px,calc(100% - 32px));max-height:calc(100svh - 38px);overflow:auto;border:4px solid #fff;border-radius:34px;padding:27px 30px 23px;background:radial-gradient(ellipse at 50% 0%,#fff5cf,transparent 48%),linear-gradient(145deg,#fffafa,#ffe2f3);box-shadow:0 9px 0 #bc71ac,0 18px 65px #65397566}
.result-card h2{font-size:32px;line-height:1.12;letter-spacing:-1px;margin:10px 0 11px;color:#c152a3;text-wrap:balance}
.result-card>p{font-size:14px;line-height:1.6;margin:0;color:#ac829c}
.result-card>.eyebrow{font-size:11px;letter-spacing:2.5px;color:#ba78a0}
.victory-crown{display:none;position:absolute;z-index:-1;top:-87px;left:50%;transform:translateX(-50%);width:340px;height:300px;font-size:230px;line-height:1.3;color:#ffd87c22;text-shadow:0 0 40px #ffd87866;pointer-events:none}
.won .victory-crown{display:block}
.result-card .result-stars{display:flex;justify-content:center;align-items:center;gap:9px;height:103px;margin:0 0 8px;font-size:70px;letter-spacing:0;line-height:1;-webkit-text-stroke:3px #fffae0;text-shadow:0 5px 0 #d49933,0 9px 12px #e9a44440;overflow:visible}
.result-star{position:relative;display:inline-block;transform:rotate(var(--star-tilt));color:#ffcb4d}
.result-star:nth-child(2){font-size:85px;margin-top:-17px}
.result-star.dim{color:#e4cadf;text-shadow:0 4px #c9acc7;-webkit-text-stroke:3px #fff4f8;opacity:.65}
.celebrating .result-star.lit{animation:reward-star .8s var(--star-delay) cubic-bezier(.22,.8,.35,1.15) both}
.celebrating .result-star.lit:after{content:'✦';position:absolute;top:6px;left:0;font-size:20px;color:white;-webkit-text-stroke:0;text-shadow:0 0 9px #fff6c5;animation:star-glint 1.1s calc(var(--star-delay) + .25s) both}
.celebrating .result-card{animation:victory-arrival .6s cubic-bezier(.22,.8,.35,1.08) both}
.result-card .result-score{position:relative;margin-top:17px;padding:10px;border:2px solid #fff7d2;background:linear-gradient(110deg,#fff1c8,#ffefd9 52%,#fff5d2);color:#bf8d69;box-shadow:0 3px 0 #e1b18133}
.result-card .result-score>span{font-size:10px;letter-spacing:2px;font-weight:900}
.result-card .result-score strong{font-size:43px;line-height:1.24;color:#c88940;font-variant-numeric:tabular-nums}
.victory-loot{display:grid;grid-template-columns:30px auto;column-gap:7px;justify-content:center;align-items:center;max-width:290px;margin:13px auto 0;padding:10px 20px;border-radius:18px;background:#eff7da;border:2px solid white;color:#849767;box-shadow:0 3px #bdd49c55}
.victory-loot>span{grid-row:span 2;font-size:32px;color:#d592a9;line-height:1}
.victory-loot strong{font-size:16px;line-height:1.35;text-align:left}
.victory-loot small{font-size:9px;line-height:1.5;color:#91a477;text-align:left}
.celebrating .victory-loot{animation:loot-bounce .6s 1.25s cubic-bezier(.22,.8,.35,1.2) both}
.result-card .primary-button{margin-top:21px;font-size:17px;min-height:51px;box-shadow:0 6px 0 #b64d98,0 10px 17px #ed91b93b}
.result-card .secondary-button{margin-top:14px;font-size:13px;padding:10px 8px}
.audio-credits{display:block;text-align:center;font-size:10px;color:#ad8b9e;margin-top:13px;text-underline-offset:3px}
@keyframes victory-arrival{0%{opacity:0;transform:translateY(32px) scale(.84)}65%{opacity:1;transform:translateY(-5px) scale(1.025)}100%{transform:translateY(0) scale(1)}}
@keyframes reward-star{0%{opacity:0;transform:translateY(-45px) scale(2.5) rotate(calc(var(--star-tilt) - 24deg))}45%{opacity:1;transform:translateY(5px) scale(.85) rotate(var(--star-tilt))}70%{transform:translateY(-5px) scale(1.16) rotate(var(--star-tilt))}100%{opacity:1;transform:translateY(0) scale(1) rotate(var(--star-tilt))}}
@keyframes star-glint{0%{opacity:0;transform:translate(-5px,10px) scale(.4)}40%{opacity:1;transform:translate(14px,-2px) scale(1.2)}100%{opacity:0;transform:translate(39px,8px) scale(.5)}}
@keyframes loot-bounce{0%{opacity:0;transform:translateY(12px) scale(.7)}65%{opacity:1;transform:translateY(-3px) scale(1.06)}100%{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:480px){.result-card{padding:24px 23px 17px;border-radius:30px}.result-card h2{font-size:31px}.result-card .result-stars{font-size:64px;height:91px;gap:12px}.result-star:nth-child(2){font-size:78px}.result-card>p{font-size:13px}.result-card .result-score strong{font-size:40px}}
@media(max-height:620px){.result-card{padding:16px 22px 12px}.result-card .result-stars{height:63px;font-size:48px;margin-bottom:0}.result-star:nth-child(2){font-size:59px;margin-top:-9px}.result-card h2{font-size:26px;margin:5px 0 8px}.result-card>p{font-size:12px}.result-card .result-score{margin-top:10px;padding:6px}.result-card .result-score strong{font-size:32px}.victory-loot{margin-top:10px;padding:7px 16px}.result-card .primary-button{margin-top:13px;min-height:45px}.result-card .secondary-button{margin-top:10px;padding:6px}}
@media(prefers-reduced-motion:reduce){.victory-canvas{display:none}.celebrating .result-card,.celebrating .result-star.lit,.celebrating .victory-loot{animation:none}.celebrating .result-star.lit:after{display:none}}

/* Seals communicate a fixed obstacle without hiding the ingredient beneath. */
.tile.sealed{background:linear-gradient(145deg,#f8cbe1,#dba6c8);box-shadow:inset 0 0 0 2px #ffedc2,inset 0 0 10px #aa637c33}
.tile.sealed .piece{opacity:.68;filter:saturate(.8)}
.herbal-seal{position:absolute;inset:5px;z-index:4;pointer-events:none;display:grid;place-items:center;border:2px solid #fff0c2;border-radius:10px;box-shadow:0 0 0 2px #cda26380;background:linear-gradient(45deg,transparent 43%,#d79856 44%,#ffe4a5 49%,#e4b272 55%,transparent 56%),linear-gradient(-45deg,transparent 43%,#d79856 44%,#ffe4a5 49%,#e4b272 55%,transparent 56%)}
.herbal-seal>span{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;border:2px solid #fff2c7;background:linear-gradient(#ffdc8e,#d79657);color:#fff9e5;font-size:20px;line-height:1;box-shadow:0 2px #b78358;text-shadow:0 1px #be8b50}
.tile.seal-crack .herbal-seal{animation:seal-release .28s ease-out forwards}
.difficulty-badge{display:table;margin:14px auto -5px;padding:4px 13px;border-radius:20px;border:1px solid #fff5;background:#ebd6ec;color:#a1669c;font-size:12px;font-weight:900;letter-spacing:.6px}
.difficulty-badge.guardian{background:linear-gradient(#c795ca,#a772b5);color:#fff8ed;box-shadow:0 3px #865c98}
.seal-goal{color:#c49659}
.game-layout #objectives{flex-wrap:wrap;row-gap:5px}
@keyframes seal-release{0%{opacity:1;transform:scale(1)}30%{transform:scale(1.14) rotate(-8deg)}100%{opacity:0;transform:scale(1.45) rotate(12deg)}}
@media(max-width:480px){.herbal-seal{inset:4px;border-radius:8px}.herbal-seal>span{width:23px;height:23px;font-size:17px}.preview-goals{gap:5px}.preview-goals>div{min-width:57px}.game-layout #objectives{column-gap:8px}}

/* Three introductory stages have their own silhouettes and objective colors. */
.tile.void{visibility:hidden;pointer-events:none;background:transparent!important;box-shadow:none!important;border:0!important}
.game-layout[data-theme="harvest"] .board,.game-layout[data-theme="frost"] .board,.game-layout[data-theme="seals"] .board{background:transparent;border-color:transparent;box-shadow:none}
.game-layout[data-theme="harvest"] .board-shell{background:radial-gradient(ellipse at 50% 40%,#fff1ce,#f6bada);border-color:#fff6dc}
.game-layout[data-theme="harvest"] .tile:not(.void):not(.selected):not(.drag-target):not(.jelly):not(.sealed){background:linear-gradient(140deg,#fbd5e7,#eeb5d5);box-shadow:inset 0 2px #fff6,0 2px #c28caf55}
.game-layout[data-theme="frost"] .board-shell{background:radial-gradient(ellipse at 50% 40%,#e1fbfc,#efccf0);border-color:#f0ffff}
.game-layout[data-theme="frost"] .tile:not(.void):not(.selected):not(.drag-target):not(.jelly):not(.sealed){background:linear-gradient(140deg,#d1f3f3,#a8d7e1);box-shadow:inset 0 2px #fff8,0 2px #77b4c455}
.game-layout[data-theme="frost"] .board-heading{color:#669fae}
.game-layout[data-theme="frost"] .mission-card{background:linear-gradient(135deg,#f5ffff,#f8e7fa)}
.game-layout[data-theme="seals"] .board-shell{background:radial-gradient(ellipse at 50% 45%,#fbebff,#d6b4ec);border-color:#fff1dd}
.game-layout[data-theme="seals"] .tile:not(.void):not(.selected):not(.drag-target):not(.jelly):not(.sealed){background:linear-gradient(140deg,#e0c7ee,#bf9cd4);box-shadow:inset 0 2px #fff5,0 2px #8c69a555}
.game-layout[data-theme="seals"] .tile.sealed{background:linear-gradient(145deg,#f8dba2,#d49aba)}
.game-layout[data-theme="seals"] .mission-card{background:linear-gradient(135deg,#fff4dd,#f6e4fb)}
.preview-board{display:grid;grid-template-columns:repeat(8,1fr);gap:2px;width:94px;height:94px;margin:15px auto 0;padding:2px}
.preview-board i{border-radius:2px;background:#e9a2c8;box-shadow:inset 0 1px #fff6}
.preview-board .empty{visibility:hidden}.preview-board .frozen{background:#9fdce5;border:1px solid white}.preview-board .locked{background:#e4b674;border:1px solid #fff2be}
.level-preview[data-theme="frost"]{background:linear-gradient(#f5feff,#f8e6f8)}
.level-preview[data-theme="frost"] .preview-board .open{background:#d3c1e5}
.level-preview[data-theme="seals"]{background:linear-gradient(#fff7e7,#f2dffb)}
.level-preview[data-theme="seals"] .preview-board .open{background:#c5a0d7}
.level-preview .preview-board:not([hidden])~.preview-goals{margin-top:17px}
/* The village chapter: candy-bright framing with original herbal artwork. */
.welcome-screen{position:fixed;inset:0;z-index:50;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:clamp(60px,12svh,120px) 24px max(36px,env(safe-area-inset-bottom));background:linear-gradient(#73d7fa22,#a5edee00 48%,#b9de7499),url('/assets/herbal-village-v9.webp') center/cover no-repeat;background-color:#84d5f0;text-align:center;overflow:auto}
.welcome-view{overflow:hidden}.welcome-screen[hidden]{display:none}.welcome-logo{color:#ffe587;font-family:Georgia,serif;font-weight:900;line-height:.85;letter-spacing:-4px;filter:drop-shadow(0 8px 0 #ad672a);transform:rotate(-5deg);text-shadow:0 2px #fffce1,0 -2px #fffce1,3px 0 #fffce1,-3px 0 #fffce1}.welcome-logo>span{display:block;font-size:clamp(62px,16vw,102px)}.welcome-logo>strong{display:block;font-size:clamp(90px,24vw,154px);color:#ffdb60}.welcome-logo>small{display:block;margin-top:24px;font:800 12px/1.5 system-ui;letter-spacing:2px;color:#773755;text-shadow:0 1px #fff;filter:none}.welcome-actions{width:min(340px,100%);margin-top:100px}.welcome-actions .primary-button{font:900 36px/1.1 Georgia,serif;font-style:italic;min-height:70px;border-radius:40px}.welcome-actions .secondary-button{margin-top:24px;color:#fff;border-radius:32px;background:linear-gradient(#72e1fa,#2893d9);border:3px solid #ccfbff;box-shadow:0 5px #2275a6;padding:13px;font-size:17px;font-weight:800;text-shadow:0 1px #267fae}.welcome-actions>p{display:inline-block;margin-top:20px;font-size:13px;font-weight:700;color:#684942;background:#ffffffe8;padding:8px 14px;border-radius:18px}
body.map-view{background:#f8b8dd}.map-view .world-scene{background-image:linear-gradient(#fcc2e677,#f6b7dcbb),url('/assets/herbal-village-v9.webp');filter:blur(7px)}
.map-view .topbar{position:sticky;top:0;z-index:21;width:min(640px,100%);padding:10px 16px;background:repeating-linear-gradient(130deg,#ffd1e8 0 28px,#ffdbee 28px 56px);border:3px solid #fff0f8;border-top:0;border-radius:0 0 24px 24px;box-shadow:0 5px 0 #bf579344;min-height:80px}.map-view .brand-name{font-size:28px}.map-view .brand-name small{font-size:8px}.map-intro{padding:20px 20px 18px;background:linear-gradient(#ffe2f2,#ffd4ec);border-bottom:3px solid #ffeaf6}.map-kicker{color:#ac4b7d;font-size:12px;letter-spacing:1.2px}.map-intro h1{font-family:Georgia,serif;font-style:italic;color:#9d3b78;font-size:30px}.map-intro p{font-size:13px;color:#815169}.petal-wallet{background:linear-gradient(#fff5d7,#ffde8e);border-color:#fff8df;color:#a14e28;box-shadow:0 4px #d68a64}.petal-wallet small{font-size:10px}.endless-banner{display:none}
.trail-map{border-radius:0;border:0;box-shadow:none}.map-world,.map-world.world-1,.map-world.world-2,.map-world.world-3{background-image:linear-gradient(#fff0f700 85%,#efbdda85),url('/assets/herbal-village-v9.webp');background-size:100% 100%;background-position:center;background-color:#78cbe8}.map-world.world-1{background-image:linear-gradient(#ffb7751c,#fbb45b33),url('/assets/herbal-village-v9.webp')}.map-world.world-2{background-image:linear-gradient(#7df6f229,#859deb25),url('/assets/herbal-village-v9.webp')}.map-world.world-3{background-image:linear-gradient(#7653bc99,#30197099),url('/assets/herbal-village-v9.webp')}.world-banner{background:linear-gradient(#fff8ea,#ffe3f4);border:3px solid #fff7dd;box-shadow:0 5px #c979a1,0 9px 16px #69395222;max-width:360px}.world-banner>span{font-size:11px;color:#b54181!important}.world-banner h2{color:#a43275;font-family:Georgia,serif;font-style:italic}.world-banner p{font-size:12px;color:#874967}
.trail-shadow{stroke:#6a597c66;stroke-width:31}.trail-base{stroke:#fff4e0;stroke-width:26}.trail-dashes{stroke:#f493d3;stroke-width:20;stroke-dasharray:14 14}.trail-done{stroke:#e85da7;stroke-width:20;opacity:1}
.trail-node{background:linear-gradient(#ffb8dc,#ee4b9c 70%,#cf267d);color:#fff5e4;border-color:#ffeecf;box-shadow:0 6px #aa396f,0 11px 12px #63345655,inset 0 3px #ffe1ef}.trail-node.current{background:linear-gradient(#ff91c5,#ef197e);color:#fff9e7;border-color:#fff0bb;box-shadow:0 6px #a42960,0 0 0 5px #ffeba955,0 12px 20px #76356c44}.trail-node.complete{background:linear-gradient(#ffb8da,#e555a2);color:#fff4df;border-color:#ffe7c4}.trail-node.locked{opacity:.87;background:linear-gradient(#c1b8ea,#8b81c6);border-color:#f3eafa;color:#eeebff;box-shadow:0 5px #6d619e,0 9px 12px #43365944}.trail-node.rank-hard{background:linear-gradient(#81d7ff,#548ee4);border-color:#dcf6ff;box-shadow:0 6px #4665a1,0 9px 15px #37477444}.trail-node.rank-super{background:linear-gradient(#c49bff,#9751dc);border-color:#f2d9ff;box-shadow:0 6px #73439c,0 9px 15px #6c377444}.trail-node.rank-legendary{background:linear-gradient(#ffab61,#e24447 55%,#a22c60);border-color:#ffe58a;box-shadow:0 6px #9e3c4e,0 0 0 4px #ffc05755,0 9px 15px #74374366}.node-difficulty{position:absolute;top:-21px;left:50%;transform:translateX(-50%);font-size:28px;line-height:1;color:#fff2c1;text-shadow:0 2px #773660,-1px -1px #ab6938}.rank-legendary .node-difficulty{color:#ffda56;font-size:36px}.you-marker{color:#a52e68;background:#fff4d9;border-color:#fff9ed}.node-stars{color:#ffe77c;text-shadow:0 2px #ae7040}
.map-nav{width:min(640px,100%);bottom:0;padding:7px 8px max(9px,env(safe-area-inset-bottom));border-radius:20px 20px 0 0;border-color:#ffe7f5;background:linear-gradient(#ffc6e9,#f18ac7);box-shadow:0 -3px #f5a9d3,0 -9px 28px #7f346136}.map-nav button{font-size:13px;color:#8b3a74;min-height:60px;flex:1;border-radius:16px}.map-nav button.active{background:linear-gradient(#ffecf6,#ffd8ef);color:#bc397f}.map-nav button>span{color:#c44191;font-size:28px}.map-ending{background:#ffd8ee}.map-ending strong{color:#a24579}.map-ending p,.map-ending small{color:#80586f;font-size:13px}
.trail-secret{position:absolute;left:79%;top:189px;transform:translate(-50%,-50%) rotate(-9deg);width:76px;height:76px;padding:0;z-index:4;background:none;filter:drop-shadow(0 6px 3px #5d4c6166)}.trail-secret:hover{transform:translate(-50%,-50%) rotate(3deg) scale(1.08)}.secret-spark{position:absolute;right:0;top:0;color:#fffce3;text-shadow:0 1px #ddab5d;font-size:27px;animation:secret-glint 2.5s ease-in-out 4}.trail-secret.discovered .secret-spark{color:#ffd4f1;animation:none}@keyframes secret-glint{50%{transform:scale(1.3);opacity:.5}}
.modal{border:5px solid #ffb4d9;outline:3px solid #fff2dd;box-shadow:inset 0 0 0 3px #fff1f8,0 7px #bd4c92,0 22px 70px #66336177;background:linear-gradient(145deg,#fff4fa,#ffe1f0);border-radius:30px}.modal::backdrop{background:#44203e9e;backdrop-filter:blur(3px)}.modal h2{font-family:Georgia,serif;font-style:italic;color:#a83878}.modal p{font-size:16px;color:#895074;line-height:1.6}.primary-button{background:linear-gradient(#ff9bd0 0%,#ff3ca3 42%,#ed0788 95%);border:3px solid #ffdbef;border-radius:32px;box-shadow:inset 0 3px #ffe5f477,0 5px #a92172,0 8px 14px #c5499133;text-shadow:0 2px #bb256f;min-height:52px;font-family:Georgia,serif;font-style:italic;font-size:22px}.primary-button:active{transform:translateY(3px);box-shadow:inset 0 3px #ffe5f477,0 2px #a92172}.close-dialog{width:39px;height:39px;background:linear-gradient(#ff8cbe,#eb257f);color:#fff6e7;border:2px solid #ffdcdf;box-shadow:0 3px #ab306e;z-index:4;font-size:30px}.secondary-button{font-size:16px;color:#934d77}
.level-preview{padding:26px 23px 24px;max-width:470px}.level-preview h2{font-size:27px;margin:6px 0}.level-preview #preview-description{font-size:14px;line-height:1.5}.level-preview .preview-number{font-size:38px;line-height:1.2;margin:9px auto 4px}.preview-lesson{display:none}.preview-board{margin:12px auto;max-width:116px}.preview-board .capsule{background:#fa62a3;border-color:#ffd7ed}.preview-goals{flex-wrap:wrap;margin:12px 0}.preview-goals>div{min-width:65px}.preview-goals small{font-size:12px}.preview-meta{font-size:13px;flex-wrap:wrap;gap:7px}.difficulty-badge{font-size:14px;padding:6px 18px;background:#ffe1ef;color:#a33275}.level-preview[data-rank="hard"]{background:linear-gradient(#c9efff,#e9ddff)}.level-preview[data-rank="super"]{background:linear-gradient(#634496,#9451a9);color:#fff2fa}.level-preview[data-rank="legendary"]{background:linear-gradient(#7e2a4a,#3e183a);border-color:#ffa758;outline-color:#ffe7b5;box-shadow:inset 0 0 0 3px #ffd091,0 7px #9e3d4b,0 0 50px #ff7e4e66}.level-preview[data-rank="legendary"] h2,.level-preview[data-rank="super"] h2{color:#fff0d0}.level-preview[data-rank="legendary"] p,.level-preview[data-rank="super"] p,.level-preview[data-rank="legendary"] .eyebrow,.level-preview[data-rank="super"] .eyebrow{color:#f8c5dc}.level-preview[data-rank="legendary"] .difficulty-badge{background:linear-gradient(#ffb75c,#ed564d);color:#fff4bf}.level-preview[data-rank="super"] .difficulty-badge{background:#cf82ed;color:#fff7e5}.level-preview[data-rank="legendary"] .preview-meta,.level-preview[data-rank="super"] .preview-meta{color:#ffe1ee}
.starter-panel{margin-top:16px;padding:15px 0 10px;border-top:2px dashed #da8dba;border-bottom:2px dashed #da8dba}.starter-panel h3{font-family:Georgia,serif;font-style:italic;font-size:22px;color:#ad3d81;line-height:1.3;margin-bottom:12px}.starter-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.starter-choice{display:flex;flex-direction:column;align-items:center;gap:5px;background:none;color:#954975;padding:2px;min-width:0;border-radius:18px}.starter-choice:disabled{opacity:.43}.starter-circle{position:relative;display:grid;place-items:center;width:min(84px,100%);aspect-ratio:1;border-radius:50%;background:linear-gradient(#baf1ff,#70ceef);border:3px solid #e3faff;box-shadow:0 4px #548ec9,inset 0 3px #ffffff70}.starter-circle .booster-art{width:88%;height:88%}.starter-circle b{position:absolute;bottom:-2px;right:-2px;background:#fff6e5;color:#a33c7c;border:2px solid #fff;border-radius:20px;min-width:26px;height:26px;font:900 16px/22px system-ui}.starter-choice.chosen .starter-circle{background:linear-gradient(#afff69,#50cc38);border-color:#eeffc9;box-shadow:0 4px #369953}.starter-choice.chosen b{color:#288c35;font-size:20px}.starter-choice strong{font-size:13px;line-height:1.3;margin-top:5px}.starter-choice small{font-size:12px;line-height:1.3}.starter-panel #starter-note{font-size:12px;margin-top:10px;line-height:1.4}.level-preview[data-rank="legendary"] .starter-panel h3,.level-preview[data-rank="super"] .starter-panel h3{color:#fff0d8}.level-preview[data-rank="legendary"] .starter-choice,.level-preview[data-rank="super"] .starter-choice{color:#ffe9ed}
.feature-modal{text-align:center;padding:35px 26px 28px;max-width:430px}.feature-ribbon{display:block;background:linear-gradient(#f5ffff,#bceffd);border:3px solid #fff1ce;border-radius:35px;color:#326c9a;padding:10px 30px;margin:0 10px 15px;font:italic 900 24px/1.2 Georgia,serif;box-shadow:0 4px #d7a8b5}.feature-art{width:180px!important;height:180px!important;margin:26px auto;filter:drop-shadow(0 8px 8px #bb62a833)}.feature-modal h2{font-size:28px}.feature-modal .primary-button{max-width:270px;margin:24px auto 0}
.obstacle-art{display:block;background-image:url('/assets/herbal-obstacles-v9.webp');background-repeat:no-repeat;background-size:300% 300%;pointer-events:none}.obstacle-art.layer-3{background-position-x:0}.obstacle-art.layer-2{background-position-x:50%}.obstacle-art.layer-1{background-position-x:100%}.capsule-art{background-position-y:16%}.seal-art{background-position-y:82%}.tile>.obstacle-art{position:absolute;inset:0;z-index:4;border-radius:7px}.tile.sealed .piece{opacity:0}.tile.seal-crack .obstacle-art{animation:obstacle-crack .26s ease-out}.layer-dots{position:absolute;z-index:5;bottom:0;left:50%;transform:translateX(-50%);color:#fff8d5;background:#793451ce;border:1px solid #ffe2ee;border-radius:8px;padding:0 5px;font:bold 13px/15px system-ui;letter-spacing:1px;pointer-events:none}.capsule-ring{border-color:#ff57b0!important;box-shadow:0 0 25px #ffcc59,inset 0 0 20px #fff3ab}@keyframes obstacle-crack{40%{transform:scale(1.08) rotate(-5deg);filter:brightness(1.5)}70%{transform:scale(.91) rotate(5deg)}}
.huatuo-modal{text-align:center;max-width:420px;isolation:isolate;padding:34px 26px 26px;background:radial-gradient(circle at 50% 24%,#fff9d7,transparent 45%),linear-gradient(#fff3f9,#ffd9ed)}.huatuo-modal>*:not(#huatuo-petals){position:relative;z-index:1}.huatuo-modal .close-dialog{position:absolute}.huatuo-tea{width:114px;height:114px;margin:10px auto 0;filter:drop-shadow(0 6px 4px #aa467440)}.huatuo-wordmark{display:block;font:700 28px/1.5 Georgia,'Noto Serif TC',serif;letter-spacing:6px;color:#a34471}.huatuo-roman{display:block;letter-spacing:4px;font-size:12px;color:#b17290}.huatuo-modal h2{font-size:26px}.huatuo-reward{display:flex;flex-direction:column;gap:7px;margin-top:20px;background:#fff3d2;border:2px solid #fffaf0;border-radius:20px;padding:14px;color:#a06a35}.huatuo-reward strong{font-size:18px}.huatuo-reward span{font-size:13px;line-height:1.4}.huatuo-modal #huatuo-petals{position:absolute;inset:0;pointer-events:none;overflow:hidden;border-radius:25px;z-index:0}#huatuo-petals i{position:absolute;left:var(--x);top:-30px;color:#f080b6;font-size:24px;font-style:normal;animation:secret-petals 2.6s var(--delay) ease-out both}@keyframes secret-petals{0%{transform:translate(0,-20px) rotate(0);opacity:0}15%{opacity:.8}100%{transform:translate(var(--drift),590px) rotate(190deg);opacity:0}}
@media(min-width:700px){.welcome-screen{background-size:auto 100%;background-color:#99d8ec}.welcome-logo{margin-top:10px}.map-screen{box-shadow:0 0 50px #c5679b44}}
@media(max-width:480px){.map-view .top-actions{gap:6px}.map-view .brand-name{font-size:25px}.map-intro h1{font-size:27px}.map-intro{padding:17px 14px}.map-intro p{font-size:12px;max-width:220px}.trail-secret{width:63px;height:63px}.starter-options{gap:7px}.level-preview{padding:25px 17px 20px}.level-preview h2{font-size:25px}.starter-circle{width:73px}.starter-choice strong{font-size:12px}.preview-goals .ingredient,.preview-goal-icon{width:34px;height:34px}.preview-meta{font-size:12px}.feature-modal{padding:28px 22px 24px}.feature-art{width:154px!important;height:154px!important;margin:18px auto}.feature-modal h2{font-size:26px}.huatuo-modal{padding:30px 22px 24px}.huatuo-wordmark{font-size:25px}.huatuo-modal h2{font-size:25px}}
@media(prefers-reduced-motion:reduce){.secret-spark,#huatuo-petals i,.tile.seal-crack .obstacle-art{animation:none}#huatuo-petals{display:none}}

/* Hua Tuo's recipe collection connects the brand to every harvest. */
.welcome-lab{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;margin-top:24px;padding:6px 14px;color:#7e294b;background:#fff4e7ef;border:2px solid #fff;border-radius:24px;box-shadow:0 4px #ca839c44;text-align:left}.welcome-lab img{object-fit:contain}.welcome-lab strong,.welcome-lab small{display:block}.welcome-lab strong{font:900 21px/1.2 Georgia,serif;letter-spacing:2px}.welcome-lab small{font-size:14px;margin-top:4px}
.map-lab{display:flex;align-items:center;gap:12px;width:calc(100% - 30px);margin:0 15px 18px;padding:10px 14px 10px 6px;text-align:left;border:2px solid #fff4d6;border-radius:24px;background:linear-gradient(115deg,#fff7df,#ffe1ee 70%,#ffb6d5);box-shadow:0 5px #cf7fa0,0 9px 15px #993f6822;color:#842c54}.map-lab>img{flex:none;object-fit:contain;filter:drop-shadow(0 4px 3px #912e6733)}.map-lab-copy{display:flex;flex-direction:column;gap:4px;min-width:0}.map-lab-copy>strong{font:900 23px/1.15 Georgia,serif}.map-lab-copy>span:last-child{font-size:14px;line-height:1.4}.lab-brand-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.lab-brand-line b{font-size:14px;letter-spacing:2px}.lab-brand-line small{font-size:12px;letter-spacing:1px;color:#9c6647}.lab-entry-arrow{margin-left:auto;font-size:26px}.map-lab.recipe-ready{border-color:#ffe59d;box-shadow:0 5px #c87983,0 0 0 3px #fff2d4}.nav-lab-mark{font:bold 22px/30px Georgia,serif!important;letter-spacing:-2px}.trail-secret img{width:100%;height:100%;object-fit:contain}.trail-secret small{position:absolute;bottom:-15px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:12px;font-weight:900;color:#852a50;background:#ffedce;border:1px solid #fff5e1;border-radius:10px;padding:3px 6px}
.lab-game-panel{display:grid;grid-template-columns:minmax(0,1fr) 146px;gap:8px;margin:15px 0 4px;padding:8px;border:2px solid #fff4d7;border-radius:21px;background:linear-gradient(120deg,#fff1d9,#ffdef0);box-shadow:0 4px #d798b94a;color:#842c54}.lab-game-progress{position:relative;background:transparent;text-align:left;display:grid;gap:3px;padding:7px 9px;color:inherit;border-radius:14px;min-width:0}.lab-game-progress>span:first-child{font-size:12px;font-weight:900;letter-spacing:1.5px;color:#a4526c}.lab-game-progress strong{font-size:16px;line-height:1.25}.lab-game-progress>span{font-size:13px}.lab-game-progress.recipe-ready{background:#fff6cc}.lab-game-panel progress{width:100%;height:6px;border:0;margin:3px 0 0;background:#e9c5d5;border-radius:8px;overflow:hidden;accent-color:#da4b8c}.lab-game-panel progress::-webkit-progress-bar{background:#e9c5d5;border-radius:8px}.lab-game-panel progress::-webkit-progress-value{background:linear-gradient(90deg,#e45c9a,#efb24e);border-radius:8px}.lab-game-panel progress::-moz-progress-bar{background:#e45c9a}.lab-booster-button{display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;padding:2px 7px 7px;border:2px solid #fff4dc;border-radius:16px;background:linear-gradient(#ffd3e5,#f8a9cc);color:#862044}.lab-booster-button img{object-fit:contain;height:59px}.lab-booster-button>span{font-size:13px;line-height:1.2;font-weight:900}.lab-booster-button>b{position:absolute;right:6px;top:5px;display:grid;place-items:center;min-width:24px;height:24px;border-radius:14px;background:#94234e;color:#fff9e1;font-size:14px;border:2px solid #ffecbd}.lab-booster-button.active{outline:3px solid #b877df;background:#ffe8a1}.lab-game-panel button:disabled{opacity:.6;cursor:default}
.huatuo-modal{max-width:590px;padding:30px 25px 24px;text-align:left;background:radial-gradient(circle at 13% 0,#fff3bb,transparent 37%),linear-gradient(#fff0f7,#ffe1ec)}.lab-heading{display:grid;grid-template-columns:120px minmax(0,1fr);align-items:center;gap:14px;padding-right:14px}.lab-hero-bottle{width:120px;height:120px;object-fit:contain;filter:drop-shadow(0 6px 6px #8d3b5c22)}.lab-heading .huatuo-wordmark{font-size:28px;letter-spacing:4px;color:#8c2a4d;line-height:1.4}.lab-heading .huatuo-roman{font-size:14px;letter-spacing:3px;font-weight:900;color:#a97735;margin-top:3px}.lab-heading h2{font:900 26px/1.2 Georgia,serif;margin:8px 0 0;color:#922c59}.huatuo-modal .lab-intro{margin:14px 0;color:#86475d;font-size:16px}.lab-steps{display:flex;justify-content:space-between;gap:7px;padding:12px 0 17px;border-bottom:1px solid #d98eaa77}.lab-steps>span{display:flex;gap:5px;align-items:center;font-size:14px;font-weight:800;color:#87364f}.lab-steps b{display:grid;place-items:center;width:23px;height:23px;flex:none;border-radius:50%;background:#b44770;color:#fff2d6;font-size:13px}.lab-collection-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:20px 0 12px}.lab-collection-heading h3{font-size:17px;line-height:1.3;color:#87344e;margin:0}.lab-collection-heading>span{font-size:13px;white-space:nowrap;color:#94566a}.lab-recipes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.lab-recipe-card{display:flex;flex-direction:column;align-items:center;gap:7px;padding:11px 4px;color:#833954;border:2px solid #ecc0d2;background:#fff9ef;border-radius:16px;min-width:0;box-shadow:0 3px #deb0c4}.lab-recipe-card strong{font:900 16px/1.2 Georgia,serif;text-align:center;overflow-wrap:anywhere}.lab-recipe-card>span:last-child{font-size:12px;line-height:1.2;font-weight:800}.lab-recipe-card.selected{border-color:var(--recipe-color);box-shadow:0 3px var(--recipe-color);background:#fff0cf}.lab-recipe-card.brewed>span:last-child{color:#397754}.lab-card-herbs{display:flex;align-items:center;justify-content:center;width:100%;height:38px}.lab-card-herbs .ingredient{width:35px;height:35px;flex-shrink:0;margin:0 -4px;filter:drop-shadow(0 3px 1px #81375822)}.lab-recipe-detail{margin-top:19px;padding:17px 16px 11px;background:#ffffffb5;border:2px solid #fff9e4;border-radius:20px;box-shadow:0 4px #d98eaa22}.lab-recipe-heading{display:flex;justify-content:space-between;align-items:center;gap:8px}.lab-recipe-kicker{font-size:12px;letter-spacing:1px;font-weight:800;color:#a86565}.lab-recipe-heading h3{font:900 24px/1.2 Georgia,serif;margin:5px 0 12px;color:#972d53}.lab-recipe-heading>span{font-size:12px;font-weight:900;color:#a56231;background:#fff0bd;border-radius:10px;padding:6px}.lab-ingredients{display:grid;gap:10px;margin:4px 0 18px}.lab-ingredient{display:grid;grid-template-columns:37px minmax(0,1fr) auto;align-items:center;gap:1px 9px;color:#834052}.lab-ingredient>.ingredient{width:37px;height:37px;grid-row:span 2}.lab-ingredient>span>strong,.lab-ingredient small{display:block}.lab-ingredient>span>strong{font-size:15px}.lab-ingredient small{font-size:12px;color:#9b6878;margin-top:2px}.lab-ingredient>b{font-size:14px;font-variant-numeric:tabular-nums}.lab-ingredient.gathered>b{color:#427d60}.lab-ingredient progress{grid-column:2/4;width:100%;height:5px;border:0;border-radius:6px;overflow:hidden;background:#ecd3da;accent-color:#e28c9f}.lab-ingredient progress::-webkit-progress-bar{background:#ecd3da}.lab-ingredient progress::-webkit-progress-value{background:#e28c9f}.lab-ingredient progress::-moz-progress-bar{background:#e28c9f}.lab-ingredient.gathered progress{accent-color:#77ad85}.lab-ingredient.gathered progress::-webkit-progress-value{background:#77ad85}.lab-recipe-detail .primary-button{font-size:21px}.lab-recipe-detail .primary-button:disabled{background:#e7bdca;color:#986879;box-shadow:0 3px #c191a5;text-shadow:none;cursor:default}.huatuo-modal #lab-message{min-height:40px;font-size:14px;line-height:1.5;margin:15px 0 0;color:#925265}.lab-elixir{display:flex;gap:11px;align-items:center;margin-top:17px;padding:9px 10px;border:2px solid #edc38a;border-radius:18px;background:linear-gradient(110deg,#fff8df,#fce5d2);color:#913756}.lab-elixir>img{width:84px;height:84px;object-fit:contain;flex:none}.lab-elixir>div>span{font-size:12px;font-weight:900;letter-spacing:1px;color:#a4793d}.lab-elixir h3{font:900 22px/1.2 Georgia,serif;margin:5px 0}.lab-elixir h3 b{white-space:nowrap;font:800 16px/1.2 system-ui;color:#9b6a2b}.huatuo-modal .lab-elixir p{font-size:14px;line-height:1.45;margin:0;color:#956071}.huatuo-modal #lab-play{font-size:18px;min-height:48px;margin-top:14px;padding:10px;border:2px solid #ebadc5;border-radius:25px;color:#9a3563;background:#ffedf4}.huatuo-modal .lab-welcome-note,.huatuo-modal .lab-session-note{font-size:12px;line-height:1.5;text-align:center;margin:12px 0 0;color:#926676}.huatuo-modal .lab-session-note{margin-top:5px}.result-lab{display:flex;align-items:center;gap:10px;text-align:left;margin:12px 0 19px;padding:8px 13px;border:2px solid #efd3a7;border-radius:18px;background:#fff2dcd9;color:#924465}.result-lab img{object-fit:contain;flex:none}.result-lab>span{display:grid;gap:3px}.result-lab strong{font-size:12px;letter-spacing:1.5px}.result-lab>span>span{font-size:14px;line-height:1.4}.huatuo-bloom-ring{border-color:#ffd372!important;box-shadow:0 0 35px 18px #f952b37a,inset 0 0 20px #fff5c6!important}.just-brewed .lab-hero-bottle{animation:lab-brew-bounce 1.1s ease-out}@keyframes lab-brew-bounce{0%,100%{transform:scale(1) rotate(0)}25%{transform:scale(.9) rotate(-10deg)}55%{transform:scale(1.17) rotate(8deg)}75%{transform:scale(.98) rotate(-3deg)}}
@media(max-width:480px){.map-lab{gap:7px;padding-right:9px}.map-lab>img{width:67px;height:77px}.map-lab-copy>strong{font-size:21px}.map-lab-copy>span:last-child{font-size:13px}.lab-entry-arrow{font-size:22px}.huatuo-modal{padding:28px 16px 20px}.lab-heading{grid-template-columns:86px minmax(0,1fr);gap:10px;padding-right:8px}.lab-hero-bottle{width:86px;height:108px}.lab-heading .huatuo-wordmark{font-size:23px;letter-spacing:2px}.lab-heading h2{font-size:24px}.lab-heading .huatuo-roman{font-size:12px}.lab-recipes{gap:6px}.lab-card-herbs .ingredient{width:29px;height:29px}.lab-recipe-card strong{font-size:15px}.lab-recipe-detail{padding:14px 11px 10px}.lab-steps{gap:4px}.lab-steps>span{font-size:12px;gap:4px}.lab-steps b{width:20px;height:20px}.lab-elixir{gap:8px;padding:10px 6px}.lab-elixir>img{width:65px;height:77px}.lab-elixir h3{font-size:20px}.lab-game-panel{grid-template-columns:minmax(0,1fr) 126px}.map-nav button{padding-left:3px;padding-right:3px;font-size:12px}.welcome-lab{margin-top:20px}}
@media(prefers-reduced-motion:reduce){.just-brewed .lab-hero-bottle{animation:none}.huatuo-modal *{scroll-behavior:auto}}

/* Four-character collection and the exchange counter. */
.welcome-save-status{display:block;margin:13px 0 -4px;font-size:13px;color:#72294c;background:#fff3dfeb;border-radius:12px;padding:6px 9px}.welcome-actions button:disabled{cursor:wait;opacity:.65}.collection-banner{display:flex;flex-direction:column;align-items:center;gap:14px;width:calc(100% - 30px);margin:0 15px 20px;padding:17px 16px 18px;border:3px solid #fff5c9;border-radius:25px;background:radial-gradient(ellipse at 50% 100%,#fff0c9,transparent 65%),linear-gradient(120deg,#fbaacb,#ffe4f1);color:#872947;box-shadow:0 5px #c56b95,0 9px 16px #82314b22;text-align:center}.collection-banner-copy{display:grid;gap:5px}.collection-banner-copy>span{font-size:12px;font-weight:900;letter-spacing:1.6px;color:#9c4b57}.collection-banner-copy>strong{font:900 23px/1.2 Georgia,serif}.collection-banner-copy>small{font-size:14px;line-height:1.4}.collection-banner.gift-ready{background:radial-gradient(ellipse at 50% 100%,#fff2a8,transparent 65%),linear-gradient(120deg,#ffb2d0,#ffe8a4);border-color:#fffacb}.letter-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.letter-card{display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;border:2px solid #e4c0d1;background:linear-gradient(135deg,#f9edf3,#e9d9e5);border-radius:14px;box-shadow:0 4px #cba7be;color:#b59bad;min-width:0}.letter-card>b{font-family:Georgia,'Noto Serif TC','Songti TC','PMingLiU',serif;font-size:36px;font-weight:900;line-height:1.2}.letter-card.owned{color:#983b43;border-color:#ffedb5;background:linear-gradient(150deg,#fff7d8,#ffc377);box-shadow:inset 0 2px #fffbed,0 4px #c98b59,0 7px 10px #a45d3433;text-shadow:0 1px #fff3d8}.letter-cards.mini{width:min(330px,100%)}.mini .letter-card{height:64px}.mini .letter-card>b{font-size:37px}.letter-cards.tiny{gap:5px;width:134px;flex:none}.tiny .letter-card{height:38px;border-radius:8px;box-shadow:0 2px #cfa8be;border-width:1px}.tiny .letter-card>b{font-size:23px}.game-collection{display:flex;align-items:center;gap:12px;width:100%;padding:10px 11px;margin-top:14px;background:linear-gradient(110deg,#fff1d6,#ffe3f0);border:2px solid #ffefd1;border-radius:18px;color:#8a3558;text-align:left;box-shadow:0 3px #d38fa833}.game-collection>span:nth-child(2){display:grid;gap:4px}.game-collection strong{font-size:15px}.game-collection small{font-size:12px;line-height:1.2}.game-collection>span:last-child{margin-left:auto;font-size:22px}.game-collection.gift-ready{border-color:#eabd66;background:#fff0c5}.collection-modal{max-width:510px;text-align:center;padding:35px 25px 25px;background:radial-gradient(circle at 50% 20%,#fff6da,transparent 45%),linear-gradient(#ffe2ef,#fff3f7);border-color:#ffb2d0}.collection-kicker{font-size:12px;font-weight:900;letter-spacing:2px;color:#ac5a69}.collection-modal h2{font-size:30px;line-height:1.2;margin:15px 0 12px}.collection-modal>p{font-size:15px;line-height:1.5}.letter-cards.large{gap:10px;margin:25px 0 15px}.large .letter-card{min-height:129px;padding:12px 3px;gap:7px}.large .letter-card>b{font-size:44px}.large .letter-card>small{font-size:12px;font-weight:800}.large .letter-card>i{font-size:12px;line-height:1;font-style:normal;padding:5px 8px;background:#ffffff88;border-radius:10px}.collection-progress{display:grid;gap:5px;margin-bottom:20px;color:#945066}.collection-progress>strong{font-size:17px;color:#8c324e}.collection-progress>span{font-size:13px}.collection-gift{display:flex;align-items:center;text-align:left;gap:12px;padding:15px 12px;background:linear-gradient(130deg,#fff9e7,#f7dbb6);border:2px solid #eabb76;border-radius:22px;color:#89354a;margin-bottom:22px;box-shadow:0 4px #d89d9133}.collection-gift>img{object-fit:contain;flex:none}.collection-gift>div>span{font-size:12px;font-weight:900;letter-spacing:1px;color:#9f6c30}.collection-gift h3{font:900 24px/1.2 Georgia,serif;margin:5px 0 10px}.collection-gift ul{margin:0;padding:0;list-style:none;display:grid;gap:5px;font-size:15px}.collection-gift li::before{content:'✦';color:#ca9340;margin-right:7px}.collection-modal .primary-button:disabled{background:#eac6d4;color:#946b7d;text-shadow:none;box-shadow:0 4px #bd8aa7;cursor:default}.collection-modal #collection-message{font-size:14px;line-height:1.5;color:#936473;margin:18px 0;min-height:42px}.collection-history{text-align:left;border-top:1px dashed #d496b0;padding-top:15px;margin-top:20px}.collection-history h3{font-size:17px;color:#8d3a59;margin:0 0 10px;display:flex;justify-content:space-between}.collection-history h3>span{background:#b54f7b;color:#fff6e3;border-radius:12px;padding:2px 9px;font-size:14px}.collection-history>div>div{display:flex;align-items:center;gap:10px;font-size:13px;padding:9px 0;border-bottom:1px solid #eccbd8}.collection-history time{color:#a27687}.collection-history b{margin-left:auto;font-size:12px;color:#4e8460}.collection-history p{font-size:14px;margin:8px 0;color:#936879}.collection-modal .collection-save-note{font-size:12px;color:#947185;margin:17px 0 0}.collection-modal #collection-play{padding:12px;font-size:17px;margin-top:9px;min-height:44px}.collection-success{display:grid;gap:7px;padding:16px 10px;background:#eef5cc;border:2px solid #fff8dd;border-radius:18px;color:#538054}.collection-success>span{font-size:33px;color:#ddb04b}.collection-success>strong{font-size:18px}.collection-success p{font-size:13px;margin:0;color:#668765}.gift-reveal{animation:gift-reveal .65s ease-out}@keyframes gift-reveal{0%{transform:scale(.8);opacity:0}65%{transform:scale(1.04)}100%{transform:scale(1);opacity:1}}.result-collection{display:flex;align-items:center;gap:12px;text-align:left;width:100%;padding:12px;margin:15px 0 22px;border:2px solid #f4d39a;border-radius:20px;background:linear-gradient(120deg,#fff6d9,#ffdeef);color:#893552}.result-letter{display:grid;place-items:center;flex:none;width:56px;height:64px;background:linear-gradient(#fff3c0,#ffcb76);border:2px solid #fff8dc;box-shadow:0 3px #c18364;border-radius:12px;font:900 35px/1.2 Georgia,'Noto Serif TC',serif}.result-collection>span:nth-child(2){display:grid;gap:4px}.result-collection strong{font-size:16px}.result-collection small{font-size:13px;line-height:1.4}.result-collection>span:last-child{margin-left:auto;font-size:23px}.result-collection.letter-found .result-letter{animation:gift-reveal .7s ease-out}.huatuo-modal .lab-collection-link{display:block;width:100%;text-align:left;padding:10px 32px 10px 10px;margin:6px 0 15px;border:1px solid #eabc7b;border-radius:13px;background:#fff0cc;color:#95502e;font-size:14px;line-height:1.4}.card-toast{position:fixed;z-index:35;bottom:105px;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 32px);padding:13px 20px;border:2px solid #fff3b1;border-radius:25px;background:#8c315bec;color:#fff5d4;text-align:center;box-shadow:0 6px 25px #63323b44;font-size:15px;pointer-events:none}.save-notice{position:fixed;top:max(8px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);width:min(480px,calc(100% - 20px));z-index:55;display:flex;align-items:center;gap:10px;padding:12px 15px;background:#fff4d2;border:2px solid #dfa567;border-radius:17px;color:#92552b;box-shadow:0 7px 24px #8a573333;font-size:14px}.save-notice>button{flex:none;padding:9px;background:#a55264;border-radius:12px;color:white;font-size:13px}.collection-modal [hidden],.save-notice[hidden],.card-toast[hidden]{display:none!important}
@media(max-width:480px){.collection-modal{padding:32px 17px 20px}.collection-modal h2{font-size:28px}.large .letter-card{min-height:112px;gap:6px}.large .letter-card>b{font-size:36px}.letter-cards.large{gap:7px}.collection-gift>img{width:78px;height:88px}.collection-gift h3{font-size:22px}.collection-gift{gap:8px;padding:13px 8px}.collection-banner-copy>strong{font-size:22px}.game-collection{gap:9px}.letter-cards.tiny{width:119px}.tiny .letter-card>b{font-size:22px}.game-collection strong{font-size:14px}.result-collection{gap:9px;padding:10px}.collection-history>div>div{gap:7px}}
@media(prefers-reduced-motion:reduce){.gift-reveal,.result-collection.letter-found .result-letter{animation:none}}
.game-layout #objectives{flex-wrap:wrap}.game-layout[data-rank="hard"] .board-shell{border-color:#d9f1ff;background:linear-gradient(#b9daed,#bab1e4);box-shadow:0 7px #8077b1,0 15px 40px #8874a844}.game-layout[data-rank="super"] .board-shell{border-color:#e7c7ff;background:linear-gradient(#a775d2,#734d9e);box-shadow:0 7px #693b84,0 0 30px #c770ed66}.game-layout[data-rank="legendary"] .board-shell{border-color:#ffd275;background:linear-gradient(#af456b,#6e294e);box-shadow:0 7px #832b40,0 0 0 4px #e88656,0 0 38px #ff864766}.game-layout[data-rank="legendary"] .board-heading{color:#a52d66;font-weight:900}.game-layout[data-rank="legendary"] .mission-card{border-color:#ffd778;background:linear-gradient(#fff0ce,#ffd8e7)}

.phone-modal select{width:100%;padding:12px;border:1px solid #d5b89b;border-radius:12px;background:#fffaf2;color:#553b29;font:inherit;margin-bottom:14px}
