@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fredoka:wght@400;500;600;700&display=swap');
:root{--ink:#49303c;--berry:#bc3266;--cream:#fff7e9;--green:#467b65;--shadow:0 15px 40px #713f3210}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--cream);font-family:'DM Sans',sans-serif;background-image:radial-gradient(#e5d6bf66 .7px,transparent .7px);background-size:12px 12px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #277c86;outline-offset:5px}header{height:98px;max-width:1360px;margin:auto;padding:0 44px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e7d9c6}.brand{display:flex;gap:9px;align-items:center;font-family:Fredoka,sans-serif;font-size:25px;font-weight:600;text-decoration:none;color:var(--berry);line-height:1}.brand-small{display:block;font-size:11px;text-align:center;margin-top:7px}.brand-icon{font-size:45px;color:#de8459}nav{display:flex;gap:32px}nav button{border:0;background:none;color:#8e7b7e;font-size:13px;padding:15px 0}nav .active{color:var(--berry);box-shadow:0 2px var(--berry)}.icon{width:44px;height:44px;border:1px solid #e7d7c5;background:#fffaf1;border-radius:50%;color:var(--ink);font-size:20px}main{max-width:1280px;margin:auto;padding:42px 28px;min-height:calc(100vh - 155px)}h1,h2,h3{font-family:Fredoka,sans-serif;font-weight:500;margin:0}h1{font-size:76px;line-height:1.02;letter-spacing:-2px}h1 em{font-style:normal;color:var(--berry)}h2{font-size:37px}h3{font-size:23px}p{color:#887279;line-height:1.7}.eyebrow{font-size:11px;letter-spacing:2.4px;color:var(--green);font-weight:700;display:flex;gap:9px;align-items:center;margin-bottom:22px}.eyebrow:before{content:'';width:7px;height:7px;background:#7da17b;border-radius:50%}.hero{display:grid;grid-template-columns:1fr 1.12fr;align-items:center;gap:32px}.hero-copy{padding:24px 0 24px 14px}.hero-copy p{font-size:16px;max-width:360px;margin:25px 0}.primary{border:0;border-bottom:5px solid #8a2149;border-radius:17px;background:var(--berry);color:white;font-size:17px;font-weight:700;padding:19px 30px;box-shadow:0 8px 19px #bc326624;transition:transform .2s}.primary:hover{transform:translateY(-3px)}.primary span{margin-left:35px}.tiny{font-size:11px!important;margin:15px 0!important;color:#99868b}.scene{height:435px;border-radius:45% 45% 24px 24px;background:radial-gradient(ellipse at 50% 60%,#ffe9b2,#f8dbad);position:relative;overflow:hidden;isolation:isolate;box-shadow:inset 0 0 0 8px #fff1d9}.scene svg{width:100%;height:100%}.float-sweet{position:absolute;width:93px;height:93px;filter:drop-shadow(0 9px 7px #693d3530);animation:bob 4s ease-in-out infinite}.float-sweet.a{left:2%;top:27%;transform:rotate(-15deg)}.float-sweet.b{right:2%;top:16%;animation-delay:-2s}.float-sweet.c{right:9%;bottom:4%;width:80px}.scene-label{position:absolute;bottom:21px;left:50%;transform:translateX(-50%);background:#fff9e9e8;padding:10px 19px;border:1px solid #ead0ac;border-radius:22px;font-size:11px;white-space:nowrap;color:#8a624b}.star{position:absolute;color:#fffdf4;font-size:29px;left:18%;top:12%}.hero-stats{display:flex;gap:20px;margin-top:30px;font-size:11px;color:#8c7979}.hero-stats b{display:block;font-family:Fredoka;font-size:22px;color:var(--ink);margin-bottom:3px}.divider{width:1px;background:#e3d4c1}.section-head{display:flex;justify-content:space-between;align-items:center;margin:38px 0 19px}.section-head h2{font-size:25px}.text-btn{border:0;background:none;color:var(--berry);font-size:12px;font-weight:700}.worlds{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.world{display:flex;gap:18px;align-items:center;text-align:left;border:1px solid #eadac3;background:#fffaf1;border-radius:21px;padding:18px;color:var(--ink);position:relative;overflow:hidden;min-height:114px}.world:hover{border-color:#c9889b;transform:translateY(-2px)}.world-art{width:80px;height:76px;flex-shrink:0;border-radius:17px;display:grid;place-items:center;background:#f6dfb0}.world-art svg{width:60px;height:60px}.world small{display:block;color:#9b7f72;font-size:10px;margin-bottom:8px;text-transform:uppercase;letter-spacing:1px}.world h3{font-size:21px}.world p{font-size:11px;margin:7px 0 0}.world:nth-child(2) .world-art{background:#e8c8bc}.world:nth-child(3) .world-art{background:#d4edf0}.tag{position:absolute;right:12px;top:12px;font-size:9px;color:#8c7e7e}.screen-title{text-align:center;margin:5px 0 30px}.screen-title p{margin:8px}.screen-title .eyebrow{justify-content:center;margin-bottom:12px}.map-layout{display:grid;grid-template-columns:270px 1fr;gap:28px}.panel{background:#fffaf2;border:1px solid #e9d8c0;border-radius:24px;padding:26px;box-shadow:var(--shadow)}.panel p{font-size:13px}.panel .world-art{width:100%;height:140px;margin-bottom:23px}.panel .world-art svg{width:100px;height:100px}.map{position:relative;min-height:510px;background:radial-gradient(ellipse at 50% 50%,#f5dfb4,#f8ecd5);border:6px solid #fffbf0;border-radius:28px;overflow:hidden}.map svg.path{position:absolute;inset:0;width:100%;height:100%}.level{position:absolute;width:59px;height:59px;transform:translate(-50%,-50%);border-radius:50%;border:4px solid #fff7dc;background:#e5cfa9;color:#967f63;box-shadow:0 5px #b7a07b;font-family:Fredoka;font-size:23px}.level.current{background:#c83b72;box-shadow:0 5px #8b244b,0 0 0 9px #ffffff70;color:white}.map-deco{position:absolute;width:85px;opacity:.55}.pager{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:22px;font-size:12px}.pager button{border:1px solid #dccab5;border-radius:10px;background:white;padding:9px 14px;color:var(--ink)}.game-wrap{display:grid;grid-template-columns:230px minmax(300px,510px) 230px;justify-content:center;gap:25px;align-items:start}.game-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.game-head h2{font-size:27px}.board-shell{background:#edd6b7;border:7px solid #fff9ee;border-radius:26px;padding:13px;box-shadow:0 8px 0 #d3b695,0 20px 45px #75483915}.board{display:grid;grid-template-columns:repeat(8,1fr);gap:4px}.tile{padding:3px;aspect-ratio:1;border:0;border-radius:10px;background:#fff6e6a1;min-width:0;position:relative}.tile svg{width:100%;height:100%;filter:drop-shadow(0 3px 2px #9a635130)}.tile.selected{background:#ffed8b;outline:3px solid #dba345;z-index:1}.tile.frozen{background:#cbe9f4;border:1px solid #93cee4}.tile.frozen:after{content:'❄';position:absolute;bottom:0;right:2px;font-size:13px;color:#fcffff}.target{display:flex;align-items:center;gap:12px;margin:20px 0}.target svg{width:42px;height:42px}.target b{font-size:25px}.target small{display:block;font-size:10px;color:#a18d88}.moves{text-align:center;padding:20px;border-radius:16px;background:#f2e7d7;margin-top:20px}.moves b{display:block;font-family:Fredoka;font-size:44px;color:var(--berry)}.boosters{display:flex;justify-content:center;gap:16px;margin:24px 0}.boosters button{border:1px solid #dfc8a8;background:#fff8e7;border-radius:18px;width:65px;height:65px;font-size:25px;box-shadow:0 4px #dfc8a8}.hint{background:#f0eee0;border-radius:16px;padding:16px;font-size:12px;color:#6d7862;line-height:1.7}.preview-note{font-size:11px;text-align:center;color:#a08b85;margin-top:17px}.collection{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.sweet-card{text-align:center;padding:25px;background:#fffaf1;border-radius:24px;border:1px solid #ead8be}.sweet-card svg{width:120px;height:120px;filter:drop-shadow(0 10px 5px #72402920)}.sweet-card p{font-size:12px}.result{text-align:center;max-width:440px;margin:25px auto;background:#fffaf1;border:1px solid #e7cda4;border-radius:30px;padding:35px;box-shadow:var(--shadow)}.result-stars{font-size:52px;color:#e9b348;letter-spacing:8px;text-shadow:0 3px #bd8031}.result .medal{width:130px;height:130px;margin:20px auto;background:#ffebbc;border:10px double #e9b348;border-radius:50%;display:grid;place-items:center;font-size:55px;color:#bc3266}.result .primary{width:100%;margin:24px 0 15px}footer{max-width:1270px;margin:auto;display:flex;justify-content:space-between;padding:22px 30px;border-top:1px solid #e7d9c6;font-size:9px;letter-spacing:1.4px;color:#a18d85}dialog{border:1px solid #e4cfb4;border-radius:25px;padding:30px;max-width:390px;width:90%;color:var(--ink);background:#fff8ed;box-shadow:0 25px 90px #43273240}dialog::backdrop{background:#35233166;backdrop-filter:blur(5px)}dialog p{font-size:14px}dialog .primary{font-size:14px;padding:12px 20px;margin-top:14px}label.toggle{display:flex;justify-content:space-between;margin:20px 0;font-size:14px}@keyframes bob{50%{translate:0 -12px}}@media(min-width:1450px){main{padding-top:65px}.hero{gap:65px}.scene{height:470px}}@media(max-width:950px){h1{font-size:60px}.game-wrap{grid-template-columns:180px minmax(280px,500px)}.game-side{grid-column:1/-1}.world{padding:14px;gap:10px}.world-art{width:55px;height:60px}.world h3{font-size:17px}.hero-stats{gap:13px}}@media(max-width:650px){header{height:80px;padding:0 18px}.brand{font-size:20px}.brand-icon{font-size:34px}nav{gap:16px}nav button{font-size:10px}nav button:last-child{display:none}.icon{width:35px;height:35px}main{padding:25px 18px}.hero{grid-template-columns:1fr;gap:16px}.hero-copy{text-align:center;padding:5px}.eyebrow{justify-content:center;font-size:9px;margin-bottom:16px}h1{font-size:56px}.hero-copy p{font-size:14px;margin:18px auto;max-width:300px}.hero-stats{justify-content:center;margin-top:20px}.scene{height:310px;max-width:420px;width:100%;margin:auto}.worlds{grid-template-columns:1fr}.world-art{width:72px;height:68px}.world h3{font-size:22px}.section-head{margin-top:28px}.section-head h2{font-size:22px}.map-layout{grid-template-columns:1fr}.map-layout>.panel{display:none}.map{min-height:470px}.game-wrap{display:flex;flex-direction:column;gap:16px}.game-wrap>.panel:first-child{width:100%;padding:12px 18px;display:flex;align-items:center;justify-content:space-between}.game-wrap>.panel:first-child h3{font-size:16px}.target{margin:0;gap:5px}.target b{font-size:20px}.moves{margin:0;padding:7px 15px;font-size:10px}.moves b{font-size:27px}.game-center{width:100%}.game-side{width:100%;padding:20px}.board-shell{padding:7px;border-width:5px}.board{gap:3px}.tile{border-radius:7px;padding:2px}.collection{grid-template-columns:repeat(2,1fr);gap:12px}.sweet-card{padding:18px 10px}.sweet-card svg{width:85px;height:85px}.sweet-card h3{font-size:19px}.screen-title h2{font-size:32px}footer{font-size:8px;gap:20px;padding:20px}.float-sweet{width:72px;height:72px}.game-head{margin-top:5px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
html[data-motion="off"] *{animation:none!important;transition:none!important}button:disabled{opacity:.4;cursor:default}
.group-label{display:flex;justify-content:center;align-items:center;gap:12px;font-size:12px;color:#8e7379;margin:20px 0}.group-label select{max-width:340px;padding:12px;border:1px solid #dcc8af;background:#fffaf1;border-radius:12px;color:var(--ink);font:inherit}.gate-meter{height:10px;background:#eadccb;border-radius:10px;overflow:hidden;margin:23px 0 12px}.gate-meter span{display:block;height:100%;background:linear-gradient(90deg,#de967a,#bd3266);border-radius:10px}.gate-count{color:var(--berry);font-family:Fredoka;font-size:24px}.kitchen-icon{font-size:55px;color:#c78465;margin-bottom:15px}.level small{position:absolute;top:53px;left:50%;transform:translateX(-50%);font:700 10px 'DM Sans',sans-serif;white-space:nowrap;color:#865839;letter-spacing:1px;background:#fff5dcd9;padding:3px 6px;border-radius:6px}.level.completed{background:#75a17a;box-shadow:0 5px #527d58;color:#fff}.next-chapter{display:flex;gap:20px;align-items:center;justify-content:space-between;margin:30px 0;background:#f1e7d8;border:1px solid #e0cdb4;border-radius:24px;padding:25px}.next-chapter small{color:#9b7470;font-size:9px;letter-spacing:1.3px}.next-chapter h3{margin:8px 0}.next-chapter p{font-size:12px;margin:0;max-width:480px}.next-chapter .primary{font-size:14px;white-space:nowrap}.score-strip{display:flex;justify-content:space-between;align-items:center;padding:25px 8px 10px}.score-strip small{display:block;color:#a38b83;font-size:9px;letter-spacing:.5px}.score-strip b{display:block;font-family:Fredoka;font-size:29px;margin-top:5px}.star-score{text-align:right}.star-score>span{font-size:29px;color:#d69b32;letter-spacing:3px}.star-score small{max-width:160px;line-height:1.5;margin-top:4px}.play-actions{display:flex;justify-content:space-between;margin-top:10px}.tile:disabled{opacity:1;cursor:default}.tile{transition:transform .15s,background .15s;user-select:none;-webkit-user-select:none}.tile svg{pointer-events:none}.tile.popping{animation:pop .25s ease-out forwards}.tile.hinted{outline:3px solid #61a18a;outline-offset:-3px;background:#d6ead5}.board.refilling .tile svg{animation:fall .2s ease-out}#combo{font-family:Fredoka;color:var(--berry);font-size:22px;min-height:30px;margin-top:20px}#toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,20px);padding:15px 24px;border-radius:18px;background:#49303cf5;color:#fff8ed;font-size:13px;box-shadow:0 8px 30px #49303c33;opacity:0;pointer-events:none;z-index:20;max-width:90%;width:max-content;transition:.2s;text-align:center}#toast.show{opacity:1;transform:translate(-50%,0)}.unlock-summary{font-size:12px;background:#f5ecd9;padding:13px;border-radius:12px}.storage-warning{font-size:12px;padding:12px;border:1px solid #ddb99c;background:#fff0df;border-radius:12px;color:#8d4f3b}dialog .primary{margin-right:12px}@keyframes pop{50%{transform:scale(1.17)}100%{transform:scale(.15);opacity:.1}}@keyframes fall{from{transform:translateY(-14px);opacity:.4}to{transform:translateY(0);opacity:1}}@media(max-width:650px){.map-layout>.chapter-panel{display:block;padding:20px}.chapter-panel .world-art{display:none}.chapter-panel .hint{font-size:11px}.chapter-panel>p{margin:8px 0}.chapter-panel h3{font-size:23px}.kitchen-icon{font-size:35px;margin-bottom:5px}.group-label{flex-direction:column;gap:7px}.group-label select{width:100%}.game-stats #targets{display:flex;gap:16px}.game-stats .target svg{width:33px;height:33px}.game-stats .target small{font-size:8px}.game-wrap>.game-stats h3{display:none}.game-stats .moves{min-width:65px}.next-chapter{flex-direction:column;align-items:stretch;padding:20px}.next-chapter .primary{text-align:center}.score-strip{padding-top:20px}.tile{min-height:0}.star-score small{font-size:8px}.game-side #combo{margin-top:10px}.hero-stats b{font-size:24px}}
.lab-link{display:block;margin:20px 0 0;padding:0}.special{overflow:hidden}.special-row{background:repeating-linear-gradient(0deg,#fff1ba 0 8px,#edcc7f 8px 11px)}.special-column{background:repeating-linear-gradient(90deg,#ddf0cc 0 8px,#a5cc8f 8px 11px)}.special-area{background:radial-gradient(circle,#ffe2ea 30%,#e49bb7 90%);box-shadow:inset 0 0 0 2px #bf527d}.special-colour{background:conic-gradient(#ffc65f,#f690b8,#b0a1e6,#87cdcb,#c9dc87,#ffc65f);box-shadow:inset 0 0 0 2px #fff7d8}.special-badge{position:absolute;bottom:1px;right:1px;display:grid;place-items:center;width:22px;height:22px;background:#fff8e7;border:1px solid #bd8b72;border-radius:50%;color:#8b285a;font-size:18px;font-weight:700;line-height:1;box-shadow:0 1px 4px #633c4430}.blast-hit{box-shadow:inset 0 0 0 3px #ffeb9d,0 0 16px #eeb56f;animation:blast .4s ease-out!important}.forming{animation:form .3s ease-out;outline:3px solid #e7ad3c;z-index:1}.lab-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.lab-card{border:1px solid #ead8be;background:#fffaf1;border-radius:24px;padding:25px;text-align:left;color:var(--ink);transition:transform .2s}.lab-card:hover{transform:translateY(-4px);border-color:#c6819a}.lab-card small{display:block;font-size:9px;color:#a08378;letter-spacing:1.5px;margin:20px 0 10px}.lab-card p{font-size:12px;line-height:1.7;min-height:61px}.lab-card h3{font-size:22px}.lab-piece{display:block;position:relative;width:85px;height:85px;border-radius:20px;padding:5px}.lab-piece svg{width:100%;height:100%;filter:drop-shadow(0 4px 3px #895b3926)}.lab-piece b{position:absolute;right:-8px;bottom:-7px;font-size:24px;background:#fff7e3;border:2px solid #dfc6a8;width:35px;height:35px;border-radius:50%;display:grid;place-items:center;color:#a83768}.special-guide>div{display:flex;align-items:center;gap:15px;border-bottom:1px solid #e9d7bd}.special-guide>div>b{font-size:25px;color:var(--berry);width:45px;flex-shrink:0}.special-guide p{font-size:12px;line-height:1.6}.special-guide strong{color:var(--ink)}.practice-target{text-align:center;font-size:40px;color:var(--berry);padding:20px 0}.practice-target small{display:block;font:10px 'DM Sans';letter-spacing:1px;color:#997c72;line-height:1.6}.mini-board{display:grid;gap:3px;padding:8px;background:#ecd5b6;border-radius:15px;margin:20px auto;width:250px;max-width:100%}.mini-tile{aspect-ratio:1;background-color:#fff5df;border-radius:6px;position:relative}.mini-tile svg{width:100%;height:100%}.mini-tile b{position:absolute;bottom:0;right:0;background:#fff7e5;border-radius:50%;font-size:12px;width:15px;color:var(--berry)}@keyframes blast{50%{transform:scale(1.1);filter:brightness(1.5)}100%{transform:scale(.3);opacity:0}}@keyframes form{50%{transform:scale(1.18);filter:brightness(1.3)}}@media(max-width:650px){.lab-link{margin:18px auto 0}.lab-grid{grid-template-columns:repeat(2,1fr);gap:12px}.lab-card{padding:18px 13px}.lab-card h3{font-size:19px}.lab-card p{font-size:11px;min-height:94px}.lab-piece{width:70px;height:70px}.special-badge{width:17px;height:17px;font-size:13px}.practice-target{padding:0;font-size:25px}.practice-target small{font-size:8px}}
.lesson-coach{display:flex;align-items:center;gap:18px;background:linear-gradient(120deg,#fff0ce,#fff9ec);border:1px solid #dfc492;border-radius:22px;padding:21px 24px;margin:0 0 25px;box-shadow:0 8px 25px #925e2910}.chef-mark{width:57px;height:57px;display:grid;place-items:center;flex-shrink:0;border-radius:18px;background:#f0d3a4;color:#aa4a61;font-size:36px}.lesson-coach small{font-size:9px;letter-spacing:1.7px;color:#ab7b58}.lesson-coach h3{font-size:23px;margin:6px 0}.lesson-coach p{font-size:13px;margin:0;max-width:620px}.lesson-controls{margin-left:auto;display:flex;flex-direction:column;align-items:center;gap:10px;flex-shrink:0}.lesson-controls .primary{font-size:13px;padding:13px 17px}.lesson-step{font-size:10px;color:#8b755d}.lesson-board{position:relative;container-type:size;aspect-ratio:1}.lesson-board .board{height:100%}.lesson-focus{outline:3px solid #d49f35;outline-offset:-2px;background-color:#fff2a5;z-index:2;box-shadow:0 0 13px #dbaf4e55}.lesson-dim{filter:saturate(.45);opacity:.48!important}.lesson-gesture{position:absolute;inset:13px;pointer-events:none;z-index:4;container-type:size}.lesson-gesture span{position:absolute;left:var(--hand-x);top:var(--hand-y);font-size:36px;line-height:1;text-shadow:0 2px 3px #65453350;color:#fff8ed;-webkit-text-stroke:1px #8e5d49;animation:lesson-swipe 1.8s ease-in-out infinite}.lesson-board .practice-target svg{width:40px}.practice-target svg{width:55px;height:55px}.lesson-coach+.game-wrap .game-stats{align-self:start}@keyframes lesson-swipe{0%,15%{transform:translate(-20%,-15%);opacity:.7}65%,85%{transform:translate(calc(var(--hand-dx) - 20%),calc(var(--hand-dy) - 15%));opacity:1}100%{transform:translate(calc(var(--hand-dx) - 20%),calc(var(--hand-dy) - 15%));opacity:0}}@media(max-width:650px){.lesson-coach{padding:16px;gap:12px;flex-wrap:wrap;margin-bottom:17px}.chef-mark{width:38px;height:38px;font-size:26px}.lesson-coach>div:nth-child(2){flex:1}.lesson-coach h3{font-size:20px}.lesson-coach p{font-size:12px}.lesson-coach small{font-size:8px}.lesson-controls{width:100%;flex-direction:row;justify-content:space-between;gap:10px}.lesson-controls .primary{margin-left:auto}.lesson-gesture{inset:7px}.lesson-gesture span{font-size:29px}.lesson-coach+.game-wrap .game-stats{align-self:stretch}}
.lesson-board:has(.tile:disabled) .lesson-gesture{display:none}
.board-gap{aspect-ratio:1;min-width:0;border-radius:10px;background:#b18e6920;box-shadow:inset 0 2px 5px #79583312;pointer-events:none}.layout-chip{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;border:1px solid #dac4a4;background:#fff3dc;border-radius:12px;color:#835e49;font-size:12px;padding:12px;margin:0 0 18px;text-align:left}.layout-chip span{font-size:9px;color:#ac7d68}.layout-preview{display:grid;gap:4px;width:215px;max-width:100%;margin:24px auto;background:#edd8b7;padding:10px;border-radius:18px}.layout-cell,.layout-hole{aspect-ratio:1;border-radius:5px}.layout-cell{background:linear-gradient(140deg,#f8bdcf,#c35d84);box-shadow:0 2px #a84f72}.layout-hole{background:#a38a6a26;box-shadow:inset 0 1px 4px #856a5125}
.level-intro{max-width:920px;margin:0 auto;background:#fffaf1;border:1px solid #e4cba8;border-radius:30px;padding:30px 38px;box-shadow:var(--shadow)}.intro-top{display:flex;align-items:center;justify-content:space-between;margin:25px 0 12px}.intro-top .eyebrow{margin:0}.level-intro h1{font-size:55px}.intro-subtitle{margin:10px 0 25px}.difficulty{padding:7px 12px;border-radius:20px;font-size:10px;background:#ece7d4;color:#73815c}.difficulty.challenge{background:#f5dce7;color:#a34267}.difficulty.relaxed{background:#dcecdc;color:#43775a}.intro-columns{display:grid;grid-template-columns:1fr 1fr;gap:35px;align-items:center}.intro-columns>div:first-child{text-align:center}.intro-columns>div:first-child>p{font-size:13px}.intro-columns>div:first-child>small{font-size:10px;color:#a28579}.intro-tray{width:270px;margin:8px auto 20px;gap:4px}.intro-tray .layout-cell{background:#fff1d9;box-shadow:0 2px #d8b38d}.intro-tray svg{width:100%;height:100%;display:block}.intro-recipe{padding:24px;background:#f6ecdd;border-radius:23px}.intro-recipe>small{font-size:9px;letter-spacing:1.3px;color:#a07c69}.intro-recipe h3{margin-top:8px}.intro-targets{display:flex;gap:15px;margin:22px 0}.intro-targets>div{background:#fff9ed;border-radius:16px;padding:10px;display:grid;grid-template-columns:45px 1fr;align-items:center;flex:1}.intro-targets svg{width:45px;height:45px;grid-row:span 2}.intro-targets b{font-size:23px;color:var(--berry)}.intro-targets span{font-size:9px;color:#8f7268}.intro-moves{display:flex;gap:15px;align-items:center;border-block:1px solid #decab0;padding:12px 0}.intro-moves b{font-family:Fredoka;font-size:38px}.intro-moves span{font-size:12px;color:#957b70}.intro-stars{display:grid;gap:8px;margin:20px 0;color:#bd8430}.intro-stars small{font-size:11px;color:#8a726d;margin-left:7px}.intro-recipe .primary{width:100%;margin-top:18px}.personal-best{padding:12px;border-radius:12px;background:#fff7e5;font-size:12px}.personal-best span{display:block;font-size:10px;color:#957b70;margin-top:6px}.chapter-progress{background:#fff9ed;border:1px solid #e7d2b5;border-radius:18px;padding:18px 22px;margin:20px 0;text-align:left}.chapter-status{display:flex;justify-content:space-between;gap:15px;align-items:center}.chapter-status span{font-size:9px;letter-spacing:1px;color:#9f7a64}.chapter-status strong{font-family:Fredoka;color:var(--berry);font-size:20px}.chapter-track{position:relative;height:9px;background:#eadcc7;border-radius:12px;margin:12px 0}.chapter-track>span{display:block;height:100%;border-radius:12px;background:linear-gradient(90deg,#dc9c72,#b83c6b)}.chapter-track i{position:absolute;top:-3px;width:2px;height:15px;background:#9a7450}.chapter-progress p{font-size:11px;margin:0;line-height:1.6}.milestone{padding:20px;background:linear-gradient(135deg,#fae1ab,#ffeddd);border:1px solid #e4be80;border-radius:20px;margin:0 0 22px}.milestone small{display:block;font-size:9px;letter-spacing:1.3px;color:#a26944}.milestone h3{margin:10px 0}.milestone p{font-size:12px;margin:8px 0}.milestone-spark{display:block;font-size:32px;color:#c78d2d;animation:milestone-pop .6s ease-out}@keyframes milestone-pop{from{transform:scale(.4) rotate(-30deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}@media(max-width:650px){.level-intro{padding:20px 17px;border-radius:23px}.intro-columns{grid-template-columns:1fr;gap:22px}.intro-tray{width:190px}.level-intro h1{font-size:45px}.intro-top .eyebrow{font-size:8px;justify-content:flex-start;letter-spacing:1px}.intro-recipe{padding:20px}.chapter-progress{padding:15px}.intro-columns>div:first-child>p{margin:8px 0}.chapter-status strong{font-size:18px}.chapter-status span{font-size:8px}}
.ice-tile{position:relative;background:#c8e9f4!important;overflow:hidden;box-shadow:inset 0 0 0 2px #89c7e4}.ice-tile>svg{filter:drop-shadow(0 2px 3px #41779333);opacity:.8}.ice-shell{position:absolute;inset:0;background:linear-gradient(135deg,#ffffff60 0 25%,#bce7ff15 26% 60%,#fff7 61% 64%,#c5eaff55 65%);border:2px solid #a9daee;border-radius:8px;pointer-events:none}.ice-shell b{position:absolute;right:0;bottom:0;background:#e8faffed;color:#326f91;font-size:12px;border-radius:5px;padding:1px 3px}.ice-layer-2 .ice-shell{border:4px double #67a8d0;background:linear-gradient(135deg,#a0d4f482,#e9faff90,#7cbbe566)}.ice-cracking .ice-shell{animation:ice-crack .3s ease-out}.ice-symbol{font-size:34px;color:#63a6ca;width:42px;text-align:center}.ice-objective small{color:#5c8ea6!important}.ice-note{padding:14px 17px;background:linear-gradient(115deg,#e7f5fc,#f4faf7);border:1px solid #b9dce9;border-radius:16px;margin-bottom:16px;color:#42768e}.ice-note strong{font-family:Fredoka;font-size:18px;font-weight:500}.ice-note p{font-size:11px;line-height:1.6;color:#5f8596;margin:7px 0}.ice-note small{font-size:9px;color:#7597a5}.intro-ice{padding:12px 15px;background:#e4f2f8;border:1px solid #c4dfe9;border-radius:12px;margin:0 0 15px;color:#467d98}.intro-ice p{font-size:11px;margin:5px 0 0;color:#678c9c}.ice-preview{position:relative;background:#bfe3f2!important}.ice-preview svg{opacity:.65}.ice-preview>b{position:absolute;bottom:0;right:0;color:#386e8c;background:#f1fbffcf;border-radius:4px;font-size:9px}.intro-targets{flex-wrap:wrap}.game-stats .ice-objective{border-top:1px solid #cce1e6;padding-top:12px}.board:has(.ice-tile){background:#d0e3e940;border-radius:12px}@keyframes ice-crack{30%{transform:translateX(-2px);filter:brightness(1.8)}60%{transform:translateX(2px)}100%{transform:translateX(0)}}@media(max-width:650px){.game-stats .ice-objective{border-top:0;border-left:1px solid #cce1e6;padding:0 0 0 12px}.ice-note{padding:12px}.ice-note strong{font-size:16px}.ice-shell b{font-size:9px;padding:1px 2px}.ice-layer-2 .ice-shell{border-width:3px}.ice-symbol{width:30px;font-size:25px}}

.obstacle-cover{position:absolute;inset:4%;border-radius:22%;display:flex;align-items:center;justify-content:center;z-index:3;font-size:clamp(20px,4vw,36px);pointer-events:none}.lock-cover{background:linear-gradient(135deg,#ffebadbb,#d2a238bb);border:2px solid #ac751b;box-shadow:inset 0 0 0 3px #fff6c277}.chocolate-cover{background:linear-gradient(145deg,#965c40,#3e211b);color:#eab58d;border:3px solid #683923;box-shadow:inset 0 0 0 2px #b27d52}.chocolate-cover b{font-size:1.4em;line-height:1}.chocolate-cover small{position:absolute;right:4px;bottom:2px;font-size:12px;color:white}.key-badge{position:absolute;right:0;top:0;background:#ffe398;color:#754300;border:2px solid #b87522;border-radius:50%;width:40%;height:40%;display:grid;place-items:center;font-weight:900;font-size:clamp(15px,2vw,24px);z-index:4}.layout-cell{position:relative}.kitchen-note{background:linear-gradient(120deg,#fff1d1,#fff6eb);border:1px solid #e8c283;border-radius:18px;padding:14px 18px;margin-bottom:16px;color:#71452e}.kitchen-note p{font-size:13px;line-height:1.6;margin:7px 0}.kitchen-note small{font-size:11px}.game-stats #targets{flex-wrap:wrap}.game-stats .target small{font-size:9px}

.board-shell{position:relative}.trial-cover{position:absolute;inset:0;z-index:20;border-radius:24px;background:linear-gradient(145deg,#fff6e6,#f6deef);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;color:#634147}.trial-cover[hidden]{display:none}.trial-cover>span{font-size:64px;color:#ac5a80}.trial-cover h3{font-size:clamp(20px,4vw,30px);margin:8px}.trial-cover p{font-size:13px}.trial-cover .primary{margin-top:15px}.trial-note{padding:14px 18px;background:linear-gradient(110deg,#f8e6f1,#eee8ff);border:1px solid #dbbddf;border-radius:18px;margin-bottom:16px;color:#684064}.trial-note p{font-size:13px;line-height:1.6;margin:7px 0}.trial-note small{font-size:11px}.time-low{color:#b32252!important}#moves-left{font-variant-numeric:tabular-nums}

.syrup-tile{background:linear-gradient(145deg,#fff1b5,#e6a348);box-shadow:inset 0 0 0 2px #cd8c2d}.syrup-layer-2{box-shadow:inset 0 0 0 3px #a9611a}.syrup-pool{position:absolute;inset:2px;border-radius:35% 24% 30% 22%;background:radial-gradient(ellipse at 30% 20%,#fff7bd88,#d6892922 60%);border:1px solid #be7c24aa;pointer-events:none;z-index:1}.syrup-pool b{position:absolute;left:1px;bottom:0;background:#fff0b8;color:#8e4c18;border-radius:6px;padding:1px 3px;font-size:11px;line-height:1.2}.syrup-symbol{color:#c18720;font-size:34px}.syrup-note{background:linear-gradient(120deg,#fff0be,#fff8e8);border:1px solid #dfb35e;border-radius:18px;padding:14px 18px;margin-bottom:16px;color:#855521}.syrup-note p{font-size:13px;line-height:1.6;margin:7px 0}.syrup-note small{font-size:11px}.syrup-clearing .syrup-pool{animation:syrup-wash .28s ease-out}@keyframes syrup-wash{to{opacity:0;transform:scale(.65)}}@media(prefers-reduced-motion:reduce){.syrup-clearing .syrup-pool{animation:none}}@media(max-width:650px){.game-stats #targets{flex:1;gap:8px 12px}.game-stats .target{gap:4px}.game-stats .target svg{width:25px;height:25px}.game-stats .ice-symbol,.game-stats .syrup-symbol{font-size:25px}.game-stats .moves{flex-shrink:0}.syrup-pool b{font-size:9px}}

.delivery-box{background:#d9eee4;cursor:help;display:grid;place-items:center}.gift-box-art{position:relative;display:inline-grid;place-items:center;width:70%;height:65%;min-height:20px;border-radius:6px;background:linear-gradient(135deg,#f5a7bb,#c95782);border:2px solid #a83f66;box-shadow:0 4px 0 #943b5d, inset 0 2px #ffe1e9;transform:rotate(-5deg)}.gift-box-art:before{content:'';position:absolute;left:40%;top:-4px;bottom:-2px;width:20%;background:#ffe1a0;border:1px solid #d6a14d}.gift-box-art:after{content:'';position:absolute;left:-3px;right:-3px;top:27%;height:18%;background:#ffe1a0;border:1px solid #d6a14d}.gift-box-art>span{position:relative;z-index:1;font-size:clamp(12px,2vw,22px);color:#8f3358;background:#ffe8af;border-radius:50%;line-height:1}.delivery-objective>.gift-box-art{width:34px;height:30px;flex-shrink:0}.delivery-exit{position:absolute;right:2px;bottom:-2px;z-index:5;background:#316d58;color:white;border-radius:5px;padding:0 4px;font-size:13px;line-height:1.3;pointer-events:none}.delivery-note{padding:14px 18px;margin-bottom:16px;border:1px solid #a3c9b5;border-radius:18px;background:linear-gradient(120deg,#e0f0e7,#faf9df);color:#396651}.delivery-note p{font-size:13px;line-height:1.6;margin:7px 0}.delivery-note small{font-size:11px}.intro-tray .gift-box-art{height:70%;margin:12%}.delivery-box:focus-visible{outline:3px solid #23735b}

.portal-ring{--portal:#9255bd;position:absolute;inset:2px;z-index:6;border:2px solid var(--portal);border-radius:50%;box-shadow:inset 0 0 7px #d7b9fb,0 0 3px #b087d6;pointer-events:none}.portal-1{--portal:#258fa2}.portal-2{--portal:#c64780}.portal-ring b{position:absolute;top:-3px;left:-1px;font-size:10px;font-weight:800;line-height:1.2;padding:2px 4px;border-radius:6px;background:var(--portal);color:white}.portal-note{background:linear-gradient(120deg,#f0e5ff,#e3f4f5);border:1px solid #bfa4d9;color:#68507e;padding:14px 18px;margin-bottom:16px;border-radius:18px}.portal-note p{font-size:13px;line-height:1.6;margin:7px 0}.portal-note small{font-size:11px}.portal-travel{animation:portal-jump .3s ease-out}@keyframes portal-jump{0%{transform:scale(.6);opacity:.4}100%{transform:scale(1);opacity:1}}@media(prefers-reduced-motion:reduce){.portal-travel{animation:none}}

.level-tips{margin-bottom:14px;border:1px solid #dfc9df;border-radius:15px;background:#fffaf5;padding:12px 15px}.level-tips summary{cursor:pointer;font-size:12px;font-weight:700;color:#92527b}.level-tips[open] summary{margin-bottom:12px}.level-tips>div:last-child{margin-bottom:0}

.cloud-frost{position:absolute;inset:1px;z-index:4;pointer-events:none;border:2px dashed #8c9bcc;border-radius:12px;background:linear-gradient(160deg,#e6ebff66,transparent 55%,#adbde84d);box-shadow:inset 0 -9px 8px #d1dbfa80}.cloud-frost b{position:absolute;right:1px;bottom:1px;border-radius:7px;background:#e6eaff;color:#455a91;font-size:12px;line-height:1.4;padding:0 3px;box-shadow:0 1px 3px #677bb34d}.cloud-layer-2{border-style:double;border-width:4px;box-shadow:inset 0 0 12px #a8b5d8}.cloud-layer-2 b{right:-1px;bottom:-1px}.cloud-symbol{font-size:32px;color:#7184ba;width:40px;text-align:center;flex-shrink:0}.cloud-note{background:linear-gradient(120deg,#eef0ff,#f9f3ff);border:1px solid #bcc5e3;color:#56658e;border-radius:18px;padding:14px 18px;margin-bottom:16px}.cloud-note p{font-size:13px;line-height:1.6;margin:7px 0}.cloud-note small{font-size:11px}.cloud-clearing .cloud-frost{animation:cloud-lift .35s ease-out forwards}@keyframes cloud-lift{to{transform:translateY(-12px) scale(1.12);opacity:0}}@media(prefers-reduced-motion:reduce){.cloud-clearing .cloud-frost{animation:none;opacity:.35}}html[data-motion="off"] .cloud-clearing .cloud-frost{animation:none;opacity:.35}

.crystal-floor{position:absolute;inset:1px;z-index:4;pointer-events:none;border:2px solid #b084bb;border-radius:8px;background:linear-gradient(135deg,#eac9f755,transparent 40%,#b3e3e344);box-shadow:inset 0 0 7px #c5a6d280}.crystal-layer-2{border-style:double;border-width:4px}.crystal-flavour{position:absolute;bottom:0;right:0;display:flex;align-items:center;background:#fff5fc;border:1px solid #b084bb;border-radius:6px;height:22px;padding:0 2px;box-shadow:0 1px 3px #69437055}.crystal-flavour svg{width:21px!important;height:21px!important;filter:none!important;transform:none!important}.crystal-flavour b{font-size:10px;color:#6d4477;line-height:1}.crystal-layer-2 .crystal-flavour{bottom:-2px;right:-2px}.crystal-symbol{font-size:36px;line-height:1;color:#9a67a4;width:40px;text-align:center;flex-shrink:0}.crystal-note{background:linear-gradient(120deg,#f9eafa,#eaf7f5);border:1px solid #cda6d0;color:#725078;border-radius:18px;padding:14px 18px;margin-bottom:16px}.crystal-note p{font-size:13px;line-height:1.6;margin:7px 0}.crystal-note small{font-size:11px}.crystal-clearing .crystal-floor{animation:crystal-flash .3s ease-out}@keyframes crystal-flash{50%{background:#fff;box-shadow:0 0 16px #c988d7}}@media(prefers-reduced-motion:reduce){.crystal-clearing .crystal-floor{animation:none}}html[data-motion="off"] .crystal-clearing .crystal-floor{animation:none}

.finale-ribbon{display:flex;align-items:center;justify-content:center;gap:15px;text-align:center;margin:0 auto 20px;padding:10px 18px;width:fit-content;max-width:100%;border:1px solid #d7b36a;border-radius:30px;background:linear-gradient(110deg,#ffefd0,#fffaf0,#f8e2b4);color:#8a6334;font-size:13px;font-weight:700}.finale-game .board-shell{box-shadow:0 8px 0 #bea072,0 0 0 3px #efce8b,0 16px 40px #c09a5633}.campaign-honours{display:flex;align-items:center;gap:25px;text-align:left;padding:28px 32px;border:1px solid #d5ae65;border-radius:25px;background:radial-gradient(ellipse at top right,#ffe6aa,#fff8eb 65%);box-shadow:0 10px 30px #b88c4220;margin:20px auto 32px;max-width:1000px}.campaign-honours small{letter-spacing:1.5px;color:#936229;font-size:10px;font-weight:800}.campaign-honours h2{font-size:clamp(22px,3vw,34px);margin:8px 0}.campaign-honours p{font-size:13px;margin:0;line-height:1.7}.honours-emblem{font-size:65px;color:#ac792f;line-height:1;flex-shrink:0;text-shadow:0 3px #f3d58d}.result .campaign-honours{max-width:620px}@media(max-width:600px){.campaign-honours{padding:22px 18px;gap:14px}.honours-emblem{font-size:42px}.finale-ribbon{font-size:11px}}

.hint-message{font-size:12px;line-height:1.5;color:#376854;background:#edf5e8;border-radius:12px;margin:10px 0 0;padding:10px 12px}.hint-message:empty{display:none}.game-center{min-width:0}.play-actions button{min-height:44px;padding:8px 12px}.tile:focus-visible{outline-offset:-3px}.game-stats .target>div{min-width:0}
@media(max-width:650px){html[data-screen="game"] header{height:56px;padding:0 12px}html[data-screen="game"] header nav{display:none}html[data-screen="game"] header .brand-small{font-size:8px;margin-top:4px}html[data-screen="game"] main{padding:10px 10px 22px}html[data-screen="game"] footer{display:none}html[data-screen="game"] .icon{width:44px;height:44px}.game-head{margin:0 0 10px;gap:8px}.game-head h2{font-size:23px}.game-head .text-btn{min-height:44px;padding:8px 0}.game-wrap{gap:10px}.game-wrap>.panel.game-stats{display:grid;grid-template-columns:minmax(0,1fr) 66px;gap:8px;padding:10px;border-radius:17px;align-items:stretch}.game-stats #targets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 5px;min-width:0;align-items:start}.game-stats .target{margin:0;padding:0;border:0;gap:3px;min-width:0}.game-stats .target svg{width:22px;height:22px;flex-shrink:0}.game-stats .target b{font-size:18px;line-height:1.1}.game-stats .target small{font-size:8px;line-height:1.25;overflow-wrap:anywhere}.game-stats .ice-symbol,.game-stats .syrup-symbol,.game-stats .cloud-symbol,.game-stats .crystal-symbol{font-size:23px;width:23px;flex-shrink:0;line-height:1.2}.game-stats .delivery-objective>.gift-box-art{width:21px;height:22px;min-height:18px}.game-stats .moves{display:flex;flex-direction:column;justify-content:center;min-width:0;width:66px;padding:7px 3px;border-radius:12px;font-size:9px}.game-stats .moves b{font-size:27px}.board-shell{padding:5px;border-width:4px;border-radius:18px}.board{gap:2px}.tile{padding:1px}.level-tips{margin-bottom:8px;padding:0 12px;border-radius:12px}.level-tips summary{min-height:44px;padding:13px 0}.level-tips[open]{padding-bottom:12px}.score-strip{padding:12px 4px 2px}.score-strip b{font-size:24px}.star-score>span{font-size:25px}.play-actions{gap:5px;margin-top:5px}.play-actions .text-btn{flex:1;border:1px solid #ead8bd;border-radius:12px;background:#fffaf1;font-size:12px}.preview-note{margin:10px 0}.game-side{padding:18px}.finale-ribbon{margin-bottom:10px;padding:8px 12px}.crystal-flavour{height:17px;padding:0 1px}.crystal-flavour svg{width:16px!important;height:16px!important}.crystal-flavour b{font-size:9px}.cloud-frost b{font-size:9px}.special-badge{width:17px;height:17px;font-size:13px}.hint-message{font-size:11px}dialog button{min-height:44px}}
@media(max-width:350px){.game-stats #targets{grid-template-columns:repeat(2,minmax(0,1fr))}.game-head h2{font-size:20px}.game-stats .target small{font-size:9px}}

/* Phase 18: portable progress */
.backup-panel{margin:20px 0;padding:20px;background:#fff5df;border:1px solid #ead8b7;border-radius:20px;text-align:left}.backup-panel h4{font-size:20px;margin:0 0 8px}.backup-panel p{line-height:1.5}.backup-total{font-weight:700;color:#376a51;margin:14px 0}.backup-panel button{min-height:44px}.backup-file{display:block;margin-top:18px;font-weight:700}.backup-file input{display:block;margin-top:10px;max-width:100%;min-height:44px;font:inherit;font-size:13px}.backup-panel [hidden]{display:none!important}#backup-status{font-size:14px;color:#376a51;overflow-wrap:anywhere}dialog{max-height:90dvh;overflow-y:auto}

/* Phase 19: sound and comfort controls */
.audio-panel{margin-top:18px;padding-top:8px;border-top:1px solid #ead8b7;text-align:left}.volume-label{display:flex;justify-content:space-between;margin:12px 0 2px;font-weight:600}.audio-panel input[type=range]{width:100%;height:44px;accent-color:#b62d69}.audio-panel button{min-height:44px}.audio-panel button:disabled,.audio-panel input:disabled{opacity:.45;cursor:default}#preferences-status{font-size:13px;line-height:1.5;color:#376a51}.audio-panel .toggle{margin:10px 0}.audio-panel .tiny{margin:6px 0}

/* Phase 20: mobile input and reachable settings */
html:has(dialog[open]){overflow:hidden}.settings-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:-1px;z-index:10;background:#fff8ed;padding:8px 0 14px;border-bottom:1px solid #ead8b7}.settings-heading .eyebrow{font-size:9px;margin:0 0 7px}.settings-heading h3{margin:0}.settings-heading .icon{flex-shrink:0;width:44px;height:44px;font-size:27px;border:1px solid #e4cfb4;background:#fff1da}.board,.tile{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.backup-file input::file-selector-button{min-height:44px;padding:9px 10px;border:1px solid #dcc8af;border-radius:9px;background:#fffaf1;color:#49303c;font:inherit}.backup-file input{width:100%}dialog .toggle{min-height:44px}dialog input[type=checkbox]{width:20px;height:20px;accent-color:#bc3266}
@media(max-width:650px){dialog{width:calc(100% - 24px);max-width:390px;padding:14px 18px 20px;max-height:calc(100dvh - 24px);overscroll-behavior:contain}.backup-panel{padding:15px;margin:16px 0}.backup-panel .primary{max-width:100%;margin-right:0}.backup-panel h4{font-size:18px}.audio-panel .tiny,.backup-panel .tiny{font-size:12px}.settings-heading{top:-1px}.group-label select{min-width:0;max-width:100%}body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}main{padding-bottom:max(24px,env(safe-area-inset-bottom))}}

/* Phase 22: short, bounded celebrations and readable match feedback */
.board-stage{position:relative}.lesson-board .board-stage{height:100%}.board-effects{position:absolute;inset:0;z-index:7;overflow:hidden;border-radius:12px;pointer-events:none;contain:layout paint}.blast-beam{position:absolute;display:block;background:linear-gradient(90deg,transparent,#ffdc83aa,#fff8d7,#ffdc83aa,transparent);border-radius:50%;opacity:0}.beam-row{left:0;top:var(--fx-y);width:100%;height:9%;margin-top:-4.5%;animation:beam-row .38s ease-out}.beam-column{top:0;left:var(--fx-x);height:100%;width:9%;margin-left:-4.5%;background:linear-gradient(0deg,transparent,#ffdc83aa,#fff8d7,#ffdc83aa,transparent);animation:beam-column .38s ease-out}.blast-ring{position:absolute;left:var(--fx-x);top:var(--fx-y);width:48%;aspect-ratio:1;border:5px solid #f9d58f;border-radius:50%;box-shadow:inset 0 0 14px #fff4d5,0 0 14px #f0bf75;opacity:0;animation:blast-ring .4s ease-out}.rainbow-ring{border-color:#dd9eb8 #b6a5df #8fbdaa #e4ba68}.move-feedback{height:28px;margin-top:14px;text-align:center;color:#a53768;font-family:Fredoka,sans-serif;font-size:17px;line-height:28px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tile.popping{animation:sweet-pop .25s ease-out forwards}.board.refilling .tile svg{animation:sweet-settle .18s ease-out}.forming{animation:sweet-form .28s ease-out}.result{position:relative;isolation:isolate;overflow:hidden}.win-result{background:radial-gradient(ellipse at 50% 0,#fff0c9,transparent 55%),#fffaf1;border-color:#dab96f;box-shadow:0 12px 40px #a96c2b16}.result>*{position:relative;z-index:1}.result-stars{display:flex;justify-content:center;gap:8px;letter-spacing:0;margin:14px 0 4px}.award-star{display:inline-block;line-height:1.1}.award-star.earned{color:#df9b26;text-shadow:0 3px #f8d993;animation:award-star .48s cubic-bezier(.2,.8,.3,1.2) both;animation-delay:calc(var(--star-order)*.12s)}.award-star.unearned{color:#bca789;text-shadow:none}.result-award{font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#936632;margin:13px 0 6px}.win-result .medal{background:radial-gradient(circle at 35% 30%,#fff8de,#ffe4a2);box-shadow:0 8px 25px #c99a3c22;animation:medal-arrive .5s ease-out}.result h2{font-size:32px}.retry-result .medal{background:#f7e7ed;border-color:#dfb7c5;color:#a54a70}.celebration{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}.celebration i{position:absolute;left:var(--x);top:0;width:7px;height:12px;border-radius:2px;background:var(--confetti);opacity:0;animation:confetti-fall 1.6s ease-out var(--delay) 1}.celebration i:nth-child(3n){border-radius:50%;height:7px}html[data-screen="intro"] .level-intro{animation:screen-arrive .22s ease-out}
@keyframes beam-row{0%{transform:scaleX(.15);opacity:0}25%{opacity:.85}100%{transform:scaleX(1.1);opacity:0}}@keyframes beam-column{0%{transform:scaleY(.15);opacity:0}25%{opacity:.85}100%{transform:scaleY(1.1);opacity:0}}@keyframes blast-ring{0%{transform:translate(-50%,-50%) scale(.15);opacity:.8}100%{transform:translate(-50%,-50%) scale(1.5);opacity:0}}@keyframes sweet-pop{0%{transform:scale(1);opacity:1}35%{transform:scale(1.1);opacity:1}100%{transform:scale(.45);opacity:0}}@keyframes sweet-settle{from{transform:translateY(-12%);opacity:.6}to{transform:translateY(0);opacity:1}}@keyframes sweet-form{0%{transform:scale(.85)}65%{transform:scale(1.12)}100%{transform:scale(1)}}@keyframes award-star{from{transform:translateY(12px) scale(.5);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@keyframes medal-arrive{from{transform:scale(.88);opacity:.4}to{transform:scale(1);opacity:1}}@keyframes confetti-fall{0%{transform:translate(0,-16px) rotate(0);opacity:0}15%{opacity:.8}100%{transform:translate(var(--drift),280px) rotate(var(--turn));opacity:0}}@keyframes screen-arrive{from{transform:translateY(8px);opacity:.6}to{transform:translateY(0);opacity:1}}
@media(max-width:650px){.move-feedback{font-size:14px;margin-top:10px}.result{padding:24px 20px;margin:10px auto}.result h2{font-size:28px}.result-stars{font-size:49px}.result .medal{width:110px;height:110px;font-size:46px}.celebration i:nth-child(n+13){display:none}}
html[data-motion="off"] .board-effects,html[data-motion="off"] .celebration{display:none}html[data-motion="off"] .award-star,html[data-motion="off"] .medal{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.board-effects,.celebration{display:none}.award-star,.win-result .medal,.tile.popping,.board.refilling .tile svg,.forming,html[data-screen="intro"] .level-intro{animation:none!important}}
@media(max-width:650px){.result .medal{width:88px;height:88px;font-size:38px;border-width:8px;margin:14px auto}.result .eyebrow{margin-bottom:12px}.result p{font-size:13px;line-height:1.55}.result .moves{padding:12px}.result .moves>b{font-size:29px}.result .moves .tiny{font-size:10px;margin:8px 0 0}.result .primary{margin:16px 0 10px}.result-stars{font-size:44px}.result h2{font-size:26px}.result-award{margin:10px 0 5px}}
@media(max-width:380px){header{padding-left:12px;padding-right:12px;gap:8px}header .brand{font-size:20px;gap:6px;flex-shrink:0}header .brand-icon{font-size:30px}header .brand-small{font-size:8px;letter-spacing:0;white-space:nowrap}header nav{gap:8px}header nav button{font-size:9px}header>.icon{flex-shrink:0}}

/* Shared paint definitions avoid rebuilding gradients inside every tile. */
.sweet-definitions{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
