:root{--ink:#17324f;--teal:#279c8d;--mint:#dff5f0;--coral:#ff6f61;--yellow:#ffd257}.bw-image{transition:filter .8s}.bw-image.fully-revealed{filter:grayscale(0)}*{box-sizing:border-box}html,body{overscroll-behavior:none;min-height:100%;margin:0}body{color:var(--ink);background:#edf5f5;font-family:Arial,sans-serif}button{font:inherit;color:inherit}.setup-shell{background:radial-gradient(circle at 15% 15%,#fff3b9,#0000 28%),radial-gradient(circle at 85% 80%,#c7f5eb,#0000 32%),linear-gradient(145deg,#f8fbff,#f7f1ff);place-items:center;min-height:100svh;padding:18px;display:grid}.setup-card{text-align:center;background:#fffffff0;border-radius:30px;width:min(620px,100%);padding:28px;box-shadow:0 24px 70px #1d3e502e}.brand{justify-content:center;align-items:center;gap:10px;display:flex}.brand b{font-size:28px}.brand span{color:#fff;letter-spacing:.13em;background:linear-gradient(90deg,#6745d8,#ef5ba5);border-radius:999px;padding:7px 10px;font-size:10px;font-weight:900}.language-picker{justify-content:center;gap:5px;margin:16px auto 0;display:flex}.language-picker button{cursor:pointer;background:#f6f9f9;border:1px solid #d3e2e2;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:800}.language-picker button.active{border-color:var(--teal);background:var(--teal);color:#fff}.setup-card h1{margin:18px 0 8px;font-size:clamp(25px,5vw,38px)}.setup-card>p{color:#687b89;max-width:500px;margin:0 auto 20px;line-height:1.55}.upload{background:#f3fbf9;border:2px dashed #78bdb3;border-radius:20px;width:min(260px,100%);height:300px;margin:auto;overflow:hidden}.upload input{display:none}.upload>button{cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:8px;width:100%;height:100%;padding:0;display:flex}.upload img{object-fit:contain;width:100%;height:100%}.upload strong{font-weight:900}.upload small{color:#71858e}.setup-card>p.upload-error{color:#c43e51;margin:8px auto 0;font-size:12px;font-weight:700}.test-level{background:#f2effd;border-radius:15px;margin:18px 0 12px;padding:12px}.test-level span,.test-level strong,.test-level small{display:block}.test-level span{letter-spacing:.16em;color:#735ac7;font-size:9px;font-weight:900}.test-level strong{margin:3px;font-size:20px}.test-level small{color:#71808e}.start{background:var(--yellow);cursor:pointer;border:0;border-radius:14px;width:100%;padding:15px;font-weight:900}.start:disabled{opacity:.4}.privacy{color:#7b8c94;margin-top:11px;display:block}.game-shell{background:#edf5f5;flex-direction:column;height:100svh;display:flex;overflow:hidden}.topbar{z-index:20;background:#fff;border-bottom:1px solid #d9e5e5;flex:none;align-items:center;gap:11px;height:58px;padding:6px 10px;display:flex}.progress{grid-template-columns:auto auto;align-items:center;gap:2px 5px;min-width:170px;display:grid}.progress span,.time span{color:#73858d;font-size:9px;font-weight:900}.progress b,.time b{font-size:16px}.progress i{background:#e5eeee;border-radius:10px;grid-column:1/3;width:100%;height:7px;overflow:hidden}.progress em{background:#45b9a8;height:100%;display:block}.time{align-items:baseline;gap:5px;display:flex}.topbar>button{background:#effaf8;border:1px solid #cae0dd;border-radius:12px;padding:7px 10px;font-weight:900}.game-language{display:block;position:relative}.game-language>span{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.game-language select{appearance:none;width:52px;height:32px;color:var(--ink);cursor:pointer;background:#effaf8;border:1px solid #cae0dd;border-radius:12px;padding:0 17px 0 8px;font-size:10px;font-weight:900}.game-language:after{content:"▾";pointer-events:none;font-size:9px;position:absolute;top:50%;right:7px;transform:translateY(-50%)}.zoom{align-items:center;gap:5px;margin-left:auto;display:flex}.zoom button{background:#e7f5f2;border:0;border-radius:50%;width:32px;height:32px;font-size:19px}.zoom output{text-align:center;min-width:42px;font-size:11px;font-weight:900}.play-area{flex:1;grid-template-rows:minmax(0,1fr) auto;min-height:0;display:grid}.board-wrap{place-items:center;min-height:0;padding:14px 10px;display:grid;overflow:hidden}.reveal-board{transform-origin:50%;touch-action:none;background:#fff;max-width:95vw;height:min(100%,178vw);position:relative;overflow:hidden;box-shadow:0 12px 35px #1836452e}.bw-image{object-fit:fill;filter:grayscale();width:100%;height:100%;position:absolute;inset:0}.target{clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);z-index:2;border:0;position:absolute}.target.wrong{animation:.45s wrong}@keyframes wrong{25%,75%{transform:translate(-7px)}50%{transform:translate(7px)}}.piece-art{width:100%;height:100%;display:block;overflow:visible}.solved-art{filter:none;animation:.4s reveal}@keyframes reveal{0%{opacity:.2;transform:scale(1.15)}to{opacity:1;transform:scale(1)}}.offer-panel{padding:8px 14px max(9px,env(safe-area-inset-bottom));background:#fff;border-top:1px solid #d5e3e2;flex:none;box-shadow:0 -8px 25px #1535411a}.stage-row{background:#f3f7f7;border-radius:12px;align-items:center;gap:9px;max-width:650px;margin:0 auto 6px;padding:6px 8px;animation:.35s stage-in;display:flex}.stage-badge{text-align:center;color:#fff;border-radius:9px;min-width:76px;padding:5px 8px;line-height:1}.stage-badge span,.stage-badge strong,.stage-copy strong,.stage-copy small{display:block}.stage-badge span{letter-spacing:.14em;opacity:.8;font-size:7px;font-weight:900}.stage-badge strong{letter-spacing:.06em;margin-top:3px;font-size:12px}.stage-badge.relaxed{background:#2a9c8c}.stage-badge.tricky{background:#e48b25}.stage-badge.expert{background:#d94e68}.stage-copy{min-width:0}.stage-copy strong{text-transform:uppercase;font-size:11px}.stage-copy small{color:#71828b;margin-top:2px;font-size:9px}@keyframes stage-in{0%{opacity:.4;transform:translateY(4px)}to{opacity:1;transform:none}}.offer-heading{justify-content:space-between;align-items:center;max-width:650px;margin:auto;display:flex}.offer-heading strong,.offer-heading small{display:block}.offer-heading small{color:#74858c;margin-top:2px;font-size:10px}.countdown{color:var(--teal);align-items:baseline;gap:3px;display:flex}.countdown b{font-size:20px}.countdown span{font-size:9px}.timer-track{background:#e5eeed;border-radius:5px;max-width:650px;height:4px;margin:6px auto 8px;overflow:hidden}.timer-track i{background:var(--coral);height:100%;transition:width 1s linear;display:block}.offers{justify-content:center;gap:16px;height:82px;display:flex}.offer{cursor:grab;touch-action:none;filter:grayscale()drop-shadow(0 4px 4px #18324638);background:0 0;border:0;width:88px;height:78px;padding:0;position:relative}.offer-number{z-index:3;background:var(--ink);color:#fff;filter:none;border:2px solid #fff;border-radius:50%;place-items:center;width:22px;height:22px;font-size:11px;font-weight:900;display:grid;position:absolute;top:-3px;left:-2px}.change-now{color:var(--teal);cursor:pointer;background:0 0;border:0;margin:5px auto 0;font-size:10px;font-weight:900;text-decoration:underline;display:block}.drag-piece{z-index:100;pointer-events:none;filter:grayscale()drop-shadow(0 12px 10px #0a1e2d5c);width:100px;height:92px;position:fixed;transform:translate(-50%,-50%)}.stage-announcement{z-index:150;color:#fff;text-align:center;pointer-events:none;border:4px solid #fff;border-radius:24px;flex-direction:column;align-items:center;width:min(360px,100vw - 34px);padding:24px 18px;animation:2.2s both announce;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 18px 55px #071a2861}.stage-announcement.relaxed{background:#2a9c8c}.stage-announcement.tricky{background:#e48b25}.stage-announcement.expert{background:#d94e68}.stage-announcement span{letter-spacing:.18em;opacity:.8;font-size:10px;font-weight:900}.stage-announcement strong{letter-spacing:.06em;margin-top:5px;font-size:30px}@keyframes announce{0%{opacity:0;transform:translate(-50%,-45%)scale(.88)}12%,82%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-55%)scale(.96)}}.finish{z-index:200;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#091d2bb8;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.finish>div{text-align:center;background:#fff;border-radius:26px;width:min(390px,100%);padding:24px}.finish>div>span{color:#fff;background:#3bc4a8;border-radius:50%;place-items:center;width:55px;height:55px;margin:auto;font-size:28px;font-weight:900;display:grid}.finish h2{color:#e84f9f}.finish img{object-fit:contain;border-radius:14px;width:100%;max-height:310px}.finish button{background:var(--yellow);border:0;border-radius:12px;width:100%;padding:12px;font-weight:900}.finish button.secondary{background:#e9eeee;margin-top:8px}@media (width<=650px){.setup-card{padding:22px 15px}.language-picker{gap:3px}.language-picker button{padding:7px 8px;font-size:10px}.topbar{gap:4px;padding:5px}.progress{min-width:112px}.progress span,.time span{font-size:7px}.progress b,.time b{font-size:13px}.topbar>button span{display:none}.game-language select{width:45px;height:29px;padding-left:6px;font-size:9px}.game-language:after{right:5px}.time{gap:2px}.zoom output{display:none}.zoom button{width:29px;height:29px}.board-wrap{padding:6px 3px}.offer-panel{padding-inline:8px}.stage-row{margin-bottom:5px}.stage-badge{min-width:70px;max-width:115px}.stage-badge strong{font-size:10px}.stage-copy strong{font-size:10px;line-height:1.15}.offers{gap:8px}.offer{width:76px}.offer-heading{padding-inline:5px}.offer-heading>div:first-child{max-width:75%}}.test-level .difficulty-label{color:#5d537f;margin:8px 0 6px;font-size:10px;font-weight:900}.piece-options{justify-content:center;gap:8px;margin-bottom:8px;display:flex}.piece-options button{color:#65508e;cursor:pointer;background:#fff;border:2px solid #d8d0ef;border-radius:11px;min-width:112px;padding:9px 14px;font-size:15px;font-weight:900}.piece-options button.active{color:#fff;background:#7157c4;border-color:#7157c4;box-shadow:0 4px 12px #553f9c33}.choose-new{width:100%;color:var(--teal);cursor:pointer;background:#edf7f5;border:1px solid #cbdedc;border-radius:14px;margin-top:8px;padding:12px;font-weight:900}.finish-reveal{z-index:220;background:#eaf4f3;place-items:center;animation:3s both finish-fade;display:grid;position:fixed;inset:0;overflow:hidden}.finish-reveal img{width:100%;height:100%;position:absolute;inset:0}.finish-backdrop{object-fit:cover;filter:blur(24px)saturate(1.35)brightness(.72);transform:scale(1.13)}.finish-picture{z-index:2;object-fit:contain;filter:saturate(1.18)contrast(1.04);animation:3s cubic-bezier(.2,.85,.25,1) both color-pop}.finish-reveal strong{z-index:3;left:50%;bottom:max(28px,env(safe-area-inset-bottom));color:#fff;letter-spacing:.08em;white-space:nowrap;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0c2634b8;border-radius:999px;padding:10px 18px;font-size:16px;animation:3s both title-pop;position:absolute;transform:translate(-50%)}@keyframes color-pop{0%{opacity:0;filter:grayscale()saturate(.2);transform:scale(.82)}16%{opacity:1;filter:grayscale(0)saturate(1.5);transform:scale(1.035)}35%,to{opacity:1;filter:grayscale(0)saturate(1.18);transform:scale(1)}}@keyframes finish-fade{0%,88%{opacity:1}to{opacity:0}}@keyframes title-pop{0%,12%{opacity:0;transform:translate(-50%,18px)}22%,82%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-8px)}}@media (width<=650px){.piece-options button{min-width:100px}.finish-reveal strong{font-size:13px}}.board-wrap{padding:2px 1px}.reveal-board{max-width:99vw;box-shadow:0 7px 20px #18364524}.offer-panel{padding:3px 6px max(4px,env(safe-area-inset-bottom))}.offers{align-items:center;gap:14px;height:78px}.compact-info{background:#f3f7f7;border-radius:9px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:7px;max-width:650px;margin:1px auto 0;padding:4px 6px;display:grid}.compact-stage{color:#fff;text-align:center;border-radius:7px;min-width:69px;padding:4px 6px;line-height:1}.compact-stage.relaxed{background:#2a9c8c}.compact-stage.tricky{background:#e48b25}.compact-stage.expert{background:#d94e68}.compact-stage span,.compact-stage strong,.compact-copy strong,.compact-copy small{display:block}.compact-stage span{letter-spacing:.12em;opacity:.82;font-size:6px;font-weight:900}.compact-stage strong{letter-spacing:.04em;margin-top:2px;font-size:9px}.compact-copy{min-width:0}.compact-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:9px;line-height:1.1;overflow:hidden}.compact-copy small{color:#71828b;margin-top:1px;font-size:8px}.compact-info .countdown b{font-size:18px}.compact-info .countdown span{font-size:8px}.offer-panel .timer-track{height:3px;margin:3px auto 2px}.offer-panel .change-now{margin:2px auto 0;font-size:9px;line-height:1.15}@media (width<=650px){.offers{gap:9px;height:76px}.offer{width:76px;height:74px}.compact-info{gap:5px;padding:3px 5px}.compact-stage{min-width:64px}.compact-stage strong,.compact-copy strong{font-size:8px}.compact-copy small{font-size:7px}.offer-panel .change-now{font-size:8px}}.piece-options button{flex:1;min-width:0}.compact-stage{min-width:78px;padding:5px 7px}.compact-stage span{font-size:7px}.compact-stage strong{font-size:11px}.compact-copy strong{font-size:12px;line-height:1.15}@media (width<=650px){.piece-options button{min-width:0;padding-inline:8px;font-size:13px}.compact-info{gap:6px;padding:4px 5px}.compact-stage{min-width:76px}.compact-stage strong{font-size:10px}.compact-copy strong{font-size:11px}}.setup-shell{background:radial-gradient(circle at 12% 12%,#ffd257c7,#0000 30%),radial-gradient(circle at 90% 18%,#ef5ba54d,#0000 30%),radial-gradient(circle at 86% 88%,#279c8d61,#0000 32%),linear-gradient(145deg,#f4fbff,#f8efff);position:relative;overflow:hidden}.setup-shell:before,.setup-shell:after{content:"";z-index:0;aspect-ratio:1;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);pointer-events:none;background:linear-gradient(145deg,#ff6f6140,#6745d833);width:190px;position:fixed}.setup-shell:before{top:-48px;left:-72px;transform:rotate(12deg)}.setup-shell:after{background:linear-gradient(145deg,#ffd25761,#279c8d40);bottom:-45px;right:-68px;transform:rotate(-10deg)}.setup-card{z-index:1;border:1px solid #6745d821;position:relative;overflow:hidden}.setup-card:before{content:"";background:linear-gradient(90deg,#279c8d,#ffd257,#ff6f61,#a15cdb);height:7px;position:absolute;inset:0 0 auto}.brand b{background:linear-gradient(90deg,#17324f,#279c8d,#6745d8);color:#0000;-webkit-background-clip:text;background-clip:text}.test-level{background:linear-gradient(135deg,#eef9f7,#f5efff)}.start{background:linear-gradient(90deg,#ffd257,#ffbf58)}.sound-toggle{place-items:center;width:32px;height:32px;font-size:15px;display:grid;padding:0!important}.offers{gap:10px}.next-offers{clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);color:#fff;letter-spacing:.03em;text-transform:uppercase;cursor:pointer;filter:drop-shadow(0 4px 4px #1832463d);background:linear-gradient(145deg,#33b8a4,#238d82);border:0;flex:none;width:78px;height:72px;padding:0 8px;font-size:10px;font-weight:900;line-height:1.1}.compact-copy strong{font-size:14px}.final-countdown{z-index:170;color:#fff;text-align:center;letter-spacing:.08em;pointer-events:none;background:#17324fe6;border:4px solid #fff;border-radius:999px;min-width:190px;padding:17px 24px;font-size:30px;font-weight:900;animation:1.5s both final-count;position:fixed;top:45%;left:50%;transform:translate(-50%,-50%);box-shadow:0 16px 46px #06192761}@keyframes final-count{0%{opacity:0;transform:translate(-50%,-42%)scale(.72)}18%,72%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-57%)scale(.92)}}.finish-reveal{animation:5.2s both finish-fade}.finish-picture{animation:5.2s cubic-bezier(.2,.85,.25,1) both color-pop}.finish-reveal .finish-title{animation:3.4s both title-pop}.finish-reveal .finish-brand{bottom:max(28px,env(safe-area-inset-bottom));background:linear-gradient(90deg,#279c8deb,#6745d8eb);font-size:15px;animation:5.2s both brand-pop}@keyframes brand-pop{0%,63%{opacity:0;transform:translate(-50%,18px)scale(.92)}72%,93%{opacity:1;transform:translate(-50%)scale(1)}to{opacity:0;transform:translate(-50%,-8px)scale(.98)}}@media (width<=650px){.sound-toggle{width:29px;height:29px;font-size:13px}.offers{gap:6px}.next-offers{width:70px;height:66px;padding-inline:5px;font-size:9px}.compact-copy strong{font-size:13px}.final-countdown{min-width:174px;padding:15px 20px;font-size:26px}.finish-reveal .finish-brand{font-size:12px}}.finish-reveal,.finish-picture{animation-duration:7.2s}.finish-reveal .finish-brand{white-space:normal;border:3px solid #ffffffe0;border-radius:22px;width:min(560px,100vw - 34px);padding:18px 24px;font-size:clamp(25px,6vw,46px);line-height:1.15;animation:7.2s both brand-pop-long;top:50%;bottom:auto}@keyframes brand-pop-long{0%,43%{opacity:0;transform:translate(-50%,-42%)scale(.82)}53%,91%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-57%)scale(.96)}}@media (width<=650px){.finish-reveal .finish-brand{padding:15px 17px;font-size:clamp(23px,7vw,34px)}}.board-time{z-index:12;color:#db344f;pointer-events:none;text-shadow:0 1px 2px #fff,0 0 5px #fffffff2;position:absolute;top:8px;right:8px}.board-time b{font-variant-numeric:tabular-nums;font-size:25px;line-height:1}.solved-art{overflow:hidden}.solved-grid{z-index:6;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.compact-stage.tricky,.stage-announcement.tricky{color:#182534}.stage-announcement{border-width:3px;border-radius:18px;width:min(275px,100vw - 48px);padding:14px 13px}.stage-announcement span{font-size:8px}.stage-announcement strong{margin-top:3px;font-size:23px}.stage-announcement b{margin-top:8px;font-size:14px}.stage-announcement small{margin-top:4px;font-size:10px}.finish-reveal .finish-brand{border-width:2px;border-radius:16px;justify-content:center;align-items:center;width:min(310px,100vw - 58px);padding:12px 18px;line-height:1.05;display:flex}.finish-reveal .finish-brand small{letter-spacing:.16em;opacity:.82;font-size:10px;font-weight:800}.finish-reveal .finish-brand b{letter-spacing:.1em;margin-top:5px;font-size:30px}@media (width<=650px){.board-time{top:6px;right:6px}.board-time b{font-size:23px}.stage-announcement{width:min(255px,100vw - 56px);padding:12px}.stage-announcement strong{font-size:20px}.stage-announcement b{font-size:13px}.finish-reveal .finish-brand{width:min(280px,100vw - 66px);padding:11px 15px}.finish-reveal .finish-brand small{font-size:9px}.finish-reveal .finish-brand b{font-size:27px}}.promo-picker{grid-template-columns:repeat(2,minmax(0,150px));justify-content:center;gap:12px;margin:0 auto;display:grid}.promo-picker button{aspect-ratio:2/3;cursor:pointer;background:#eef6f5;border:3px solid #0000;border-radius:14px;padding:0;position:relative;overflow:hidden;box-shadow:0 5px 15px #1d3e5024}.promo-picker button.active{border-color:var(--teal);box-shadow:0 0 0 3px #279c8d2e,0 8px 20px #1d3e5033}.promo-picker img{object-fit:cover;width:100%;height:100%;display:block}.promo-picker span{color:#fff;background:#14324fe6;border-radius:50%;place-items:center;width:25px;height:25px;font-size:12px;font-weight:900;display:grid;position:absolute;top:7px;right:7px}.promo-picker button.active span{background:var(--teal)}.gumroad-cta{flex-direction:column;align-items:center;gap:2px;text-decoration:none;display:flex}.gumroad-cta small{color:#71828b;font-size:10px;font-weight:700}@media (width<=650px){.promo-picker{grid-template-columns:repeat(2,minmax(0,128px));gap:9px}.setup-card>p{margin-bottom:12px}.test-level{margin-top:12px}.gumroad-cta{padding:9px}}.demo-ticker{z-index:145;color:#fff;background:#132b3ff0;border-top:2px solid #ffd22e;border-bottom:2px solid #ffd22e;height:34px;text-decoration:none;position:fixed;bottom:104px;left:0;right:0;overflow:hidden;box-shadow:0 5px 18px #0517244d}.demo-ticker span{white-space:nowrap;align-items:center;gap:26px;width:max-content;min-width:100%;height:100%;padding-left:100%;animation:6s linear both demo-scroll;display:flex}.demo-ticker b{color:#ffd22e;letter-spacing:.09em;font-size:12px}.demo-ticker em{font-size:12px;font-style:normal;font-weight:700}.demo-ticker strong{color:#65e2cf;font-size:12px}@keyframes demo-scroll{0%{transform:translate(0)}to{transform:translate(-100%)}}.finish-demo{z-index:4;color:#fff;text-align:center;background:#132b3fe8;border:2px solid #ffffffe0;border-radius:17px;flex-direction:column;align-items:center;width:min(350px,100vw - 42px);padding:14px 18px;text-decoration:none;animation:7.2s both finish-demo-pop;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 16px 45px #05162361}.finish-demo small{color:#ffd22e;letter-spacing:.13em;font-size:10px;font-weight:900}.finish-demo b{margin-top:6px;font-size:15px;line-height:1.25}.finish-demo span{color:#65e2cf;margin-top:8px;font-size:12px;font-weight:900}@keyframes finish-demo-pop{0%,29%{opacity:0;transform:translate(-50%,-42%)scale(.9)}38%,66%{opacity:1;transform:translate(-50%,-50%)scale(1)}73%,to{opacity:0;transform:translate(-50%,-56%)scale(.96)}}@media (width<=650px){.demo-ticker{height:32px;bottom:101px}.demo-ticker span{gap:22px}.demo-ticker b,.demo-ticker em,.demo-ticker strong{font-size:11px}.finish-demo{width:min(310px,100vw - 52px);padding:12px 14px}.finish-demo b{font-size:14px}}.demo-ticker{align-items:center;height:44px;display:flex;bottom:104px}.demo-ticker .demo-ticker-label{z-index:2;color:#172f43;letter-spacing:.07em;background:#ffd22e;flex:none;align-self:stretch;align-items:center;padding:0 12px;font-size:13px;display:flex;position:relative;box-shadow:5px 0 12px #0414204d}.demo-ticker>.demo-ticker-track{flex:1;width:auto;min-width:0;height:100%;padding:0;animation:none;display:block;overflow:hidden}.demo-ticker .demo-ticker-runner{white-space:nowrap;align-items:center;gap:34px;width:max-content;min-width:100%;height:100%;padding-left:100%;animation:13s linear both demo-scroll-slow;display:flex}.demo-ticker .demo-ticker-runner em,.demo-ticker .demo-ticker-runner strong{font-size:15px}.demo-ticker .demo-ticker-runner em{font-weight:800}@keyframes demo-scroll-slow{0%,8%{transform:translate(0)}to{transform:translate(-100%)}}@media (width<=650px){.demo-ticker{height:42px;bottom:101px}.demo-ticker .demo-ticker-label{padding:0 9px;font-size:11px}.demo-ticker .demo-ticker-runner{gap:28px}.demo-ticker .demo-ticker-runner em,.demo-ticker .demo-ticker-runner strong{font-size:13px}}.offer-panel{position:relative}.offer-panel .demo-ticker{pointer-events:none;height:44px;display:flex;position:absolute;inset:0 0 auto;transform:translateY(-100%)}.offer-panel .demo-ticker .demo-ticker-label{font-size:13px}.offer-panel .demo-ticker .demo-ticker-runner em{font-size:15px}@media (width<=650px){.offer-panel .demo-ticker{height:42px}.offer-panel .demo-ticker .demo-ticker-label{font-size:11px}.offer-panel .demo-ticker .demo-ticker-runner em{font-size:13px}}.start-hint{z-index:146;color:#17364a;text-align:center;pointer-events:none;background:#fffffff5;border:2px solid #40b7a6;border-radius:14px;justify-content:center;align-items:center;gap:8px;width:min(470px,100vw - 20px);min-height:42px;padding:8px 13px;animation:6s both start-hint-in;display:flex;position:absolute;top:0;left:50%;transform:translate(-50%,-112%);box-shadow:0 7px 22px #071e2c40}.start-hint span{color:#269e8f;flex:none;font-size:22px;line-height:1;animation:1s ease-in-out infinite hint-point}.start-hint strong{font-size:13px;line-height:1.25}@keyframes start-hint-in{0%{opacity:0;transform:translate(-50%,-94%)}10%,84%{opacity:1;transform:translate(-50%,-112%)}to{opacity:0;transform:translate(-50%,-120%)}}@keyframes hint-point{0%,to{transform:translateY(2px)}50%{transform:translateY(-3px)}}@media (width<=650px){.start-hint{width:min(390px,100vw - 14px);min-height:40px;padding:7px 10px}.start-hint span{font-size:20px}.start-hint strong{font-size:11px}}.new-pieces-flash{z-index:11;pointer-events:none;background:#ffffffb8;animation:.52s ease-out both new-pieces-pulse;position:absolute;inset:0;box-shadow:inset 0 0 0 5px #33b8a4e6,inset 0 0 50px #fffffff2}@keyframes new-pieces-pulse{0%{opacity:0}18%{opacity:1}45%{opacity:.28}68%{opacity:.82}to{opacity:0}}.exit-confirm-backdrop{z-index:1000;-webkit-backdrop-filter:blur(7px);background:#182d39ad;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.exit-confirm{color:#17324d;background:#fff;border-radius:36px;width:min(620px,100%);padding:clamp(28px,6vw,52px);box-shadow:0 24px 70px #00000047}.exit-confirm p{margin:0;font-size:clamp(20px,4.2vw,30px);font-weight:800;line-height:1.55}.exit-confirm-actions{grid-template-columns:1fr 1fr;gap:18px;margin-top:42px;display:grid}.exit-confirm-actions button{cursor:pointer;border:0;border-radius:20px;min-height:76px;font-size:clamp(19px,4vw,27px);font-weight:850}.exit-cancel{color:#17324d;background:#eef3f4}.exit-ok{color:#fff;background:#37af9f}@media (width<=520px){.exit-confirm-backdrop{padding:18px}.exit-confirm{border-radius:30px;padding:30px 28px}.exit-confirm p{font-size:20px;line-height:1.5}.exit-confirm-actions{gap:12px;margin-top:30px}.exit-confirm-actions button{border-radius:18px;min-height:62px;font-size:20px}}

/* TinyDigi mobile embed: keep board + 3 offers visible together */
@media (max-width:650px) and (max-height:950px){
  .game-shell{height:100dvh;min-height:0}
  .topbar{height:44px;padding:3px 5px}
  .progress{min-width:100px}
  .progress b,.time b{font-size:12px}
  .topbar>button{padding:5px 7px}
  .zoom button{width:27px;height:27px}
  .play-area{grid-template-rows:minmax(0,1fr) auto}
  .board-wrap{padding:3px 2px}
  .reveal-board{max-width:min(78vw,330px);height:min(100%,138vw)}
  .offer-panel{padding:5px 6px max(5px,env(safe-area-inset-bottom))}
  .stage-row{padding:4px 6px;margin-bottom:3px}
  .stage-copy small{display:none}
  .offer-heading small{display:none}
  .timer-track{margin:3px auto 4px}
  .offers{height:66px;gap:5px}
  .offer{width:66px;height:62px}
  .change-now{margin-top:2px;font-size:9px}
  .offer-panel .demo-ticker{height:30px}
  .offer-panel .demo-ticker .demo-ticker-label{padding:0 6px;font-size:9px}
  .offer-panel .demo-ticker .demo-ticker-runner em{font-size:10px}
  .start-hint{min-height:32px;padding:4px 8px;transform:translate(-50%,-108%)}
  .start-hint strong{font-size:10px}
}


/* v1.6: compact phone layout inside TinyDigi iframe */
@media (max-width:650px){
  .setup-shell{min-height:100dvh;padding:6px;align-items:start}
  .setup-card{width:100%;border-radius:18px;padding:10px 10px 12px}
  .brand b{font-size:22px}
  .brand span{padding:5px 8px;font-size:8px}
  .language-picker{margin-top:7px}
  .language-picker button{padding:5px 8px;font-size:10px}
  .setup-card h1{margin:8px 0 4px;font-size:25px}
  .setup-card>p{margin-bottom:7px;font-size:12px;line-height:1.3}
  .promo-picker{grid-template-columns:repeat(2,92px);gap:8px}
  .promo-picker button{width:92px;aspect-ratio:2/3;border-radius:10px}
  .promo-picker span{width:21px;height:21px;font-size:10px;top:4px;right:4px}
  .test-level{margin:8px 0 7px;padding:7px}
  .test-level strong{font-size:14px}
  .piece-options{gap:5px}
  .piece-options button{min-height:38px;padding:6px!important;font-size:11px!important}
  .start{padding:10px;font-size:12px}

  .game-shell{height:100dvh}
  .topbar{height:40px;padding:2px 4px;gap:5px}
  .progress{min-width:82px}
  .progress span,.time span{font-size:7px}
  .progress b,.time b{font-size:11px}
  .topbar>button{padding:4px 5px;font-size:9px}
  .game-language select{width:45px;height:27px;font-size:9px}
  .zoom{gap:2px}
  .zoom button{width:24px;height:24px;font-size:15px}
  .zoom output{min-width:32px;font-size:9px}

  .board-wrap{padding:2px}
  .reveal-board{
    width:min(64vw,280px);
    max-width:280px;
    height:auto;
    max-height:calc(100dvh - 205px);
    aspect-ratio:2/3;
  }
  .offer-panel{padding:3px 5px max(4px,env(safe-area-inset-bottom))}
  .stage-row{padding:2px 5px;margin-bottom:2px}
  .stage-badge{min-width:58px;padding:3px 5px}
  .stage-badge strong{font-size:9px}
  .stage-copy strong{font-size:9px}
  .stage-copy small,.offer-heading small{display:none}
  .offer-heading strong{font-size:10px}
  .countdown b{font-size:15px}
  .timer-track{margin:2px auto 3px}
  .offers{height:56px;gap:4px}
  .offer{width:58px;height:53px}
  .change-now{margin-top:1px;font-size:8px}
  .offer-panel .demo-ticker{height:25px}
  .offer-panel .demo-ticker .demo-ticker-label{padding:0 5px;font-size:8px}
  .offer-panel .demo-ticker .demo-ticker-runner em{font-size:9px}
  .start-hint{min-height:27px;padding:3px 6px}
  .start-hint span{font-size:15px}
  .start-hint strong{font-size:9px}
}


/* v1.7 phone game: use vertical space for the board, not empty gaps */
@media (max-width:650px){
  .game-shell{
    height:100dvh;
    min-height:100dvh;
    display:grid;
    grid-template-rows:40px minmax(0,1fr);
    overflow:hidden;
  }
  .play-area{
    height:100%;
    min-height:0;
    display:grid;
    grid-template-rows:minmax(0,1fr) auto;
    overflow:hidden;
  }
  .board-wrap{
    min-height:0;
    height:100%;
    padding:0 2px;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
  }
  .reveal-board{
    width:auto;
    height:100%;
    max-height:100%;
    max-width:min(88vw,360px);
    aspect-ratio:2/3;
  }
  .offer-panel{
    margin:0;
    padding-top:2px;
  }
}
