.backup-panel{color:#292633;background:#fffdf8f5;border:1px solid #4d39911a;border-radius:30px;gap:22px;width:min(100%,680px);padding:clamp(20px,5vw,30px);display:grid;box-shadow:0 18px 50px #4a3b801f}.backup-panel__header{grid-template-columns:auto 1fr auto;align-items:start;gap:14px;display:grid}.backup-panel__header h2,.backup-panel__header p,.backup-panel__card h3,.backup-panel__card p,.backup-panel__summary h3,.backup-panel__summary p{margin:0}.backup-panel__header h2{letter-spacing:-.035em;margin-bottom:5px;font-size:clamp(1.35rem,5vw,1.75rem)}.backup-panel__header p,.backup-panel__card p{color:#6e687a;line-height:1.48}.backup-panel__mark{color:#fff;background:linear-gradient(145deg,#8c75de,#553da3);border-radius:17px;place-items:center;width:48px;height:48px;font-size:1.5rem;display:grid;box-shadow:0 9px 20px #4d399138}.backup-panel__close{color:#6e687a;cursor:pointer;background:#f0edf7;border:0;border-radius:15px;width:44px;height:44px;font-size:1.6rem;line-height:1}.backup-panel__actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.backup-panel__card{background:#fff;border:1px solid #4d399117;border-radius:22px;align-content:start;gap:12px;min-width:0;padding:18px;display:grid;box-shadow:0 8px 24px #4a3b800f}.backup-panel__card h3{margin-bottom:4px;font-size:1.05rem}.backup-panel__card small{color:#6e687a;text-align:center}.backup-panel__icon{border-radius:14px;place-items:center;width:42px;height:42px;font-size:1.25rem;font-weight:900;display:grid}.backup-panel__icon--export{color:#4b378e;background:#e9e3ff}.backup-panel__icon--import{color:#26705a;background:#dcefd8}.backup-panel__button,.backup-panel__file-button{color:#fff;text-align:center;cursor:pointer;background:#725bc8;border:0;border-radius:15px;place-items:center;min-height:48px;margin-top:auto;padding:10px 16px;font-weight:800;display:grid;box-shadow:0 7px 16px #4d39912e}.backup-panel__button:hover:not(:disabled),.backup-panel__file-button:hover:not(.is-disabled){background:#5e47b0}.backup-panel__button:disabled,.backup-panel__file-button.is-disabled{opacity:.5;cursor:not-allowed}.backup-panel__file-input{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.backup-panel__file-input:focus-visible+small,.backup-panel__card:focus-within .backup-panel__file-button{outline-offset:3px;outline:3px solid #e96e57}.backup-panel__summary{background:#f6fbf4;border:1px solid #357d5c33;border-radius:22px;gap:16px;padding:19px;display:grid}.backup-panel__summary-heading{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:11px;display:grid}.backup-panel__summary-heading>span{color:#fff;background:#39785f;border-radius:12px;place-items:center;width:36px;height:36px;font-weight:900;display:grid}.backup-panel__summary-heading p{color:#6e687a;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;overflow:hidden}.backup-panel__summary dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:0;display:grid}.backup-panel__summary dl>div{background:#ffffffc7;border-radius:14px;gap:3px;padding:11px 12px;display:grid}.backup-panel__summary dt{color:#6e687a;font-size:.75rem;line-height:1.3}.backup-panel__summary dd{margin:0;font-weight:850}.backup-panel__safety{color:#493591;background:#ece7ff;border-radius:14px;align-items:flex-start;gap:9px;padding:12px;font-size:.88rem;line-height:1.42;display:flex}.backup-panel__safety span{font-size:1.15rem;font-weight:900}.backup-panel__confirmation{color:#48424f;cursor:pointer;grid-template-columns:auto 1fr;align-items:start;gap:10px;min-height:44px;font-size:.88rem;line-height:1.4;display:grid}.backup-panel__confirmation input{opacity:0;position:absolute}.backup-panel__confirmation>span{background:#fff;border:2px solid #8e86a0;border-radius:8px;place-items:center;width:25px;height:25px;display:grid}.backup-panel__confirmation input:checked+span{background:#725bc8;border-color:#725bc8}.backup-panel__confirmation input:checked+span:after{content:"✓";color:#fff;font-size:.82rem;font-weight:900}.backup-panel__confirmation input:focus-visible+span{outline-offset:3px;outline:3px solid #e96e57}.backup-panel__button--confirm{background:#493591;width:100%;margin-top:0}.backup-panel__notice{color:#6e687a;text-align:center;min-height:22px;padding:0 2px;font-size:.9rem;line-height:1.45}.backup-panel__notice--success{color:#28684f;font-weight:750}.backup-panel__notice--error{color:#a63525;font-weight:750}.high-contrast .backup-panel,.high-contrast .backup-panel__card,.high-contrast .backup-panel__summary{border:2px solid #292633}@media (width<=560px){.backup-panel__actions{grid-template-columns:1fr}.backup-panel__header{grid-template-columns:42px 1fr auto}.backup-panel__mark{width:42px;height:42px}.backup-panel__summary dl{grid-template-columns:1fr}}:root{color:#292633;font-synthesis:none;text-rendering:optimizelegibility;--violet:#725bc8;--violet-dark:#493591;--panel:#fffdf8;--muted:#6e687a;--peach:#ffd9c2;--sage:#dcefd8;--coral:#e96e57;--shadow:0 18px 50px #4a3b801f;background:#f4f2ff;font-family:Inter,ui-rounded,SF Pro Rounded,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:radial-gradient(circle at 50% -10%,#fff 0,#f4f2ff 38%,#ece9fb 100%);min-width:320px;min-height:100dvh}button,input{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible{outline-offset:3px;outline:3px solid #e96e57}.sr-only{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.skip-link{z-index:50;color:#fff;background:#292633;border-radius:12px;padding:10px 14px;transition:transform .15s;position:fixed;top:12px;left:16px;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}.app-shell{width:min(100%,760px);min-height:100dvh;padding:max(22px, env(safe-area-inset-top)) 20px calc(108px + env(safe-area-inset-bottom));margin:0 auto}.topbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:26px;display:flex}.topbar h1{letter-spacing:-.045em;margin:4px 0 0;font-size:clamp(1.75rem,6vw,2.5rem)}.eyebrow{letter-spacing:.19em;color:var(--violet);font-size:.7rem;font-weight:800}.icon-button{cursor:pointer;background:#ffffffbd;border:0;border-radius:18px;width:48px;height:48px;box-shadow:0 8px 24px #4a3b8014}.screen{gap:24px;display:grid}.hero-card{color:#fff;min-height:270px;box-shadow:var(--shadow);background:linear-gradient(145deg,#8068d4,#4e3999);border-radius:34px;grid-template-columns:1.25fr .75fr;align-items:center;gap:12px;padding:28px;display:grid;position:relative;overflow:hidden}.hero-card:after{content:"";background:#ffffff1a;border-radius:50%;width:240px;height:240px;position:absolute;top:-110px;right:-95px}.hero-copy{z-index:1;position:relative}.hero-copy h2{letter-spacing:-.04em;margin:18px 0 8px;font-size:clamp(1.55rem,6vw,2.25rem);line-height:1.02}.hero-copy p{color:#ffffffc7;margin:0 0 22px;line-height:1.45}.pill{color:inherit;letter-spacing:.08em;background:#ffffff29;border-radius:999px;padding:7px 11px;font-size:.7rem;font-weight:800;display:inline-flex}.primary-button{min-height:48px;color:var(--violet-dark);cursor:pointer;background:#fff;border:0;border-radius:16px;padding:0 22px;font-weight:850;box-shadow:0 8px 20px #180e4433}.hero-art{z-index:1;aspect-ratio:1;background:#ffffffe0;border:1px solid #ffffffb8;border-radius:28px;width:100%;position:relative;overflow:hidden;transform:rotate(2deg);box-shadow:0 18px 35px #1d124a47}.level-artwork{isolation:isolate;background:color-mix(in srgb, var(--art-accent,#ece7ff) 16%, #fff);width:100%;min-width:0;height:100%;position:relative;overflow:hidden}.level-artwork img{width:100%;height:100%;display:block}.level-artwork .artwork-cover{z-index:0;object-fit:cover;filter:blur(18px)saturate(.92);opacity:.25;position:absolute;inset:0;transform:scale(1.12)}.level-artwork .artwork-subject{z-index:1;object-fit:contain;position:relative}.level-artwork.fallback{background:radial-gradient(circle,#fff 0,#f2edff 100%);place-items:center;padding:14%;display:grid}.level-artwork.fallback .level-thumbnail{width:100%;height:100%}.section-block{gap:12px;display:grid}.section-heading{justify-content:space-between;align-items:baseline;display:flex}.section-heading h2{margin:0;font-size:1.1rem}.section-heading span{color:var(--muted);font-size:.85rem}.section-heading button{color:var(--violet);cursor:pointer;background:0 0;border:0;font-weight:750}.daily-card,.collection-card,.setting-action{text-align:left;cursor:pointer;background:#fffdf8e0;border:1px solid #4d399114;border-radius:22px;align-items:center;gap:14px;width:100%;min-height:82px;padding:14px 16px;display:flex;box-shadow:0 10px 28px #4a3b8012}.daily-card>span:nth-child(2),.collection-copy,.setting-action>span:first-child{flex:1;gap:4px;display:grid}.daily-card small,.collection-card small,.setting-action small,.toggle-row small{color:var(--muted);line-height:1.35}.daily-icon{color:#fff;background:linear-gradient(145deg, #ffad76, var(--coral));border-radius:17px;place-items:center;width:50px;height:50px;font-size:1.4rem;display:grid}.collection-list{gap:12px;display:grid}.collection-card.peach .collection-art{background:var(--peach);color:#b85441}.collection-card.sage .collection-art{background:var(--sage);color:#3d7c60}.collection-card.violet .collection-art{color:var(--violet);background:#dfd8ff}.collection-art{border-radius:19px;place-items:center;width:58px;height:58px;font-size:1.5rem;display:grid;overflow:hidden}.collection-art .level-artwork{width:100%;height:100%}.collection-copy i{background:#ece8ee;border-radius:5px;width:100%;height:5px;overflow:hidden}.collection-copy i b{background:var(--violet);border-radius:inherit;height:100%;display:block}.gem-preview{z-index:1;filter:drop-shadow(0 12px 16px #180e4440);grid-template-columns:repeat(3,36px);gap:3px;display:grid;position:relative;transform:rotate(-4deg)}.gem-preview span{color:#ffe8a3;text-shadow:0 1px #fff;background:linear-gradient(145deg,#ffe89f 10%,#ff9a70 50%,#e95f75 100%);border:2px solid #ffffff80;border-radius:9px;place-items:center;width:36px;height:36px;display:grid}.gem-preview.compact{filter:none;grid-template-columns:repeat(3,24px);gap:2px;transform:none}.gem-preview.compact span{border-radius:6px;width:24px;height:24px;font-size:.7rem}.level-thumbnail{filter:drop-shadow(0 8px 9px #241b3a38);width:96px;height:96px;overflow:visible}.level-thumbnail.featured{filter:drop-shadow(0 14px 16px #180e444d);width:clamp(112px,21vw,160px);height:clamp(112px,21vw,160px);transform:rotate(-3deg)}.card{box-shadow:var(--shadow);background:#fffdf8e0;border-radius:30px;padding:26px}.daily-detail{text-align:center;justify-items:center;gap:16px;display:grid}.daily-detail .pill{color:var(--violet);background:#ece7ff}.daily-detail h2{margin:0;font-size:1.7rem}.daily-detail p{max-width:48ch;color:var(--muted);margin:0;line-height:1.55}.large-gem{color:#ff9276;text-shadow:0 5px #c84f66,0 12px 22px #c94f6640;font-size:5rem}.stamp-row{justify-content:center;gap:7px;width:100%;display:flex}.stamp-row span{width:36px;height:36px;color:var(--muted);background:#eeeaf5;border-radius:12px;place-items:center;font-size:.8rem;font-weight:800;display:grid}.stamp-row .done{color:#fff;background:var(--violet)}.daily-detail .primary-button{background:var(--violet);color:#fff}.gallery-grid{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.gallery-item{aspect-ratio:1;cursor:pointer;background:#fffdf8e6;border:0;border-radius:26px;min-width:0;padding:0;font-weight:750;position:relative;overflow:hidden;box-shadow:0 12px 30px #4a3b801f}.gallery-item .level-artwork{position:absolute;inset:0}.gallery-label{z-index:3;color:#fff;text-shadow:0 1px 4px #00000073;background:linear-gradient(#0000,#20192dd6);justify-content:center;align-items:flex-end;min-height:56px;padding:24px 12px 11px;display:flex;position:absolute;inset:auto 0 0}.gallery-item.locked{opacity:.48;filter:grayscale()}.settings-list{padding:8px 20px}.toggle-row,.setting-action{border-bottom:1px solid #eeeaf0;align-items:center;gap:16px;min-height:78px;display:flex}.toggle-row>span{flex:1;gap:4px;display:grid}.toggle-row input{opacity:0;position:absolute}.toggle-row>i{background:#d8d3df;border-radius:20px;width:50px;height:30px;padding:3px;transition:all .2s}.toggle-row>i:after{content:"";background:#fff;border-radius:50%;width:24px;height:24px;transition:all .2s;display:block;box-shadow:0 2px 6px #0000002e}.toggle-row input:checked+i{background:var(--violet)}.toggle-row input:checked+i:after{transform:translate(20px)}.toggle-row input:focus-visible+i{outline:3px solid var(--coral);outline-offset:3px}.setting-action{box-shadow:none;background:0 0;border:0;border-bottom:1px solid #eeeaf0;border-radius:0;padding-inline:0}.bottom-nav{z-index:10;left:50%;bottom:max(12px, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffdf8e0;border:1px solid #fffc;border-radius:26px;grid-template-columns:repeat(4,1fr);gap:4px;width:min(100% - 24px,720px);padding:8px;display:grid;position:fixed;transform:translate(-50%);box-shadow:0 14px 45px #372a692e}.bottom-nav button{min-height:56px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:19px;place-items:center;gap:2px;display:grid}.bottom-nav button span{font-size:1.25rem;line-height:1}.bottom-nav button small{font-size:.68rem;font-weight:750}.bottom-nav button.active{color:var(--violet-dark);background:#ece7ff}.update-toast{z-index:20;color:#fff;width:min(90%,580px);box-shadow:var(--shadow);background:#292633;border-radius:18px;align-items:center;gap:10px;padding:14px 16px;display:flex;position:fixed;bottom:100px;left:50%;transform:translate(-50%)}.update-toast span{flex:1}.update-toast button{cursor:pointer;touch-action:manipulation;border:0;border-radius:12px;min-height:44px;transition:transform .12s,background-color .12s,box-shadow .12s}.update-toast__action{color:var(--violet-dark);background:#fff;padding:0 17px;font-weight:850;box-shadow:0 5px 14px #0000003d}.update-toast__action:hover{background:#f0ecff}.update-toast__action:active{background:#e4ddff;transform:scale(.97);box-shadow:0 2px 7px #00000038}.update-toast__close{color:#fff;background:#ffffff24;width:44px;padding:0;font-size:1.25rem}.update-toast__close:hover{background:#ffffff3d}.update-toast__close:active{background:#ffffff52;transform:scale(.97)}.levels-grid{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.level-card{aspect-ratio:.84;text-align:left;text-transform:capitalize;cursor:pointer;background:#fffdf8e6;border:1px solid #4d399114;border-radius:26px;min-width:0;padding:0;transition:transform .18s,box-shadow .18s;position:relative;overflow:hidden;box-shadow:0 12px 30px #4a3b801f}.level-card:hover{transform:translateY(-3px);box-shadow:0 18px 34px #4a3b802e}.level-card>.level-artwork{position:absolute;inset:0}.level-card>.level-number{z-index:4;width:34px;height:34px;color:var(--violet-dark);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffe6;border:1px solid #ffffffe0;border-radius:12px;place-items:center;font-weight:850;display:grid;position:absolute;top:11px;left:11px;box-shadow:0 5px 14px #2f22532e}.level-card-overlay{z-index:3;color:#fff;text-shadow:0 1px 4px #00000080;background:linear-gradient(#0000,#1e172be6);gap:3px;padding:34px 13px 13px;display:grid;position:absolute;inset:auto 0 0}.level-card-overlay strong{text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;line-height:1.15;overflow:hidden}.level-card-overlay small{color:#ffffffd1;text-shadow:none;font-size:.72rem}.game-mode{width:min(100%,860px);padding-bottom:max(20px, env(safe-area-inset-bottom))}.game-screen{grid-template-rows:auto auto minmax(280px,1fr) auto auto auto;gap:10px;min-height:calc(100dvh - 50px);display:grid}.game-header{grid-template-columns:48px 1fr 48px;align-items:center;gap:12px;display:grid}.game-header>div{justify-items:center;gap:2px;display:grid}.game-header span{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;font-weight:750}.game-header strong{font-size:1.2rem}.progress-track{background:#725bc821;border-radius:10px;height:7px;overflow:hidden}.progress-track i{border-radius:inherit;background:linear-gradient(90deg,#8e79dc,#e96e78);height:100%;transition:width .3s;display:block}.gem-board{background:0 0;border-radius:28px;width:100%;min-height:280px;position:relative;overflow:hidden}.gem-board-canvas{touch-action:none;overscroll-behavior:contain;width:100%;height:100%;min-height:280px}.gem-board canvas{display:block;width:100%!important;height:100%!important}.zoom-panel{background:#fffdf8eb;border:1px solid #4a3b8024;border-radius:16px;grid-template-columns:52px minmax(72px,1fr) 52px 44px;gap:5px;padding:5px;display:grid;box-shadow:0 6px 18px #3629591f}.zoom-panel button{min-height:44px;color:var(--violet-dark);cursor:pointer;touch-action:manipulation;background:0 0;border:0;border-radius:11px;font-size:1.25rem;font-weight:850}.zoom-panel button:active{background:#725bc821;transform:scale(.97)}.zoom-panel .zoom-reset{font-variant-numeric:tabular-nums;font-size:.78rem}.zoom-panel .zoom-close{color:var(--muted)}.accessible-board-grid.visible{grid-template-columns:repeat(var(--board-columns), minmax(0, 1fr));align-content:center;gap:0;min-height:280px;padding:14px;display:grid}.gem-board.dom-grid-visible .gem-board-canvas{display:none}.accessible-board-grid.visible>button,.accessible-board-grid.visible>.accessible-inactive-cell{aspect-ratio:1;min-width:0}.accessible-board-grid.visible>button{border:1px solid color-mix(in srgb, var(--target-color) 38%, #211a2c);color:var(--cell-gem-color);background:var(--target-color);cursor:pointer;border-radius:0;place-items:center;padding:0;display:grid}.accessible-board-grid.visible>button span{border:2px solid color-mix(in srgb, var(--cell-gem-color) 35%, #111620);clip-path:polygon(18% 0,82% 0,100% 18%,100% 82%,82% 100%,18% 100%,0 82%,0 18%);color:#0000;background:var(--cell-gem-color);width:68%;height:68%;text-shadow:none;place-items:center;display:grid;box-shadow:inset 4px 4px #ffffff38,inset -4px -4px #12111c57,1px 2px 2px #12111c38}.accessible-board-grid.visible>button.empty span{visibility:hidden}.accessible-board-grid.visible>button.hinted{outline:4px solid var(--coral);outline-offset:-1px}.accessible-board-grid.visible>button.selected{z-index:1}.accessible-board-grid.visible>button.selected span{transition:transform .145s cubic-bezier(.2,.8,.2,1),box-shadow .145s ease-out;transform:translateY(-15%)scale(1.08);box-shadow:inset 4px 4px #ffffff38,inset -4px -4px #12111c57,1px 8px 5px #12111c52}.game-message{min-height:22px;color:var(--muted);text-align:center;margin:0;font-size:.87rem}.tutorial-coach{z-index:12;left:max(16px, env(safe-area-inset-left));right:max(16px, env(safe-area-inset-right));bottom:calc(148px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffafcf5;border:1px solid #5e407738;border-radius:20px;padding:16px;position:absolute;box-shadow:0 16px 40px #432d5233}.tutorial-coach p{color:#40354a;margin:10px 0 14px;font-weight:650}.tutorial-coach>div{justify-content:flex-end;gap:10px;display:flex}.tutorial-coach button{min-height:42px;padding:8px 14px}.tray{scroll-snap-type:x proximity;scrollbar-width:thin;overscroll-behavior-inline:contain;touch-action:pan-x;background:linear-gradient(#fff7e9 0%,#ffead4 100%);border:2px solid #f0c9a7;border-radius:18px;grid-template-rows:repeat(2,48px);grid-auto-columns:clamp(46px,6.4vw,50px);grid-auto-flow:column;justify-content:start;gap:5px;padding:10px 12px;display:grid;position:relative;overflow:auto hidden;box-shadow:inset 0 1px #fffffff0,0 5px #e9b98e,0 10px 20px #684b3b29}.tray>button:not(.tray-expand){aspect-ratio:1;color:#fff;cursor:pointer;background:#fff8ee7a;border:2px solid #974b324d;border-radius:13px;place-items:center;min-width:0;min-height:44px;padding:4px;display:grid}.tray>button.filled{border-color:color-mix(in srgb, var(--gem-color) 72%, #3b2748);background:#ffffffe0;box-shadow:inset 0 0 0 2px #ffffffb8,0 4px 9px #5c36392e}.tray-gem{aspect-ratio:1;clip-path:polygon(18% 0,82% 0,100% 18%,100% 82%,82% 100%,18% 100%,0 82%,0 18%);color:#0000;background:var(--gem-deepest);filter:drop-shadow(0 3px 1px #161f2b4d);width:min(82%,42px);text-shadow:none;border:0;border-radius:9px;place-items:center;font-size:0;display:grid;position:relative;overflow:hidden}.tray-gem:before{content:"";clip-path:inherit;background:conic-gradient(from 45deg, var(--gem-rim) 0 25%, var(--gem-deepest) 0 50%, var(--gem-soft-light) 0 75%, var(--gem-light) 0);position:absolute;inset:5%}.tray-gem:after{content:"";clip-path:polygon(13% 0,87% 0,100% 13%,100% 87%,87% 100%,13% 100%,0 87%,0 13%);background:linear-gradient(145deg, #fff3 0 16%, transparent 17%), var(--gem-color);position:absolute;inset:20%;box-shadow:inset 1px 1px #ffffff2e}.tray>button{scroll-snap-align:start}.tray>button.selected{z-index:1;transform:translateY(-5px)scale(1.05);box-shadow:0 8px 14px #49359147}.tray-reward{color:#7c4932;pointer-events:none;background:#fff7e9f5;border:1px solid #e6b78f;border-radius:999px;align-self:start;min-width:max-content;margin:-6px -8px 0 3px;padding:5px 8px;font-size:.64rem;font-weight:850;position:sticky;right:0;box-shadow:0 3px 7px #684b3b29}.tray-expand{color:#fff;background:var(--violet);cursor:pointer;border:0;border-radius:12px;min-width:42px;height:28px;font-size:.72rem;font-weight:850;position:absolute;top:-14px;right:7px}.game-toolbar{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.game-toolbar button{cursor:pointer;background:#fffdf8db;border:0;border-radius:18px;place-items:center;gap:2px;min-height:56px;display:grid;box-shadow:0 7px 20px #4a3b8012}.game-toolbar span{color:var(--violet);font-size:1.25rem}.game-toolbar small{color:var(--muted);font-weight:750}.game-loading,.completion-screen{text-align:center;align-content:center;place-items:center;gap:14px;min-height:calc(100dvh - 50px);display:grid}.completion-screen h1{text-transform:capitalize;margin:0;font-size:clamp(2rem,10vw,4rem)}.completion-screen p{color:var(--muted)}.completion-skip{z-index:3;top:max(18px, env(safe-area-inset-top));right:max(18px, env(safe-area-inset-right));min-height:42px;color:var(--violet-dark);cursor:pointer;background:#ffffffe6;border:1px solid #4d399133;border-radius:999px;padding:0 14px;font-weight:800;position:fixed}.completion-burst{color:#ff9276;align-items:center;gap:20px;height:32px;font-size:2rem;display:flex}.completion-burst span:nth-child(2){color:var(--violet);text-shadow:0 4px #4e3999,0 10px 24px #4d39913d;font-size:3.5rem}.completion-artwork-wrap{place-items:center;display:grid}.completion-artwork{aspect-ratio:1;border:1px solid #fffffff0;border-radius:34px;width:min(74vw,430px);height:auto;box-shadow:0 24px 60px #4a3b8038}.completion-summary{justify-items:center;gap:10px;display:grid}.completion-screen.revealing .completion-artwork-wrap{animation:2.15s cubic-bezier(.2,.75,.15,1) both completion-reveal}.completion-screen.revealing .completion-burst{animation:1.7s ease-out .35s both completion-burst}.completion-screen.revealing .completion-summary{opacity:0;pointer-events:none}.completion-screen.revealed .completion-summary{animation:.36s ease-out both completion-summary}@keyframes completion-reveal{0%{clip-path:inset(100% 0 0);filter:brightness(1.6);transform:scale(.94)}65%{clip-path:inset(18% 0 0)}to{clip-path:inset(0);filter:brightness();transform:scale(1)}}@keyframes completion-burst{0%{opacity:0;transform:scale(.3)rotate(-20deg)}70%{opacity:1;transform:scale(1.18)rotate(4deg)}to{transform:scale(1)}}@keyframes completion-summary{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.completion-actions{gap:12px;display:flex}.completion-actions .primary-button{color:#fff;background:var(--violet)}.secondary-button{min-height:48px;color:var(--violet-dark);cursor:pointer;background:#fff;border:1px solid #4d39912e;border-radius:16px;padding:0 22px;font-weight:800}.pause-overlay{z-index:40;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#1e182e9e;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.pause-card{background:var(--panel);text-align:center;border-radius:30px;justify-items:center;gap:14px;width:min(100%,420px);padding:30px;display:grid;box-shadow:0 30px 80px #140e2857}.pause-card .large-gem{font-size:3.5rem}.pause-card h2,.pause-card p{margin:0}.pause-card p{color:var(--muted)}.high-contrast,:root.high-contrast{--muted:#413c49;--violet:#4d359f;--violet-dark:#2f1d77;--coral:#b8321c}.high-contrast .card,.high-contrast .gem-board,.high-contrast .tray,.high-contrast .game-toolbar button{border:2px solid #292633}.high-contrast .progress-track{background:#fff;border:1px solid #292633}.high-contrast .tray>button:not(.tray-expand){border-color:#5b3224}.high-contrast .accessible-board-grid.visible>button{border-width:3px;border-color:#17121f}.reduce-motion *,.reduce-motion :before,.reduce-motion :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}@media (width<=520px){.app-shell{padding-inline:14px}.hero-card{grid-template-columns:1fr;min-height:330px;padding:24px}.hero-art{opacity:.54;width:190px;position:absolute;bottom:-34px;right:-30px;transform:rotate(-9deg)}.hero-copy{max-width:76%}.gallery-grid{grid-template-columns:1fr 1fr}.game-mode{padding-inline:10px}.tray{grid-auto-columns:48px}}@media (width>=700px) and (width<=820px) and (orientation:portrait){.app-shell{width:100%;padding-inline:24px}.levels-grid{grid-template-columns:repeat(3,1fr);gap:16px}.level-card{aspect-ratio:.82;border-radius:28px}.level-card-overlay{padding-inline:15px;padding-bottom:15px}.level-card-overlay strong{font-size:1rem}.hero-card{grid-template-columns:1.1fr .9fr;min-height:300px;padding:30px}.hero-art{justify-self:end;width:min(100%,248px)}.game-mode{padding-top:max(16px, env(safe-area-inset-top));padding-inline:20px}.game-screen{grid-template-rows:auto auto minmax(480px,1fr) auto auto auto;gap:10px;min-height:calc(100dvh - 36px)}.gem-board,.gem-board-canvas,.accessible-board-grid.visible{min-height:480px}.tray{grid-template-rows:repeat(2,52px);grid-auto-columns:52px;padding:12px 16px}.tray>button:not(.tray-expand){aspect-ratio:auto;height:58px}.gallery-grid{grid-template-columns:repeat(3,1fr)}.gallery-item{border-radius:28px}.completion-artwork{width:min(50vw,430px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
