:root{--ink:#432246;--muted:#684f6d;--pink:#c92f70;--pink-dark:#98204f;--cream:#fffdf8;--line:#e5d2e2;--green:#337a42;--gold:#a15d00;--focus:#075ea8;--shadow:0 12px 30px rgba(79,45,85,.16)}
*{box-sizing:border-box}body{margin:0;min-height:100vh;color:var(--ink);font-family:Poppins,system-ui,sans-serif;background:linear-gradient(180deg,#fff7fb 0 55%,#e4f5d1 55% 74%,#c7e9ad 74%)}button{font:inherit}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:4px solid var(--focus);outline-offset:3px}.skip-link{position:fixed;z-index:10000;left:1rem;top:-5rem;padding:.8rem 1rem;background:#fff;color:#071b35;border-radius:.5rem;font-weight:800}.skip-link:focus{top:1rem}.game-shell{width:min(1100px,100%);margin:auto;padding:1rem clamp(.75rem,3vw,2rem) 3rem}.game-header,.level-heading,.hud,.game-layout,.header-actions,.identity,.board-actions,.dialog-actions{display:flex;align-items:center}.game-header{justify-content:space-between;gap:1rem;margin-bottom:1.2rem}.identity{gap:.75rem}.identity__flower{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#fff0a8;font-size:1.8rem;box-shadow:0 6px 16px #6a37552b}.identity h1{font-size:clamp(1.25rem,3vw,1.65rem);line-height:1.1;margin:0}.identity p{margin:.18rem 0 0;color:var(--muted);font-weight:700;font-size:.85rem}.header-actions{gap:.55rem}.icon-button,.mode-pill,.speak-button{min-height:44px;border:1px solid var(--line);border-radius:999px;background:var(--cream);color:var(--ink);font-weight:800;cursor:pointer;padding:.65rem .9rem}.icon-button:hover,.speak-button:hover{background:#fff0f6}.card{background:rgba(255,253,248,.96);border:1px solid var(--line);border-radius:26px;box-shadow:var(--shadow)}.welcome{display:grid;grid-template-columns:210px 1fr;gap:2rem;align-items:center;max-width:850px;margin:8vh auto;padding:clamp(1.5rem,4vw,3rem)}.mira-portrait{font-size:8rem;text-align:center;filter:drop-shadow(0 12px 12px #6a37552b)}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--pink-dark);font-size:.75rem;font-weight:900;margin:0 0 .25rem}.welcome h2,.dialog h2,.level-heading h2{font-size:clamp(1.5rem,4vw,2.25rem);line-height:1.15;margin:.2rem 0}.welcome__copy>p:not(.eyebrow),.dialog>p{color:var(--muted);font-weight:600}.mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1.4rem}.mode-card{display:grid;gap:.35rem;min-height:165px;text-align:left;padding:1.15rem;border:2px solid #b9d6b1;border-radius:20px;background:#f3fae9;color:var(--ink);cursor:pointer}.mode-card--challenge{border-color:#edb1c9;background:#fff0f6}.mode-card:hover{transform:translateY(-3px);box-shadow:0 9px 18px #6a375526}.mode-card__icon{font-size:2rem}.mode-card strong{font-size:1.1rem}.mode-card span:last-child{color:var(--muted);font-size:.88rem;font-weight:600}.play-view[hidden],.dialog-layer[hidden],.welcome[hidden]{display:none}.level-heading{justify-content:space-between;gap:1rem;margin:.4rem 0 1rem}.mode-pill{background:#eff9e5;color:#265f32;border-color:#acd09e}.hud{align-items:stretch;gap:.65rem;margin-bottom:1rem}.goal-card,.stat{border:1px solid var(--line);background:var(--cream);border-radius:17px;box-shadow:0 5px 14px #6a375518;padding:.7rem 1rem}.goal-card{flex:1;min-width:240px}.goal-card strong{display:block}.stat{min-width:92px;text-align:center;display:grid;place-items:center}.stat strong{font-size:1.18rem}.hud-label{display:block;color:var(--muted);font-size:.68rem;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.progress-track{height:10px;margin-top:.5rem;border-radius:99px;background:#ead8e7;overflow:hidden}.progress-track span{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--pink),#f28c42);transition:width .35s}.game-layout{align-items:flex-start;justify-content:center;gap:1.25rem}.board-column{width:min(100%,640px);position:relative}.board{--size:6;display:grid;grid-template-columns:repeat(var(--size),1fr);gap:7px;padding:12px;border:2px solid #dbc4d7;border-radius:25px;background:rgba(255,253,248,.97);box-shadow:var(--shadow);touch-action:manipulation}.cell{position:relative;display:grid;place-items:center;aspect-ratio:1;border:0;border-radius:16px;background:#f6e8f2;font-size:clamp(1.65rem,5.2vw,2.75rem);line-height:1;cursor:pointer;box-shadow:inset 0 -3px #e4cfe088;transition:transform .16s,background .16s,opacity .16s}.cell:nth-child(even){background:#ebf5dc}.cell:hover{transform:translateY(-2px)}.cell.is-cursor{box-shadow:inset 0 -3px #e4cfe088,0 0 0 4px var(--focus)}.cell.is-selected{background:#fff0a8;box-shadow:0 0 0 5px var(--pink);transform:scale(1.05);z-index:2}.cell.is-hint{animation:hintBounce .65s 3;box-shadow:0 0 0 5px var(--green)}.cell.is-clearing{animation:clearFruit .34s both}.cell.is-obstacle{background:#d8eef7}.cell__special{position:absolute;right:3px;bottom:2px;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#fff;color:#3a2140;font-size:.78rem;font-weight:900;box-shadow:0 2px 5px #0003}.cell__cover{position:absolute;inset:3px;border:3px solid #80cce8;border-radius:13px;background:linear-gradient(135deg,#fff8,#7bd0ee55);pointer-events:none}.combo-banner{position:absolute;z-index:5;left:50%;top:40%;transform:translate(-50%,-50%) scale(.6);opacity:0;padding:.7rem 1.2rem;border-radius:99px;background:#542552;color:#fff;font-size:1.35rem;font-weight:900;pointer-events:none}.combo-banner.show{animation:comboPop .8s}.board-actions{justify-content:center;gap:.65rem;margin-top:.8rem}.board-actions button{display:grid;grid-template-columns:auto 1fr;column-gap:.35rem;align-items:center;min-height:52px;padding:.45rem .8rem;border:1px solid var(--line);border-radius:15px;background:var(--cream);color:var(--ink);font-weight:900;cursor:pointer}.board-actions small{grid-column:2;color:var(--muted);font-size:.66rem;text-align:left}.board-actions button:disabled{opacity:.5;cursor:not-allowed}.guide{width:220px;flex:0 0 220px;padding:1.2rem;text-align:center}.guide__face{font-size:4.5rem}.guide>p{min-height:70px;color:var(--muted);font-weight:800}.speak-button{font-size:.8rem}.objectives{display:grid;gap:.45rem;margin-top:1rem;text-align:left}.objective{padding:.55rem .65rem;background:#f9f0f6;border-radius:12px;font-size:.78rem;font-weight:800}.objective.done{background:#e9f7df;color:#265f32}.dialog-layer{position:fixed;z-index:9000;inset:0;display:grid;place-items:center;padding:1rem;background:rgba(40,20,42,.7);backdrop-filter:blur(6px)}.dialog{position:relative;width:min(540px,100%);max-height:90vh;overflow:auto;padding:clamp(1.5rem,4vw,2.3rem);border-radius:26px;background:var(--cream);box-shadow:0 25px 70px #0005}.level-dialog{width:min(800px,100%)}.dialog-close{position:absolute;right:1rem;top:1rem;width:44px;height:44px;border:0;border-radius:50%;background:#efe5ed;color:var(--ink);font-size:1.8rem;cursor:pointer}.level-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.75rem;margin-top:1.4rem}.level-tile{display:grid;place-items:center;gap:.2rem;min-height:105px;padding:.6rem;border:2px solid #dfc9db;border-radius:17px;background:#fff;color:var(--ink);font-weight:900;cursor:pointer}.level-tile[disabled]{filter:grayscale(1);opacity:.58;cursor:not-allowed}.level-tile.current{border-color:var(--pink);box-shadow:0 0 0 3px #edb1c9}.level-tile__number{font-size:1.45rem}.level-tile__stars{color:#8a5100;letter-spacing:.06em}.level-tile__world{color:var(--muted);font-size:.62rem}.help-list{list-style:none;padding:0;display:grid;gap:.9rem}.help-list li{display:grid;grid-template-columns:44px 1fr;gap:.7rem;align-items:start}.help-list li>span{font-size:1.7rem}.help-list strong{display:block}.help-list p{margin:.15rem 0;color:var(--muted);font-size:.88rem}.primary-button,.secondary-button{min-height:48px;padding:.7rem 1rem;border-radius:15px;font-weight:900;cursor:pointer}.primary-button{border:2px solid var(--pink-dark);background:var(--pink-dark);color:#fff}.secondary-button{border:2px solid #cdb8c9;background:#fff;color:var(--ink)}.result-dialog{text-align:center}.result-character{font-size:5rem}.result-stars{color:#8a5100;font-size:2.6rem;letter-spacing:.08em}.result-score{display:flex;justify-content:space-between;align-items:center;margin:1rem 0;padding:.8rem 1rem;border-radius:15px;background:#f5eaf2}.result-score strong{font-size:1.4rem}.dialog-actions{justify-content:center;gap:.7rem}.sr-status{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@keyframes clearFruit{50%{transform:scale(1.3) rotate(8deg);opacity:.55}to{transform:scale(.4);opacity:0}}@keyframes hintBounce{50%{transform:translateY(-8px) scale(1.05)}}@keyframes comboPop{30%{transform:translate(-50%,-50%) scale(1.1);opacity:1}75%{opacity:1}to{transform:translate(-50%,-70%) scale(1);opacity:0}}
@media(max-width:760px){.game-shell{padding:.65rem .75rem 2rem}.game-header{margin-bottom:.7rem}.identity p,.icon-button span{display:none}.identity__flower{width:42px;height:42px}.icon-button{width:44px;padding:0}.welcome{grid-template-columns:1fr;margin:1rem auto;text-align:center}.mira-portrait{font-size:5rem}.mode-grid{grid-template-columns:1fr}.hud{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:.35rem}.goal-card{grid-column:auto;min-width:0;padding:.5rem .6rem}.goal-card strong{font-size:.72rem;line-height:1.2}.progress-track{height:7px;margin-top:.35rem}.stat{min-width:0;padding:.45rem .2rem}.stat strong{font-size:1rem}.game-layout{display:block}.guide{width:100%;margin-top:1rem;display:grid;grid-template-columns:auto 1fr auto;align-items:center;text-align:left;gap:.6rem;padding:.8rem}.guide__face{font-size:3rem}.guide>p{min-height:0;margin:0}.objectives{grid-column:1/-1;grid-template-columns:repeat(2,1fr);margin:0}.board{gap:5px;padding:8px;border-radius:20px}.cell{border-radius:13px}.level-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:430px){.level-heading h2{font-size:1.25rem}.mode-pill{font-size:.74rem;padding:.5rem .65rem}.stat{min-width:0;padding:.55rem .35rem}.board-actions{gap:.35rem}.board-actions button{font-size:.78rem;padding:.4rem .55rem}.guide{grid-template-columns:auto 1fr}.speak-button{grid-column:1/-1}.objectives{grid-template-columns:1fr}.cell__special{width:18px;height:18px;font-size:.65rem}.level-grid{grid-template-columns:repeat(3,1fr)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* Universal arcade theme: bold, neutral, and designed for players of any age. */
:root{--ink:#17233f;--muted:#53617a;--pink:#6d36d8;--pink-dark:#47249b;--cream:#fff;--line:#cbd7e8;--green:#087f5b;--gold:#925500;--focus:#0069c7;--shadow:0 14px 34px rgba(23,35,63,.17)}
body{background:radial-gradient(circle at 10% 18%,#ffcf5a99 0 7%,transparent 24%),radial-gradient(circle at 88% 20%,#36c9d699 0 8%,transparent 25%),linear-gradient(155deg,#edf5ff 0 48%,#e3e6ff 48% 72%,#d6eaff 72%)}
.identity__flower{border-radius:16px;background:linear-gradient(145deg,#ffb11b,#ff6b1a);color:#fff;box-shadow:0 7px 18px #e65d293b;transform:rotate(-4deg)}
.icon-button:hover,.speak-button:hover{background:#edf5ff}.card{background:rgba(255,255,255,.96);border-radius:22px}.mira-portrait{filter:drop-shadow(0 12px 12px #17233f2b)}.eyebrow{color:#174f9b}
.mode-card{border-color:#89cbd5;border-radius:18px;background:#ecfbff}.mode-card--challenge{border-color:#efab63;background:#fff4e6}.mode-pill{background:#e8f2ff;color:#123f78;border-color:#8eb8e9}
.goal-card,.stat{border-radius:14px;box-shadow:0 5px 14px #17233f18}.progress-track{background:#dce5f2}.progress-track span{background:linear-gradient(90deg,#7042df,#ff7a19)}
.board{border:3px solid #263f75;border-radius:22px;background:linear-gradient(145deg,#1b2f58,#304f8d);box-shadow:0 15px 35px #17233f38}.cell{border:1px solid #c6d4e8;border-radius:14px;background:#f7f9ff;box-shadow:inset 0 -4px #b9c8dd88,0 2px 3px #0c1c3c33}.cell:nth-child(even){background:#e8f4ff}.cell.is-selected{background:#fff2a8;box-shadow:0 0 0 5px #ff7a19}.guide{border-top:5px solid #ff7a19}.primary-button{border-color:#47249b;background:#47249b}.combo-banner{background:#17233f}.level-tile.current{border-color:#ff7a19;box-shadow:0 0 0 3px #ffd0a8}
