{"id":7579,"date":"2025-11-28T21:37:42","date_gmt":"2025-11-29T02:37:42","guid":{"rendered":"https:\/\/www.ezcalculatoronline.com\/?page_id=7579"},"modified":"2026-11-05T21:25:50","modified_gmt":"2026-11-06T02:25:50","slug":"15-puzzle","status":"publish","type":"page","link":"https:\/\/www.ezcalculatoronline.com\/games\/15-puzzle\/","title":{"rendered":"15 Puzzle"},"content":{"rendered":"<div id=\"tdi_1\" class=\"tdc-zone\"><div class=\"tdc_zone tdi_2  wpb_row td-pb-row\"  >\n<style scoped>\n\n\/* custom css *\/\n.tdi_2{\r\n                    min-height: 0;\r\n                }\n<\/style><div id=\"tdi_3\" class=\"tdc-row\"><div class=\"vc_row tdi_4  wpb_row td-pb-row\" >\n<style scoped>\n\n\/* custom css *\/\n.tdi_4,\r\n                .tdi_4 .tdc-columns{\r\n                    min-height: 0;\r\n                }.tdi_4,\r\n\t\t\t\t.tdi_4 .tdc-columns{\r\n\t\t\t\t    display: block;\r\n\t\t\t\t}.tdi_4 .tdc-columns{\r\n\t\t\t\t    width: 100%;\r\n\t\t\t\t}\n<\/style><div class=\"vc_column tdi_6  wpb_column vc_column_container tdc-column td-pb-span8\">\n<style scoped>\n\n\/* custom css *\/\n.tdi_6{\r\n                    vertical-align: baseline;\r\n                }.tdi_6 > .wpb_wrapper,\r\n\t\t\t\t.tdi_6 > .wpb_wrapper > .tdc-elements{\r\n\t\t\t\t    display: block;\r\n\t\t\t\t}.tdi_6 > .wpb_wrapper > .tdc-elements{\r\n\t\t\t\t    width: 100%;\r\n\t\t\t\t}.tdi_6 > .wpb_wrapper > .vc_row_inner{\r\n\t\t\t\t    width: auto;\r\n\t\t\t\t}.tdi_6 > .wpb_wrapper{\r\n\t\t\t\t    width: auto;\r\n\t\t\t\t    height: auto;\r\n\t\t\t\t}\n<\/style><div class=\"wpb_wrapper\" ><div class=\"wpb_wrapper td_block_wrap vc_raw_html tdi_8 \"><div class=\"td-fix-index\"><!-- ===== 15 PUZZLE DELUXE v2 \u2014 paste v\u00e0o kh\u1ed1i \"Custom HTML\" c\u1ee7a WordPress ===== -->\r\n<style>\r\nhtml.p15-lock,html.p15-lock body{overflow:hidden!important;overscroll-behavior:none}\r\n#p15{--glow:0 0 0 transparent;--tshadow:none;--on-accent:#fff;--ts:80px;position:relative;width:100%;max-width:560px;margin:20px auto;padding:16px;border-radius:26px;background:var(--bg);color:var(--text);font-family:'Nunito','Quicksand','Segoe UI',system-ui,-apple-system,sans-serif;box-shadow:0 24px 60px -22px rgba(15,23,42,.45);overflow:hidden;box-sizing:border-box;-webkit-user-select:none;user-select:none;transition:background .4s,color .4s;-webkit-tap-highlight-color:transparent;text-align:left}\r\n#p15 *,#p15 *::before,#p15 *::after{box-sizing:border-box}\r\n#p15 button{appearance:none;-webkit-appearance:none;border:0;margin:0;padding:0;font:inherit;line-height:1.2;text-transform:none;letter-spacing:normal;background:none;color:inherit;cursor:pointer;min-height:0;width:auto;box-shadow:none;text-decoration:none;touch-action:manipulation}\r\n#p15 h2,#p15 p{margin:0;padding:0}\r\n#p15 em{font-style:normal}\r\n\r\n\/* ---------- THEMES ---------- *\/\r\n#p15[data-theme=sky],#p15 [data-theme=sky]{--bg:linear-gradient(160deg,#e0f2fe,#f0fdf4);--panel:#fff;--text:#0f172a;--muted:#64748b;--line:rgba(15,23,42,.06);--accent:#0ea5e9;--accent2:#22c55e;--board:rgba(14,165,233,.16);--tile:#fff;--tile-text:#0f172a;--edge:#b9d4ea;--ok:#fffbeb;--ok-text:#d97706;--ok-edge:#fcd34d;--overlay:rgba(255,255,255,.93)}\r\n#p15[data-theme=candy],#p15 [data-theme=candy]{--bg:linear-gradient(160deg,#fce7f3,#ede9fe);--panel:#fff;--text:#4a044e;--muted:#9d4b9b;--line:rgba(74,4,78,.06);--accent:#ec4899;--accent2:#8b5cf6;--board:rgba(236,72,153,.15);--tile:#fff;--tile-text:#be185d;--edge:#f5c2dc;--ok:#f3e8ff;--ok-text:#7c3aed;--ok-edge:#d8b4fe;--overlay:rgba(255,247,252,.94)}\r\n#p15[data-theme=forest],#p15 [data-theme=forest]{--bg:linear-gradient(160deg,#ecfccb,#d1fae5);--panel:#fff;--text:#14532d;--muted:#4d7c5f;--line:rgba(20,83,45,.07);--accent:#16a34a;--accent2:#ca8a04;--board:rgba(22,101,52,.18);--tile:#fefce8;--tile-text:#166534;--edge:#bfd19f;--ok:#dcfce7;--ok-text:#15803d;--ok-edge:#86efac;--overlay:rgba(247,254,231,.94)}\r\n#p15[data-theme=sunset],#p15 [data-theme=sunset]{--bg:linear-gradient(160deg,#ffedd5,#fecdd3);--panel:#fff;--text:#7c2d12;--muted:#b45309;--line:rgba(124,45,18,.07);--accent:#f97316;--accent2:#e11d48;--board:rgba(249,115,22,.18);--tile:#fff7ed;--tile-text:#c2410c;--edge:#fdba74;--ok:#fff1f2;--ok-text:#e11d48;--ok-edge:#fda4af;--overlay:rgba(255,247,237,.94)}\r\n#p15[data-theme=ocean],#p15 [data-theme=ocean]{--bg:linear-gradient(160deg,#0c4a6e,#082f49);--panel:rgba(255,255,255,.1);--text:#e0f2fe;--muted:#7dd3fc;--line:rgba(255,255,255,.08);--accent:#22d3ee;--accent2:#38bdf8;--on-accent:#082f49;--board:rgba(0,0,0,.28);--tile:#0e7490;--tile-text:#ecfeff;--edge:#083344;--ok:#14b8a6;--ok-text:#fff;--ok-edge:#0f5f57;--overlay:rgba(8,47,73,.96)}\r\n#p15[data-theme=neon],#p15 [data-theme=neon]{--bg:linear-gradient(160deg,#0b0b1a,#1e0b33);--panel:rgba(255,255,255,.08);--text:#f5f3ff;--muted:#a78bfa;--line:rgba(255,255,255,.07);--accent:#e879f9;--accent2:#22d3ee;--on-accent:#1a0b2e;--board:rgba(0,0,0,.4);--tile:#1e1b4b;--tile-text:#f0abfc;--edge:#000;--ok:#083344;--ok-text:#67e8f9;--ok-edge:#000;--overlay:rgba(11,11,26,.96);--glow:0 0 14px rgba(232,121,249,.35);--tshadow:0 0 10px currentColor}\r\n#p15[data-theme=wood],#p15 [data-theme=wood]{--bg:linear-gradient(160deg,#fef3c7,#e7d3b0);--panel:#fffaf0;--text:#451a03;--muted:#92400e;--line:rgba(69,26,3,.07);--accent:#b45309;--accent2:#65a30d;--board:repeating-linear-gradient(100deg,#7c4a1e 0 14px,#8a5526 14px 22px,#74431a 22px 34px);--tile:linear-gradient(160deg,#f7dcae,#e2b574);--tile-text:#5b2c06;--edge:#9a5a17;--ok:linear-gradient(160deg,#fef08a,#fbbf24);--ok-text:#713f12;--ok-edge:#a16207;--overlay:rgba(255,250,240,.95)}\r\n#p15[data-theme=mono],#p15 [data-theme=mono]{--bg:#f4f4f5;--panel:#fff;--text:#18181b;--muted:#71717a;--line:rgba(0,0,0,.05);--accent:#18181b;--accent2:#71717a;--board:#e4e4e7;--tile:#fff;--tile-text:#18181b;--edge:#d4d4d8;--ok:#18181b;--ok-text:#fff;--ok-edge:#000;--overlay:rgba(250,250,250,.96)}\r\n\r\n\/* ---------- HEADER ---------- *\/\r\n#p15 .p15-main{width:100%}\r\n#p15 .p15-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}\r\n#p15 .p15-brand{display:flex;align-items:center;gap:10px;min-width:0}\r\n#p15 .p15-logo{width:40px;height:40px;flex:none;display:grid;grid-template-columns:1fr 1fr;gap:3px;padding:4px;border-radius:12px;background:var(--board)}\r\n#p15 .p15-logo i{border-radius:4px;background:var(--accent)}\r\n#p15 .p15-logo i:nth-child(2){background:var(--accent2)}\r\n#p15 .p15-logo i:nth-child(3){background:var(--tile)}\r\n#p15 .p15-logo i:nth-child(4){background:transparent}\r\n#p15 .p15-brand h2{font-size:1.2rem;font-weight:900;letter-spacing:-.5px;line-height:1;color:var(--text)}\r\n#p15 .p15-chip{display:block;font-size:.72rem;font-weight:800;color:var(--muted);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\r\n#p15 .p15-tools{display:flex;gap:6px;flex:none}\r\n#p15 .p15-ibtn{width:38px;height:38px;border-radius:12px;background:var(--panel);color:var(--text);display:grid;place-items:center;font-size:1rem;box-shadow:0 3px 10px rgba(0,0,0,.08);transition:transform .1s,opacity .2s}\r\n#p15 .p15-ibtn.off{opacity:.4}\r\n#p15 button:active{transform:scale(.95)}\r\n\r\n\/* ---------- HOME (selection screen) ---------- *\/\r\n#p15.on-home .p15-game{display:none}\r\n#p15:not(.on-home) .p15-home{display:none}\r\n#p15 .p15-hero{text-align:center;padding:4px 0 2px}\r\n#p15 .p15-title{font-size:2.5rem;font-weight:900;letter-spacing:-1.5px;line-height:1.05;background:linear-gradient(90deg,var(--accent),var(--accent2));-webkit-background-clip:text;background-clip:text;color:transparent}\r\n#p15 .p15-sub{color:var(--muted);font-weight:700;font-size:.85rem;margin-top:4px}\r\n#p15 .p15-contcard{display:flex;align-items:center;gap:12px;width:100%;margin-top:14px;padding:12px 14px;border-radius:18px;background:linear-gradient(135deg,var(--accent),var(--accent2));color:var(--on-accent);text-align:left;box-shadow:0 8px 20px -8px var(--accent)}\r\n#p15 .p15-contcard .p15-play{width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.25);display:grid;place-items:center;font-size:1.1rem;flex:none}\r\n#p15 .p15-contcard b{display:block;font-weight:900;font-size:1rem}\r\n#p15 .p15-contcard small{font-weight:700;font-size:.74rem;opacity:.9}\r\n#p15 .p15-card{background:var(--panel);border-radius:20px;padding:12px;margin-top:12px;box-shadow:0 4px 14px rgba(0,0,0,.05)}\r\n#p15 .p15-sec{display:flex;justify-content:space-between;align-items:center;font-size:.68rem;font-weight:900;letter-spacing:1.3px;text-transform:uppercase;color:var(--muted);margin:0 2px 9px}\r\n#p15 .p15-sec a,#p15 .p15-sec button{font-size:.7rem;letter-spacing:.5px;color:var(--accent);font-weight:900;text-transform:none}\r\n\r\n#p15 .p15-sizes{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}\r\n#p15 .p15-sz{display:flex;flex-direction:column;align-items:center;gap:6px;padding:9px 2px 7px;border-radius:14px;background:var(--line);border:2px solid transparent;font-weight:900;font-size:.8rem;color:var(--muted);transition:border-color .2s,background .2s}\r\n#p15 .p15-sz.on{border-color:var(--accent);color:var(--text);background:var(--panel)}\r\n#p15 .p15-mg{width:34px;height:34px;display:grid;gap:2px}\r\n#p15 .p15-mg i{background:var(--accent);opacity:.35;border-radius:2px}\r\n#p15 .p15-sz.on .p15-mg i{opacity:.85}\r\n#p15 .p15-mg i:last-child{background:transparent}\r\n\r\n#p15 .p15-stys{display:grid;grid-template-columns:1fr 1fr;gap:8px}\r\n#p15 .p15-stc{display:flex;align-items:center;gap:10px;padding:8px;border-radius:14px;background:var(--line);border:2px solid transparent;text-align:left;transition:border-color .2s,background .2s;min-width:0}\r\n#p15 .p15-stc.on{border-color:var(--accent);background:var(--panel)}\r\n#p15 .p15-stc b{display:block;font-weight:900;font-size:.88rem;color:var(--text)}\r\n#p15 .p15-stc small{display:block;font-weight:700;font-size:.68rem;color:var(--muted)}\r\n#p15 .p15-th{width:44px;height:44px;border-radius:10px;flex:none;background-size:cover;background-position:center}\r\n#p15 .p15-th.num{display:grid;grid-template-columns:1fr 1fr;gap:2px;padding:3px;background:var(--board)}\r\n#p15 .p15-th.num i{background:var(--tile);color:var(--tile-text);border-radius:4px;font-size:.62rem;font-weight:900;display:grid;place-items:center}\r\n#p15 .p15-th.num i:last-child{background:transparent}\r\n\r\n#p15 .p15-trow{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;padding:2px 2px 4px;scrollbar-width:none;-webkit-overflow-scrolling:touch}\r\n#p15 .p15-trow::-webkit-scrollbar{display:none}\r\n#p15 .p15-tch{flex:none;width:86px;scroll-snap-align:start;border-radius:14px;padding:5px 5px 6px;background:var(--line);border:2px solid transparent;font-size:.72rem;font-weight:800;color:var(--text);text-align:center}\r\n#p15 .p15-tch.on,#p15 .p15-tc.on{border-color:var(--accent)}\r\n#p15 .p15-tcp{height:48px;border-radius:10px;background:var(--bg);display:flex;align-items:center;justify-content:center;gap:4px;margin-bottom:5px}\r\n#p15 .p15-tcp i{width:19px;height:19px;border-radius:5px;background:var(--tile);color:var(--tile-text);box-shadow:0 2px 0 var(--edge),var(--glow);display:grid;place-items:center;font-size:.62rem;font-weight:900;text-shadow:var(--tshadow)}\r\n#p15 .p15-tcp i.ok{background:var(--ok);color:var(--ok-text);box-shadow:0 2px 0 var(--ok-edge)}\r\n\r\n#p15 .p15-mlist{display:flex;flex-direction:column;gap:8px}\r\n#p15 .p15-mrow{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border-radius:16px;background:var(--line);text-align:left;transition:background .2s}\r\n#p15 .p15-mic{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;font-size:1.3rem;flex:none;box-shadow:0 4px 10px -4px rgba(0,0,0,.4)}\r\n#p15 .p15-mtx{flex:1;min-width:0}\r\n#p15 .p15-mtx b{display:block;font-weight:900;font-size:.98rem;color:var(--text)}\r\n#p15 .p15-mtx small{display:block;font-weight:700;font-size:.72rem;color:var(--muted)}\r\n#p15 .p15-mtx .best{display:block;font-weight:900;font-size:.68rem;color:var(--accent);margin-top:2px}\r\n#p15 .p15-mtx .best:empty{display:none}\r\n#p15 .p15-mtime{flex:none;padding:5px 9px;border-radius:10px;background:var(--panel);font-weight:900;font-size:.74rem;color:var(--text);font-variant-numeric:tabular-nums;box-shadow:0 2px 6px rgba(0,0,0,.06)}\r\n#p15 .m-easy{background:linear-gradient(135deg,#34d399,#059669)}\r\n#p15 .m-normal{background:linear-gradient(135deg,#60a5fa,#2563eb)}\r\n#p15 .m-hard{background:linear-gradient(135deg,#f87171,#dc2626)}\r\n#p15 .m-zen{background:linear-gradient(135deg,#a78bfa,#7c3aed)}\r\n#p15 .p15-tip{text-align:center;font-size:.72rem;font-weight:700;color:var(--muted);margin-top:12px}\r\n\r\n\/* ---------- GAME ---------- *\/\r\n#p15 .p15-stats{position:relative;display:grid;grid-template-columns:repeat(3,1fr);background:var(--panel);border-radius:18px;padding:9px 6px 14px;margin-bottom:12px;box-shadow:0 4px 14px rgba(0,0,0,.05)}\r\n#p15 .p15-stat{text-align:center}\r\n#p15 .p15-stat+.p15-stat{border-left:1px solid var(--line)}\r\n#p15 .p15-lbl{font-size:.62rem;font-weight:900;text-transform:uppercase;letter-spacing:1.2px;color:var(--muted)}\r\n#p15 .p15-val{font-size:1.4rem;font-weight:900;font-variant-numeric:tabular-nums;color:var(--text);line-height:1.25}\r\n#p15 .p15-val.urgent{color:#ef4444;animation:p15pulse 1s infinite}\r\n#p15 .p15-prog{position:absolute;left:16px;right:16px;bottom:6px;height:4px;border-radius:4px;background:var(--line);overflow:hidden}\r\n#p15 .p15-prog b{display:block;height:100%;width:0;border-radius:4px;background:linear-gradient(90deg,var(--accent),var(--accent2));transition:width .3s}\r\n#p15 .p15-board{position:relative;width:100%;aspect-ratio:1\/1;background:var(--board);border-radius:20px;touch-action:none;overflow:hidden;box-shadow:inset 0 2px 10px rgba(0,0,0,.14)}\r\n#p15 .p15-tile{position:absolute;left:0;top:0;width:var(--ts);height:var(--ts);border-radius:calc(var(--ts)*.17);background:var(--tile);color:var(--tile-text);box-shadow:0 calc(var(--ts)*.06) 0 var(--edge),var(--glow);display:grid;place-items:center;font-weight:900;font-size:calc(var(--ts)*.42);line-height:1;cursor:pointer;transition:transform .14s cubic-bezier(.3,.8,.4,1),background .25s,color .25s,filter .3s;will-change:transform;text-shadow:var(--tshadow)}\r\n#p15 .p15-tile.ok{background:var(--ok);color:var(--ok-text);box-shadow:0 calc(var(--ts)*.06) 0 var(--ok-edge),var(--glow)}\r\n#p15 .p15-board.pic .p15-tile,#p15 .p15-board.pic .p15-tile.ok{background-color:var(--tile);background-repeat:no-repeat;box-shadow:0 calc(var(--ts)*.05) 0 rgba(0,0,0,.25)}\r\n#p15 .p15-board.pic .p15-tile.ok{box-shadow:inset 0 0 0 3px rgba(255,255,255,.8),0 calc(var(--ts)*.05) 0 rgba(0,0,0,.25)}\r\n#p15 .p15-board.pic .p15-num{position:absolute;top:7%;left:7%;font-size:max(10px,calc(var(--ts)*.17));padding:2px 6px;border-radius:7px;background:rgba(0,0,0,.5);color:#fff;text-shadow:none}\r\n#p15 .p15-board.no-anim .p15-tile{transition:none}\r\n#p15 .p15-tile.nope{animation:p15nope .3s}\r\n#p15.paused .p15-tile{filter:blur(9px)}\r\n#p15 .p15-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}\r\n#p15 .p15-abtn{background:var(--panel);color:var(--text);border-radius:14px;padding:9px 4px;font-weight:800;font-size:.74rem;display:flex;flex-direction:column;align-items:center;gap:2px;box-shadow:0 3px 10px rgba(0,0,0,.06);transition:transform .1s}\r\n#p15 .p15-abtn span{font-size:1.1rem;line-height:1}\r\n\r\n\/* ---------- OVERLAYS ---------- *\/\r\n#p15 .p15-ov{position:absolute;inset:0;z-index:50;background:var(--overlay);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;padding:20px 16px;text-align:center;overflow-y:auto;transition:opacity .3s,visibility .3s}\r\n#p15 .p15-ov.hide{opacity:0;visibility:hidden;pointer-events:none}\r\n#p15 #p15-themes{z-index:60}\r\n#p15 .p15-in{margin:auto;width:100%;max-width:420px}\r\n#p15 .p15-otitle{font-size:1.8rem;font-weight:900;letter-spacing:-1px;margin-bottom:2px;background:linear-gradient(90deg,var(--accent),var(--accent2));-webkit-background-clip:text;background-clip:text;color:transparent}\r\n#p15 .p15-tgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:14px 0}\r\n#p15 .p15-tc{border-radius:14px;padding:5px 4px 6px;background:var(--panel);border:2px solid transparent;color:var(--text);font-weight:800;font-size:.68rem;box-shadow:0 3px 10px rgba(0,0,0,.08)}\r\n#p15 .p15-tc .p15-tcp{height:44px;gap:3px}\r\n#p15 .p15-tc .p15-tcp i{width:16px;height:16px;font-size:.55rem}\r\n#p15 .p15-big{font-size:3.4rem;line-height:1}\r\n#p15 .p15-endt{font-size:2.1rem;font-weight:900;margin:6px 0 4px;letter-spacing:-1px}\r\n#p15 .p15-endm{color:var(--muted);font-weight:700}\r\n#p15 .p15-es{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:16px 0}\r\n#p15 .p15-es div{background:var(--panel);border-radius:14px;padding:10px 4px;box-shadow:0 3px 10px rgba(0,0,0,.05)}\r\n#p15 .p15-rec{display:inline-block;margin-bottom:14px;background:linear-gradient(90deg,#f59e0b,#ef4444);color:#fff;padding:6px 14px;border-radius:20px;font-weight:900;font-size:.8rem;animation:p15pop .5s}\r\n#p15 .p15-btns{display:flex;gap:10px;margin-top:6px}\r\n#p15 .p15-pbtn{flex:1;padding:13px 10px;border-radius:16px;font-weight:900;background:var(--accent);color:var(--on-accent);box-shadow:0 5px 0 rgba(0,0,0,.15)}\r\n#p15 .p15-pbtn.alt{background:var(--panel);color:var(--text)}\r\n#p15 .p15-fx{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:70}\r\n\r\n\/* ---------- FULLSCREEN (native + mobile fallback) ---------- *\/\r\n#p15.p15-fs,#p15.p15-full{max-width:none;margin:0;border-radius:0;box-shadow:none;display:flex;flex-direction:column;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;\r\n  padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}\r\n#p15.p15-fs{width:100%;height:100%}\r\n#p15.p15-full{position:fixed;top:0;left:0;right:0;bottom:0;z-index:2147483000;width:100%;height:100vh;height:100dvh}\r\n#p15.p15-fs .p15-main,#p15.p15-full .p15-main{margin:auto;max-width:560px}\r\n#p15.p15-fs:not(.on-home) .p15-main,#p15.p15-full:not(.on-home) .p15-main{max-width:min(560px,calc(100vh - 250px));max-width:min(560px,calc(100dvh - 250px))}\r\n#p15.p15-fs .p15-ov,#p15.p15-full .p15-ov,#p15.p15-fs .p15-fx,#p15.p15-full .p15-fx{position:fixed}\r\n#p15:fullscreen{background:var(--bg)}\r\n@media (orientation:landscape) and (max-height:540px){\r\n  #p15.p15-fs:not(.on-home) .p15-main,#p15.p15-full:not(.on-home) .p15-main{max-width:none;width:auto;display:grid;grid-template-columns:auto minmax(220px,300px);grid-template-areas:\"board top\" \"board stats\" \"board actions\";column-gap:16px;align-content:center;justify-content:center}\r\n  #p15.p15-fs:not(.on-home) .p15-game,#p15.p15-full:not(.on-home) .p15-game{display:contents}\r\n  #p15.p15-fs:not(.on-home) .p15-top,#p15.p15-full:not(.on-home) .p15-top{grid-area:top;align-self:end}\r\n  #p15.p15-fs:not(.on-home) .p15-stats,#p15.p15-full:not(.on-home) .p15-stats{grid-area:stats}\r\n  #p15.p15-fs:not(.on-home) .p15-actions,#p15.p15-full:not(.on-home) .p15-actions{grid-area:actions;align-self:start;margin-top:0;grid-template-columns:repeat(2,1fr)}\r\n  #p15.p15-fs:not(.on-home) .p15-board,#p15.p15-full:not(.on-home) .p15-board{grid-area:board;width:calc(100vh - 28px);width:calc(100dvh - 28px);align-self:center}\r\n}\r\n\r\n@keyframes p15pulse{50%{opacity:.45}}\r\n@keyframes p15nope{25%{translate:-5px 0}65%{translate:5px 0}100%{translate:0 0}}\r\n@keyframes p15pop{0%{transform:scale(.4);opacity:0}70%{transform:scale(1.1)}100%{transform:scale(1);opacity:1}}\r\n\r\n@media (max-width:600px){\r\n  #p15{padding:12px;border-radius:20px;margin:10px auto}\r\n  #p15 .p15-val{font-size:1.15rem}\r\n  #p15 .p15-brand h2{font-size:1.05rem}\r\n  #p15 .p15-ibtn{width:34px;height:34px;border-radius:10px;font-size:.9rem}\r\n  #p15 .p15-board{border-radius:14px}\r\n  #p15 .p15-title{font-size:2.1rem}\r\n  #p15 .p15-card{padding:10px;border-radius:18px}\r\n  #p15 .p15-mg{width:28px;height:28px}\r\n  #p15 .p15-sz{font-size:.72rem}\r\n  #p15 .p15-th{width:38px;height:38px}\r\n}\r\n@media (max-width:370px){\r\n  #p15 .p15-top .p15-logo{display:none}\r\n  #p15 .p15-tools{gap:4px}\r\n  #p15 .p15-stc small{display:none}\r\n  #p15 .p15-tgrid{grid-template-columns:repeat(2,1fr)}\r\n}\r\n<\/style>\r\n\r\n<div id=\"p15\" class=\"on-home\" data-theme=\"sky\">\r\n  <audio id=\"p15-bgm\" loop preload=\"none\">\r\n    <source src=\"https:\/\/www.ezcalculatoronline.com\/wp-content\/uploads\/2025\/11\/hail.mp3\" type=\"audio\/mpeg\">\r\n  <\/audio>\r\n\r\n  <div class=\"p15-main\">\r\n    <div class=\"p15-top\">\r\n      <div class=\"p15-brand\">\r\n        <div class=\"p15-logo\"><i><\/i><i><\/i><i><\/i><i><\/i><\/div>\r\n        <div style=\"min-width:0\"><h2>15 Puzzle<\/h2><span class=\"p15-chip\" id=\"p15-chip\">Choose your puzzle<\/span><\/div>\r\n      <\/div>\r\n      <div class=\"p15-tools\">\r\n        <button class=\"p15-ibtn\" data-act=\"themes\" title=\"Themes\">\ud83c\udfa8<\/button>\r\n        <button class=\"p15-ibtn\" data-act=\"music\" id=\"p15-mus\" title=\"Music\">\u266b<\/button>\r\n        <button class=\"p15-ibtn\" data-act=\"sfx\" id=\"p15-sfx\" title=\"Sound effects\">\ud83d\udd0a<\/button>\r\n        <button class=\"p15-ibtn\" data-act=\"fs\" id=\"p15-fsbtn\" title=\"Fullscreen\">\u26f6<\/button>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- ===== HOME \/ SELECTION SCREEN ===== -->\r\n    <div class=\"p15-home\">\r\n      <div class=\"p15-hero\">\r\n        <div class=\"p15-title\">15 PUZZLE<\/div>\r\n        <div class=\"p15-sub\">Slide the tiles back into order<\/div>\r\n      <\/div>\r\n\r\n      <button class=\"p15-contcard\" data-act=\"continue\" id=\"p15-cont\" style=\"display:none\">\r\n        <span class=\"p15-play\">\u25b6<\/span>\r\n        <span><b>Continue game<\/b><small id=\"p15-continfo\"><\/small><\/span>\r\n      <\/button>\r\n\r\n      <div class=\"p15-card\">\r\n        <div class=\"p15-sec\">Board size<\/div>\r\n        <div class=\"p15-sizes\" id=\"p15-sizes\"><\/div>\r\n      <\/div>\r\n\r\n      <div class=\"p15-card\">\r\n        <div class=\"p15-sec\">Tile style<\/div>\r\n        <div class=\"p15-stys\">\r\n          <button class=\"p15-stc\" data-act=\"stylepick\" data-v=\"num\"><span class=\"p15-th num\"><i>1<\/i><i>2<\/i><i>3<\/i><i><\/i><\/span><span style=\"min-width:0\"><b>Numbers<\/b><small>Classic 1 \u2192 15<\/small><\/span><\/button>\r\n          <button class=\"p15-stc\" data-act=\"stylepick\" data-v=\"pic\"><span class=\"p15-th\" id=\"p15-picthumb\"><\/span><span style=\"min-width:0\"><b>Picture<\/b><small>Rebuild the scene<\/small><\/span><\/button>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"p15-card\">\r\n        <div class=\"p15-sec\">Theme <button data-act=\"themes\">See all<\/button><\/div>\r\n        <div class=\"p15-trow\" id=\"p15-trow\"><\/div>\r\n      <\/div>\r\n\r\n      <div class=\"p15-card\">\r\n        <div class=\"p15-sec\">Choose mode &amp; play<\/div>\r\n        <div class=\"p15-mlist\">\r\n          <button class=\"p15-mrow\" data-act=\"mode\" data-v=\"easy\"><span class=\"p15-mic m-easy\">\ud83c\udf31<\/span><span class=\"p15-mtx\"><b>Easy<\/b><small>Light shuffle \u00b7 warm up<\/small><em class=\"best\"><\/em><\/span><span class=\"p15-mtime\">15:00<\/span><\/button>\r\n          <button class=\"p15-mrow\" data-act=\"mode\" data-v=\"normal\"><span class=\"p15-mic m-normal\">\u26a1<\/span><span class=\"p15-mtx\"><b>Normal<\/b><small>Full random shuffle<\/small><em class=\"best\"><\/em><\/span><span class=\"p15-mtime\">10:00<\/span><\/button>\r\n          <button class=\"p15-mrow\" data-act=\"mode\" data-v=\"hard\"><span class=\"p15-mic m-hard\">\ud83d\udd25<\/span><span class=\"p15-mtx\"><b>Master<\/b><small>Full shuffle \u00b7 beat the clock<\/small><em class=\"best\"><\/em><\/span><span class=\"p15-mtime\">05:00<\/span><\/button>\r\n          <button class=\"p15-mrow\" data-act=\"mode\" data-v=\"zen\"><span class=\"p15-mic m-zen\">\ud83e\uddd8<\/span><span class=\"p15-mtx\"><b>Zen<\/b><small>Relax, no time limit<\/small><em class=\"best\"><\/em><\/span><span class=\"p15-mtime\">\u221e<\/span><\/button>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"p15-tip\">Tap a tile, swipe the board, or use arrow keys<\/div>\r\n    <\/div>\r\n\r\n    <!-- ===== GAME SCREEN ===== -->\r\n    <div class=\"p15-game\">\r\n      <div class=\"p15-stats\">\r\n        <div class=\"p15-stat\"><div class=\"p15-lbl\" id=\"p15-tlbl\">Time<\/div><div class=\"p15-val\" id=\"p15-time\">00:00<\/div><\/div>\r\n        <div class=\"p15-stat\"><div class=\"p15-lbl\">Moves<\/div><div class=\"p15-val\" id=\"p15-moves\">0<\/div><\/div>\r\n        <div class=\"p15-stat\"><div class=\"p15-lbl\">Best<\/div><div class=\"p15-val\" id=\"p15-best\">\u2014<\/div><\/div>\r\n        <div class=\"p15-prog\"><b id=\"p15-prog\"><\/b><\/div>\r\n      <\/div>\r\n      <div class=\"p15-board\" id=\"p15-board\"><\/div>\r\n      <div class=\"p15-actions\">\r\n        <button class=\"p15-abtn\" data-act=\"menu\"><span>\u2630<\/span>Menu<\/button>\r\n        <button class=\"p15-abtn\" data-act=\"pause\"><span>\u23f8<\/span>Pause<\/button>\r\n        <button class=\"p15-abtn\" data-act=\"restart\"><span>\u21bb<\/span>Restart<\/button>\r\n        <button class=\"p15-abtn\" data-act=\"style\" id=\"p15-stbtn\"><span>\ud83d\uddbc<\/span>Picture<\/button>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <!-- THEMES -->\r\n  <div class=\"p15-ov hide\" id=\"p15-themes\"><div class=\"p15-in\">\r\n    <div class=\"p15-otitle\">Themes<\/div>\r\n    <div class=\"p15-endm\" style=\"font-size:.85rem\">Picture mode follows the theme too<\/div>\r\n    <div class=\"p15-tgrid\" id=\"p15-tgrid\"><\/div>\r\n    <div class=\"p15-btns\"><button class=\"p15-pbtn\" data-act=\"themesclose\">Done<\/button><\/div>\r\n  <\/div><\/div>\r\n\r\n  <!-- PAUSE -->\r\n  <div class=\"p15-ov hide\" id=\"p15-pause\"><div class=\"p15-in\">\r\n    <div class=\"p15-big\">\u23f8<\/div>\r\n    <div class=\"p15-endt\">Paused<\/div>\r\n    <p class=\"p15-endm\" style=\"margin-bottom:18px\">Take a breather.<\/p>\r\n    <div class=\"p15-btns\"><button class=\"p15-pbtn\" data-act=\"resume\">\u25b6 Resume<\/button><button class=\"p15-pbtn alt\" data-act=\"menu\">Menu<\/button><\/div>\r\n  <\/div><\/div>\r\n\r\n  <!-- END -->\r\n  <div class=\"p15-ov hide\" id=\"p15-end\"><div class=\"p15-in\">\r\n    <div class=\"p15-big\" id=\"p15-eemo\">\ud83c\udfc6<\/div>\r\n    <div class=\"p15-endt\" id=\"p15-etitle\">Victory!<\/div>\r\n    <p class=\"p15-endm\" id=\"p15-emsg\"><\/p>\r\n    <div class=\"p15-es\">\r\n      <div><div class=\"p15-lbl\">Moves<\/div><div class=\"p15-val\" id=\"p15-em\">0<\/div><\/div>\r\n      <div><div class=\"p15-lbl\">Time<\/div><div class=\"p15-val\" id=\"p15-et\">0:00<\/div><\/div>\r\n      <div><div class=\"p15-lbl\">Board<\/div><div class=\"p15-val\" id=\"p15-es\">4\u00d74<\/div><\/div>\r\n    <\/div>\r\n    <div id=\"p15-erec\"><\/div>\r\n    <div class=\"p15-btns\"><button class=\"p15-pbtn\" data-act=\"restart\">\u21bb Play again<\/button><button class=\"p15-pbtn alt\" data-act=\"menu\">Menu<\/button><\/div>\r\n  <\/div><\/div>\r\n\r\n  <canvas class=\"p15-fx\" id=\"p15-fx\"><\/canvas>\r\n<\/div>\r\n\r\n<script>\r\n(function(){\r\n  function boot(){\r\n  var root=document.getElementById('p15'); if(!root||root.dataset.ready) return; root.dataset.ready='1';\r\n  var $=function(s){return root.querySelector(s)};\r\n  var board=$('#p15-board'), bgm=$('#p15-bgm');\r\n\r\n  var THEMES={\r\n    sky:{name:'Sky',art:['#7dd3fc','#e0f2fe','#fde047','#93c5fd','#38a3dc','#0369a1']},\r\n    candy:{name:'Candy',art:['#f9a8d4','#fde2f1','#ffffff','#d8b4fe','#c084fc','#db2777']},\r\n    forest:{name:'Forest',art:['#a7f3d0','#fef9c3','#fde047','#6ee7b7','#16a34a','#14532d']},\r\n    sunset:{name:'Sunset',art:['#fb7185','#fde68a','#fff7ed','#f97316','#be123c','#4c0519']},\r\n    ocean:{name:'Ocean',dark:1,art:['#020617','#0e7490','#e0f2fe','#155e75','#0f4c5c','#042f2e']},\r\n    neon:{name:'Neon',dark:1,art:['#0b0b1a','#701a75','#f0abfc','#4c1d95','#2e1065','#0b0b1a']},\r\n    wood:{name:'Wood',art:['#fcd34d','#fef3c7','#fff7ed','#b45309','#78350f','#451a03']},\r\n    mono:{name:'Minimal',art:['#a1a1aa','#f4f4f5','#18181b','#a1a1aa','#52525b','#18181b']}\r\n  };\r\n  var MODES={easy:{name:'Easy',limit:900},normal:{name:'Normal',limit:600},hard:{name:'Master',limit:300},zen:{name:'Zen',limit:0}};\r\n\r\n  var S={get:function(k,d){try{var v=localStorage.getItem('p15_'+k);return v==null?d:JSON.parse(v)}catch(e){return d}},\r\n         set:function(k,v){try{localStorage.setItem('p15_'+k,JSON.stringify(v))}catch(e){}}};\r\n\r\n  var st={size:S.get('size',4),mode:'normal',tiles:[],empty:0,moves:0,elapsed:0,timer:null,playing:false,paused:false,\r\n          style:S.get('style','num'),theme:S.get('theme','sky'),music:S.get('music',true),sfx:S.get('sfx',true),ts:0,gap:8};\r\n  if(!THEMES[st.theme]) st.theme='sky';\r\n  if([3,4,5,6,7].indexOf(st.size)<0) st.size=4;\r\n  var els={}, artCache={}, themePaused=false;\r\n\r\n  \/* ---------- AUDIO ---------- *\/\r\n  var actx=null;\r\n  function ac(){ if(!actx){try{actx=new (window.AudioContext||window.webkitAudioContext)()}catch(e){}} if(actx&&actx.state==='suspended')actx.resume(); return actx; }\r\n  function tone(f,dur,type,vol,delay,to){ if(!st.sfx) return; var c=ac(); if(!c) return; var t=c.currentTime+(delay||0);\r\n    var o=c.createOscillator(), g=c.createGain(); o.type=type||'sine'; o.frequency.setValueAtTime(f,t); if(to)o.frequency.exponentialRampToValueAtTime(to,t+dur);\r\n    g.gain.setValueAtTime(vol||.08,t); g.gain.exponentialRampToValueAtTime(.0001,t+dur); o.connect(g); g.connect(c.destination); o.start(t); o.stop(t+dur+.02); }\r\n  var sfx={\r\n    slide:function(k){tone(480+Math.random()*80+(k>1?60:0),.08,'sine',.09)},\r\n    click:function(){tone(720,.05,'triangle',.05)},\r\n    nope:function(){tone(180,.12,'square',.03)},\r\n    win:function(){[523,659,784,1047,1319].forEach(function(f,i){tone(f,.35,'triangle',.12,i*.11)})},\r\n    lose:function(){tone(330,.6,'sawtooth',.05,0,110)}\r\n  };\r\n  function playMusic(){ if(st.music){ bgm.volume=.35; var p=bgm.play(); if(p&&p.catch)p.catch(function(){}); } }\r\n\r\n  \/* ---------- PICTURE ART ---------- *\/\r\n  function drawArt(th){\r\n    var W=720,c=document.createElement('canvas'); c.width=c.height=W; var g=c.getContext('2d'), p=th.art;\r\n    var seed=97+th.name.length*131; function rnd(){seed=seed*16807%2147483647;return seed\/2147483647}\r\n    var sky=g.createLinearGradient(0,0,0,W); sky.addColorStop(0,p[0]); sky.addColorStop(.72,p[1]); g.fillStyle=sky; g.fillRect(0,0,W,W);\r\n    if(th.dark){ for(var i=0;i<110;i++){ g.fillStyle='rgba(255,255,255,'+(.3+rnd()*.7)+')'; g.beginPath(); g.arc(rnd()*W,rnd()*W*.6,rnd()*1.8+.4,0,7); g.fill(); } }\r\n    var sx=W*.68, sy=W*.3, sr=W*.11, gl=g.createRadialGradient(sx,sy,sr*.6,sx,sy,sr*3.2);\r\n    gl.addColorStop(0,p[2]); gl.addColorStop(1,'rgba(255,255,255,0)'); g.globalAlpha=.5; g.fillStyle=gl; g.beginPath(); g.arc(sx,sy,sr*3.2,0,7); g.fill();\r\n    g.globalAlpha=1; g.fillStyle=p[2]; g.beginPath(); g.arc(sx,sy,sr,0,7); g.fill();\r\n    if(th.dark){ g.fillStyle=p[0]; g.beginPath(); g.arc(sx+sr*.45,sy-sr*.25,sr*.85,0,7); g.fill(); }\r\n    else { for(var k=0;k<4;k++){ var cx=rnd()*W, cy=W*(.08+rnd()*.25), s=30+rnd()*30; g.fillStyle='rgba(255,255,255,.8)';\r\n      [[0,0,1],[-.9,.25,.7],[.9,.25,.75],[.35,-.35,.7]].forEach(function(b){g.beginPath();g.arc(cx+b[0]*s,cy+b[1]*s,s*b[2],0,7);g.fill()}); } }\r\n    [[.52,.2,p[3]],[.65,.13,p[4]],[.8,.08,p[5]]].forEach(function(L){\r\n      g.fillStyle=L[2]; g.beginPath(); g.moveTo(0,W);\r\n      for(var x=0;x<=W+1;x+=W\/9){ g.lineTo(x,W*L[0]-rnd()*W*L[1]); } g.lineTo(W,W); g.closePath(); g.fill(); });\r\n    for(var t=0;t<16;t++){ var tx=rnd()*W, ty=W*(.86+rnd()*.12), h=26+rnd()*34;\r\n      g.fillStyle=p[t%2?3:4]; g.beginPath(); g.moveTo(tx,ty-h); g.lineTo(tx-h*.35,ty); g.lineTo(tx+h*.35,ty); g.closePath(); g.fill(); }\r\n    return c.toDataURL('image\/jpeg',.88);\r\n  }\r\n  function getArt(){ return artCache[st.theme]||(artCache[st.theme]=drawArt(THEMES[st.theme])); }\r\n\r\n  \/* ---------- BOARD LOGIC ---------- *\/\r\n  function neighbors(i){ var n=st.size,a=[],r=Math.floor(i\/n),c=i%n;\r\n    if(r>0)a.push(i-n); if(r<n-1)a.push(i+n); if(c>0)a.push(i-1); if(c<n-1)a.push(i+1); return a; }\r\n  function isSolved(){ var N=st.size*st.size; for(var i=0;i<N-1;i++) if(st.tiles[i]!==i+1) return false; return true; }\r\n  function newBoard(type,steps){\r\n    var N=st.size*st.size; st.tiles=[]; for(var i=0;i<N;i++) st.tiles.push((i+1)%N);\r\n    if(type==='walk'){ var e=N-1,last=-1;\r\n      for(var s=0;s<steps||isSolved();s++){ var nb=neighbors(e).filter(function(x){return x!==last}); var nx=nb[Math.floor(Math.random()*nb.length)];\r\n        st.tiles[e]=st.tiles[nx]; st.tiles[nx]=0; last=e; e=nx; if(s>steps+200)break; }\r\n    } else if(type==='chaos'){\r\n      do{ var nums=[]; for(var k=1;k<N;k++) nums.push(k);\r\n        for(var j=nums.length-1;j>0;j--){ var r=Math.floor(Math.random()*(j+1)),tmp=nums[j]; nums[j]=nums[r]; nums[r]=tmp; }\r\n        var inv=0; for(var a=0;a<nums.length;a++) for(var b=a+1;b<nums.length;b++) if(nums[a]>nums[b]) inv++;\r\n        if(inv%2){ tmp=nums[0]; nums[0]=nums[1]; nums[1]=tmp; }\r\n        st.tiles=nums.concat([0]);\r\n      } while(isSolved());\r\n    }\r\n    st.empty=st.tiles.indexOf(0);\r\n  }\r\n\r\n  function build(){\r\n    board.classList.add('no-anim'); board.innerHTML=''; els={};\r\n    for(var v=1;v<st.size*st.size;v++){ var d=document.createElement('div'); d.className='p15-tile'; d.dataset.v=v;\r\n      d.innerHTML='<span class=\"p15-num\">'+v+'<\/span>'; board.appendChild(d); els[v]=d; }\r\n    layout();\r\n    requestAnimationFrame(function(){requestAnimationFrame(function(){board.classList.remove('no-anim')})});\r\n  }\r\n  function layout(){\r\n    var W=board.clientWidth; if(!W) return; var n=st.size;\r\n    var gap=Math.max(3,Math.round(W*(n<=4?.022:.015))), ts=(W-gap*(n+1))\/n; st.ts=ts; st.gap=gap;\r\n    board.style.setProperty('--ts',ts+'px');\r\n    var pic=st.style==='pic', url=pic?'url('+getArt()+')':'';\r\n    board.classList.toggle('pic',pic);\r\n    for(var v in els){ var e=els[v], h=v-1;\r\n      e.style.backgroundImage=url;\r\n      if(pic){ e.style.backgroundSize=(n*ts)+'px '+(n*ts)+'px'; e.style.backgroundPosition=(-(h%n)*ts)+'px '+(-Math.floor(h\/n)*ts)+'px'; }\r\n      else { e.style.backgroundSize=''; e.style.backgroundPosition=''; } }\r\n    place();\r\n  }\r\n  function place(){\r\n    var n=st.size, ts=st.ts, gap=st.gap, ok=0;\r\n    st.tiles.forEach(function(v,i){ if(!v) return; var e=els[v]; if(!e) return;\r\n      e.style.transform='translate('+(gap+(i%n)*(ts+gap))+'px,'+(gap+Math.floor(i\/n)*(ts+gap))+'px)';\r\n      var good=v===i+1; e.classList.toggle('ok',good); if(good) ok++; });\r\n    $('#p15-prog').style.width=(ok\/(n*n-1)*100)+'%';\r\n  }\r\n  function slideFrom(idx){\r\n    if(!st.playing||st.paused||idx<0) return;\r\n    var n=st.size, e=st.empty, dir=0; if(idx===e) return;\r\n    if(Math.floor(idx\/n)===Math.floor(e\/n)) dir=idx>e?1:-1; else if(idx%n===e%n) dir=idx>e?n:-n;\r\n    if(!dir){ var el=els[st.tiles[idx]]; if(el){el.classList.remove('nope'); void el.offsetWidth; el.classList.add('nope');} sfx.nope(); return; }\r\n    var count=0;\r\n    while(st.empty!==idx){ var nx=st.empty+dir; st.tiles[st.empty]=st.tiles[nx]; st.tiles[nx]=0; st.empty=nx; st.moves++; count++; }\r\n    sfx.slide(count); place(); $('#p15-moves').textContent=st.moves;\r\n    if(isSolved()) finish(true);\r\n  }\r\n  function moveDir(d){\r\n    var n=st.size,e=st.empty,r=Math.floor(e\/n),c=e%n;\r\n    if(d==='left'&&c<n-1) slideFrom(e+1); else if(d==='right'&&c>0) slideFrom(e-1);\r\n    else if(d==='up'&&r<n-1) slideFrom(e+n); else if(d==='down'&&r>0) slideFrom(e-n);\r\n  }\r\n\r\n  \/* ---------- GAME FLOW ---------- *\/\r\n  function fmt(s){ s=Math.max(0,s); return String(Math.floor(s\/60)).padStart(2,'0')+':'+String(s%60).padStart(2,'0'); }\r\n  function bestKey(){ return 'best_'+st.size+'_'+st.mode; }\r\n  function onHome(){ return root.classList.contains('on-home'); }\r\n  function hud(){\r\n    var lim=MODES[st.mode].limit, t=$('#p15-time');\r\n    $('#p15-chip').textContent=onHome()?'Choose your puzzle':(st.size+'\u00d7'+st.size+' \u00b7 '+MODES[st.mode].name+(st.style==='pic'?' \u00b7 Picture':''));\r\n    $('#p15-tlbl').textContent=lim?'Time left':'Elapsed';\r\n    t.textContent=fmt(lim?lim-st.elapsed:st.elapsed);\r\n    t.classList.toggle('urgent',!!(st.playing&&lim&&lim-st.elapsed<=15));\r\n    $('#p15-moves').textContent=st.moves;\r\n    var b=S.get(bestKey(),null); $('#p15-best').textContent=b?b.m:'\u2014';\r\n  }\r\n  function tick(){ st.elapsed++; var lim=MODES[st.mode].limit; hud(); if(lim&&st.elapsed>=lim) finish(false); }\r\n  function startTimer(){ clearInterval(st.timer); st.timer=setInterval(tick,1000); }\r\n  function hideOv(){ ['#p15-pause','#p15-end','#p15-themes'].forEach(function(s){$(s).classList.add('hide')}); }\r\n  function toTop(){ if(inFS()) root.scrollTop=0; }\r\n\r\n  function startGame(mode){\r\n    clearInterval(st.timer); ac();\r\n    st.mode=mode; st.moves=0; st.elapsed=0;\r\n    root.classList.remove('on-home'); hideOv(); root.classList.remove('paused');\r\n    if(mode==='easy') newBoard('walk',25*st.size); else newBoard('chaos');\r\n    build(); st.playing=true; st.paused=false; hud(); startTimer(); toTop();\r\n    bgm.currentTime=0; playMusic();\r\n  }\r\n  function pauseGame(show){\r\n    if(!st.playing||st.paused) return false;\r\n    st.paused=true; clearInterval(st.timer); bgm.pause(); root.classList.add('paused');\r\n    if(show) $('#p15-pause').classList.remove('hide');\r\n    return true;\r\n  }\r\n  function resume(){\r\n    if(!st.playing) return;\r\n    root.classList.remove('on-home'); st.paused=false; hideOv(); root.classList.remove('paused');\r\n    requestAnimationFrame(layout); startTimer(); playMusic(); hud(); toTop();\r\n  }\r\n  function showHome(){\r\n    pauseGame(false); hideOv();\r\n    root.classList.add('on-home'); renderHome(); hud(); toTop();\r\n  }\r\n  function finish(win){\r\n    st.playing=false; st.paused=false; clearInterval(st.timer); bgm.pause(); root.classList.remove('paused');\r\n    $('#p15-em').textContent=st.moves; $('#p15-et').textContent=fmt(st.elapsed); $('#p15-es').textContent=st.size+'\u00d7'+st.size;\r\n    var rec=$('#p15-erec'); rec.innerHTML='';\r\n    if(win){\r\n      var b=S.get(bestKey(),null), isRec=!b||st.moves<b.m||st.elapsed<b.t;\r\n      S.set(bestKey(),{m:b?Math.min(b.m,st.moves):st.moves,t:b?Math.min(b.t,st.elapsed):st.elapsed});\r\n      if(isRec) rec.innerHTML='<span class=\"p15-rec\">\ud83c\udfc6 NEW RECORD!<\/span>';\r\n      $('#p15-eemo').textContent='\ud83c\udf89'; $('#p15-etitle').textContent='Victory!'; $('#p15-etitle').style.color='#10b981';\r\n      $('#p15-emsg').textContent='Solved '+st.size+'\u00d7'+st.size+' on '+MODES[st.mode].name+' mode';\r\n      sfx.win(); confetti(); setTimeout(function(){$('#p15-end').classList.remove('hide')},750);\r\n    } else {\r\n      var ok=st.tiles.filter(function(v,i){return v&&v===i+1}).length;\r\n      $('#p15-eemo').textContent='\u23f0'; $('#p15-etitle').textContent='Time\\u2019s up!'; $('#p15-etitle').style.color='#ef4444';\r\n      $('#p15-emsg').textContent='You placed '+ok+' of '+(st.size*st.size-1)+' tiles. Try again!';\r\n      sfx.lose(); $('#p15-end').classList.remove('hide');\r\n    }\r\n    hud();\r\n  }\r\n\r\n  \/* ---------- HOME RENDER ---------- *\/\r\n  function renderSizes(){\r\n    var h='';\r\n    [3,4,5,6,7].forEach(function(n){\r\n      var cells=''; for(var i=0;i<n*n;i++) cells+='<i><\/i>';\r\n      h+='<button class=\"p15-sz\" data-act=\"size\" data-v=\"'+n+'\"><span class=\"p15-mg\" style=\"grid-template-columns:repeat('+n+',1fr);gap:'+(n>5?1:2)+'px\">'+cells+'<\/span>'+n+'\u00d7'+n+'<\/button>';\r\n    });\r\n    $('#p15-sizes').innerHTML=h;\r\n  }\r\n  function renderThemes(){\r\n    var row='',grid='';\r\n    Object.keys(THEMES).forEach(function(k){\r\n      var prev='<span class=\"p15-tcp\" data-theme=\"'+k+'\"><i>1<\/i><i>2<\/i><i class=\"ok\">3<\/i><\/span>';\r\n      row+='<button class=\"p15-tch\" data-act=\"themepick\" data-v=\"'+k+'\">'+prev+THEMES[k].name+'<\/button>';\r\n      grid+='<button class=\"p15-tc\" data-act=\"themepick\" data-v=\"'+k+'\">'+prev+THEMES[k].name+'<\/button>';\r\n    });\r\n    $('#p15-trow').innerHTML=row; $('#p15-tgrid').innerHTML=grid;\r\n  }\r\n  function renderHome(){\r\n    root.querySelectorAll('.p15-sz').forEach(function(b){b.classList.toggle('on',+b.dataset.v===st.size)});\r\n    root.querySelectorAll('.p15-stc').forEach(function(b){b.classList.toggle('on',b.dataset.v===st.style)});\r\n    root.querySelectorAll('[data-act=themepick]').forEach(function(b){b.classList.toggle('on',b.dataset.v===st.theme)});\r\n    $('#p15-picthumb').style.backgroundImage='url('+getArt()+')';\r\n    root.querySelectorAll('.p15-mrow').forEach(function(b){\r\n      var r=S.get('best_'+st.size+'_'+b.dataset.v,null);\r\n      b.querySelector('.best').textContent=r?('\ud83c\udfc6 Best '+st.size+'\u00d7'+st.size+': '+r.m+' moves \u00b7 '+fmt(r.t)):'';\r\n    });\r\n    var c=$('#p15-cont');\r\n    if(st.playing){ c.style.display='flex'; var lim=MODES[st.mode].limit;\r\n      $('#p15-continfo').textContent=st.size+'\u00d7'+st.size+' \u00b7 '+MODES[st.mode].name+' \u00b7 '+st.moves+' moves \u00b7 '+fmt(lim?lim-st.elapsed:st.elapsed)+(lim?' left':'');\r\n    } else c.style.display='none';\r\n  }\r\n\r\n  \/* ---------- SETTINGS ---------- *\/\r\n  function setSize(n){\r\n    if(n===st.size&&!st.playing){ renderHome(); return; }\r\n    st.size=n; S.set('size',n); st.playing=false; st.paused=false; clearInterval(st.timer); bgm.pause(); root.classList.remove('paused');\r\n    st.moves=0; st.elapsed=0; newBoard('solved'); build(); renderHome(); hud();\r\n  }\r\n  function setStyle(s){\r\n    st.style=s; S.set('style',s);\r\n    $('#p15-stbtn').innerHTML=s==='pic'?'<span>\ud83d\udd22<\/span>Numbers':'<span>\ud83d\uddbc<\/span>Picture';\r\n    layout(); renderHome(); hud();\r\n  }\r\n  function applyTheme(t){\r\n    st.theme=t; S.set('theme',t); root.dataset.theme=t;\r\n    if(st.style==='pic') layout(); renderHome();\r\n  }\r\n  function soundBtns(){ $('#p15-mus').classList.toggle('off',!st.music); $('#p15-sfx').classList.toggle('off',!st.sfx); $('#p15-sfx').textContent=st.sfx?'\ud83d\udd0a':'\ud83d\udd07'; }\r\n\r\n  \/* ---------- FULLSCREEN (native + iPhone\/WordPress-safe fallback) ---------- *\/\r\n  var ph=null, savedY=0;\r\n  function nativeFS(){ return (document.fullscreenElement||document.webkitFullscreenElement)===root; }\r\n  function inFS(){ return nativeFS()||root.classList.contains('p15-full'); }\r\n  function fsIcon(){ var b=$('#p15-fsbtn'); b.textContent=inFS()?'\u2715':'\u26f6'; b.title=inFS()?'Exit fullscreen':'Fullscreen'; }\r\n  function relayout(){ setTimeout(layout,60); setTimeout(layout,350); }\r\n  function enterFS(){\r\n    var std=root.requestFullscreen, wk=root.webkitRequestFullscreen;\r\n    try{\r\n      if(std){ var p=std.call(root,{navigationUI:'hide'}); if(p&&p.catch) p.catch(fakeFS); return; }\r\n      if(wk){ wk.call(root); setTimeout(function(){ if(!nativeFS()) fakeFS(); },400); return; }\r\n    }catch(e){}\r\n    fakeFS();\r\n  }\r\n  function fakeFS(){\r\n    if(root.classList.contains('p15-full')||nativeFS()) return;\r\n    savedY=window.pageYOffset||0;\r\n    \/\/ Move to <body> so WordPress wrappers (transform \/ overflow \/ z-index) can't clip it\r\n    ph=document.createComment('p15-slot'); root.parentNode.insertBefore(ph,root); document.body.appendChild(root);\r\n    root.classList.add('p15-full'); document.documentElement.classList.add('p15-lock');\r\n    fsIcon(); relayout();\r\n  }\r\n  function exitFS(){\r\n    if(nativeFS()){ (document.exitFullscreen||document.webkitExitFullscreen).call(document); return; }\r\n    if(!root.classList.contains('p15-full')) return;\r\n    root.classList.remove('p15-full'); document.documentElement.classList.remove('p15-lock');\r\n    if(ph&&ph.parentNode){ ph.parentNode.insertBefore(root,ph); ph.parentNode.removeChild(ph); } ph=null;\r\n    window.scrollTo(0,savedY); fsIcon(); relayout();\r\n  }\r\n  function onFS(){ root.classList.toggle('p15-fs',nativeFS()); fsIcon(); relayout(); }\r\n  document.addEventListener('fullscreenchange',onFS); document.addEventListener('webkitfullscreenchange',onFS);\r\n  window.addEventListener('orientationchange',relayout);\r\n  window.addEventListener('resize',function(){ if(inFS()) layout(); });\r\n\r\n  \/* ---------- CONFETTI ---------- *\/\r\n  function confetti(){\r\n    var cv=$('#p15-fx'), W=cv.clientWidth||root.clientWidth, H=cv.clientHeight||root.clientHeight, dpr=window.devicePixelRatio||1;\r\n    cv.width=W*dpr; cv.height=H*dpr; var g=cv.getContext('2d'); g.setTransform(dpr,0,0,dpr,0,0);\r\n    var cs=getComputedStyle(root), cols=[cs.getPropertyValue('--accent').trim(),cs.getPropertyValue('--accent2').trim(),'#facc15','#f43f5e','#a78bfa','#34d399'];\r\n    var P=[]; for(var i=0;i<160;i++) P.push({x:W\/2+(Math.random()-.5)*W*.4,y:H*.5,vx:(Math.random()-.5)*11,vy:-Math.random()*12-4,\r\n      r:Math.random()*6,vr:(Math.random()-.5)*.4,w:6+Math.random()*5,h:4+Math.random()*4,c:cols[i%cols.length]});\r\n    var t0=performance.now();\r\n    (function loop(now){ g.clearRect(0,0,W,H); var el=now-t0;\r\n      P.forEach(function(p){ p.vy+=.28; p.vx*=.99; p.x+=p.vx; p.y+=p.vy; p.r+=p.vr;\r\n        g.save(); g.translate(p.x,p.y); g.rotate(p.r); g.globalAlpha=Math.max(0,1-el\/3200); g.fillStyle=p.c; g.fillRect(-p.w\/2,-p.h\/2,p.w,p.h); g.restore(); });\r\n      if(el<3200) requestAnimationFrame(loop); else g.clearRect(0,0,W,H);\r\n    })(t0);\r\n  }\r\n\r\n  \/* ---------- INPUT ---------- *\/\r\n  root.addEventListener('click',function(e){\r\n    var b=e.target.closest('[data-act]'); if(!b||!root.contains(b)) return;\r\n    var a=b.dataset.act, v=b.dataset.v; ac();\r\n    if(a!=='mode') sfx.click();\r\n    switch(a){\r\n      case 'menu': showHome(); break;\r\n      case 'continue': resume(); break;\r\n      case 'pause': if(st.paused) resume(); else if(!pauseGame(true)) showHome(); break;\r\n      case 'resume': resume(); break;\r\n      case 'restart': startGame(st.mode); break;\r\n      case 'mode': startGame(v); break;\r\n      case 'size': setSize(+v); break;\r\n      case 'stylepick': setStyle(v); break;\r\n      case 'style': setStyle(st.style==='pic'?'num':'pic'); break;\r\n      case 'themepick': applyTheme(v); break;\r\n      case 'themes': themePaused=onHome()?false:pauseGame(false); $('#p15-themes').classList.remove('hide'); break;\r\n      case 'themesclose': $('#p15-themes').classList.add('hide'); if(themePaused){themePaused=false;resume();} break;\r\n      case 'music': st.music=!st.music; S.set('music',st.music); soundBtns(); if(st.music&&st.playing&&!st.paused&&!onHome()) playMusic(); else bgm.pause(); break;\r\n      case 'sfx': st.sfx=!st.sfx; S.set('sfx',st.sfx); soundBtns(); break;\r\n      case 'fs': if(inFS()) exitFS(); else enterFS(); break;\r\n    }\r\n  });\r\n\r\n  var pd=null;\r\n  board.addEventListener('pointerdown',function(e){ pd={x:e.clientX,y:e.clientY,t:e.target}; });\r\n  board.addEventListener('pointercancel',function(){ pd=null; });\r\n  board.addEventListener('pointerup',function(e){\r\n    if(!pd) return; var p=pd; pd=null; var dx=e.clientX-p.x, dy=e.clientY-p.y;\r\n    if(Math.max(Math.abs(dx),Math.abs(dy))<18){\r\n      var tile=p.t.closest&&p.t.closest('.p15-tile'); if(tile) slideFrom(st.tiles.indexOf(+tile.dataset.v));\r\n    } else if(Math.abs(dx)>Math.abs(dy)) moveDir(dx>0?'right':'left'); else moveDir(dy>0?'down':'up');\r\n  });\r\n\r\n  document.addEventListener('keydown',function(e){\r\n    if(e.key==='Escape'&&root.classList.contains('p15-full')){ exitFS(); return; }\r\n    if(!st.playing||onHome()) return; var tg=(e.target.tagName||'').toLowerCase(); if(tg==='input'||tg==='textarea'||tg==='select') return;\r\n    var k=e.key, m={ArrowLeft:'left',ArrowRight:'right',ArrowUp:'up',ArrowDown:'down',a:'left',d:'right',w:'up',s:'down'};\r\n    if(k==='p'||k==='P'){ if(st.paused) resume(); else pauseGame(true); e.preventDefault(); return; }\r\n    if(m[k]&&!st.paused){ moveDir(m[k]); e.preventDefault(); }\r\n  });\r\n  document.addEventListener('visibilitychange',function(){ if(document.hidden&&!onHome()) pauseGame(true); });\r\n\r\n  if(window.ResizeObserver) new ResizeObserver(function(){layout()}).observe(board);\r\n  else window.addEventListener('resize',layout);\r\n\r\n  \/* ---------- INIT ---------- *\/\r\n  renderSizes(); renderThemes();\r\n  root.dataset.theme=st.theme; soundBtns(); fsIcon();\r\n  newBoard('solved'); build();\r\n  $('#p15-stbtn').innerHTML=st.style==='pic'?'<span>\ud83d\udd22<\/span>Numbers':'<span>\ud83d\uddbc<\/span>Picture';\r\n  renderHome(); hud();\r\n  }\r\n  if(document.readyState==='loading') document.addEventListener('DOMContentLoaded',boot); else boot();\r\n})();\r\n<\/script><\/div><\/div><div class=\"wpb_wrapper wpb_text_column td_block_wrap td_block_wrap vc_column_text tdi_9  tagdiv-type td-pb-border-top td_block_template_1\"  data-td-block-uid=\"tdi_9\" ><div class=\"td-block-title-wrap\"><\/div><div class=\"td-fix-index\"><h1 data-start=\"105\" data-end=\"171\"><strong data-start=\"107\" data-end=\"171\">15 Puzzle \u2013 The Classic Sliding Game That Sharpens Your Mind<\/strong><\/h1>\n<p data-start=\"172\" data-end=\"374\">Discover the 15 Puzzle \u2013 a classic sliding game that boosts logic, memory, and problem-solving skills. Learn how to play, its history, and tips to solve it fast.<\/p>\n<h2 data-start=\"381\" data-end=\"410\"><strong data-start=\"384\" data-end=\"410\">What Is the 15 Puzzle?<\/strong><\/h2>\n<p data-start=\"411\" data-end=\"735\">The <strong data-start=\"415\" data-end=\"428\">15 Puzzle<\/strong>, also known as the <strong data-start=\"448\" data-end=\"466\">Sliding Puzzle<\/strong> or <strong data-start=\"470\" data-end=\"493\">Number Slide Puzzle<\/strong>, is a timeless logic game that dates back to the 19th century. It features a <strong data-start=\"571\" data-end=\"583\">4\u00d74 grid<\/strong> with 15 numbered tiles and one empty space. Your goal is simple:<br data-start=\"648\" data-end=\"651\" \/><strong data-start=\"651\" data-end=\"735\">Slide the tiles around to arrange the numbers from 1 to 15 in the correct order.<\/strong><\/p>\n<p data-start=\"737\" data-end=\"850\">It\u2019s easy to learn but surprisingly challenging \u2014 and that\u2019s exactly why it has remained popular for generations.<\/p>\n<p data-start=\"737\" data-end=\"850\"><img decoding=\"async\" class=\"size-full wp-image-7619 aligncenter\" src=\"https:\/\/www.ezcalculatoronline.com\/wp-content\/uploads\/2025\/11\/15-Puzzle.jpg\" alt=\"\" width=\"1920\" height=\"1080\" srcset=\"https:\/\/www.ezcalculatoronline.com\/wp-content\/uploads\/2025\/11\/15-Puzzle.jpg 1920w, https:\/\/www.ezcalculatoronline.com\/wp-content\/uploads\/2025\/11\/15-Puzzle-300x169.jpg 300w, https:\/\/www.ezcalculatoronline.com\/wp-content\/uploads\/2025\/11\/15-Puzzle-1024x576.jpg 1024w, https:\/\/www.ezcalculatoronline.com\/wp-content\/uploads\/2025\/11\/15-Puzzle-768x432.jpg 768w, https:\/\/www.ezcalculatoronline.com\/wp-content\/uploads\/2025\/11\/15-Puzzle-1536x864.jpg 1536w, https:\/\/www.ezcalculatoronline.com\/wp-content\/uploads\/2025\/11\/15-Puzzle-150x84.jpg 150w, https:\/\/www.ezcalculatoronline.com\/wp-content\/uploads\/2025\/11\/15-Puzzle-696x392.jpg 696w, https:\/\/www.ezcalculatoronline.com\/wp-content\/uploads\/2025\/11\/15-Puzzle-1068x601.jpg 1068w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/><\/p>\n<h2 data-start=\"857\" data-end=\"889\"><strong data-start=\"860\" data-end=\"889\">How to Play the 15 Puzzle<\/strong><\/h2>\n<p data-start=\"890\" data-end=\"926\">Playing the game is straightforward:<\/p>\n<ol data-start=\"928\" data-end=\"1132\">\n<li data-start=\"928\" data-end=\"1004\">\n<p data-start=\"931\" data-end=\"1004\">The board contains 16 spaces with 15 numbered tiles and one empty slot.<\/p>\n<\/li>\n<li data-start=\"1005\" data-end=\"1079\">\n<p data-start=\"1008\" data-end=\"1079\">You can move tiles <strong data-start=\"1027\" data-end=\"1055\">up, down, left, or right<\/strong> into the empty space.<\/p>\n<\/li>\n<li data-start=\"1005\" data-end=\"1079\">\n<p data-start=\"1008\" data-end=\"1079\"><span style=\"font-family: Verdana, BlinkMacSystemFont, -apple-system, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\">No speed, strength, or special skill required \u2014 just logic and patience.<\/span><\/p>\n<\/li>\n<\/ol>\n<h2 data-start=\"1281\" data-end=\"1321\"><strong data-start=\"1284\" data-end=\"1321\">Benefits of Playing the 15 Puzzle<\/strong><\/h2>\n<p data-start=\"1322\" data-end=\"1372\">The 15 Puzzle offers more than just entertainment:<\/p>\n<ul data-start=\"1374\" data-end=\"1546\">\n<li data-start=\"1374\" data-end=\"1407\">\n<p data-start=\"1376\" data-end=\"1407\"><strong data-start=\"1376\" data-end=\"1405\">Enhances logical thinking<\/strong><\/p>\n<\/li>\n<li data-start=\"1408\" data-end=\"1447\">\n<p data-start=\"1410\" data-end=\"1447\"><strong data-start=\"1410\" data-end=\"1445\">Improves problem-solving skills<\/strong><\/p>\n<\/li>\n<li data-start=\"1448\" data-end=\"1477\">\n<p data-start=\"1450\" data-end=\"1477\"><strong data-start=\"1450\" data-end=\"1475\">Boosts spatial memory<\/strong><\/p>\n<\/li>\n<li data-start=\"1478\" data-end=\"1518\">\n<p data-start=\"1480\" data-end=\"1518\"><strong data-start=\"1480\" data-end=\"1516\">Provides relaxing brain exercise<\/strong><\/p>\n<\/li>\n<li data-start=\"1519\" data-end=\"1546\">\n<p data-start=\"1521\" data-end=\"1546\"><strong data-start=\"1521\" data-end=\"1546\">Suitable for all ages<\/strong><\/p>\n<\/li>\n<\/ul>\n<p data-start=\"1548\" data-end=\"1637\">It\u2019s the perfect quick-play game when you want something simple yet mentally stimulating.<\/p>\n<h2 data-start=\"1644\" data-end=\"1683\"><strong data-start=\"1647\" data-end=\"1683\">A Brief History of the 15 Puzzle<\/strong><\/h2>\n<ul data-start=\"1684\" data-end=\"1998\">\n<li data-start=\"1684\" data-end=\"1772\">\n<p data-start=\"1686\" data-end=\"1772\">The 15 Puzzle was invented around <strong data-start=\"1720\" data-end=\"1728\">1874<\/strong> by American postmaster <strong data-start=\"1752\" data-end=\"1769\">Noyes Chapman<\/strong>.<\/p>\n<\/li>\n<li data-start=\"1773\" data-end=\"1858\">\n<p data-start=\"1775\" data-end=\"1858\">By the 1880s, it became a nationwide craze with competitions to solve it quickly.<\/p>\n<\/li>\n<li data-start=\"1859\" data-end=\"1998\">\n<p data-start=\"1861\" data-end=\"1998\">Mathematicians later discovered something fascinating:<br data-start=\"1915\" data-end=\"1918\" \/><strong data-start=\"1920\" data-end=\"1998\">Not all scrambled boards are solvable \u2014 only specific configurations work.<\/strong><\/p>\n<\/li>\n<\/ul>\n<p data-start=\"2000\" data-end=\"2091\">This surprising twist made the game even more intriguing for puzzle lovers and researchers.<\/p>\n<h2 data-start=\"2098\" data-end=\"2139\"><strong data-start=\"2101\" data-end=\"2139\">Tips to Solve the 15 Puzzle Faster<\/strong><\/h2>\n<p data-start=\"2140\" data-end=\"2196\">Want to improve your solving time? Try these techniques:<\/p>\n<h3 data-start=\"2198\" data-end=\"2225\"><strong data-start=\"2202\" data-end=\"2225\">1. Solve Row by Row<\/strong><\/h3>\n<p data-start=\"2226\" data-end=\"2307\">Start with the first row, then the second, and so on until the last tiles remain.<\/p>\n<h3 data-start=\"2309\" data-end=\"2357\"><strong data-start=\"2313\" data-end=\"2357\">2. Don\u2019t Break What You\u2019ve Already Fixed<\/strong><\/h3>\n<p data-start=\"2358\" data-end=\"2420\">Once a tile is in the correct position, avoid moving it again.<\/p>\n<h3 data-start=\"2422\" data-end=\"2466\"><strong data-start=\"2426\" data-end=\"2466\">3. Use the Empty Space Strategically<\/strong><\/h3>\n<p data-start=\"2467\" data-end=\"2546\">The blank tile is your \u201ctool\u201d \u2013 use it to rotate clusters of tiles efficiently.<\/p>\n<h3 data-start=\"2548\" data-end=\"2590\"><strong data-start=\"2552\" data-end=\"2590\">4. Learn the 3-Tile Rotation Trick<\/strong><\/h3>\n<p data-start=\"2591\" data-end=\"2672\">A key technique for solving the last few tiles without breaking earlier progress.<\/p>\n<h2 data-start=\"2679\" data-end=\"2725\"><strong data-start=\"2682\" data-end=\"2725\">Why the 15 Puzzle Remains Popular Today<\/strong><\/h2>\n<ul data-start=\"2726\" data-end=\"2892\">\n<li data-start=\"2765\" data-end=\"2792\">\n<p data-start=\"2767\" data-end=\"2792\">Fun for kids and adults<\/p>\n<\/li>\n<li data-start=\"2793\" data-end=\"2828\">\n<p data-start=\"2795\" data-end=\"2828\">Zero luck involved \u2014 pure logic<\/p>\n<\/li>\n<li data-start=\"2829\" data-end=\"2857\">\n<p data-start=\"2831\" data-end=\"2857\">Great for brain training<\/p>\n<\/li>\n<\/ul>\n<p data-start=\"2894\" data-end=\"2974\">It\u2019s a simple game that still feels modern because the challenge never gets old.<\/p>\n<p data-start=\"2999\" data-end=\"3201\">The <strong data-start=\"3003\" data-end=\"3016\">15 Puzzle<\/strong> is more than just a classic sliding game \u2014 it\u2019s a brilliant way to train your brain. Whether you\u2019re a beginner or an experienced puzzle fan, every playthrough offers a fresh challenge.<\/p>\n<p data-start=\"3203\" data-end=\"3303\">If you enjoy smart, satisfying puzzles that test your logical thinking, the 15 Puzzle is a must-try.<\/p>\n<\/div><\/div><\/div><\/div><div class=\"vc_column tdi_11  wpb_column vc_column_container tdc-column td-pb-span4 td-is-sticky\">\n<style scoped>\n\n\/* custom css *\/\n.tdi_11{\r\n                    vertical-align: baseline;\r\n                }.tdi_11 > .wpb_wrapper,\r\n\t\t\t\t.tdi_11 > .wpb_wrapper > .tdc-elements{\r\n\t\t\t\t    display: block;\r\n\t\t\t\t}.tdi_11 > .wpb_wrapper > .tdc-elements{\r\n\t\t\t\t    width: 100%;\r\n\t\t\t\t}.tdi_11 > .wpb_wrapper > .vc_row_inner{\r\n\t\t\t\t    width: auto;\r\n\t\t\t\t}.tdi_11 > .wpb_wrapper{\r\n\t\t\t\t    width: auto;\r\n\t\t\t\t    height: auto;\r\n\t\t\t\t}\n<\/style><div class=\"wpb_wrapper\" data-sticky-offset=\"20\"><div class=\"wpb_wrapper td_block_wrap vc_raw_html tdi_13 \">\n<style scoped>\n\n\/* inline tdc_css att *\/\n\n.tdi_13{\npadding-top:20px !important;\n}\n\n<\/style><div class=\"td-fix-index\"><script async src=\"https:\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js?client=ca-pub-7396755811986582\"\n     crossorigin=\"anonymous\"><\/script>\n<!-- ads 300 x 250 -->\n<ins class=\"adsbygoogle\"\n     style=\"display:inline-block;width:300px;height:250px\"\n     data-ad-client=\"ca-pub-7396755811986582\"\n     data-ad-slot=\"2517371721\"><\/ins>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script><\/div><\/div><div class=\"wpb_wrapper td_block_wrap vc_raw_html tdi_15 \"><div class=\"td-fix-index\"><script async src=\"https:\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js?client=ca-pub-7396755811986582\"\n     crossorigin=\"anonymous\"><\/script>\n<!-- ads 300 x 250 -->\n<ins class=\"adsbygoogle\"\n     style=\"display:inline-block;width:300px;height:250px\"\n     data-ad-client=\"ca-pub-7396755811986582\"\n     data-ad-slot=\"2517371721\"><\/ins>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script><\/div><\/div><div class=\"wpb_wrapper td_block_wrap vc_raw_html tdi_17 \"><div class=\"td-fix-index\"><script async src=\"https:\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js?client=ca-pub-7396755811986582\"\n     crossorigin=\"anonymous\"><\/script>\n<!-- Ads KNS 300 x 600 -->\n<ins class=\"adsbygoogle\"\n     style=\"display:inline-block;width:300px;height:600px\"\n     data-ad-client=\"ca-pub-7396755811986582\"\n     data-ad-slot=\"4956265638\"><\/ins>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":7619,"parent":3814,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-7579","page","type-page","status-publish","has-post-thumbnail"],"rankMath":{"parentDomain":"ezcalculatoronline.com","noFollowDomains":[],"noFollowExcludeDomains":[],"noFollowExternalLinks":false,"featuredImageNotice":"The featured image should be at least 200 by 200 pixels to be picked up by Facebook and other social media sites.","pluginReviewed":false,"postSettings":{"linkSuggestions":true,"useFocusKeyword":false},"frontEndScore":false,"postName":"15-puzzle","permalinkFormat":"https:\/\/www.ezcalculatoronline.com\/%pagename%\/","showLockModifiedDate":true,"assessor":{"focusKeywordLink":"https:\/\/www.ezcalculatoronline.com\/wp-admin\/edit.php?focus_keyword=%focus_keyword%&post_type=%post_type%","hasTOCPlugin":false,"primaryTaxonomy":false,"serpData":{"title":"15 Puzzle Game \u2013 Simple, Addictive, and Perfect for Brain Training","description":"Play the 15 Puzzle game! Slide tiles, solve the classic 4\u00d74 board, and challenge your logic skills. Fun, simple, and addictive for all ages.","focusKeywords":"15 Puzzle","pillarContent":false,"canonicalUrl":"","breadcrumbTitle":"","advancedRobots":{"max-snippet":"-1","max-video-preview":"-1","max-image-preview":"large"},"facebookTitle":"","facebookDescription":"","facebookImage":"","facebookImageID":"","facebookHasOverlay":false,"facebookImageOverlay":"","facebookAuthor":"","twitterCardType":"","twitterUseFacebook":true,"twitterTitle":"","twitterDescription":"","twitterImage":"","twitterImageID":"","twitterHasOverlay":false,"twitterImageOverlay":"","twitterPlayerUrl":"","twitterPlayerSize":"","twitterPlayerStream":"","twitterPlayerStreamCtype":"","twitterAppDescription":"","twitterAppIphoneName":"","twitterAppIphoneID":"","twitterAppIphoneUrl":"","twitterAppIpadName":"","twitterAppIpadID":"","twitterAppIpadUrl":"","twitterAppGoogleplayName":"","twitterAppGoogleplayID":"","twitterAppGoogleplayUrl":"","twitterAppCountry":"","robots":{"index":true},"twitterAuthor":"username","primaryTerm":0,"authorName":"Thien Nguyen","titleTemplate":"%title% %sep% %sitename%","descriptionTemplate":"%excerpt%","showScoreFrontend":true,"lockModifiedDate":false},"powerWords":["a cut above","absolute","absolutely","absolutely lowest","absurd","abuse","accurate","accuse","achieve","actionable","adaptable","adequate","admit","adorable","advantage","advice","affordable","aggravate","aggressive","agitated","agonizing","agony","alarmed","alarming","alienated","aligned","alive","all-inclusive","alluring","always","amazing","amp","animated","annihilate","announcing","anonymous","antagonistic","anxious","apocalypse","appalled","approved","approving","argumentative","armageddon","arrogant","ass kicking","assault","assured","astonishing","astounded","astounding","at ease","atrocious","attack","attractive","audacity","authentic","authoritative","authority","avoid","aware","awe-inspiring","awesome","awkward","backbone","backdoor","backed","backlash","backstabbing","badass","balanced","banned","bargain","barrage","basic","battle","beaming","beat down","beating","beautiful","beauty","begging","behind the scenes","belief","belong","best","best-selling","better","beware","big","billion","black market","blacklisted","blast","blessed","blinded","blissful","blood","bloodbath","bloodcurdling","bloody","blunder","blushing","bold","bomb","bona","bona fide","bonanza","bonus","bootleg","bottom line","bountiful","brave","bravery","brazen","break","breaking","breakthrough","breathtaking","bright","brilliant","broke","brutal","budget","buffoon","bullshit","bully","bumbling","buy","cadaver","calm","cancel anytime","capable","captivate","captivating","carefree","case study","cash","cataclysmic","catapult","catastrophe","caution","censored","centered","certain","certainly","certified","challenge","charming","cheap","cheat","cheat-sheet","cheer","cheerful","child-like","clarity","classified","clear","clueless","collapse","colorful","colossal","comfortable","compare","competitive","complete","completely","completeness","comprehensive","compromise","compulsive","concealed","conclusive","condemning","condescending","confess","confession","confessions","confident","confidential","conquer","conscientious","constructive","content","contrary","controlling","controversial","convenient","convert","cool","cooperative","copy","corpse","corrupt","corrupting","courage","courageous","cover-up","covert","coward","cowardly","crammed","crave","crazy","create","creative","cringeworthy","cripple","crisis","critical","crooked","crush","crushing","damaging","danger","dangerous","daring","dazzling","dead","deadline","deadly","death","decadent","deceived","deceptive","deep","defiance","definitely","definitive","defying","dejected","delicious","delight","delighted","delightful","delirious","delivered","demoralizing","deplorable","depraved","desire","desperate","despicable","destiny","destroy","detailed","devastating","devoted","diagnosed","direct","dirty","disadvantages","disastrous","discount","discover","disdainful","disempowered","disgusted","disgusting","dishonest","disillusioned","disoriented","distracted","distraught","distressed","distrustful","divulge","document","dollar","dominate","doomed","double","doubtful","download","dreadful","dreamy","drive","drowning","dumb","dynamic","eager","earnest","easily","easy","economical","ecstatic","edge","effective","efficient","effortless","elated","eliminate","elite","embarrass","embarrassed","embarrassing","emergency","emerging","emphasize","empowered","enchant","encouraged","endorsed","energetic","energy","enormous","enraged","enthusiastic","envy","epic","epidemic","essential","ethical","euphoric","evil","exactly","exasperated","excellent","excited","excitement","exciting","exclusive","exclusivity","excruciating","exhilarated","expensive","expert","explode","exploit","explosive","exposed","exquisite","extra","extraordinary","extremely","exuberant","eye-opening","fail","fail-proof","failure","faith","famous","fantasy","fascinating","fatigued","faux","faux pas","fearless","feast","feeble","festive","fide","fierce","fight","final","fine","fired","first","first ever","flirt","fluid","focus","focused","fool","fooled","foolish","forbidden","force-fed","forever","forgiving","forgotten","formula","fortune","foul","frantic","free","freebie","freedom","frenzied","frenzy","frightening","frisky","frugal","frustrated","fulfill","fulfilled","full","fully","fun","fun-loving","fundamentals","funniest","funny","furious","gambling","gargantuan","genius","genuine","gift","gigantic","giveaway","glamorous","gleeful","glorious","glowing","goddamn","gorgeous","graceful","grateful","gratified","gravity","great","greatest","greatness","greed","greedy","gripping","grit","grounded","growth","guaranteed","guilt","guilt-free","gullible","guts","hack","happiness","happy","harmful","harsh","hate","have you heard","havoc","hazardous","healthy","heart","heartbreaking","heartwarming","heavenly","hell","helpful","helplessness","hero","hesitant","hidden","high tech","highest","highly effective","hilarious","hoak","hoax","honest","honored","hope","hopeful","horribly","horrific","horrifying","horror","hostile","how to","huge","humility","humor","hurricane","hurry","hypnotic","idiot","ignite","illegal","illusive","imagination","immediately","imminently","impatience","impatient","impenetrable","important","impressive","improved","in the zone","incapable","incapacitated","incompetent","inconsiderate","increase","incredible","indecisive","indulgence","indulgent","inexpensive","inferior","informative","infuriated","ingredients","innocent","innovative","insane","insecure","insider","insidious","inspired","inspiring","instant savings","instantly","instructive","insult","intel","intelligent","intense","interesting","intriguing","introducing","invasion","investment","iron-clad","ironclad","irresistible","irs","is here","jackpot","jail","jaw-dropping","jealous","jeopardy","jittery","jovial","joyous","jubilant","judgmental","jumpstart","just arrived","keen","kickass","kickstart","kill","killed","killing","kills","know it all","lame","largest","lascivious","last","last chance","last minute","latest","laugh","laughing","launch","launching","lavishly","lawsuit","lazy","left behind","legendary","legitimate","liberal","liberated","lick","lies","life-changing","lifetime","light","lighthearted","likely","limited","literally","little-known","loathsome","lonely","looming","loser","lost","love","lucrative","lunatic","lurking","lust","luxurious","luxury","lying","magic","magical","magnificent","mainstream","malicious","mammoth","manipulative","marked down","massive","master","masterclass","maul","mediocre","meditative","meltdown","memorability","memorable","menacing","mesmerizing","meticulous","mind-blowing","minimalist","miracle","mired","mischievous","misgiving","missing out","mistake","monetize","money","moneyback","moneygrubbing","monumental","most important","motivated","mouth-watering","murder","mystery","nail","naked","natural","naughty","nazi","nest egg","never","new","nightmare","no good","no obligation","no one talks about","no questions asked","no risk","no strings attached","non-controlling","noted","novelty","now","obnoxious","obsessed","obsession","obvious","odd","off-kilter","off-limits","off-the record","offensive","official","okay","on-demand","open-minded","opportunities","optimistic","ordeal","outlawed","outrageousness","outstanding","overcome","overjoyed","overnight","overwhelmed","packed","painful","painless","painstaking","pale","panic","panicked","paralyzed","pas","passionate","pathetic","pay zero","payback","perfect","peril","perplexed","perspective","pessimistic","pioneering","piranha","pitfall","pitiful","placid","plague","played","playful","pleased","pluck","plummet","plunge","poison","poisonous","polarizing","poor","popular","portfolio","pound","powerful","powerless","practical","preposterous","prestige","price","priceless","pride","prison","privacy","private","privileged","prize","problem","productive","professional","profit","profitable","profound","promiscuous","promising","promote","protect","protected","proven","provocative","provoke","psychological","pummel","punch","punish","pus","quadruple","quality","quarrelsome","quick","quick-start","quickly","quiet","radiant","rare","ravenous","rebellious","recession-proof","reckoning","recognized","recommend","recreate","reduced","reflective","refugee","refund","refundable","reject","relaxed","release","relentless","reliable","remarkable","replicate","report","reprimanding","repulsed","repulsive","research","resentful","resourceful","responsible","responsive","rested","restricted","results","retaliating","reveal","revealing","revenge","revengeful","revisited","revolting","revolutionary","reward","rich","ridiculous","risky","riveting","rookie","rowdy","ruin","rules","ruthless","sabotaging","sacred","sadistic","sadly","sadness","safe","safety","sale","sampler","sarcastic","satisfied","savage","savagery","save","savings","savvy","scam","scandal","scandalous","scarce","scared","scary","scornful","scream","searing","secret","secret agenda","secret plot","secrets","secure","security","seductive","seething","seize","selected","self-hating","self-sufficient","sensational","senseless","sensual","serene","seriously","severe","sex","sexy","shaking","shameful","shameless","shaming","shatter","shellacking","shocking","should","shrewd","sick and tired","signs","silly","simple","simplicity","simplified","simplistic","sincere","sinful","sins","six-figure","sizable","sizzle","sizzled","sizzles","sizzling","sizzlingly","skill","skyrocket","slaughter","slave","sleazy","sleeping","sly","smash","smiling","smug","smuggle","smuggled","sneak-peek","sneaky","sniveling","snob","snooty","snotty","soar","soaring","solid","solution","spank","special","spectacular","speedy","spell-binding","spine","spirit","spirited","spiteful","spoiler","spontaneous","spotlight","spunky","squirming","stable","staggering","startling","steady","steal","stealthy","steamy","step-by-step","still","stoic","stop","strange","strangle","strategy","stressed","strong","strongly suggest","struggle","stuck up","studies","stunning","stupid","stupid-simple","sturdy","sublime","succeed","success","successful","suck","suddenly","suffer","sunny","super","super-human","superb","supercharge","superior","supported","supportive","sure","sure fire","surefire","surge","surging","surprise","surprised","surprising","survival","survive","suspicious","sweaty","swoon","swoon-worthy","tailspin","tank","tantalizing","targeted","tawdry","tease","technology","teetering","tempting","tenacious","tense","terrible","terrific","terrified","terrifying","terror","terrorist","tested","thankful","the truth","threaten","threatened","thrilled","thrilling","thug","ticked off","tickled","timely","today","torture","toxic","track record","trade secret","tragedy","tragic","transform","transparency","trap","trapped","trauma","traumatized","treacherous","treasure","tremendous","trend","tricks","triggers","triple","triumph","truly","trusting","trustworthy","truth","truthful","turbo-charge","turbocharges","tweaks","twitching","ultimate","unadulterated","unassuming","unauthorized","unbelievable","unburdened","uncaring","uncensored","uncertain","uncomfortable","unconditional","uncontrollable","unconventional","uncovered","undeniable","under priced","undercover","underground","underhanded","underused","unexpected","unforgettable","unheard of","unhurried","uninterested","unique","unjustified","unknowingly","unleashed","unlimited","unlock","unparalleled","unpopular","unreliable","unresponsive","unseen","unstable","unstoppable","unsure","unsurpassed","untapped","unusual","up-sell","upbeat","uplifted","uplifting","urge","urgent","useful","useless","validate","valor","valuable","value","vanquish","vaporize","venomous","verify","vibrant","vicious","victim","victory","vigorous","vilified","vindictive","violated","violent","volatile","vulnerable","waiting","wanted","wanton","warning","waste","weak","wealth","weird","what no one tells you","whip","whopping","wicked","wild","willpower","withheld","wonderful","wondrous","woozy","world","worry","worst","worthwhile","wounded","wreaking","youthful","zen","zinger"],"diacritics":{"A":"[\\u0041\\u24B6\\uFF21\\u00C0\\u00C1\\u00C2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\u00C3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\u00C4\\u01DE\\u1EA2\\u00C5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F]","AA":"[\\uA732]","AE":"[\\u00C6\\u01FC\\u01E2]","AO":"[\\uA734]","AU":"[\\uA736]","AV":"[\\uA738\\uA73A]","AY":"[\\uA73C]","B":"[\\u0042\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0182\\u0181]","C":"[\\u0043\\u24B8\\uFF23\\u0106\\u0108\\u010A\\u010C\\u00C7\\u1E08\\u0187\\u023B\\uA73E]","D":"[\\u0044\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018B\\u018A\\u0189\\uA779]","DZ":"[\\u01F1\\u01C4]","Dz":"[\\u01F2\\u01C5]","E":"[\\u0045\\u24BA\\uFF25\\u00C8\\u00C9\\u00CA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\u00CB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E]","F":"[\\u0046\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B]","G":"[\\u0047\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E]","H":"[\\u0048\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D]","I":"[\\u0049\\u24BE\\uFF29\\u00CC\\u00CD\\u00CE\\u0128\\u012A\\u012C\\u0130\\u00CF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197]","J":"[\\u004A\\u24BF\\uFF2A\\u0134\\u0248]","K":"[\\u004B\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2]","L":"[\\u004C\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780]","LJ":"[\\u01C7]","Lj":"[\\u01C8]","M":"[\\u004D\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C]","N":"[\\u004E\\u24C3\\uFF2E\\u01F8\\u0143\\u00D1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u0220\\u019D\\uA790\\uA7A4]","NJ":"[\\u01CA]","Nj":"[\\u01CB]","O":"[\\u004F\\u24C4\\uFF2F\\u00D2\\u00D3\\u00D4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\u00D5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\u00D6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\u00D8\\u01FE\\u0186\\u019F\\uA74A\\uA74C]","OI":"[\\u01A2]","OO":"[\\uA74E]","OU":"[\\u0222]","P":"[\\u0050\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754]","Q":"[\\u0051\\u24C6\\uFF31\\uA756\\uA758\\u024A]","R":"[\\u0052\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782]","S":"[\\u0053\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784]","T":"[\\u0054\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786]","TZ":"[\\uA728]","U":"[\\u0055\\u24CA\\uFF35\\u00D9\\u00DA\\u00DB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\u00DC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244]","V":"[\\u0056\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245]","VY":"[\\uA760]","W":"[\\u0057\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72]","X":"[\\u0058\\u24CD\\uFF38\\u1E8A\\u1E8C]","Y":"[\\u0059\\u24CE\\uFF39\\u1EF2\\u00DD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE]","Z":"[\\u005A\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762]","a":"[\\u0061\\u24D0\\uFF41\\u1E9A\\u00E0\\u00E1\\u00E2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\u00E3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\u00E4\\u01DF\\u1EA3\\u00E5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250]","aa":"[\\uA733]","ae":"[\\u00E6\\u01FD\\u01E3]","ao":"[\\uA735]","au":"[\\uA737]","av":"[\\uA739\\uA73B]","ay":"[\\uA73D]","b":"[\\u0062\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253]","c":"[\\u0063\\u24D2\\uFF43\\u0107\\u0109\\u010B\\u010D\\u00E7\\u1E09\\u0188\\u023C\\uA73F\\u2184]","d":"[\\u0064\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\uA77A]","dz":"[\\u01F3\\u01C6]","e":"[\\u0065\\u24D4\\uFF45\\u00E8\\u00E9\\u00EA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\u00EB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u025B\\u01DD]","f":"[\\u0066\\u24D5\\uFF46\\u1E1F\\u0192\\uA77C]","g":"[\\u0067\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\u1D79\\uA77F]","h":"[\\u0068\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265]","hv":"[\\u0195]","i":"[\\u0069\\u24D8\\uFF49\\u00EC\\u00ED\\u00EE\\u0129\\u012B\\u012D\\u00EF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131]","j":"[\\u006A\\u24D9\\uFF4A\\u0135\\u01F0\\u0249]","k":"[\\u006B\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3]","l":"[\\u006C\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u017F\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747]","lj":"[\\u01C9]","m":"[\\u006D\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F]","n":"[\\u006E\\u24DD\\uFF4E\\u01F9\\u0144\\u00F1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5]","nj":"[\\u01CC]","o":"[\\u006F\\u24DE\\uFF4F\\u00F2\\u00F3\\u00F4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\u00F5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\u00F6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\u00F8\\u01FF\\u0254\\uA74B\\uA74D\\u0275]","oi":"[\\u01A3]","ou":"[\\u0223]","oo":"[\\uA74F]","p":"[\\u0070\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755]","q":"[\\u0071\\u24E0\\uFF51\\u024B\\uA757\\uA759]","r":"[\\u0072\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783]","s":"[\\u0073\\u24E2\\uFF53\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B]","ss":"[\\u00DF]","t":"[\\u0074\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787]","tz":"[\\uA729]","u":"[\\u0075\\u24E4\\uFF55\\u00F9\\u00FA\\u00FB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\u00FC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289]","v":"[\\u0076\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C]","vy":"[\\uA761]","w":"[\\u0077\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73]","x":"[\\u0078\\u24E7\\uFF58\\u1E8B\\u1E8D]","y":"[\\u0079\\u24E8\\uFF59\\u1EF3\\u00FD\\u0177\\u1EF9\\u0233\\u1E8F\\u00FF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF]","z":"[\\u007A\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763]"},"researchesTests":["contentHasTOC","contentHasShortParagraphs","contentHasAssets","keywordInTitle","keywordInMetaDescription","keywordInPermalink","keywordIn10Percent","keywordInContent","keywordInSubheadings","keywordInImageAlt","keywordDensity","keywordNotUsed","lengthContent","lengthPermalink","linksHasInternal","linksHasExternals","linksNotAllExternals","titleStartWithKeyword","titleSentiment","titleHasPowerWords","titleHasNumber","hasContentAI"],"hasRedirection":true,"hasBreadcrumb":true},"homeUrl":"https:\/\/www.ezcalculatoronline.com","objectID":7579,"objectType":"post","locale":"en","localeFull":"en_US","overlayImages":{"play":{"name":"Play icon","url":"https:\/\/www.ezcalculatoronline.com\/wp-content\/plugins\/seo-by-rank-math\/assets\/admin\/img\/icon-play.png","path":"\/home\/dh_7btfqe\/ezcalculatoronline.com\/wp-content\/plugins\/seo-by-rank-math\/assets\/admin\/img\/icon-play.png","position":"middle_center"},"gif":{"name":"GIF icon","url":"https:\/\/www.ezcalculatoronline.com\/wp-content\/plugins\/seo-by-rank-math\/assets\/admin\/img\/icon-gif.png","path":"\/home\/dh_7btfqe\/ezcalculatoronline.com\/wp-content\/plugins\/seo-by-rank-math\/assets\/admin\/img\/icon-gif.png","position":"middle_center"}},"defautOgImage":"https:\/\/www.ezcalculatoronline.com\/wp-content\/uploads\/2025\/11\/EZCALCULATORONLINE-LOGO-2.png","customPermalinks":true,"isUserRegistered":false,"autoSuggestKeywords":false,"connectSiteUrl":"https:\/\/rankmath.com\/auth?site=https%3A%2F%2Fwww.ezcalculatoronline.com&r=https%3A%2F%2Fwww.ezcalculatoronline.com%2Fgu%2Fwp-json%2Fwp%2Fv2%2Fpages%2F7579%3Fnonce%3Dccfd2398c2","maxTags":5,"trendsIcon":"<svg viewBox=\"0 0 610 610\"><path d=\"M18.85,446,174.32,290.48l58.08,58.08L76.93,504a14.54,14.54,0,0,1-20.55,0L18.83,466.48a14.54,14.54,0,0,1,0-20.55Z\" style=\"fill:#4285f4\"\/><path d=\"M242.65,242.66,377.59,377.6l-47.75,47.75a14.54,14.54,0,0,1-20.55,0L174.37,290.43l47.75-47.75A14.52,14.52,0,0,1,242.65,242.66Z\" style=\"fill:#ea4335\"\/><polygon points=\"319.53 319.53 479.26 159.8 537.34 217.88 377.61 377.62 319.53 319.53\" style=\"fill:#fabb05\"\/><path d=\"M594.26,262.73V118.61h0a16.94,16.94,0,0,0-16.94-16.94H433.2a16.94,16.94,0,0,0-12,28.92L565.34,274.71h0a16.94,16.94,0,0,0,28.92-12Z\" style=\"fill:#34a853\"\/><rect width=\"610\" height=\"610\" style=\"fill:none\"\/><\/svg>","showScore":true,"siteFavIcon":"https:\/\/www.ezcalculatoronline.com\/wp-content\/uploads\/2025\/05\/cropped-ezcaculator-32x32.webp","canUser":{"general":false,"advanced":false,"snippet":false,"social":false,"analysis":false,"analytics":false,"content_ai":false},"showKeywordIntent":true,"isPro":false,"is_front_page":false,"trendsUpgradeLink":"https:\/\/rankmath.com\/pricing\/?utm_source=Plugin&utm_medium=CE%20General%20Tab%20Trends&utm_campaign=WP","trendsUpgradeLabel":"Upgrade","trendsPreviewImage":"https:\/\/www.ezcalculatoronline.com\/wp-content\/plugins\/seo-by-rank-math\/assets\/admin\/img\/trends-preview.jpg","currentEditor":false,"homepageData":{"assessor":{"powerWords":["a cut above","absolute","absolutely","absolutely lowest","absurd","abuse","accurate","accuse","achieve","actionable","adaptable","adequate","admit","adorable","advantage","advice","affordable","aggravate","aggressive","agitated","agonizing","agony","alarmed","alarming","alienated","aligned","alive","all-inclusive","alluring","always","amazing","amp","animated","annihilate","announcing","anonymous","antagonistic","anxious","apocalypse","appalled","approved","approving","argumentative","armageddon","arrogant","ass kicking","assault","assured","astonishing","astounded","astounding","at ease","atrocious","attack","attractive","audacity","authentic","authoritative","authority","avoid","aware","awe-inspiring","awesome","awkward","backbone","backdoor","backed","backlash","backstabbing","badass","balanced","banned","bargain","barrage","basic","battle","beaming","beat down","beating","beautiful","beauty","begging","behind the scenes","belief","belong","best","best-selling","better","beware","big","billion","black market","blacklisted","blast","blessed","blinded","blissful","blood","bloodbath","bloodcurdling","bloody","blunder","blushing","bold","bomb","bona","bona fide","bonanza","bonus","bootleg","bottom line","bountiful","brave","bravery","brazen","break","breaking","breakthrough","breathtaking","bright","brilliant","broke","brutal","budget","buffoon","bullshit","bully","bumbling","buy","cadaver","calm","cancel anytime","capable","captivate","captivating","carefree","case study","cash","cataclysmic","catapult","catastrophe","caution","censored","centered","certain","certainly","certified","challenge","charming","cheap","cheat","cheat-sheet","cheer","cheerful","child-like","clarity","classified","clear","clueless","collapse","colorful","colossal","comfortable","compare","competitive","complete","completely","completeness","comprehensive","compromise","compulsive","concealed","conclusive","condemning","condescending","confess","confession","confessions","confident","confidential","conquer","conscientious","constructive","content","contrary","controlling","controversial","convenient","convert","cool","cooperative","copy","corpse","corrupt","corrupting","courage","courageous","cover-up","covert","coward","cowardly","crammed","crave","crazy","create","creative","cringeworthy","cripple","crisis","critical","crooked","crush","crushing","damaging","danger","dangerous","daring","dazzling","dead","deadline","deadly","death","decadent","deceived","deceptive","deep","defiance","definitely","definitive","defying","dejected","delicious","delight","delighted","delightful","delirious","delivered","demoralizing","deplorable","depraved","desire","desperate","despicable","destiny","destroy","detailed","devastating","devoted","diagnosed","direct","dirty","disadvantages","disastrous","discount","discover","disdainful","disempowered","disgusted","disgusting","dishonest","disillusioned","disoriented","distracted","distraught","distressed","distrustful","divulge","document","dollar","dominate","doomed","double","doubtful","download","dreadful","dreamy","drive","drowning","dumb","dynamic","eager","earnest","easily","easy","economical","ecstatic","edge","effective","efficient","effortless","elated","eliminate","elite","embarrass","embarrassed","embarrassing","emergency","emerging","emphasize","empowered","enchant","encouraged","endorsed","energetic","energy","enormous","enraged","enthusiastic","envy","epic","epidemic","essential","ethical","euphoric","evil","exactly","exasperated","excellent","excited","excitement","exciting","exclusive","exclusivity","excruciating","exhilarated","expensive","expert","explode","exploit","explosive","exposed","exquisite","extra","extraordinary","extremely","exuberant","eye-opening","fail","fail-proof","failure","faith","famous","fantasy","fascinating","fatigued","faux","faux pas","fearless","feast","feeble","festive","fide","fierce","fight","final","fine","fired","first","first ever","flirt","fluid","focus","focused","fool","fooled","foolish","forbidden","force-fed","forever","forgiving","forgotten","formula","fortune","foul","frantic","free","freebie","freedom","frenzied","frenzy","frightening","frisky","frugal","frustrated","fulfill","fulfilled","full","fully","fun","fun-loving","fundamentals","funniest","funny","furious","gambling","gargantuan","genius","genuine","gift","gigantic","giveaway","glamorous","gleeful","glorious","glowing","goddamn","gorgeous","graceful","grateful","gratified","gravity","great","greatest","greatness","greed","greedy","gripping","grit","grounded","growth","guaranteed","guilt","guilt-free","gullible","guts","hack","happiness","happy","harmful","harsh","hate","have you heard","havoc","hazardous","healthy","heart","heartbreaking","heartwarming","heavenly","hell","helpful","helplessness","hero","hesitant","hidden","high tech","highest","highly effective","hilarious","hoak","hoax","honest","honored","hope","hopeful","horribly","horrific","horrifying","horror","hostile","how to","huge","humility","humor","hurricane","hurry","hypnotic","idiot","ignite","illegal","illusive","imagination","immediately","imminently","impatience","impatient","impenetrable","important","impressive","improved","in the zone","incapable","incapacitated","incompetent","inconsiderate","increase","incredible","indecisive","indulgence","indulgent","inexpensive","inferior","informative","infuriated","ingredients","innocent","innovative","insane","insecure","insider","insidious","inspired","inspiring","instant savings","instantly","instructive","insult","intel","intelligent","intense","interesting","intriguing","introducing","invasion","investment","iron-clad","ironclad","irresistible","irs","is here","jackpot","jail","jaw-dropping","jealous","jeopardy","jittery","jovial","joyous","jubilant","judgmental","jumpstart","just arrived","keen","kickass","kickstart","kill","killed","killing","kills","know it all","lame","largest","lascivious","last","last chance","last minute","latest","laugh","laughing","launch","launching","lavishly","lawsuit","lazy","left behind","legendary","legitimate","liberal","liberated","lick","lies","life-changing","lifetime","light","lighthearted","likely","limited","literally","little-known","loathsome","lonely","looming","loser","lost","love","lucrative","lunatic","lurking","lust","luxurious","luxury","lying","magic","magical","magnificent","mainstream","malicious","mammoth","manipulative","marked down","massive","master","masterclass","maul","mediocre","meditative","meltdown","memorability","memorable","menacing","mesmerizing","meticulous","mind-blowing","minimalist","miracle","mired","mischievous","misgiving","missing out","mistake","monetize","money","moneyback","moneygrubbing","monumental","most important","motivated","mouth-watering","murder","mystery","nail","naked","natural","naughty","nazi","nest egg","never","new","nightmare","no good","no obligation","no one talks about","no questions asked","no risk","no strings attached","non-controlling","noted","novelty","now","obnoxious","obsessed","obsession","obvious","odd","off-kilter","off-limits","off-the record","offensive","official","okay","on-demand","open-minded","opportunities","optimistic","ordeal","outlawed","outrageousness","outstanding","overcome","overjoyed","overnight","overwhelmed","packed","painful","painless","painstaking","pale","panic","panicked","paralyzed","pas","passionate","pathetic","pay zero","payback","perfect","peril","perplexed","perspective","pessimistic","pioneering","piranha","pitfall","pitiful","placid","plague","played","playful","pleased","pluck","plummet","plunge","poison","poisonous","polarizing","poor","popular","portfolio","pound","powerful","powerless","practical","preposterous","prestige","price","priceless","pride","prison","privacy","private","privileged","prize","problem","productive","professional","profit","profitable","profound","promiscuous","promising","promote","protect","protected","proven","provocative","provoke","psychological","pummel","punch","punish","pus","quadruple","quality","quarrelsome","quick","quick-start","quickly","quiet","radiant","rare","ravenous","rebellious","recession-proof","reckoning","recognized","recommend","recreate","reduced","reflective","refugee","refund","refundable","reject","relaxed","release","relentless","reliable","remarkable","replicate","report","reprimanding","repulsed","repulsive","research","resentful","resourceful","responsible","responsive","rested","restricted","results","retaliating","reveal","revealing","revenge","revengeful","revisited","revolting","revolutionary","reward","rich","ridiculous","risky","riveting","rookie","rowdy","ruin","rules","ruthless","sabotaging","sacred","sadistic","sadly","sadness","safe","safety","sale","sampler","sarcastic","satisfied","savage","savagery","save","savings","savvy","scam","scandal","scandalous","scarce","scared","scary","scornful","scream","searing","secret","secret agenda","secret plot","secrets","secure","security","seductive","seething","seize","selected","self-hating","self-sufficient","sensational","senseless","sensual","serene","seriously","severe","sex","sexy","shaking","shameful","shameless","shaming","shatter","shellacking","shocking","should","shrewd","sick and tired","signs","silly","simple","simplicity","simplified","simplistic","sincere","sinful","sins","six-figure","sizable","sizzle","sizzled","sizzles","sizzling","sizzlingly","skill","skyrocket","slaughter","slave","sleazy","sleeping","sly","smash","smiling","smug","smuggle","smuggled","sneak-peek","sneaky","sniveling","snob","snooty","snotty","soar","soaring","solid","solution","spank","special","spectacular","speedy","spell-binding","spine","spirit","spirited","spiteful","spoiler","spontaneous","spotlight","spunky","squirming","stable","staggering","startling","steady","steal","stealthy","steamy","step-by-step","still","stoic","stop","strange","strangle","strategy","stressed","strong","strongly suggest","struggle","stuck up","studies","stunning","stupid","stupid-simple","sturdy","sublime","succeed","success","successful","suck","suddenly","suffer","sunny","super","super-human","superb","supercharge","superior","supported","supportive","sure","sure fire","surefire","surge","surging","surprise","surprised","surprising","survival","survive","suspicious","sweaty","swoon","swoon-worthy","tailspin","tank","tantalizing","targeted","tawdry","tease","technology","teetering","tempting","tenacious","tense","terrible","terrific","terrified","terrifying","terror","terrorist","tested","thankful","the truth","threaten","threatened","thrilled","thrilling","thug","ticked off","tickled","timely","today","torture","toxic","track record","trade secret","tragedy","tragic","transform","transparency","trap","trapped","trauma","traumatized","treacherous","treasure","tremendous","trend","tricks","triggers","triple","triumph","truly","trusting","trustworthy","truth","truthful","turbo-charge","turbocharges","tweaks","twitching","ultimate","unadulterated","unassuming","unauthorized","unbelievable","unburdened","uncaring","uncensored","uncertain","uncomfortable","unconditional","uncontrollable","unconventional","uncovered","undeniable","under priced","undercover","underground","underhanded","underused","unexpected","unforgettable","unheard of","unhurried","uninterested","unique","unjustified","unknowingly","unleashed","unlimited","unlock","unparalleled","unpopular","unreliable","unresponsive","unseen","unstable","unstoppable","unsure","unsurpassed","untapped","unusual","up-sell","upbeat","uplifted","uplifting","urge","urgent","useful","useless","validate","valor","valuable","value","vanquish","vaporize","venomous","verify","vibrant","vicious","victim","victory","vigorous","vilified","vindictive","violated","violent","volatile","vulnerable","waiting","wanted","wanton","warning","waste","weak","wealth","weird","what no one tells you","whip","whopping","wicked","wild","willpower","withheld","wonderful","wondrous","woozy","world","worry","worst","worthwhile","wounded","wreaking","youthful","zen","zinger"],"diacritics":true,"researchesTests":["contentHasTOC","contentHasShortParagraphs","contentHasAssets","keywordInTitle","keywordInMetaDescription","keywordInPermalink","keywordIn10Percent","keywordInContent","keywordInSubheadings","keywordInImageAlt","keywordDensity","keywordNotUsed","lengthContent","lengthPermalink","linksHasInternal","linksHasExternals","linksNotAllExternals","titleStartWithKeyword","titleSentiment","titleHasPowerWords","titleHasNumber","hasContentAI"],"hasBreadcrumb":true,"serpData":{"title":"%sitename% %sep% %sitedesc%","description":"%sitedesc%","titleTemplate":"%sitename% %page% %sep% %sitedesc%","descriptionTemplate":"","focusKeywords":"","breadcrumbTitle":"Home","robots":{"index":true},"advancedRobots":{"max-snippet":"-1","max-video-preview":"-1","max-image-preview":"large"},"facebookTitle":"","facebookDescription":"","facebookImage":"","facebookImageID":""}}},"tocTitle":"Table of Contents","tocExcludeHeadings":[],"listStyle":"ul"},"_links":{"self":[{"href":"https:\/\/www.ezcalculatoronline.com\/wp-json\/wp\/v2\/pages\/7579","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ezcalculatoronline.com\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.ezcalculatoronline.com\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.ezcalculatoronline.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ezcalculatoronline.com\/wp-json\/wp\/v2\/comments?post=7579"}],"version-history":[{"count":10,"href":"https:\/\/www.ezcalculatoronline.com\/wp-json\/wp\/v2\/pages\/7579\/revisions"}],"predecessor-version":[{"id":10827,"href":"https:\/\/www.ezcalculatoronline.com\/wp-json\/wp\/v2\/pages\/7579\/revisions\/10827"}],"up":[{"embeddable":true,"href":"https:\/\/www.ezcalculatoronline.com\/wp-json\/wp\/v2\/pages\/3814"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ezcalculatoronline.com\/wp-json\/wp\/v2\/media\/7619"}],"wp:attachment":[{"href":"https:\/\/www.ezcalculatoronline.com\/wp-json\/wp\/v2\/media?parent=7579"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}