:root{--cream:oklch(0.965 0.012 75);--surface:oklch(0.982 0.009 80);--surface-warm:oklch(0.955 0.02 65);--choc:oklch(0.32 0.045 45);--choc-soft:oklch(0.47 0.04 45);--choc-faint:oklch(0.52 0.03 50);--strawberry:oklch(0.65 0.16 15);--strawberry-deep:oklch(0.54 0.15 18);--strawberry-soft:oklch(0.93 0.04 20);--board:oklch(0.905 0.032 35);--cell:oklch(0.945 0.02 55);--shadow-color:oklch(0.45 0.05 40/0.16);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-12:48px;--space-16:64px;--space-24:96px;--ease-out-expo:cubic-bezier(0.22,1,0.36,1);--radius-md:14px;--radius-lg:20px;--font-stack-display:var(--font-baloo),var(--font-zcool),var(--font-nunito),sans-serif;--font-stack-body:var(--font-nunito),var(--font-noto-sc),sans-serif}@media (prefers-color-scheme:dark){:root{color-scheme:dark;--cream:oklch(0.24 0.02 55);--surface:oklch(0.32 0.025 55);--surface-warm:oklch(0.28 0.03 50);--choc:oklch(0.92 0.02 75);--choc-soft:oklch(0.78 0.03 65);--choc-faint:oklch(0.7 0.03 60);--strawberry:oklch(0.7 0.15 15);--strawberry-deep:oklch(0.8 0.12 18);--strawberry-soft:oklch(0.35 0.05 25);--board:oklch(0.3 0.03 45);--cell:oklch(0.37 0.025 50);--shadow-color:oklch(0.1 0.02 40/0.4)}.btn{color:oklch(.25 .02 50);box-shadow:0 3px 0 oklch(.55 .15 15)}.btn:hover{box-shadow:0 4px 0 oklch(.55 .15 15)}.btn:active{box-shadow:0 1px 0 oklch(.55 .15 15)}.btn--ghost{box-shadow:0 3px 0 oklch(.2 .02 45)}.btn--ghost:hover{box-shadow:0 4px 0 oklch(.2 .02 45)}.btn[disabled]:active,.btn[disabled]:hover{box-shadow:0 3px 0 oklch(.2 .02 45)}.board-overlay{background:oklch(.27 .025 55/.94)}}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--cream);font-family:var(--font-stack-body);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}body,h1,h2,h3{margin:0;color:var(--choc)}h1,h2,h3{font-family:var(--font-stack-display);line-height:1.15}p{margin:0}button{font-family:inherit}.wrap{width:min(100% - 2 * var(--space-4),1040px);margin-inline:auto}.site-header{justify-content:space-between;gap:var(--space-4);padding-block:var(--space-4)}.brand,.site-header{display:flex;align-items:center}.brand{gap:var(--space-3);text-decoration:none;color:var(--choc)}.brand-logo{width:40px;height:40px;flex:none}.brand-wordmark{font-family:var(--font-stack-display);font-weight:700;font-size:22px}.lang-switch{position:relative}.lang-switch summary{display:inline-flex;align-items:center;padding:var(--space-2) var(--space-4);border-radius:999px;background:var(--surface);color:var(--strawberry-deep);font-weight:700;font-size:14px;cursor:pointer;list-style:none;box-shadow:0 1px 4px var(--shadow-color);transition:transform .16s var(--ease-out-expo)}.lang-switch summary::-webkit-details-marker{display:none}.lang-switch summary:hover{transform:translateY(-1px)}.lang-menu{position:absolute;top:calc(100% + var(--space-2));right:0;z-index:40;display:flex;flex-direction:column;min-width:148px;padding:var(--space-2);border-radius:14px;background:var(--surface);box-shadow:0 8px 24px var(--shadow-color)}.lang-menu a{padding:var(--space-2) var(--space-3);border-radius:9px;color:var(--choc);font-size:14px;font-weight:600;text-decoration:none;white-space:nowrap}.lang-menu a:hover{background:var(--cream)}.lang-menu a[aria-current=page]{color:var(--strawberry-deep)}.hero{display:grid;grid-gap:var(--space-6);gap:var(--space-6);padding-block:var(--space-6) var(--space-16)}@media (min-width:880px){.hero{grid-template-columns:minmax(0,1fr) minmax(0,520px);align-items:center;gap:var(--space-12)}}.hero-copy{max-width:65ch;display:grid;grid-gap:var(--space-3);gap:var(--space-3)}.hero-title{font-size:clamp(34px,6vw,52px);font-weight:800}.hero-tagline{color:var(--choc-soft);font-size:18px}.game{display:grid;grid-gap:var(--space-4);gap:var(--space-4);max-width:520px;width:100%}.game-toolbar{align-items:center;justify-content:space-between;gap:var(--space-4)}.game-toolbar,.score-group{display:flex;flex-wrap:wrap}.score-group{gap:var(--space-3)}.score-box{background:var(--surface-warm);border-radius:var(--radius-md);padding:var(--space-2) var(--space-4);display:grid;justify-items:center;min-width:92px}.score-label{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--choc-faint)}.score-value{display:inline-block;font-family:var(--font-stack-display);font-weight:800;font-size:22px;line-height:1.1;animation:score-bump .26s var(--ease-out-expo)}.score-value--best{animation:none;color:var(--strawberry-deep)}.score-unit{font-size:11px;color:var(--choc-faint)}.btn{border:none;cursor:pointer;background:var(--strawberry);color:oklch(.26 .03 45);font-weight:800;font-size:16px;padding:var(--space-3) var(--space-6);border-radius:999px;box-shadow:0 3px 0 var(--strawberry-deep);transition:transform .14s var(--ease-out-expo),box-shadow .14s var(--ease-out-expo)}.btn:hover{transform:translateY(-1px);box-shadow:0 4px 0 var(--strawberry-deep)}.btn:active{transform:translateY(2px);box-shadow:0 1px 0 var(--strawberry-deep)}.btn--ghost{background:var(--surface);color:var(--strawberry-deep);box-shadow:0 3px 0 oklch(.85 .03 40)}.btn--ghost:hover{box-shadow:0 4px 0 oklch(.85 .03 40)}.btn[disabled]{cursor:default;opacity:.45;transform:none}.btn[disabled]:active,.btn[disabled]:hover{transform:none;box-shadow:0 3px 0 oklch(.85 .03 40)}.btn-group{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.btn-group .btn{font-size:14px;padding:var(--space-2) var(--space-4)}.score-box--cake{min-width:72px}.score-cake{display:flex;align-items:center;gap:var(--space-1);font-family:var(--font-stack-display);font-weight:800;font-size:15px;line-height:1;min-height:24px}.score-cake-img{width:24px;height:24px}.score-cake-kcal{color:var(--choc-soft)}.share-wrap{position:relative}.share-popover{position:absolute;top:calc(100% + var(--space-2));right:0;z-index:4;display:flex;align-items:center;gap:var(--space-2);background:var(--surface);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);box-shadow:0 8px 24px var(--shadow-color);animation:overlay-fade .16s var(--ease-out-expo)}.share-popover button{border:none;background:none;padding:0;line-height:0;cursor:pointer;transition:transform .14s var(--ease-out-expo)}.share-popover button:hover{transform:translateY(-2px)}.share-popover .share-copy{line-height:1.2;font:inherit;font-size:13px;font-weight:700;white-space:nowrap;color:var(--strawberry-deep);padding:var(--space-1) var(--space-2);border-radius:var(--space-2);background:var(--strawberry-soft)}.share-popover .share-copy:hover{transform:none}@media (max-width:560px){.score-group{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:var(--space-2);gap:var(--space-2);width:100%}.score-box{min-width:0;padding:var(--space-2) var(--space-1)}.score-label{font-size:10px;letter-spacing:.05em}.score-value{font-size:18px}.score-cake{font-size:13px}.score-cake-img{width:20px;height:20px}}.game-board{--gap:clamp(6px,2vw,12px);position:relative;aspect-ratio:1;background:var(--board);border-radius:var(--radius-lg);padding:var(--gap);touch-action:none;box-shadow:inset 0 2px 10px var(--shadow-color),0 6px 18px var(--shadow-color)}.board-cells{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,1fr);grid-gap:var(--gap);gap:var(--gap);height:100%}.board-cell{background:var(--cell);border-radius:var(--radius-md);box-shadow:inset 0 2px 6px var(--shadow-color)}.board-tiles{position:absolute;inset:var(--gap)}.tile{position:absolute;top:0;left:0;width:calc((100% - 3 * var(--gap)) / 4);aspect-ratio:1;transform:translate(calc(var(--col) * (100% + var(--gap))),calc(var(--row) * (100% + var(--gap))));transition:transform .12s ease-out;will-change:transform}.tile-inner{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--surface);border-radius:var(--radius-md);box-shadow:0 2px 5px var(--shadow-color)}.tile--ghost{z-index:0}.tile--new,.tile--slide{z-index:1}.tile--merged{z-index:2}.tile img{width:82%;height:82%;object-fit:contain}.tile-kcal{position:absolute;bottom:6px;left:50%;transform:translateX(-50%);padding:2px 9px;border-radius:999px;background:color-mix(in oklab,var(--surface) 90%,transparent);box-shadow:0 1px 4px var(--shadow-color);font-size:clamp(10px,2.6vw,13px);font-weight:800;line-height:1.3;color:var(--choc);pointer-events:none}.tile--new .tile-inner{animation:tile-appear .18s ease-out 90ms backwards}.tile--merged .tile-inner{animation:tile-pop .2s cubic-bezier(.22,1,.36,1) .11s backwards}.board-overlay{position:absolute;inset:0;border-radius:inherit;background:oklch(.955 .025 60/.93);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);text-align:center;padding:var(--space-6);animation:overlay-fade .26s var(--ease-out-expo);z-index:3}.overlay-title{font-family:var(--font-stack-display);font-weight:800;font-size:clamp(26px,6vw,36px);color:var(--strawberry-deep)}.overlay-body{max-width:40ch;color:var(--choc-soft)}.guide-art{width:min(52%,240px);height:auto}.guide-art--mobile,.guide-text--mobile{display:none}@media (pointer:coarse){.guide-art--desktop,.guide-text--desktop{display:none}.guide-art--mobile,.guide-text--mobile{display:block}}.overlay-actions{display:flex;gap:var(--space-3);flex-wrap:wrap;justify-content:center}.move-hint{color:var(--choc-faint);font-size:14px;text-align:center}.section{padding-block:var(--space-16);display:grid;grid-gap:var(--space-6);gap:var(--space-6);align-content:start}.section--offset{padding-block:var(--space-24) var(--space-12)}.section-heading{font-size:clamp(26px,4.5vw,36px);font-weight:800}.section-kicker{font-size:13px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--strawberry)}.section-split{display:grid;grid-gap:var(--space-8);gap:var(--space-8);align-items:center}@media (min-width:880px){.section-split{grid-template-columns:minmax(0,1fr) minmax(0,360px)}.section-split--flip{grid-template-columns:minmax(0,360px) minmax(0,1fr)}}.section-split-copy{display:grid;grid-gap:var(--space-4);gap:var(--space-4);align-content:start}.section-art{display:block;width:100%;height:auto;background:var(--surface);border-radius:var(--radius-lg);box-shadow:0 2px 10px var(--shadow-color);padding:var(--space-4)}.overlay-cupcake{width:clamp(72px,18vw,104px);height:auto;animation:tile-pop .3s var(--ease-out-expo) backwards}.prose{grid-gap:var(--space-4);gap:var(--space-4);color:var(--choc-soft)}.prose,.steps{max-width:65ch;display:grid}.steps{list-style:none;margin:0;padding:0;grid-gap:var(--space-8);gap:var(--space-8)}.step{display:grid;grid-template-columns:auto 1fr;grid-gap:var(--space-4);gap:var(--space-4);align-items:start}.step-visual{width:72px;min-height:56px;display:flex;align-items:center;justify-content:center;gap:2px;background:var(--surface-warm);border-radius:var(--radius-md);padding:var(--space-2)}.step-visual img{width:28px;height:28px}.step-visual .mini-arrow{font-weight:800;color:var(--strawberry-deep);font-size:14px}.step-visual .keys{font-weight:800;font-size:15px;color:var(--choc-soft);letter-spacing:.04em}.step-title,.step-visual .keys{font-family:var(--font-stack-display)}.step-title{font-weight:700;font-size:19px;margin-bottom:var(--space-1)}.step-body{color:var(--choc-soft)}.gallery{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));grid-gap:var(--space-8) var(--space-4);gap:var(--space-8) var(--space-4);align-items:start}.gallery-item{display:grid;justify-items:center;grid-gap:var(--space-2);gap:var(--space-2);text-align:center}.gallery-item img{width:clamp(72px,10vw,96px);height:auto;transition:transform .3s var(--ease-out-expo)}.gallery-item:hover img{transform:translateY(-6px) rotate(-3deg)}@media (min-width:720px){.gallery-item:nth-child(4n+2){transform:translateY(var(--space-8))}.gallery-item:nth-child(4n+4){transform:translateY(var(--space-4))}}.gallery-name{font-family:var(--font-stack-display);font-weight:700;font-size:15px}.gallery-kcal{font-size:13px;font-weight:700;color:var(--strawberry-deep)}.tips{list-style:none;margin:0;padding:0;grid-gap:var(--space-6);gap:var(--space-6);max-width:65ch;counter-reset:tip}.tip,.tips{display:grid}.tip{grid-template-columns:auto 1fr;grid-gap:var(--space-4);gap:var(--space-4);align-items:baseline;counter-increment:tip}.tip:before{content:counter(tip,decimal-leading-zero);font-weight:800;font-size:22px;color:var(--strawberry)}.tip-title,.tip:before{font-family:var(--font-stack-display)}.tip-title{font-weight:700;font-size:18px}.tip-body{color:var(--choc-soft)}.faq-list{display:grid;grid-gap:var(--space-3);gap:var(--space-3);max-width:65ch}.faq-item{background:var(--surface);border-radius:var(--radius-md);box-shadow:0 1px 4px var(--shadow-color);overflow:hidden}.faq-item summary{cursor:pointer;list-style:none;padding:var(--space-4) var(--space-5);font-family:var(--font-stack-display);font-weight:700;font-size:16px;display:flex;justify-content:space-between;align-items:center;gap:var(--space-4)}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:after{content:"+";font-size:20px;color:var(--strawberry);transition:transform .2s var(--ease-out-expo)}.faq-item[open] summary:after{transform:rotate(45deg)}.faq-answer{padding:0 var(--space-5) var(--space-4);color:var(--choc-soft)}.site-footer{margin-top:var(--space-16);padding-block:var(--space-12);background:var(--surface-warm)}.site-footer .wrap{display:grid;grid-gap:var(--space-4);gap:var(--space-4);font-size:14px;color:var(--choc-soft)}.site-footer a{color:var(--strawberry-deep);font-weight:700}.reveal{opacity:0;animation:rise .64s var(--ease-out-expo) forwards;animation-delay:var(--d,0s)}@keyframes rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes tile-appear{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}@keyframes tile-pop{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes score-bump{0%{transform:scale(1)}40%{transform:scale(1.25);color:var(--strawberry-deep)}to{transform:scale(1)}}@keyframes overlay-fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;animation:none}.tile{transition:none}.overlay-cupcake,.score-value,.tile--merged .tile-inner,.tile--new .tile-inner{animation:none}.btn,.gallery-item img,.lang-switch{transition:none}}