:root{font-family:ui-rounded,Arial Rounded MT Bold,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#fff;background:#4559ac;--bg:#4559ac;--dark:#26345f;--cell:#293863;--c1:#f16d68;--c2:#ffc74d;--c3:#59c881;--c4:#5e9ef4;--c5:#ad75df;--c6:#59cadd;--c7:#f49952;color-scheme:dark;font-synthesis:none}:root[data-theme=night]{--bg:#202b50;--dark:#141d38;--cell:#1b2746;background:#202b50}*{box-sizing:border-box}body{margin:0;min-width:280px;background:radial-gradient(ellipse at 50% 20%,#ffffff09,transparent 70%),var(--bg);min-height:100dvh}button{font:inherit;color:inherit;cursor:pointer;border:0;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default}button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #fff;outline-offset:4px}button:active:not(:disabled){filter:brightness(.95)}h1,h2,p{margin:0}.icon{width:24px;height:24px;vertical-align:middle;flex-shrink:0}.screen{margin:0 auto;max-width:520px;padding:20px 24px max(20px,env(safe-area-inset-bottom));min-height:100dvh;padding-top:max(20px,env(safe-area-inset-top))}.icon-button{width:44px;height:44px;display:inline-grid;place-items:center;background:#ffffff0d;border-radius:14px;color:#dce6ff}.home-top{display:flex;align-items:center;justify-content:space-between}.record{color:#ffdb65;font-weight:800;font-size:21px;display:flex;gap:7px;align-items:center}.record .icon{fill:#ffdb65;stroke:#d8a537}.home{display:flex;flex-direction:column}.brand{text-align:center;margin:auto 0 32px;padding-top:28px}.brand-blocks{display:flex;align-items:center;justify-content:center;gap:12px;transform:rotate(-6deg);height:88px;margin-bottom:24px}.brand-blocks .piece-grid{--unit:25px;filter:drop-shadow(0 4px 0 #24326655)}.brand-blocks .piece-grid:nth-child(2){transform:translateY(-15px) rotate(12deg)}.brand h1{display:flex;flex-direction:column;line-height:.97;letter-spacing:1px;font-weight:1000;filter:drop-shadow(0 6px 0 #24315c)}.brand h1 span{font-size:clamp(36px,10vw,51px);color:#fff1b7;-webkit-text-stroke:1px #573e26}.brand h1 strong{font-size:clamp(48px,13vw,67px);color:#ffd14e;-webkit-text-stroke:1.4px #83572a}.brand p{font-size:15px;margin-top:22px;color:#dde5ff}.mode-buttons{display:grid;gap:16px}.mode-button{display:flex;flex-direction:column;align-items:center;border-radius:18px;padding:15px 16px 13px;min-height:83px;box-shadow:inset 0 2px #ffffff48,0 6px #1e2a6550;text-shadow:0 2px 1px #0003}.mode-button>span{display:flex;align-items:center;gap:9px;font-size:27px;font-weight:850}.mode-button small{font-size:13px;margin-top:5px;color:#fffef5}.mode-button .icon{width:26px;height:26px}.classic,.primary{background:linear-gradient(#73d68d,#37a965)}.adventure{background:linear-gradient(#ffbc6c,#e98846)}.daily{background:linear-gradient(#a397ea,#8172cf)}.home-bottom{display:flex;justify-content:space-evenly;margin-top:33px;gap:16px}.text-button{background:transparent;padding:12px 4px;display:inline-flex;gap:7px;align-items:center;justify-content:center;font-size:14px;color:#d9e4ff}.home-bottom .text-button{flex-direction:column;gap:8px;font-size:13px}.home-bottom .icon{width:27px;height:27px}.offline-label{font-size:11px;letter-spacing:.4px;color:#bdcbea;text-align:center;margin-top:auto;padding-top:22px}.storage-notice{font-size:12px;color:#fff1b7;background:#0002;border-radius:8px;padding:8px;margin-top:10px;text-align:center}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.page-header h1{font-size:25px}.map-intro{text-align:center;padding:0 8px 24px}.map-intro p{color:#d5def7;font-size:15px}.progress-track{height:10px;background:#0003;border-radius:10px;overflow:hidden;margin:18px 0 8px}.progress-track i{height:100%;display:block;background:#73d68d;border-radius:10px}.map-intro>span{font-size:12px;color:#d2dcf6}.primary,.secondary{font-weight:800;padding:14px 22px;border-radius:13px;min-height:48px;box-shadow:inset 0 1px #ffffff30,0 4px #0002}.map-intro .primary{display:block;width:100%;margin-top:18px;font-size:19px}.secondary{background:#7183b733}.chapter-list{display:grid;gap:20px}.chapter{background:#26345f66;border-radius:20px;padding:17px;border:1px solid #ffffff12}.chapter-heading{display:flex;gap:16px;align-items:center}.chapter-heading small{letter-spacing:1.7px;font-size:10px;color:var(--chapter-color);font-weight:800}.chapter-heading h2{font-size:20px;margin:4px 0}.chapter-heading p{font-size:12px;color:#bac9ef}.mosaic{display:grid;grid-template-columns:repeat(8,1fr);aspect-ratio:1;width:100px;gap:2px;flex-shrink:0}.mosaic i{border-radius:2px;box-shadow:inset 0 2px #ffffff1f}.chapter-heading .mosaic{width:70px}.level-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin-top:17px}.level-button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:53px;border-radius:12px;background:#6475a74d;color:#d5def6}.level-button strong{font-size:18px}.level-button span{font-size:10px;color:#ffd461;min-height:12px}.level-button:disabled{opacity:.4}.level-button.complete{background:#3f976d}.level-button.current{background:#ffd069;color:#5d471d;box-shadow:0 0 0 3px #ffdb6530}.level-button.current span{color:#6d5023}.subtitle{text-align:center;color:#d4def8;font-size:14px;margin-bottom:24px}.collection{display:grid;grid-template-columns:1fr 1fr;gap:13px}.picture-card{background:#28366288;border:1px solid #ffffff12;border-radius:17px;text-align:center;padding:20px 10px}.picture-card .mosaic{margin:0 auto 16px;width:min(100%,116px)}.picture-card h2{font-size:15px}.picture-card p{font-size:11px;color:#c1cfee;margin-top:7px}.picture-card.earned{border-color:#ffdf7970}.picture-card.earned p{color:#ffdf79}.collection-finale{text-align:center;padding:25px 0;color:#ffdf79}.game-screen{padding:12px 18px max(12px,env(safe-area-inset-bottom));padding-top:max(12px,env(safe-area-inset-top));display:flex;flex-direction:column;align-items:stretch;height:100dvh;min-height:580px;max-width:510px}.game-header{display:flex;align-items:center;justify-content:space-between;min-height:48px;flex-shrink:0}.game-header>span{text-align:center;font-size:18px;font-weight:750}.game-header small{display:block;font-size:11px;letter-spacing:.25px;color:#c9d5f6;margin-top:4px;font-weight:400}.score-panel{position:relative;text-align:center;min-height:111px;padding-top:26px;padding-bottom:8px;flex-shrink:0}.best-score{display:flex;align-items:center;gap:4px;position:absolute;top:10px;left:3px;color:#ffdc66;font-weight:800;font-size:16px}.best-score .icon{width:19px;height:19px;fill:#ffdc66;stroke:#d6ad3f}#score{display:block;font-size:46px;line-height:1.1;letter-spacing:.2px;text-shadow:0 3px 0 #34468f;font-variant-numeric:tabular-nums}.combo-label{display:inline-flex;align-items:center;font-size:13px;gap:3px;font-weight:900;letter-spacing:.7px;color:#ffdc75;margin-top:8px}.combo-label .icon{width:16px;height:16px;fill:#ffb857;stroke:#ffdb7e}.combo-label.quiet{color:#b9caef;font-size:11px;font-weight:400;letter-spacing:0}.goals{display:flex;justify-content:center;align-items:center;gap:15px;min-height:58px;flex-shrink:0;margin-bottom:8px}.goal{display:flex;align-items:center;gap:8px}.goal-symbol{font-size:28px;display:flex;color:#ffdc75}.goal>div{display:flex;flex-direction:column;gap:3px}.goal small{font-size:10px;color:#cad7fa}.goal strong{font-size:14px;font-variant-numeric:tabular-nums}.goal.done{opacity:.7}.goal>.icon{width:17px;color:#8aeead}.g1{color:#ffda5c}.g2{color:#75e8f1}.g3{color:#f599e8}.board-area{position:relative;margin:auto auto 0;width:min(100%,calc(100dvh - 448px - max(12px,env(safe-area-inset-top)) - max(12px,env(safe-area-inset-bottom))));aspect-ratio:1;flex-shrink:0}.game-screen[data-mode=classic] .board-area{width:min(100%,calc(100dvh - 390px - max(12px,env(safe-area-inset-top)) - max(12px,env(safe-area-inset-bottom))))}.board{width:100%;height:100%;display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);padding:5px;gap:2px;background:var(--dark);border-radius:6px;box-shadow:0 5px #1d2b5755,inset 0 1px 6px #0005;touch-action:none}.cell{padding:0;background:var(--cell);border-radius:2px;position:relative;min-width:0;min-height:0}.block{background:var(--color);position:relative;border-radius:2px;box-shadow:inset 0 3px #ffffff38,inset 3px 0 #ffffff12,inset 0 -4px #0002,inset -3px 0 #0001}.block:after{content:"";position:absolute;top:5px;right:5px;bottom:5px;left:5px;background:#ffffff07;border-radius:1px;pointer-events:none}.c1{--color:var(--c1)}.c2{--color:var(--c2)}.c3{--color:var(--c3)}.c4{--color:var(--c4)}.c5{--color:var(--c5)}.c6{--color:var(--c6)}.c7{--color:var(--c7)}.gem{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:clamp(14px,5vw,24px);z-index:1;text-shadow:0 1px 3px #4f326e,0 0 4px #0006;-webkit-text-stroke:.4px #fff8}.cell.preview{background:var(--preview-color);opacity:.53;box-shadow:inset 0 0 0 2px #fff8}.cell.invalid{box-shadow:inset 0 0 0 2px #ff7c96;background:#ec476833}.cell.will-clear{box-shadow:inset 0 0 0 2px #fff4c4;filter:brightness(1.3)}.tray{display:flex;align-items:center;justify-content:space-between;min-height:137px;gap:5px;flex-shrink:0;margin-top:15px}.piece-slot{position:relative;display:flex;align-items:center;justify-content:center;flex:1;min-width:0;height:118px;padding:12px 3px 20px;background:transparent;border-radius:13px;touch-action:none;-webkit-user-select:none;user-select:none}.piece-slot.selected{background:#ffffff0b;box-shadow:inset 0 0 0 2px #a8c2ff80}.piece-slot.unplaceable{opacity:.43}.piece-slot.used{color:#94afff38;font-size:21px}.slot-number{position:absolute;bottom:1px;font-size:10px;color:#e0eaff45}.piece-grid{--unit:21px;display:grid;grid-template-columns:repeat(var(--cols),var(--unit));grid-template-rows:repeat(var(--rows),var(--unit));gap:2px;pointer-events:none}.piece-grid .gem{font-size:15px}.input-hint{text-align:center;font-size:12px;color:#cbd8f7;min-height:25px;flex-shrink:0;padding-top:2px}.game-footer{display:flex;align-items:center;justify-content:space-between;margin-top:auto;min-height:38px;flex-shrink:0}.game-footer .text-button{font-size:11px}.game-footer .icon{width:17px;height:17px}.game-footer>span{font-size:11px;color:#b7c7ed}#drag-piece{position:fixed;pointer-events:none;z-index:100;opacity:.95;filter:drop-shadow(0 5px 8px #0004);display:none}#drag-piece .gem{font-size:23px}#effects{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.clear-banner{position:absolute;left:0;right:0;top:30%;text-align:center;color:#ffda59;font-size:36px;font-weight:1000;letter-spacing:1px;text-shadow:0 3px 0 #8f5b26,0 0 14px #18234a;animation:celebrate .85s both;z-index:2}.clear-banner small{display:block;font-size:24px;color:#fff8ce;margin-top:5px}.spark{position:absolute;left:calc(var(--x) * 12.5% + 5%);top:calc(var(--y) * 12.5% + 5%);width:6%;height:6%;background:#fff2b2;border-radius:3px;animation:spark .7s both}@keyframes celebrate{0%{opacity:0;transform:scale(.8) translateY(12px)}20%,60%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:translateY(-30px)}}@keyframes spark{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:translateY(-35px) rotate(90deg) scale(.1)}}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#152348bb;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);z-index:50;display:flex;align-items:center;justify-content:center;padding:20px max(20px,env(safe-area-inset-right))}.modal{width:100%;max-width:370px;padding:26px 24px;border-radius:25px;background:linear-gradient(#526bb7,#3b5195);box-shadow:0 16px 60px #0d173680,inset 0 1px #ffffff40;text-align:center;max-height:calc(100dvh - 40px);overflow:auto;overscroll-behavior:contain}.modal h2{font-size:27px;margin-bottom:12px;line-height:1.2}.modal p{font-size:14px;line-height:1.55;color:#dce5ff;margin:10px 0 17px}.modal>.primary,.modal>.secondary{width:100%;display:block;margin-top:13px}.modal>.text-button{margin-top:9px}.modal .modal-note{display:block;font-size:11px;color:#c0cfee;margin:9px 0 15px;line-height:1.4}.result-icon{color:#ffdd69;margin:0 auto 15px;display:flex;justify-content:center}.result-icon .icon{width:62px;height:62px;stroke-width:1.6;fill:#ffd86733}.result-score{font-size:49px;display:block;line-height:1.25;margin:12px 0;color:#fff5cb}.result-stars{font-size:32px;letter-spacing:8px;color:#ffdb67;text-shadow:0 3px 0 #a76c20;margin-bottom:17px}.modal .mosaic{margin:0 auto;width:126px}.modal-actions{display:flex;gap:12px}.modal-actions button{flex:1}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:55px;background:transparent;width:100%;border-bottom:1px solid #ffffff18;font-size:15px;text-align:left}.toggle{border-radius:18px;padding:6px 11px;background:#19295488;font-size:12px;min-width:47px;text-align:center}.toggle.on{background:#55ba7c}.theme-button{background:#ffffff19;border-radius:10px;padding:9px 12px;font-size:12px}.help-demo{display:flex;align-items:center;justify-content:center;gap:20px;margin:0 0 23px}.help-demo>.icon{color:#7cdd97;width:38px;height:38px}.help-demo .piece-grid{--unit:27px}.modal details{text-align:left;border-top:1px solid #ffffff20;padding:14px 0;font-size:13px}.modal details p{font-size:12px;margin:9px 0 0}.modal summary{cursor:pointer;color:#ffdf90}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}@media(max-height:740px)and (orientation:portrait){.home .brand{margin:20px 0 22px;padding:0}.brand-blocks{height:55px;margin-bottom:16px}.brand-blocks .piece-grid{--unit:18px}.brand p{margin-top:15px}.mode-buttons{gap:11px}.mode-button{min-height:68px;padding:10px}.mode-button>span{font-size:24px}.home-bottom{margin-top:22px}.offline-label{padding-top:13px}.game-screen{min-height:540px}.score-panel{min-height:80px;padding-top:24px}#score{font-size:37px}.goals{min-height:45px}.tray{min-height:100px;margin-top:9px}.piece-slot{height:95px}.piece-grid{--unit:17px}.game-screen .board-area{width:min(100%,calc(100dvh - 364px - max(12px,env(safe-area-inset-top)) - max(12px,env(safe-area-inset-bottom))))}.game-screen[data-mode=classic] .board-area{width:min(100%,calc(100dvh - 311px - max(12px,env(safe-area-inset-top)) - max(12px,env(safe-area-inset-bottom))))}.input-hint{min-height:20px}.game-footer{min-height:32px}.game-footer .text-button{padding-top:8px;padding-bottom:8px}}@media(min-width:650px)and (max-height:650px){.home{min-height:100dvh;max-width:840px;display:grid;grid-template-columns:1fr 1fr;gap:10px 35px;padding:16px 32px}.home-top{grid-column:1/-1}.brand{grid-column:1;grid-row:2/4;margin:auto;padding:0}.brand-blocks{height:48px;margin-bottom:10px}.brand-blocks .piece-grid{--unit:18px}.brand h1 span{font-size:40px}.brand h1 strong{font-size:52px}.brand p{font-size:12px}.mode-buttons{grid-column:2;grid-row:2;gap:11px}.mode-button{min-height:68px;padding:9px}.mode-button>span{font-size:22px}.mode-button small{font-size:11px}.home-bottom{grid-column:2;grid-row:3;margin-top:0;align-items:center;justify-content:center;gap:35px}.home-bottom .text-button{flex-direction:row}.offline-label{grid-column:1/-1;padding:0}.game-screen{display:grid;grid-template-columns:1fr 240px;grid-template-rows:46px 75px 1fr 30px;gap:0 26px;max-width:840px;min-height:330px;padding:10px max(24px,env(safe-area-inset-right))}.game-header{grid-column:1/-1;grid-row:1}.board-area,.game-screen[data-mode=classic] .board-area,.game-screen .board-area{grid-column:1;grid-row:2/5;width:min(100%,calc(100dvh - 62px - max(10px,env(safe-area-inset-top)) - max(10px,env(safe-area-inset-bottom))));margin:auto;align-self:center}.score-panel{grid-column:2;grid-row:2;min-height:0;padding:5px 0}.best-score{font-size:12px;top:0}.best-score .icon{width:15px}#score{font-size:35px}.combo-label{font-size:10px;margin-top:5px}.goals{grid-column:2;grid-row:3;align-self:start;flex-wrap:wrap;min-height:0;padding-top:5px;margin:0;gap:12px}.goal-symbol{font-size:23px}.goal strong{font-size:12px}.tray{grid-column:2;grid-row:3;min-height:0;align-self:end;margin:0 0 12px;gap:7px}.piece-slot{height:104px;padding:12px 2px 18px}.piece-grid{--unit:13px;gap:1px}.piece-grid .gem{font-size:11px}.input-hint{grid-column:2;grid-row:4;font-size:10px}.game-footer{display:none}.game-screen .storage-notice{grid-column:1/-1}.clear-banner{font-size:28px}.collection{grid-template-columns:repeat(3,1fr)}.gallery-screen,.map-screen{max-width:740px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important}}:root[data-motion=reduced] *{animation:none!important;scroll-behavior:auto!important}@media(max-height:620px)and (orientation:portrait){.home{padding-top:max(12px,env(safe-area-inset-top));padding-bottom:max(12px,env(safe-area-inset-bottom))}.home .brand{margin:10px 0 14px}.brand-blocks{height:40px;margin-bottom:12px}.brand h1 span{font-size:32px}.brand h1 strong{font-size:44px}.brand p{margin-top:10px;font-size:13px}.home-bottom{margin-top:12px}.home-bottom .text-button{padding:8px 4px}.offline-label{padding-top:8px}}#share-text{width:100%;min-height:120px;padding:12px;border-radius:12px;border:1px solid #ffffff55;background:#172552;color:#fff;font:inherit;resize:vertical;-webkit-user-select:text;user-select:text}#share-feedback{font-size:14px}.puzzle-mode{background:linear-gradient(#69cee0,#369cb9)}.home .brand{margin:20px 0 22px;padding-top:10px}.home .brand-blocks{height:60px;margin-bottom:14px}.home .brand p{margin-top:14px}.home .mode-buttons{gap:12px}.home .home-bottom{margin-top:16px}.puzzle-tip{margin:0 auto 8px;padding:10px 14px;background:#ffffff10;border-radius:12px;max-width:460px;text-align:center}.puzzle-tip strong{font-size:15px;color:#fff0b8}.puzzle-tip p{font-size:13px;line-height:1.4;margin:5px 0}.puzzle-tip small{color:#d8e6ff;font-size:11px}.game-screen[data-mode=puzzle]{padding-top:12px;padding-bottom:12px}.game-screen[data-mode=puzzle] .score-panel{margin:12px 0}.puzzle-progress{text-align:center;margin:16px 0;color:#fff0b8}.puzzle-book>.primary{width:100%;margin-bottom:20px;padding:15px;border-radius:14px}.puzzle-list{display:grid;gap:10px}.puzzle-card{display:flex;align-items:center;gap:14px;text-align:left;padding:16px;border-radius:14px;background:#ffffff15}.puzzle-card>span{display:grid;place-items:center;width:35px;height:35px;border-radius:50%;background:#70dcac;color:#143951;font-weight:800}.puzzle-card small{display:block;margin-top:4px;color:#dbe5ff}.puzzle-card:disabled{opacity:.5}.puzzle-card.complete>span{background:#ffdc75}@media(max-height:720px){.game-screen[data-mode=puzzle] .puzzle-tip{padding:6px 10px}.game-screen[data-mode=puzzle] .puzzle-tip small{display:none}}.home>.puzzle-mode{margin-top:12px}
