{"id":6507,"date":"2025-10-22T22:09:16","date_gmt":"2025-10-23T03:09:16","guid":{"rendered":"https:\/\/www.ezcalculatoronline.com\/?page_id=6507"},"modified":"2026-10-30T09:30:39","modified_gmt":"2026-10-30T14:30:39","slug":"prank-screen-simulator","status":"publish","type":"page","link":"https:\/\/www.ezcalculatoronline.com\/online-tools\/prank-screen-simulator\/","title":{"rendered":"Prank Screen Simulator"},"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-span12\">\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\"><!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n<meta charset=\"UTF-8\">\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n<title>Prank Screen Simulator<\/title>\r\n<style>\r\n\/* ================= LAUNCHER (scoped to #psim so it embeds safely in WordPress) ================= *\/\r\n#psim{\r\n  --bg:#ffffff;--panel:#ffffff;--card:#ffffff;--card2:#ffffff;--line:#e6e9f2;\r\n  --text:#1a1f36;--muted:#5d6687;--acc:#6d8bff;--acc2:#b36bff;--ok:#2fd39a;--warn:#ffb547;\r\n  font-family:system-ui,-apple-system,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif;\r\n  color:var(--text);line-height:1.5;min-height:100vh;padding:40px 16px 0;\r\n  background:\r\n    radial-gradient(1000px 520px at 8% -8%,rgba(109,139,255,.10),transparent 60%),\r\n    radial-gradient(800px 480px at 100% 0%,rgba(179,107,255,.08),transparent 60%),\r\n    var(--bg);\r\n}\r\n#psim *{box-sizing:border-box;margin:0;padding:0}\r\n#psim .ps-wrap{max-width:1180px;margin:0 auto}\r\n#psim .ps-hero{text-align:center;margin-bottom:28px}\r\n#psim .ps-badge{display:inline-block;font-size:.82rem;font-weight:600;padding:6px 14px;border-radius:999px;background:rgba(109,139,255,.10);border:1px solid rgba(109,139,255,.30);color:#3e52d6;margin-bottom:14px}\r\n#psim h1{font-size:clamp(2rem,5vw,3.2rem);font-weight:800;letter-spacing:-.02em;line-height:1.1}\r\n#psim h1 span{background:linear-gradient(90deg,var(--acc),var(--acc2));-webkit-background-clip:text;background-clip:text;color:transparent}\r\n#psim .ps-hero p{color:var(--muted);font-size:1.05rem;max-width:620px;margin:12px auto 0}\r\n\r\n#psim .ps-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-bottom:20px}\r\n#psim .ps-chips{display:flex;flex-wrap:wrap;gap:8px}\r\n#psim .ps-chip{cursor:pointer;border:1px solid var(--line);background:#f4f6fb;color:var(--muted);padding:8px 14px;border-radius:999px;font:600 .88rem inherit;font-family:inherit;transition:.2s}\r\n#psim .ps-chip:hover{color:var(--text);border-color:#c9cfe2}\r\n#psim .ps-chip.on{background:linear-gradient(90deg,var(--acc),var(--acc2));color:#fff;border-color:transparent}\r\n#psim .ps-chip i{font-style:normal;opacity:.7;margin-left:4px;font-size:.78rem}\r\n#psim .ps-search{flex:0 1 260px;min-width:180px;background:#f4f6fb;border:1px solid var(--line);color:var(--text);padding:10px 14px;border-radius:12px;font:inherit;outline:none}\r\n#psim .ps-search:focus{border-color:var(--acc)}\r\n\r\n#psim .ps-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}\r\n#psim .ps-card{position:relative;cursor:pointer;background:linear-gradient(180deg,var(--card2),var(--card));border:1px solid var(--line);border-radius:18px;padding:12px;transition:transform .2s,border-color .2s,box-shadow .2s;display:flex;flex-direction:column;user-select:none;box-shadow:0 2px 8px rgba(26,31,54,.05)}\r\n#psim .ps-card:hover{transform:translateY(-4px);border-color:#d3d8e8;box-shadow:0 16px 36px rgba(26,31,54,.12)}\r\n#psim .ps-card.sel{border-color:var(--acc);box-shadow:0 0 0 3px rgba(109,139,255,.30),0 16px 36px rgba(26,31,54,.12)}\r\n#psim .ps-card.sel::after{content:\"\u2713\";position:absolute;top:18px;right:18px;width:26px;height:26px;border-radius:50%;background:var(--acc);color:#fff;display:grid;place-items:center;font-weight:800;font-size:.85rem;box-shadow:0 4px 12px rgba(109,139,255,.4)}\r\n#psim .th{height:130px;border-radius:12px;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;font-weight:700;font-size:1.05rem;padding:10px;line-height:1.3}\r\n#psim .th small{font-weight:400;font-size:.72rem;opacity:.85}\r\n#psim .ps-card h3{font-size:1.05rem;margin:12px 4px 4px;display:flex;align-items:center;gap:8px}\r\n#psim .ps-card p{font-size:.86rem;color:var(--muted);margin:0 4px 10px;flex:1}\r\n#psim .ps-meta{display:flex;justify-content:space-between;align-items:center;margin:0 4px}\r\n#psim .ps-tag{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#3e52d6;background:rgba(109,139,255,.10);padding:3px 9px;border-radius:6px}\r\n#psim .ps-new{font-size:.66rem;font-weight:800;color:#06281c;background:var(--ok);padding:2px 7px;border-radius:5px}\r\n#psim .ps-play{border:0;cursor:pointer;background:#eef1f8;color:var(--text);width:34px;height:34px;border-radius:10px;font-size:.9rem;transition:.2s}\r\n#psim .ps-play:hover{background:var(--acc);color:#fff}\r\n#psim .ps-empty{grid-column:1\/-1;text-align:center;color:var(--muted);padding:40px}\r\n\r\n#psim .ps-how{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:36px 0 16px}\r\n#psim .ps-step{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:16px 18px;box-shadow:0 2px 8px rgba(26,31,54,.05)}\r\n#psim .ps-step b{display:block;margin-bottom:4px}\r\n#psim .ps-step span{color:var(--muted);font-size:.9rem}\r\n#psim kbd{background:#f4f6fb;border:1px solid #d3d8e8;border-bottom-width:2px;border-radius:5px;padding:1px 6px;font-size:.82rem;font-family:inherit}\r\n#psim .ps-note{text-align:center;color:#b26a00;font-size:.88rem;margin:8px auto 0;max-width:760px}\r\n\r\n#psim .ps-bar{position:sticky;bottom:12px;z-index:50;margin:28px auto 0;max-width:1180px;background:rgba(255,255,255,.9);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:18px;padding:12px 14px;display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;box-shadow:0 16px 40px rgba(26,31,54,.15)}\r\n#psim .ps-sel{display:flex;flex-direction:column;min-width:160px}\r\n#psim .ps-sel span{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}\r\n#psim .ps-sel b{font-size:1rem}\r\n#psim .ps-opts{display:flex;flex-wrap:wrap;gap:10px;align-items:center}\r\n#psim .ps-opts label{display:flex;align-items:center;gap:6px;font-size:.86rem;color:var(--muted);cursor:pointer}\r\n#psim .ps-opts select{background:#f4f6fb;color:var(--text);border:1px solid var(--line);border-radius:9px;padding:6px 8px;font:inherit;font-size:.86rem}\r\n#psim .ps-opts select option{background:#fff}\r\n#psim .tg input{display:none}\r\n#psim .tg span{width:34px;height:20px;border-radius:999px;background:#d3d8e8;position:relative;transition:.2s}\r\n#psim .tg span::after{content:\"\";position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#fff;transition:.2s}\r\n#psim .tg input:checked+span{background:var(--ok)}\r\n#psim .tg input:checked+span::after{left:17px}\r\n#psim .ps-actions{display:flex;gap:8px}\r\n#psim .ps-btn{border:0;cursor:pointer;font:700 .95rem inherit;font-family:inherit;padding:12px 18px;border-radius:12px;transition:.2s;color:#fff}\r\n#psim .ps-btn.ghost{background:#eef1f8;color:var(--text)}\r\n#psim .ps-btn.ghost:hover{background:#e1e6f2}\r\n#psim .ps-btn.primary{background:linear-gradient(90deg,var(--acc),var(--acc2));box-shadow:0 8px 24px rgba(109,139,255,.4)}\r\n#psim .ps-btn.primary:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.1)}\r\n#psim .ps-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}\r\n#psim .ps-foot{height:24px}\r\n@media (max-width:640px){\r\n  #psim{padding-top:24px}\r\n  #psim .ps-search{flex:1 1 100%}\r\n  #psim .ps-bar{bottom:8px;padding:10px}\r\n  #psim .ps-actions{width:100%}\r\n  #psim .ps-actions .ps-btn{flex:1}\r\n}\r\n\r\n\/* ================= STAGE (full-screen prank layer) ================= *\/\r\n#psim-stage{position:fixed!important;top:0!important;left:0!important;right:0!important;bottom:0!important;width:100vw!important;height:100vh!important;height:100dvh!important;max-width:none!important;max-height:none!important;margin:0!important;padding:0!important;border:0!important;transform:none!important;z-index:2147483000;display:none;overflow:hidden;background:#000;font-family:\"Segoe UI\",system-ui,sans-serif;-webkit-user-select:none;user-select:none}\r\n#psim-stage.on{display:block}\r\n#psim-stage.ps-nocursor,#psim-stage.ps-nocursor *{cursor:none!important}\r\n#psim-stage *{box-sizing:border-box;margin:0;padding:0}\r\n#psim-stage pre,#psim-stage p,#psim-stage h2,#psim-stage b,#psim-stage canvas,#psim-stage button{background:none;border:0;border-radius:0;box-shadow:none;color:inherit;font:inherit;max-width:none;overflow:visible;line-height:inherit;letter-spacing:inherit;text-transform:none;text-align:inherit}\r\n#psim-stage h2,#psim-stage b{font-weight:700}\r\n#psim-stage .ps-scr{position:absolute;top:0;left:0;width:100%;height:100%;max-width:none;overflow:hidden}\r\n#psim-stage:fullscreen{width:100%!important;height:100%!important}\r\n#psim-stage .ps-black{position:absolute;inset:0;background:#000}\r\n\r\n\/* BSOD 10\/11 *\/\r\n#psim-stage .ps-bsod{background:#0078d7;color:#fff;display:flex;align-items:center;justify-content:center;padding:6vh 8vw;text-align:left}\r\n#psim-stage .ps-bsod-in{width:100%;max-width:960px}\r\n#psim-stage .ps-bsod-face{font-size:clamp(5rem,12vw,10rem);line-height:1;margin-bottom:4vh;font-weight:300}\r\n#psim-stage .ps-bsod p{font-size:clamp(1.1rem,2.2vw,1.75rem);font-weight:300;margin-bottom:3vh;line-height:1.35}\r\n#psim-stage .ps-bsod-row{display:flex;gap:24px;align-items:flex-start;margin-top:2vh}\r\n#psim-stage .ps-qr{flex:0 0 auto;width:clamp(80px,9vw,120px);height:auto;image-rendering:pixelated;background:#fff;padding:4px}\r\n#psim-stage .ps-bsod-row p{font-size:clamp(.85rem,1.2vw,1rem);margin-bottom:1.4vh}\r\n\r\n\/* XP BSOD *\/\r\n#psim-stage .ps-xp{background:#0000aa;color:#fff;padding:4vh 4vw;font-family:\"Lucida Console\",\"Courier New\",monospace}\r\n#psim-stage .ps-xp pre{background:none;color:#fff;white-space:pre-wrap;text-align:left;font:inherit;font-size:clamp(.8rem,1.55vw,1.2rem);line-height:1.45}\r\n\r\n\/* Windows Update *\/\r\n#psim-stage .ps-upd{background:#0a3a78;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:14px}\r\n#psim-stage .ps-upd-big{font-size:clamp(1.3rem,2.6vw,2rem);font-weight:300;margin-top:24px}\r\n#psim-stage .ps-upd p{font-size:clamp(1rem,1.8vw,1.35rem);font-weight:300}\r\n#psim-stage .ps-upd-small{opacity:.75;font-size:1rem!important}\r\n#psim-stage .ps-spin{position:relative;width:60px;height:60px}\r\n#psim-stage .ps-spin i{position:absolute;inset:0;animation:psSpin 5.2s infinite}\r\n#psim-stage .ps-spin i::before{content:\"\";position:absolute;top:0;left:50%;width:7px;height:7px;margin-left:-3.5px;border-radius:50%;background:#fff}\r\n#psim-stage .ps-spin i:nth-child(2){animation-delay:.24s}#psim-stage .ps-spin i:nth-child(3){animation-delay:.48s}#psim-stage .ps-spin i:nth-child(4){animation-delay:.72s}#psim-stage .ps-spin i:nth-child(5){animation-delay:.96s}\r\n@keyframes psSpin{\r\n  0%{transform:rotate(225deg);opacity:1;animation-timing-function:ease-out}\r\n  7%{transform:rotate(345deg);animation-timing-function:linear}\r\n  30%{transform:rotate(455deg);animation-timing-function:ease-in-out}\r\n  39%{transform:rotate(690deg);animation-timing-function:linear}\r\n  70%{transform:rotate(815deg);opacity:1;animation-timing-function:ease-out}\r\n  75%{transform:rotate(945deg);animation-timing-function:ease-out}\r\n  76%,100%{transform:rotate(945deg);opacity:0}\r\n}\r\n\r\n\/* Terminal-style screens (virus \/ delete \/ format) *\/\r\n#psim-stage .ps-term{background:#0c0c0c;color:#33ff66;font-family:Consolas,\"Courier New\",monospace;padding:4vh 4vw;display:flex;flex-direction:column}\r\n#psim-stage .ps-term .lines{flex:1;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;font-size:clamp(.85rem,1.4vw,1.15rem);line-height:1.6}\r\n#psim-stage .ps-term .bad{color:#ff4d4d;font-weight:700}\r\n#psim-stage .ps-term .dim{color:#7a7a7a}\r\n#psim-stage .ps-term .hdr{color:#fff;font-weight:700;font-size:clamp(1rem,1.8vw,1.4rem);margin-bottom:2vh;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}\r\n#psim-stage .ps-bar2{height:18px;background:#222;border-radius:9px;overflow:hidden;margin-top:2vh}\r\n#psim-stage .ps-bar2 div{height:100%;width:0;background:linear-gradient(90deg,#1fdc5a,#8cff6a);transition:width .3s}\r\n#psim-stage .ps-term.red .ps-bar2 div{background:linear-gradient(90deg,#ff3b3b,#ff9a3b)}\r\n#psim-stage .ps-alert{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#1a0000;border:3px solid #ff3b3b;color:#fff;padding:30px 40px;text-align:center;border-radius:10px;box-shadow:0 0 60px rgba(255,0,0,.5);animation:psBlink 1s infinite;width:min(92vw,560px)}\r\n#psim-stage .ps-alert h2{color:#ff4d4d;font-size:clamp(1.5rem,3vw,2.4rem);margin-bottom:10px}\r\n@keyframes psBlink{50%{box-shadow:0 0 10px rgba(255,0,0,.2);border-color:#7a0000}}\r\n#psim-stage .ps-dos{background:#000;color:#c0c0c0;font-family:\"Lucida Console\",\"Courier New\",monospace;padding:3vh 3vw;font-size:clamp(.9rem,1.6vw,1.25rem);line-height:1.5;white-space:pre-wrap}\r\n#psim-stage .ps-cur{display:inline-block;width:.6em;height:1.1em;background:currentColor;vertical-align:text-bottom;animation:psCur 1s steps(1) infinite}\r\n@keyframes psCur{50%{opacity:0}}\r\n\r\n\/* Critical error *\/\r\n#psim-stage .ps-crit{background:#c40000;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:5vw;animation:psCrit 1s infinite}\r\n@keyframes psCrit{50%{background:#7d0000}}\r\n#psim-stage .ps-crit .ico{font-size:clamp(4rem,10vw,8rem);line-height:1}\r\n#psim-stage .ps-crit h2{font-size:clamp(2rem,5vw,4rem);margin:2vh 0;letter-spacing:.02em}\r\n#psim-stage .ps-crit p{font-size:clamp(1rem,2vw,1.6rem);margin-bottom:1.2vh;max-width:900px}\r\n#psim-stage .ps-crit .temp{font-family:Consolas,monospace;font-size:clamp(1.6rem,3.5vw,3rem);font-weight:700;background:rgba(0,0,0,.3);padding:10px 26px;border-radius:8px;margin:2vh 0}\r\n#psim-stage .ps-crit .code{font-family:Consolas,monospace;opacity:.85}\r\n\r\n\/* Fake desktop wallpaper *\/\r\n#psim-stage .ps-desk{background:\r\n  radial-gradient(60% 80% at 70% 60%,#4a7dff 0%,transparent 60%),\r\n  radial-gradient(50% 60% at 30% 40%,#7b4dff 0%,transparent 60%),\r\n  linear-gradient(135deg,#0b1a4a,#123a8a 60%,#0b1a4a);color:#fff}\r\n#psim-stage .ps-icons{position:absolute;top:16px;left:12px;display:grid;grid-auto-flow:column;grid-template-rows:repeat(auto-fill,96px);height:calc(100% - 70px);gap:4px}\r\n#psim-stage .ps-icon{width:86px;height:92px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:6px;font-size:.78rem;text-shadow:0 1px 3px rgba(0,0,0,.8);text-align:center;cursor:default}\r\n#psim-stage .ps-icon:hover{background:rgba(255,255,255,.12)}\r\n#psim-stage .ps-icon .g{font-size:2.3rem;line-height:1.2}\r\n#psim-stage .ps-task{position:absolute;left:0;right:0;bottom:0;height:48px;background:rgba(22,26,40,.82);backdrop-filter:blur(20px);display:flex;align-items:center;justify-content:center;gap:6px;border-top:1px solid rgba(255,255,255,.08)}\r\n#psim-stage .ps-task span{width:38px;height:38px;border-radius:6px;display:grid;place-items:center;font-size:1.3rem}\r\n#psim-stage .ps-task span:hover{background:rgba(255,255,255,.1)}\r\n#psim-stage .ps-clock{position:absolute;right:14px;top:0;bottom:0;display:flex;flex-direction:column;justify-content:center;align-items:flex-end;font-size:.75rem;line-height:1.3}\r\n#psim-stage .ps-task .ps-clock span{width:auto;height:auto;display:block;font-size:.75rem;border-radius:0;background:none}\r\n#psim-stage .ps-busy,#psim-stage .ps-busy *{cursor:wait!important}\r\n#psim-stage .ps-dlg{position:absolute;width:min(92vw,420px);background:#f3f3f3;color:#111;border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,.5);overflow:hidden;animation:psPop .2s ease-out}\r\n#psim-stage .ps-dlg-t{background:#fff;padding:10px 14px;font-size:.82rem;display:flex;justify-content:space-between;border-bottom:1px solid #ddd}\r\n#psim-stage .ps-dlg-b{padding:18px 20px}\r\n#psim-stage .ps-dlg-b p{font-size:.88rem;margin-bottom:8px}\r\n#psim-stage .ps-dlg-b b{font-size:1.05rem;color:#003e92}\r\n#psim-stage .ps-dlg-btns{display:flex;flex-direction:column;gap:6px;margin-top:12px}\r\n#psim-stage .ps-dlg-btns button{text-align:left;padding:9px 12px;border:1px solid #ccc;background:#fff;border-radius:5px;font:inherit;font-size:.86rem;cursor:pointer}\r\n#psim-stage .ps-dlg-btns button:hover{background:#e5f1fb;border-color:#0078d7}\r\n#psim-stage .ps-shake{animation:psShake .4s}\r\n@keyframes psPop{from{transform:scale(.92);opacity:0}}\r\n@keyframes psShake{20%,60%{transform:translateX(-10px)}40%,80%{transform:translateX(10px)}}\r\n\r\n\/* Hacker typer *\/\r\n#psim-stage .ps-hack{background:#000;color:#00ff41;font-family:Consolas,\"Courier New\",monospace;padding:3vh 3vw;display:flex;flex-direction:column;justify-content:flex-end}\r\n#psim-stage .ps-hack pre{white-space:pre-wrap;word-break:break-all;font:inherit;font-size:clamp(.85rem,1.4vw,1.1rem);line-height:1.45;text-shadow:0 0 6px rgba(0,255,65,.6)}\r\n#psim-stage .ps-granted{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border:3px solid #00ff41;background:rgba(0,30,10,.92);color:#00ff41;padding:24px 50px;font:700 clamp(1.8rem,5vw,3.6rem) Consolas,monospace;letter-spacing:.1em;text-shadow:0 0 20px #00ff41;box-shadow:0 0 50px rgba(0,255,65,.5);animation:psBlink2 .5s infinite}\r\n#psim-stage .ps-granted.no{border-color:#ff2a2a;color:#ff2a2a;text-shadow:0 0 20px #ff2a2a;background:rgba(40,0,0,.92);box-shadow:0 0 50px rgba(255,0,0,.5)}\r\n@keyframes psBlink2{50%{opacity:.4}}\r\n\r\n\/* Canvas screens *\/\r\n#psim-stage .ps-canvas canvas{position:absolute;inset:0;width:100%;height:100%;display:block}\r\n#psim-stage .ps-static canvas{image-rendering:pixelated}\r\n#psim-stage .ps-nosig{position:absolute;left:0;top:0;background:#000;color:#fff;font:700 clamp(1rem,2.2vw,1.6rem) Consolas,monospace;padding:14px 26px;border:2px solid #fff;letter-spacing:.15em}\r\n\r\n\/* Mac panic *\/\r\n#psim-stage .ps-mac{background:#000}\r\n#psim-stage .ps-mac .cur{position:absolute;inset:0;background:rgba(40,40,40,.97);transform:translateY(-100%);animation:psDrop 2.2s 0.4s ease-in forwards;display:flex;align-items:center;justify-content:center}\r\n@keyframes psDrop{to{transform:translateY(0)}}\r\n#psim-stage .ps-mac .box{background:rgba(0,0,0,.7);color:#fff;border-radius:14px;padding:30px 40px;max-width:min(92vw,620px);text-align:center;font-family:-apple-system,\"Helvetica Neue\",sans-serif}\r\n#psim-stage .ps-mac .pw{font-size:3.5rem;line-height:1;margin-bottom:14px;opacity:.9}\r\n#psim-stage .ps-mac p{font-size:.92rem;margin-bottom:12px;opacity:.92}\r\n\r\n\/* Bugs *\/\r\n#psim-stage .ps-bug{position:absolute;left:0;top:0;font-size:30px;margin:-15px 0 0 -15px;cursor:pointer;will-change:transform;filter:drop-shadow(0 3px 3px rgba(0,0,0,.5))}\r\n#psim-stage .ps-bug.dead{pointer-events:none;transition:opacity .4s;opacity:0}\r\n\r\n\/* Glitch *\/\r\n#psim-stage .ps-glitch{background:#050505;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#fff}\r\n#psim-stage .ps-gtext{position:relative;font:900 clamp(2.4rem,9vw,7rem) \"Arial Black\",Impact,sans-serif;letter-spacing:.04em}\r\n#psim-stage .ps-gtext::before,#psim-stage .ps-gtext::after{content:attr(data-t);position:absolute;inset:0}\r\n#psim-stage .ps-gtext::before{color:#ff0040;left:3px;animation:psG1 1.4s infinite linear alternate-reverse;clip-path:inset(0 0 60% 0)}\r\n#psim-stage .ps-gtext::after{color:#00e5ff;left:-3px;animation:psG2 1s infinite linear alternate-reverse;clip-path:inset(60% 0 0 0)}\r\n@keyframes psG1{0%{clip-path:inset(10% 0 70% 0)}25%{clip-path:inset(40% 0 30% 0);transform:translate(-6px)}50%{clip-path:inset(80% 0 5% 0)}75%{clip-path:inset(20% 0 60% 0);transform:translate(6px)}100%{clip-path:inset(55% 0 25% 0)}}\r\n@keyframes psG2{0%{clip-path:inset(70% 0 10% 0)}30%{clip-path:inset(5% 0 85% 0);transform:translate(5px)}60%{clip-path:inset(45% 0 40% 0)}100%{clip-path:inset(25% 0 50% 0);transform:translate(-5px)}}\r\n#psim-stage .ps-gsub{font-family:Consolas,monospace;color:#ff3355;margin-top:20px;font-size:clamp(.9rem,1.6vw,1.2rem);letter-spacing:.2em}\r\n#psim-stage .ps-gbar{position:absolute;left:0;right:0;mix-blend-mode:screen;pointer-events:none}\r\n\r\n\/* Self destruct *\/\r\n#psim-stage .ps-sd{background:radial-gradient(circle at center,#3a0000,#000 70%);color:#ff2a2a;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;font-family:Consolas,monospace}\r\n#psim-stage .ps-sd h2{font-size:clamp(1.1rem,2.6vw,2rem);letter-spacing:.25em;margin-bottom:2vh;animation:psBlink2 1s infinite}\r\n#psim-stage .ps-sd .n{font-size:clamp(8rem,30vw,22rem);font-weight:700;line-height:1;text-shadow:0 0 40px #ff0000}\r\n#psim-stage .ps-sd .n.pulse{animation:psPulse .9s ease-out}\r\n#psim-stage .ps-sd p{color:#ff8080;letter-spacing:.15em;margin-top:2vh}\r\n@keyframes psPulse{from{transform:scale(1.25);opacity:.4}}\r\n#psim-stage .ps-flash{position:absolute;inset:0;background:#fff;animation:psFlash 1.2s forwards;pointer-events:none}\r\n@keyframes psFlash{0%{opacity:1}100%{opacity:0}}\r\n#psim-stage .ps-quake{animation:psQuake .1s 10}\r\n@keyframes psQuake{25%{transform:translate(8px,-6px)}50%{transform:translate(-8px,6px)}75%{transform:translate(6px,8px)}}\r\n\r\n\/* Reveal *\/\r\n#psim-stage .ps-reveal{position:absolute;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.55);backdrop-filter:blur(4px);animation:psPop .35s ease-out}\r\n#psim-stage .ps-reveal>div{background:linear-gradient(135deg,#6d8bff,#b36bff);color:#fff;border-radius:24px;padding:36px 48px;text-align:center;box-shadow:0 30px 80px rgba(0,0,0,.6);max-width:min(92vw,520px);font-family:system-ui,\"Segoe UI\",sans-serif}\r\n#psim-stage .ps-reveal .e{font-size:5rem;line-height:1;animation:psBob 1s infinite alternate}\r\n#psim-stage .ps-reveal h2{font-size:2.6rem;margin:10px 0 6px}\r\n#psim-stage .ps-reveal p{font-size:1.1rem;opacity:.95}\r\n#psim-stage .ps-reveal small{display:block;margin-top:14px;opacity:.8}\r\n@keyframes psBob{to{transform:translateY(-10px) rotate(8deg)}}\r\n\r\n\/* ---- batch 3 ---- *\/\r\n#psim-stage .ps-err{position:absolute;width:300px;background:#f0f0f0;color:#111;border:1px solid #888;box-shadow:0 8px 24px rgba(0,0,0,.4);font-size:13px;border-radius:6px;overflow:hidden;font-family:\"Segoe UI\",system-ui,sans-serif;animation:psPop .15s ease-out}\r\n#psim-stage .ps-err .t{background:#fff;padding:7px 10px;display:flex;justify-content:space-between;border-bottom:1px solid #ddd;font-size:12px}\r\n#psim-stage .ps-err .b{padding:14px;display:flex;gap:12px;align-items:center}\r\n#psim-stage .ps-err .i{font-size:28px}\r\n#psim-stage .ps-err .f{padding:0 14px 12px;text-align:right}\r\n#psim-stage .ps-err button{padding:5px 24px;border:1px solid #0078d7;background:#fff;border-radius:4px;cursor:pointer;font-size:13px}\r\n#psim-stage .ps-err button:hover{background:#e5f1fb}\r\n#psim-stage .ps-load{background:#f4f5f8;color:#2a3150;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;font-family:system-ui,\"Segoe UI\",sans-serif}\r\n#psim-stage .ps-load .ring{width:64px;height:64px;border:6px solid #d6dbe8;border-top-color:#6d8bff;border-radius:50%;animation:psRot 1s linear infinite;margin-bottom:10px}\r\n#psim-stage .ps-load h2{font-size:clamp(1.6rem,3vw,2.4rem)}\r\n#psim-stage .ps-load p{font-size:clamp(1rem,1.8vw,1.3rem);color:#5d6687;min-height:1.6em}\r\n#psim-stage .ps-load .bar{width:min(80vw,460px);height:10px;background:#e1e5ef;border-radius:5px;overflow:hidden;margin-top:10px}\r\n#psim-stage .ps-load .bar div{height:100%;width:0;background:linear-gradient(90deg,#6d8bff,#b36bff);transition:width .3s}\r\n#psim-stage .ps-load small{color:#8e98c6}\r\n@keyframes psRot{to{transform:rotate(360deg)}}\r\n#psim-stage .ps-run{background:#e9edf3;color:#111;display:flex;align-items:center;justify-content:center;font-family:\"Segoe UI\",system-ui,sans-serif}\r\n#psim-stage .ps-run-box{background:#fff;border-radius:12px;padding:28px 34px;width:min(92vw,480px);box-shadow:0 20px 50px rgba(0,0,0,.15);text-align:center;margin-top:-100px}\r\n#psim-stage .ps-run-box h2{font-size:1.5rem;margin-bottom:10px}\r\n#psim-stage .ps-run-box p{font-size:1rem;color:#444}\r\n#psim-stage .ps-run-btn{position:absolute;left:0;top:0;padding:10px 44px;background:#0078d7;color:#fff;border-radius:6px;font-weight:600;font-size:1rem;cursor:pointer;transition:transform .15s ease-out;z-index:2}\r\n#psim-stage .ps-fly{position:absolute;left:0;top:0;font-size:26px;margin:-13px 0 0 -13px;pointer-events:none;z-index:6;filter:drop-shadow(0 3px 3px rgba(0,0,0,.5))}\r\n#psim-stage .ps-miss{position:absolute;left:0;top:0;color:#fff;font-weight:800;font-size:1.4rem;text-shadow:0 2px 6px #000;pointer-events:none;opacity:0;z-index:7;white-space:nowrap}\r\n#psim-stage .ps-miss.show{animation:psMiss .8s ease-out}\r\n@keyframes psMiss{0%{opacity:1;transform:translate(-50%,-50%)}100%{opacity:0;transform:translate(-50%,-160%)}}\r\n#psim-stage .ps-np{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);width:min(92vw,620px);height:min(70vh,420px);background:#fff;color:#111;border-radius:8px;box-shadow:0 24px 60px rgba(0,0,0,.45);overflow:hidden;display:flex;flex-direction:column;z-index:3;font-family:\"Segoe UI\",system-ui,sans-serif}\r\n#psim-stage .ps-np-t{background:#f3f3f3;padding:8px 12px;font-size:.82rem;display:flex;justify-content:space-between}\r\n#psim-stage .ps-np-m{font-size:.8rem;padding:4px 12px;border-bottom:1px solid #e5e5e5;color:#333}\r\n#psim-stage .ps-np-b{flex:1;padding:12px;font:15px\/1.5 Consolas,\"Courier New\",monospace;white-space:pre-wrap;overflow:auto;text-align:left}\r\n#psim-stage .ps-bat{background:#000;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;font-family:system-ui,\"Segoe UI\",sans-serif}\r\n#psim-stage .ps-bat .cell{width:150px;height:72px;border:5px solid #fff;border-radius:14px;position:relative;padding:6px;margin-bottom:20px}\r\n#psim-stage .ps-bat .cell::after{content:\"\";position:absolute;right:-16px;top:21px;width:9px;height:20px;background:#fff;border-radius:0 4px 4px 0}\r\n#psim-stage .ps-bat .lvl{width:7%;height:100%;background:#ff3b30;border-radius:4px;animation:psBlink2 1s infinite}\r\n#psim-stage .ps-bat h2{font-size:clamp(1.8rem,4vw,2.6rem);font-weight:400;line-height:1.2}\r\n#psim-stage .ps-bat p{font-size:1.2rem;margin-top:6px}\r\n#psim-stage .ps-bat .s{color:#aaa;font-size:1rem}\r\n#psim-stage .ps-bat .off{position:absolute;inset:0;background:#000;opacity:0;pointer-events:none;transition:opacity 1.5s}\r\n#psim-stage .ps-bat .off.on{opacity:1}\r\n<\/style>\r\n<\/head>\r\n<body style=\"margin:0\">\r\n\r\n<div id=\"psim\">\r\n  <div class=\"ps-wrap\">\r\n    <header class=\"ps-hero\">\r\n      <div class=\"ps-badge\" id=\"ps-count\">\ud83c\udfad Prank screens<\/div>\r\n      <h1>Prank Screen <span>Simulator<\/span><\/h1>\r\n      <p>Pick a fake screen, hit launch and hand the computer to a friend. Everything here is 100% harmless \u2014 nothing on the device is touched.<\/p>\r\n    <\/header>\r\n\r\n    <div class=\"ps-toolbar\">\r\n      <div class=\"ps-chips\" id=\"ps-chips\"><\/div>\r\n      <input class=\"ps-search\" id=\"ps-search\" type=\"search\" placeholder=\"\ud83d\udd0d Search pranks\u2026\">\r\n    <\/div>\r\n\r\n    <div class=\"ps-grid\" id=\"ps-grid\"><\/div>\r\n\r\n    <div class=\"ps-how\">\r\n      <div class=\"ps-step\"><b>1 \u00b7 Pick a prank<\/b><span>Click a card to select it, or click \u25b6 to launch right away.<\/span><\/div>\r\n      <div class=\"ps-step\"><b>2 \u00b7 Set the trap<\/b><span>Use <em>Delay<\/em> to show a black screen first, so you have time to walk away.<\/span><\/div>\r\n      <div class=\"ps-step\"><b>3 \u00b7 Exit anytime<\/b><span>Press <kbd>Esc<\/kbd>, or tap the top-right corner 3 times quickly (works on phones). Turn on <em>Hide Esc banner<\/em> to stop the browser showing \u201cPress Esc to exit full screen\u201d \u2014 press <kbd>F11<\/kbd> first to hide the browser bars too.<\/span><\/div>\r\n    <\/div>\r\n    <p class=\"ps-note\">\u26a0 Just for fun: only prank people who'll laugh with you, and reveal the joke quickly \u2014 especially with anyone who might genuinely panic.<\/p>\r\n  <\/div>\r\n\r\n  <div class=\"ps-bar\">\r\n    <div class=\"ps-sel\"><span>Selected<\/span><b id=\"ps-selname\">None \u2014 pick a card<\/b><\/div>\r\n    <div class=\"ps-opts\">\r\n      <label>Delay\r\n        <select id=\"o-delay\"><option value=\"0\">Instant<\/option><option value=\"5\">5 s<\/option><option value=\"10\">10 s<\/option><option value=\"30\">30 s<\/option><\/select>\r\n      <\/label>\r\n      <label>Reveal\r\n        <select id=\"o-reveal\"><option value=\"0\">Never<\/option><option value=\"15\">After 15 s<\/option><option value=\"30\" selected>After 30 s<\/option><option value=\"60\">After 60 s<\/option><\/select>\r\n      <\/label>\r\n      <label class=\"tg\"><input type=\"checkbox\" id=\"o-sound\" checked><span><\/span>Sound<\/label>\r\n      <label class=\"tg\"><input type=\"checkbox\" id=\"o-cursor\"><span><\/span>Hide cursor<\/label>\r\n      <label class=\"tg\" title=\"Skips browser fullscreen so the &quot;Press Esc to exit full screen&quot; banner never appears. Tip: press F11 first to hide the browser bars too.\"><input type=\"checkbox\" id=\"o-nofs\"><span><\/span>Hide Esc banner<\/label>\r\n    <\/div>\r\n    <div class=\"ps-actions\">\r\n      <button class=\"ps-btn ghost\" id=\"ps-random\">\ud83c\udfb2 Random<\/button>\r\n      <button class=\"ps-btn primary\" id=\"ps-go\" disabled>Launch \u25b6<\/button>\r\n    <\/div>\r\n  <\/div>\r\n  <div class=\"ps-foot\"><\/div>\r\n<\/div>\r\n\r\n<div id=\"psim-stage\"><\/div>\r\n\r\n<script>\r\n(function(){\r\n  \"use strict\";\r\n  var stage = document.getElementById('psim-stage');\r\n  \/\/ Move the stage straight under <body>: WordPress themes\/page builders often wrap content in\r\n  \/\/ elements with transform\/filter, which makes position:fixed shrink to that box instead of the screen.\r\n  if (stage.parentNode !== document.body) document.body.appendChild(stage);\r\n\r\n  \/* ---------- helpers: every timer\/listener is tracked so exit cleans up everything ---------- *\/\r\n  var cleanups = [];\r\n  function every(fn, ms){ var id = setInterval(fn, ms); cleanups.push(function(){ clearInterval(id); }); return id; }\r\n  function after(fn, ms){ var id = setTimeout(fn, ms); cleanups.push(function(){ clearTimeout(id); }); return id; }\r\n  function loop(fn){ var id; function f(t){ if (fn(t) !== false) id = requestAnimationFrame(f); } id = requestAnimationFrame(f); cleanups.push(function(){ cancelAnimationFrame(id); }); }\r\n  function onKey(fn){ document.addEventListener('keydown', fn); cleanups.push(function(){ document.removeEventListener('keydown', fn); }); }\r\n  function onResize(fn){ window.addEventListener('resize', fn); cleanups.push(function(){ window.removeEventListener('resize', fn); }); }\r\n  function clearAll(){ cleanups.forEach(function(c){ try{ c(); }catch(e){} }); cleanups = []; }\r\n  function fit(c){ var r = c.getBoundingClientRect(); c.width = Math.max(1, r.width | 0); c.height = Math.max(1, r.height | 0); }\r\n  function rnd(a, b){ return a + Math.random() * (b - a); }\r\n  function pick(a){ return a[Math.random() * a.length | 0]; }\r\n  function esc(s){ return String(s).replace(\/[&<>\"]\/g, function(c){ return {'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;'}[c]; }); }\r\n\r\n  \/* ---------- sound (Web Audio, no files needed) ---------- *\/\r\n  var opts = { sound: true }, actx = null;\r\n  function ac(){\r\n    if (!opts.sound) return null;\r\n    try { actx = actx || new (window.AudioContext || window.webkitAudioContext)(); if (actx.state === 'suspended') actx.resume(); } catch(e){ return null; }\r\n    return actx;\r\n  }\r\n  function beep(freq, dur, type, vol){\r\n    var a = ac(); if (!a) return;\r\n    dur = dur || .15;\r\n    var o = a.createOscillator(), g = a.createGain();\r\n    o.type = type || 'square'; o.frequency.value = freq || 880;\r\n    g.gain.setValueAtTime(vol || .06, a.currentTime);\r\n    g.gain.exponentialRampToValueAtTime(.0001, a.currentTime + dur);\r\n    o.connect(g); g.connect(a.destination); o.start(); o.stop(a.currentTime + dur);\r\n  }\r\n  function noise(dur, vol){\r\n    var a = ac(); if (!a) return;\r\n    dur = dur || .4;\r\n    var n = a.sampleRate * dur | 0, b = a.createBuffer(1, n, a.sampleRate), d = b.getChannelData(0);\r\n    for (var i = 0; i < n; i++) d[i] = (Math.random() * 2 - 1) * Math.pow(1 - i \/ n, 3);\r\n    var s = a.createBufferSource(), g = a.createGain(); s.buffer = b; g.gain.value = vol || .3;\r\n    s.connect(g); g.connect(a.destination); s.start();\r\n  }\r\n\r\n  \/* ---------- shared fake desktop markup ---------- *\/\r\n  var DESK_ICONS = [['\ud83d\udcbb','This PC'],['\ud83d\uddd1\ufe0f','Recycle Bin'],['\ud83d\udcc1','Documents'],['\ud83c\udf10','Browser'],['\ud83d\udcdd','Notes'],['\ud83c\udfb5','Music'],['\u2699\ufe0f','Settings'],['\ud83d\uddbc\ufe0f','Photos']];\r\n  function deskHTML(extra){\r\n    var icons = DESK_ICONS.map(function(i){ return '<div class=\"ps-icon\" data-name=\"' + i[1] + '\"><div class=\"g\">' + i[0] + '<\/div>' + i[1] + '<\/div>'; }).join('');\r\n    return '<div class=\"ps-scr ps-desk\"><div class=\"ps-icons\">' + icons + '<\/div>' + (extra || '') +\r\n      '<div class=\"ps-task\"><span>\ud83e\ude9f<\/span><span>\ud83d\udd0d<\/span><span>\ud83d\udcc1<\/span><span>\ud83c\udf10<\/span><span>\u2709\ufe0f<\/span><span>\ud83c\udfb5<\/span>' +\r\n      '<div class=\"ps-clock\"><b data-clock><\/b><span data-date><\/span><\/div><\/div><\/div>';\r\n  }\r\n  function startClock(el){\r\n    var c = el.querySelector('[data-clock]'), d = el.querySelector('[data-date]');\r\n    function t(){ var n = new Date(); c.textContent = n.toLocaleTimeString([], {hour:'2-digit', minute:'2-digit'}); d.textContent = n.toLocaleDateString(); }\r\n    t(); every(t, 1000);\r\n  }\r\n\r\n  \/* ---------- crack drawing ---------- *\/\r\n  function crackLine(x, path){\r\n    x.beginPath(); path.forEach(function(p, i){ i ? x.lineTo(p[0], p[1]) : x.moveTo(p[0], p[1]); });\r\n    x.strokeStyle = 'rgba(0,0,0,.4)'; x.lineWidth = 3; x.stroke();\r\n    x.strokeStyle = 'rgba(255,255,255,.9)'; x.lineWidth = 1.1; x.stroke();\r\n  }\r\n  function drawCrack(x, cx, cy, size){\r\n    var rays = 10 + (Math.random() * 8 | 0), all = [];\r\n    for (var i = 0; i < rays; i++){\r\n      var a = i \/ rays * Math.PI * 2 + rnd(-.2, .2), len = rnd(.35, 1) * size, path = [[cx, cy]];\r\n      for (var s = 1; s <= 12; s++){\r\n        var r = len * s \/ 12, ang = a + rnd(-.12, .12);\r\n        var px = cx + Math.cos(ang) * r, py = cy + Math.sin(ang) * r;\r\n        path.push([px, py]);\r\n        if (s > 2 && Math.random() < .22){\r\n          var ba = ang + rnd(-.8, .8), bl = len * rnd(.15, .35), bp = [[px, py]];\r\n          for (var k = 1; k <= 5; k++) bp.push([px + Math.cos(ba + rnd(-.2, .2)) * bl * k \/ 5, py + Math.sin(ba + rnd(-.2, .2)) * bl * k \/ 5]);\r\n          crackLine(x, bp);\r\n        }\r\n      }\r\n      all.push(path); crackLine(x, path);\r\n    }\r\n    [1, 2, 4].forEach(function(ring){\r\n      x.beginPath();\r\n      all.forEach(function(p, i){ var q = p[Math.min(ring, p.length - 1)], jx = q[0] + rnd(-6, 6), jy = q[1] + rnd(-6, 6); i ? x.lineTo(jx, jy) : x.moveTo(jx, jy); });\r\n      x.closePath(); x.strokeStyle = 'rgba(255,255,255,.7)'; x.lineWidth = 1; x.stroke();\r\n    });\r\n    var g = x.createRadialGradient(cx, cy, 0, cx, cy, size * .08);\r\n    g.addColorStop(0, 'rgba(255,255,255,.85)'); g.addColorStop(1, 'rgba(255,255,255,0)');\r\n    x.fillStyle = g; x.beginPath(); x.arc(cx, cy, size * .08, 0, 7); x.fill();\r\n  }\r\n\r\n  var HACK_SRC = [\r\n    '#include <kernel\/net.h>', '#define FIREWALL_PORT 0x1F90', '',\r\n    'struct node *bypass_firewall(struct node *root, int depth) {',\r\n    '    if (!root || depth > MAX_DEPTH) return NULL;',\r\n    '    for (int i = 0; i < root->links; i++) {',\r\n    '        uint64_t key = hash_sha256(root->payload[i]) ^ 0xDEADBEEF;',\r\n    '        if (inject_packet(root->addr, key, FIREWALL_PORT) == ACK) {',\r\n    '            log_info(\"[+] node %s compromised\", root->addr);',\r\n    '            return bypass_firewall(root->child[i], depth + 1);',\r\n    '        }', '    }', '    return root;', '}', '',\r\n    'void decrypt_mainframe(char *buf, size_t len) {',\r\n    '    for (size_t j = 0; j < len; j += 16) {',\r\n    '        aes_block_t blk = load_block(buf + j);',\r\n    '        blk = xor_shift(blk, SECRET_KEY >> (j % 64));',\r\n    '        store_block(buf + j, blk);',\r\n    '        if (j % 4096 == 0) progress(j * 100 \/ len);',\r\n    '    }', '}', '',\r\n    'int main(int argc, char **argv) {',\r\n    '    printf(\"Connecting to 192.168.0.%d...\\\\n\", rand() % 255);',\r\n    '    struct node *target = scan_subnet(\"10.0.0.0\/24\");',\r\n    '    target = bypass_firewall(target, 0);',\r\n    '    decrypt_mainframe(target->memory, target->mem_size);',\r\n    '    upload_payload(target, \"satellite_uplink.bin\");',\r\n    '    return ACCESS_GRANTED;', '}', '', ''\r\n  ].join('\\n');\r\n\r\n  \/* ================= PRANK REGISTRY ================= *\/\r\n  function th(bg, fg, inner, extra){ return '<div class=\"th\" style=\"background:' + bg + ';color:' + fg + ';' + (extra || '') + '\">' + inner + '<\/div>'; }\r\n\r\n  var PRANKS = [\r\n  {\r\n    id:'bsod', cat:'windows', name:'Blue Screen of Death', desc:'Modern Windows crash screen with a live percentage and stop code.',\r\n    thumb: th('#0078d7','#fff','<span style=\"font-size:2rem;font-weight:300\">:(<\/span><small>Your PC ran into a problem\u2026<\/small>','align-items:flex-start;text-align:left;padding-left:20px'),\r\n    html:'<div class=\"ps-scr ps-bsod\"><div class=\"ps-bsod-in\"><div class=\"ps-bsod-face\">:(<\/div>' +\r\n      '<p>Your PC ran into a problem and needs to restart. We\\'re just collecting some error info, and then we\\'ll restart for you.<\/p>' +\r\n      '<p><span data-pct>0<\/span>% complete<\/p><div class=\"ps-bsod-row\"><canvas class=\"ps-qr\" width=\"25\" height=\"25\"><\/canvas><div>' +\r\n      '<p>If you\\'d like to know more, you can search online later for this error:<\/p><p>Stop code: CRITICAL_PROCESS_DIED<\/p><\/div><\/div><\/div><\/div>',\r\n    start:function(el){\r\n      var q = el.querySelector('canvas'), x = q.getContext('2d');\r\n      x.fillStyle = '#fff'; x.fillRect(0, 0, 25, 25); x.fillStyle = '#0078d7';\r\n      for (var i = 0; i < 25; i++) for (var j = 0; j < 25; j++) if (Math.random() < .5) x.fillRect(i, j, 1, 1);\r\n      [[0,0],[18,0],[0,18]].forEach(function(f){ var a=f[0], b=f[1];\r\n        x.fillStyle='#fff'; x.fillRect(a-1,b-1,9,9); x.fillStyle='#0078d7'; x.fillRect(a,b,7,7);\r\n        x.fillStyle='#fff'; x.fillRect(a+1,b+1,5,5); x.fillStyle='#0078d7'; x.fillRect(a+2,b+2,3,3); });\r\n      var pe = el.querySelector('[data-pct]'), p = 0;\r\n      every(function(){ if (p < 100 && Math.random() < .7) { p = Math.min(100, p + (Math.random() * 9 | 0)); pe.textContent = p; } }, 900);\r\n    }\r\n  },\r\n  {\r\n    id:'xp', cat:'windows', name:'Retro Blue Screen', desc:'The old-school text BSOD with a memory dump counter.',\r\n    thumb: th('#0000aa','#fff','<small style=\"font-family:monospace;text-align:left\">A problem has been detected and Windows has been shut down\u2026<br><br>*** STOP: 0x00000050<\/small>'),\r\n    html:'<div class=\"ps-scr ps-xp\"><pre>A problem has been detected and Windows has been shut down to prevent damage\\nto your computer.\\n\\nPAGE_FAULT_IN_NONPAGED_AREA\\n\\n' +\r\n      'If this is the first time you\\'ve seen this Stop error screen,\\nrestart your computer. If this screen appears again, follow\\nthese steps:\\n\\n' +\r\n      'Check to make sure any new hardware or software is properly installed.\\nIf this is a new installation, ask your hardware or software manufacturer\\nfor any Windows updates you might need.\\n\\n' +\r\n      'Technical information:\\n\\n*** STOP: 0x00000050 (0xFD3094C2,0x00000001,0xFBFE7617,0x00000000)\\n\\n***  ntfs.sys - Address FBFE7617 base at FBFE5000, DateStamp 3d6dd67c\\n\\n' +\r\n      'Beginning dump of physical memory\\nDumping physical memory to disk:  <span data-dump>0<\/span><\/pre><\/div>',\r\n    start:function(el){\r\n      var d = el.querySelector('[data-dump]'), n = 0, pre = el.querySelector('pre');\r\n      every(function(){\r\n        if (n >= 100) return;\r\n        n = Math.min(100, n + 1 + (Math.random() * 4 | 0)); d.textContent = n;\r\n        if (n >= 100) pre.insertAdjacentHTML('beforeend', '\\nPhysical memory dump complete.\\nContact your system administrator or technical support group for further\\nassistance.');\r\n      }, 350);\r\n    }\r\n  },\r\n  {\r\n    id:'update', cat:'windows', name:'Endless Update', desc:'Reaches 99%\u2026 then starts \u201cundoing changes\u201d and goes back down. Forever.',\r\n    thumb: th('#0a3a78','#fff','<span style=\"font-size:1.4rem\">\u27f3<\/span>Working on updates 87%<small>Don\\'t turn off your computer<\/small>'),\r\n    html:'<div class=\"ps-scr ps-upd\"><div class=\"ps-spin\"><i><\/i><i><\/i><i><\/i><i><\/i><i><\/i><\/div>' +\r\n      '<p class=\"ps-upd-big\">Working on updates <span data-pct>0<\/span>%<\/p><p>Don\\'t turn off your computer.<\/p><p class=\"ps-upd-small\" data-msg>This will take a while<\/p><\/div>',\r\n    start:function(el){\r\n      var pe = el.querySelector('[data-pct]'), msg = el.querySelector('[data-msg]'), big = el.querySelector('.ps-upd-big'), p = 0, dir = 1;\r\n      every(function(){\r\n        if (dir > 0){\r\n          p += p < 30 ? rnd(1, 4) : p < 85 ? rnd(0, 2) : rnd(0, .4);\r\n          if (p >= 99){ p = 99; dir = -1;\r\n            after(function(){ big.firstChild.textContent = 'Undoing changes made to your computer '; msg.textContent = 'We couldn\\'t complete the updates'; }, 3000); }\r\n        } else if (big.firstChild.textContent.indexOf('Undoing') === 0){\r\n          p -= rnd(1, 3);\r\n          if (p <= 0){ p = 0; dir = 1; big.firstChild.textContent = 'Working on updates '; msg.textContent = 'This will take a while'; }\r\n        }\r\n        pe.textContent = Math.floor(p);\r\n      }, 900);\r\n    }\r\n  },\r\n  {\r\n    id:'virus', cat:'windows', name:'Virus Detected', desc:'A security scan that keeps finding more and more \u201cthreats\u201d.',\r\n    thumb: th('#0c0c0c','#33ff66','<small style=\"font-family:monospace;text-align:left\">Scanning system\u2026<br><span style=\"color:#ff4d4d\">WARNING: Trojan detected!<\/span><br>Threats: 14<\/small>'),\r\n    html:'<div class=\"ps-scr ps-term red\"><div class=\"hdr\"><span>\ud83d\udee1 System Security Scan<\/span><span>Threats found: <b data-n style=\"color:#ff4d4d\">0<\/b><\/span><\/div><div class=\"lines\" data-lines><\/div><div class=\"ps-bar2\"><div data-bar><\/div><\/div><\/div>',\r\n    start:function(el){\r\n      var L = [\r\n        ['Initializing real-time protection engine...'],['Loading virus definitions (v4.18.2610.3)...'],['Scanning memory sectors...'],\r\n        ['Scanning C:\\\\Windows\\\\System32\\\\'],['WARNING: Trojan.Generic.254879 detected!','bad'],['Scanning C:\\\\Users\\\\Public\\\\Documents\\\\'],\r\n        ['WARNING: Miner.Win32.CoinStealer detected!','bad'],['Scanning C:\\\\Program Files\\\\'],['WARNING: Worm.AutoRun.Gen found in 3 files','bad'],\r\n        ['Scanning browser extensions...'],['WARNING: Spyware.KeyLogger.X active!','bad'],['Scanning registry entries...'],\r\n        ['WARNING: Rootkit.Boot.SST.a detected in boot sector!','bad'],['Scanning webcam drivers...'],['WARNING: Unknown process accessing camera','bad'],\r\n        ['Attempting automatic quarantine...'],['Quarantine FAILED: access denied','bad'],['Scan complete.']\r\n      ];\r\n      var box = el.querySelector('[data-lines]'), bar = el.querySelector('[data-bar]'), cnt = el.querySelector('[data-n]'), i = 0, threats = 0;\r\n      every(function(){\r\n        if (i >= L.length) return;\r\n        var d = document.createElement('div'); d.textContent = '> ' + L[i][0]; if (L[i][1]) { d.className = 'bad'; threats += 1 + (Math.random() * 3 | 0); cnt.textContent = threats; beep(420, .18, 'sawtooth'); }\r\n        box.appendChild(d); i++; bar.style.width = (i \/ L.length * 100) + '%';\r\n        if (i === L.length){\r\n          after(function(){\r\n            el.insertAdjacentHTML('beforeend', '<div class=\"ps-alert\"><h2>\u26a0 ' + threats + ' THREATS FOUND<\/h2><p>Your system integrity is compromised.<br>Personal files may be at risk.<\/p><\/div>');\r\n            every(function(){ beep(800, .12); }, 1000);\r\n          }, 800);\r\n        }\r\n      }, 650);\r\n    }\r\n  },\r\n  {\r\n    id:'critical', cat:'windows', name:'CPU Overheating', desc:'Flashing red alarm with a CPU temperature that keeps climbing.',\r\n    thumb: th('#c40000','#fff','\u26a0 CRITICAL ERROR<small>CPU temperature: 104\u00b0C<\/small>'),\r\n    html:'<div class=\"ps-scr ps-crit\"><div class=\"ico\">\u26a0<\/div><h2>CRITICAL SYSTEM ERROR<\/h2><p>Hardware failure detected: CPU overheating beyond safe limits.<\/p>' +\r\n      '<div class=\"temp\">CPU: <span data-t>78<\/span>\u00b0C<\/div><p>Do not touch the keyboard. Thermal shutdown in progress\u2026<\/p><p class=\"code\">Error code: 0x0000007B \u00b7 THERMAL_EVENT_OVERRUN<\/p><\/div>',\r\n    start:function(el){\r\n      var t = el.querySelector('[data-t]'), v = 78, hi = true;\r\n      every(function(){ v += rnd(.3, 2.2); t.textContent = Math.floor(v); }, 700);\r\n      every(function(){ beep(hi ? 980 : 720, .35, 'square', .05); hi = !hi; }, 500);\r\n    }\r\n  },\r\n  {\r\n    id:'delete', cat:'windows', name:'Deleting All Files', desc:'Files fly past being \u201cdeleted\u201d at high speed with a counter.',\r\n    thumb: th('#0c0c0c','#ff4d4d','<small style=\"font-family:monospace;text-align:left\">Deleting C:\\\\Users\\\\Photos\\\\\u2026<br>1,247 files deleted<\/small>'),\r\n    html:'<div class=\"ps-scr ps-term red\" style=\"color:#ff6b6b\"><div class=\"hdr\"><span>\ud83d\uddd1 Disk Cleanup \u2014 removing all user data<\/span><span><b data-n>0<\/b> \/ 4,821 files<\/span><\/div><div class=\"lines\" data-lines><\/div><div class=\"ps-bar2\"><div data-bar><\/div><\/div><\/div>',\r\n    start:function(el){\r\n      var dirs = ['C:\\\\Users\\\\Public\\\\Pictures\\\\','C:\\\\Users\\\\Documents\\\\','C:\\\\Users\\\\Desktop\\\\','C:\\\\Program Files\\\\','C:\\\\Windows\\\\System32\\\\','C:\\\\Users\\\\Videos\\\\','C:\\\\Users\\\\Downloads\\\\'];\r\n      var files = ['VacationPhotos','TaxReturn_2025','Homework_FINAL_v3','Wedding_Video','Passwords','Resume','Minecraft_Worlds','Family_Album','Thesis_Draft','Budget','kernel32','explorer','ntoskrnl','SaveGame'];\r\n      var ext = ['.jpg','.pdf','.docx','.mp4','.xlsx','.dll','.exe','.zip','.png','.sav'];\r\n      var box = el.querySelector('[data-lines]'), bar = el.querySelector('[data-bar]'), cnt = el.querySelector('[data-n]'), n = 0, total = 4821, done = false;\r\n      every(function(){\r\n        if (done) return;\r\n        n = Math.min(total, n + 3 + (Math.random() * 14 | 0));\r\n        var d = document.createElement('div'); d.textContent = 'Deleting ' + pick(dirs) + pick(files) + pick(ext) + '  \u2026 OK';\r\n        box.appendChild(d); if (box.children.length > 60) box.removeChild(box.firstChild);\r\n        cnt.textContent = n.toLocaleString(); bar.style.width = (n \/ total * 100) + '%';\r\n        if (n >= total){ done = true;\r\n          var e = document.createElement('div'); e.className = 'bad'; e.innerHTML = '\\n>>> ALL FILES DELETED. Recycle Bin emptied. 0 bytes remaining. <span class=\"ps-cur\"><\/span>'; box.appendChild(e); beep(200, .8, 'sawtooth'); }\r\n      }, 70);\r\n    }\r\n  },\r\n  {\r\n    id:'format', cat:'windows', name:'Formatting Drive C:', desc:'Classic DOS-style format command wiping the whole drive.',\r\n    thumb: th('#000','#c0c0c0','<small style=\"font-family:monospace;text-align:left\">C:\\\\&gt; format c:<br>WARNING, ALL DATA WILL BE LOST!<br>47 percent completed.<\/small>'),\r\n    html:'<div class=\"ps-scr ps-dos\" data-out><\/div>',\r\n    start:function(el){\r\n      var head = 'Microsoft Windows [Version 10.0.26100]\\n\\nC:\\\\> format c: \/fs:ntfs\\nThe type of the file system is NTFS.\\n\\nWARNING, ALL DATA ON NON-REMOVABLE DISK\\nDRIVE C: WILL BE LOST!\\nProceed with Format (Y\/N)? ';\r\n      var i = 0, p = 0, stage2 = false;\r\n      el.innerHTML = '<span data-t><\/span><span class=\"ps-cur\"><\/span>';\r\n      var t = el.querySelector('[data-t]');\r\n      every(function(){\r\n        if (i < head.length){ t.textContent += head.slice(i, i + 3); i += 3; return; }\r\n        if (!stage2){ stage2 = true; t.textContent += 'Y\\n\\nVerifying 476,937M\\nFormatting...\\n'; t.insertAdjacentHTML('beforeend', '<span data-p>0<\/span> percent completed.'); return; }\r\n        var pe = t.querySelector('[data-p]');\r\n        if (p < 100){ p = Math.min(100, p + (Math.random() < .3 ? 1 : 0)); pe.textContent = p;\r\n          if (p === 100){ t.insertAdjacentText('beforeend', '\\n\\nFormat complete.\\n    476,937 MB total disk space.\\n    476,937 MB are available.\\n\\nC:\\\\> '); beep(600, .3); } }\r\n      }, 60);\r\n    }\r\n  },\r\n  {\r\n    id:'desktop', cat:'windows', name:'Frozen Desktop', desc:'Looks like a normal desktop \u2014 but every app is \u201cNot Responding\u201d.',\r\n    thumb: th('linear-gradient(135deg,#0b1a4a,#4a7dff)','#fff','\ud83d\udda5\ufe0f<small>Program (Not Responding)<\/small>'),\r\n    html: deskHTML(),\r\n    start:function(el){\r\n      startClock(el); var n = 0;\r\n      function dlg(name){\r\n        el.classList.add('ps-busy');\r\n        var w = el.clientWidth, h = el.clientHeight, d = document.createElement('div'); d.className = 'ps-dlg';\r\n        d.style.left = Math.max(8, Math.min(w - 430, w \/ 2 - 210 + (n % 8) * 26)) + 'px';\r\n        d.style.top = Math.max(8, Math.min(h - 260, h \/ 2 - 130 + (n % 8) * 26)) + 'px'; n++;\r\n        d.innerHTML = '<div class=\"ps-dlg-t\"><span>' + esc(name) + ' (Not Responding)<\/span><span>\u2715<\/span><\/div><div class=\"ps-dlg-b\"><p><b>' + esc(name) + ' is not responding<\/b><\/p>' +\r\n          '<p>If you close the program, you might lose information.<\/p><div class=\"ps-dlg-btns\"><button>\u2192 Close the program<\/button><button>\u2192 Wait for the program to respond<\/button><\/div><\/div>';\r\n        d.addEventListener('click', function(e){ e.stopPropagation(); d.classList.remove('ps-shake'); void d.offsetWidth; d.classList.add('ps-shake'); beep(300, .12, 'triangle'); if (e.target.tagName === 'BUTTON') dlg(name); });\r\n        el.appendChild(d); beep(500, .15, 'triangle');\r\n      }\r\n      el.querySelectorAll('.ps-icon').forEach(function(ic){ ic.addEventListener('dblclick', function(){ dlg(ic.dataset.name); }); ic.addEventListener('click', function(){ if (window.matchMedia('(pointer:coarse)').matches) dlg(ic.dataset.name); }); });\r\n      el.querySelectorAll('.ps-task span').forEach(function(s){ s.addEventListener('click', function(){ dlg('Windows Explorer'); }); });\r\n    }\r\n  },\r\n  {\r\n    id:'mac', cat:'mac', name:'Mac Kernel Panic', desc:'A grey curtain drops down with the dreaded \u201crestart your computer\u201d message.',\r\n    thumb: th('#2a2a2a','#fff','<span style=\"font-size:1.8rem\">\u23fb<\/span><small>You need to restart your computer.<\/small>'),\r\n    html:'<div class=\"ps-scr ps-mac\"><div class=\"cur\"><div class=\"box\"><div class=\"pw\">\u23fb<\/div>' +\r\n      '<p>You need to restart your computer. Hold down the Power button for several seconds or press the Restart button.<\/p>' +\r\n      '<p>Veuillez red\u00e9marrer votre ordinateur. Maintenez la touche de d\u00e9marrage enfonc\u00e9e pendant plusieurs secondes.<\/p>' +\r\n      '<p>Sie m\u00fcssen Ihren Computer neu starten. Halten Sie dazu die Einschalttaste einige Sekunden gedr\u00fcckt.<\/p>' +\r\n      '<p>\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u3092\u518d\u8d77\u52d5\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u30d1\u30ef\u30fc\u30dc\u30bf\u30f3\u3092\u6570\u79d2\u9593\u62bc\u3057\u7d9a\u3051\u3066\u304f\u3060\u3055\u3044\u3002<\/p><\/div><\/div><\/div>'\r\n  },\r\n  {\r\n    id:'hacker', cat:'hacker', name:'Hacker Typer', desc:'Mash any key and look like a movie hacker. \u201cACCESS GRANTED\u201d pops up.',\r\n    thumb: th('#000','#00ff41','<small style=\"font-family:monospace;text-align:left;text-shadow:0 0 6px #00ff41\">bypass_firewall(root, 0);<br>decrypt_mainframe(buf);<br>ACCESS GRANTED_<\/small>'),\r\n    html:'<div class=\"ps-scr ps-hack\"><pre><span data-out><\/span><span class=\"ps-cur\"><\/span><\/pre><\/div>',\r\n    start:function(el){\r\n      var out = el.querySelector('[data-out]'), pos = 0, typed = 0, last = 0, popup = null;\r\n      function type(k){\r\n        for (var i = 0; i < k; i++){ out.textContent += HACK_SRC[pos]; pos = (pos + 1) % HACK_SRC.length; }\r\n        if (out.textContent.length > 5000) out.textContent = out.textContent.slice(-4000);\r\n        typed += k;\r\n        if (typed > 700 && !popup){ typed = 0; var ok = Math.random() < .7;\r\n          popup = document.createElement('div'); popup.className = 'ps-granted' + (ok ? '' : ' no'); popup.textContent = ok ? 'ACCESS GRANTED' : 'ACCESS DENIED';\r\n          el.appendChild(popup); beep(ok ? 1200 : 180, .5, ok ? 'sine' : 'sawtooth', .08);\r\n          after(function(){ popup.remove(); popup = null; }, 2000); }\r\n      }\r\n      onKey(function(e){ if (e.key === 'Escape') return; if (e.key.length === 1 || e.key === 'Enter' || e.key === 'Backspace') e.preventDefault(); last = Date.now(); type(3 + (Math.random() * 4 | 0)); });\r\n      el.addEventListener('pointerdown', function(){ last = Date.now(); type(8); });\r\n      every(function(){ if (Date.now() - last > 1500) type(1); }, 45);\r\n    }\r\n  },\r\n  {\r\n    id:'matrix', cat:'hacker', name:'Digital Rain', desc:'Green code waterfall that takes over the whole screen.',\r\n    thumb: th('#000','#22ff66','<small style=\"font-family:monospace;letter-spacing:4px\">\u30a2 1 \u30ab 0 \u30b5<br>7 \u30bf F \u30ca 3<br>\u30cf 0 \u30de \u30e4 1<\/small>','text-shadow:0 0 8px #22ff66'),\r\n    html:'<div class=\"ps-scr ps-canvas\" style=\"background:#000\"><canvas><\/canvas><\/div>',\r\n    start:function(el){\r\n      var c = el.querySelector('canvas'), x = c.getContext('2d'), fs = 18, cols, drops;\r\n      var ch = '\u30a2\u30a4\u30a6\u30a8\u30aa\u30ab\u30ad\u30af\u30b1\u30b3\u30b5\u30b7\u30b9\u30bb\u30bd\u30bf\u30c1\u30c4\u30c6\u30c8\u30ca\u30cb\u30cc\u30cd\u30ce\u30cf\u30d2\u30d5\u30d8\u30db\u30de\u30df\u30e0\u30e1\u30e2\u30e4\u30e6\u30e8\u30e9\u30ea\u30eb\u30ec\u30ed\u30ef0123456789ABCDEF'.split('');\r\n      function setup(){ fit(c); cols = Math.ceil(c.width \/ fs); drops = []; for (var i = 0; i < cols; i++) drops.push(rnd(-60, 0)); x.fillStyle = '#000'; x.fillRect(0, 0, c.width, c.height); }\r\n      setup(); onResize(setup);\r\n      every(function(){\r\n        x.fillStyle = 'rgba(0,0,0,.07)'; x.fillRect(0, 0, c.width, c.height); x.font = fs + 'px monospace';\r\n        for (var i = 0; i < cols; i++){\r\n          var y = drops[i] * fs; x.fillStyle = Math.random() < .04 ? '#e6ffe9' : '#1fff5e';\r\n          x.fillText(pick(ch), i * fs, y);\r\n          if (y > c.height && Math.random() > .975) drops[i] = 0; drops[i]++;\r\n        }\r\n      }, 45);\r\n    }\r\n  },\r\n  {\r\n    id:'cracked', cat:'fun', name:'Cracked Screen', desc:'The screen \u201cshatters\u201d with a glass sound. Every click adds another crack.',\r\n    thumb: th('linear-gradient(135deg,#0b1a4a,#4a7dff)','#fff','<svg width=\"110\" height=\"90\" viewBox=\"0 0 110 90\" fill=\"none\" stroke=\"#fff\" stroke-width=\"1.2\"><path d=\"M55 45L5 10M55 45L100 5M55 45L108 60M55 45L70 88M55 45L10 80M55 45L30 0M55 45L0 50\"\/><path d=\"M45 38L62 36L66 50L52 56L42 50Z\"\/><\/svg>'),\r\n    html: deskHTML('<canvas style=\"position:absolute;inset:0;width:100%;height:100%;z-index:5\"><\/canvas>'),\r\n    start:function(el){\r\n      startClock(el);\r\n      var c = el.querySelector('canvas'), x; fit(c); x = c.getContext('2d');\r\n      function hit(px, py){ drawCrack(x, px, py, Math.max(c.width, c.height) * rnd(.45, .8)); noise(.5, .45); el.classList.remove('ps-shake'); void el.offsetWidth; el.classList.add('ps-shake'); }\r\n      after(function(){ hit(c.width * rnd(.3, .7), c.height * rnd(.3, .7)); }, 700);\r\n      c.addEventListener('pointerdown', function(e){ var r = c.getBoundingClientRect(); hit(e.clientX - r.left, e.clientY - r.top); });\r\n    }\r\n  },\r\n  {\r\n    id:'bugs', cat:'fun', name:'Bugs on Screen', desc:'Spiders and ants crawl across the desktop. Squish one and two more appear!',\r\n    thumb: th('linear-gradient(135deg,#0b1a4a,#4a7dff)','#fff','<span style=\"font-size:2rem\">\ud83d\udd77\ufe0f \ud83d\udc1c<\/span><small>\u2026they multiply<\/small>'),\r\n    html: deskHTML(),\r\n    start:function(el){\r\n      startClock(el); var bugs = [];\r\n      function spawn(){\r\n        if (bugs.length >= 40) return;\r\n        var b = document.createElement('div'); b.className = 'ps-bug'; b.textContent = Math.random() < .5 ? '\ud83d\udd77\ufe0f' : '\ud83d\udc1c';\r\n        var s = { el:b, x:rnd(0, el.clientWidth), y:rnd(0, el.clientHeight), a:rnd(0, 6.28), v:rnd(.6, 2.2), pause:0 };\r\n        b.addEventListener('pointerdown', function(e){ e.stopPropagation(); if (b.classList.contains('dead')) return;\r\n          b.textContent = '\ud83d\udca5'; b.classList.add('dead'); bugs.splice(bugs.indexOf(s), 1); noise(.12, .3);\r\n          setTimeout(function(){ b.remove(); }, 400); spawn(); spawn(); });\r\n        el.appendChild(b); bugs.push(s);\r\n      }\r\n      for (var i = 0; i < 3; i++) spawn();\r\n      every(spawn, 2500);\r\n      loop(function(){\r\n        var W = el.clientWidth, H = el.clientHeight;\r\n        bugs.forEach(function(s){\r\n          if (s.pause > 0){ s.pause--; return; }\r\n          if (Math.random() < .008) s.pause = 40 + (Math.random() * 60 | 0);\r\n          s.a += rnd(-.25, .25); s.x += Math.cos(s.a) * s.v; s.y += Math.sin(s.a) * s.v;\r\n          if (s.x < 0 || s.x > W){ s.a = Math.PI - s.a; s.x = Math.max(0, Math.min(W, s.x)); }\r\n          if (s.y < 0 || s.y > H){ s.a = -s.a; s.y = Math.max(0, Math.min(H, s.y)); }\r\n          s.el.style.transform = 'translate(' + s.x + 'px,' + s.y + 'px) rotate(' + (s.a + Math.PI \/ 2) + 'rad)';\r\n        });\r\n      });\r\n    }\r\n  },\r\n  {\r\n    id:'static', cat:'fun', name:'No Signal', desc:'Old-TV static noise with a bouncing \u201cNO SIGNAL\u201d box.',\r\n    thumb: th('repeating-linear-gradient(0deg,#888 0 2px,#333 2px 4px,#bbb 4px 5px)','#fff','<span style=\"background:#000;padding:4px 10px;border:2px solid #fff;font-family:monospace;letter-spacing:3px\">NO SIGNAL<\/span>'),\r\n    html:'<div class=\"ps-scr ps-canvas ps-static\"><canvas><\/canvas><div class=\"ps-nosig\">NO SIGNAL<\/div><\/div>',\r\n    start:function(el){\r\n      var c = el.querySelector('canvas'), x = c.getContext('2d'); c.width = 400; c.height = 225;\r\n      var img = x.createImageData(400, 225), b = el.querySelector('.ps-nosig'), bx = 40, by = 40, vx = 2.2, vy = 1.7;\r\n      loop(function(){\r\n        var d = img.data; for (var i = 0; i < d.length; i += 4){ var v = Math.random() * 255 | 0; d[i] = d[i+1] = d[i+2] = v; d[i+3] = 255; }\r\n        x.putImageData(img, 0, 0);\r\n        var W = el.clientWidth - b.offsetWidth, H = el.clientHeight - b.offsetHeight;\r\n        bx += vx; by += vy; if (bx < 0 || bx > W) vx *= -1; if (by < 0 || by > H) vy *= -1;\r\n        bx = Math.max(0, Math.min(W, bx)); by = Math.max(0, Math.min(H, by));\r\n        b.style.transform = 'translate(' + bx + 'px,' + by + 'px)';\r\n      });\r\n    }\r\n  },\r\n  {\r\n    id:'glitch', cat:'hacker', name:'System Glitch', desc:'Corrupted display with RGB-split text and flickering color bars.',\r\n    thumb: th('#050505','#fff','<span style=\"font-weight:900;font-size:1.3rem;text-shadow:3px 0 #ff0040,-3px 0 #00e5ff\">SYSTEM FAILURE<\/span>'),\r\n    html:'<div class=\"ps-scr ps-glitch\"><div class=\"ps-gtext\" data-t=\"SYSTEM FAILURE\">SYSTEM FAILURE<\/div><div class=\"ps-gsub\">DISPLAY DRIVER CORRUPTED \u00b7 0xC000021A<\/div><\/div>',\r\n    start:function(el){\r\n      var colors = ['#ff0040','#00e5ff','#00ff6a','#ffffff','#ff00ff','#ffee00'];\r\n      every(function(){\r\n        var k = 1 + (Math.random() * 4 | 0);\r\n        for (var i = 0; i < k; i++){\r\n          var b = document.createElement('div'); b.className = 'ps-gbar';\r\n          b.style.top = rnd(0, 100) + '%'; b.style.height = rnd(2, 40) + 'px'; b.style.background = pick(colors); b.style.opacity = rnd(.3, .9);\r\n          b.style.transform = 'translateX(' + rnd(-30, 30) + 'px)'; el.appendChild(b);\r\n          setTimeout(function(n){ return function(){ n.remove(); }; }(b), rnd(60, 220));\r\n        }\r\n        if (Math.random() < .3){ el.style.filter = 'invert(1) hue-rotate(' + (Math.random() * 360 | 0) + 'deg)'; setTimeout(function(){ el.style.filter = ''; }, 80); noise(.08, .2); }\r\n      }, 260);\r\n    }\r\n  },\r\n  {\r\n    id:'selfdestruct', cat:'fun', name:'Self-Destruct', desc:'A 10-second countdown with alarms\u2026 then a big \u201cjust kidding\u201d.',\r\n    thumb: th('radial-gradient(circle,#3a0000,#000)','#ff2a2a','<small style=\"letter-spacing:2px\">SELF-DESTRUCT<\/small><span style=\"font-size:2.6rem;font-family:monospace\">07<\/span>'),\r\n    html:'<div class=\"ps-scr ps-sd\"><h2>\u26a0 SELF-DESTRUCT SEQUENCE ACTIVATED \u26a0<\/h2><div class=\"n\" data-n>10<\/div><p>DEVICE WILL BE DESTROYED IN T-MINUS<\/p><\/div>',\r\n    start:function(el){\r\n      var n = 10, ne = el.querySelector('[data-n]');\r\n      beep(880, .25);\r\n      var id = every(function(){\r\n        n--; ne.textContent = n < 10 ? '0' + n : n; ne.classList.remove('pulse'); void ne.offsetWidth; ne.classList.add('pulse'); beep(n <= 3 ? 1200 : 880, .25);\r\n        if (n <= 0){ clearInterval(id);\r\n          el.insertAdjacentHTML('beforeend', '<div class=\"ps-flash\"><\/div>'); el.classList.add('ps-quake'); noise(1.4, .6);\r\n          after(function(){ showReveal('\ud83d\udca5\ud83d\ude1c', 'BOOM\u2026 just kidding!', 'Your device is perfectly fine. You\\'ve been pranked.'); }, 1300);\r\n        }\r\n      }, 1000);\r\n    }\r\n  }\r\n  ,{\r\n    id:'popups', cat:'windows', name:'Popup Storm', desc:'Error boxes keep multiplying. Clicking OK only makes two more appear.', isNew:true,\r\n    thumb: th('linear-gradient(135deg,#0b1a4a,#4a7dff)','#111','<div style=\"position:relative;width:150px;height:90px\">'+[0,1,2,3].map(function(i){return '<div style=\"position:absolute;left:'+i*14+'px;top:'+i*12+'px;width:100px;background:#f0f0f0;border:1px solid #888;font-size:.6rem;font-weight:400;text-align:left;padding:3px 5px\">\u26d4 Error<\/div>';}).join('')+'<\/div>'),\r\n    html: deskHTML(),\r\n    start:function(el){\r\n      startClock(el); var n=0;\r\n      var msgs=['An unexpected error has occurred.','Error: the operation completed successfully.','Not enough memory to display this error.','Keyboard not found. Press F1 to continue.','Task failed successfully.','Something happened.','Error: no error found.','Please wait while we create more errors.'];\r\n      function pop(){\r\n        if(n>=250) return; n++;\r\n        var W=el.clientWidth,H=el.clientHeight-48,d=document.createElement('div'); d.className='ps-err';\r\n        d.style.left=rnd(0,Math.max(0,W-300))+'px'; d.style.top=rnd(0,Math.max(0,H-130))+'px';\r\n        d.innerHTML='<div class=\"t\"><span>Error<\/span><span>\u2715<\/span><\/div><div class=\"b\"><span class=\"i\">\u26d4<\/span><span>'+pick(msgs)+'<\/span><\/div><div class=\"f\"><button>OK<\/button><\/div>';\r\n        d.querySelector('button').addEventListener('click',function(e){ e.stopPropagation(); d.remove(); pop(); pop(); });\r\n        el.appendChild(d); beep(pick([660,520,780]),.12,'triangle',.05);\r\n      }\r\n      pop(); every(pop,400);\r\n    }\r\n  },\r\n  {\r\n    id:'boot', cat:'windows', name:'Boot Loop', desc:'BIOS self-test, memory check\u2026 \u201cno boot device\u201d \u2014 then it restarts again. Forever.', isNew:true,\r\n    thumb: th('#000','#c0c0c0','<small style=\"font-family:monospace;text-align:left\">Memory Test : 16384M OK<br>Detecting drives\u2026<br><span style=\"color:#fff\">Reboot and select proper boot device<\/span><\/small>'),\r\n    html:'<div class=\"ps-scr ps-dos\"><\/div>',\r\n    start:function(el){\r\n      var lines=['UEFI BIOS v2.17   (C) 2026 Generic Firmware Inc.','','CPU  : 8-Core Processor @ 3.60GHz','Speed: 3600 MHz','',null,'','USB Device(s): 1 Keyboard, 1 Mouse','Detecting SATA drives...','  SATA Port 0: None','  SATA Port 1: None','Detecting NVMe drives...','  NVMe 0: Not detected','','Press DEL to run Setup',''];\r\n      function cycle(){\r\n        el.innerHTML='<span data-t><\/span><span class=\"ps-cur\"><\/span>';\r\n        var t=el.querySelector('[data-t]'),memSpan=null,mem=0,i=0; beep(1000,.12,'square',.04);\r\n        var id=every(function(){\r\n          if(i>=lines.length){ clearInterval(id);\r\n            t.appendChild(document.createTextNode('Reboot and Select proper Boot device\\nor Insert Boot Media in selected Boot device and press a key'));\r\n            beep(220,.5,'square',.05); after(function(){ el.innerHTML=''; after(cycle,1500); },4500); return; }\r\n          if(lines[i]===null){ if(!memSpan){ memSpan=document.createElement('span'); t.appendChild(memSpan); }\r\n            mem=Math.min(16384,mem+512); memSpan.textContent='Memory Test : '+mem+'M'; if(mem>=16384){ memSpan.textContent+=' OK\\n'; i++; } return; }\r\n          t.appendChild(document.createTextNode(lines[i]+'\\n')); i++;\r\n        },120);\r\n      }\r\n      after(cycle,600);\r\n    }\r\n  },\r\n  {\r\n    id:'loading', cat:'fun', name:'Endless Loading', desc:'A loading screen with ever-sillier messages that never finishes.', isNew:true,\r\n    thumb: th('#f4f5f8','#333','<span style=\"width:34px;height:34px;border:4px solid #d6dbe8;border-top-color:#6d8bff;border-radius:50%;display:inline-block;margin-bottom:8px\"><\/span><small>Downloading more RAM\u2026<\/small>'),\r\n    html:'<div class=\"ps-scr ps-load\"><div class=\"ring\"><\/div><h2>Please wait<\/h2><p data-m><\/p><div class=\"bar\"><div data-b><\/div><\/div><small data-p>0%<\/small><\/div>',\r\n    start:function(el){\r\n      var M=['Counting all the pixels\u2026','Asking the hamsters to run faster\u2026','Untangling the cables\u2026','Downloading more RAM\u2026','Convincing the CPU to cooperate\u2026','Teaching the fan to spin backwards\u2026','Polishing the bits\u2026','Almost there\u2026 (not really)','Looking for the any key\u2026','Reheating the coffee\u2026','Still loading. Have you tried blinking?','Waiting for the internet to load\u2026'];\r\n      var m=el.querySelector('[data-m]'),b=el.querySelector('[data-b]'),pp=el.querySelector('[data-p]'),p=0,i=0;\r\n      m.textContent=M[0];\r\n      every(function(){ i=(i+1)%M.length; m.textContent=M[i]; },2600);\r\n      every(function(){ p+= p<90? rnd(.5,3) : rnd(0,.15); if(p>=99.9){ p=rnd(10,40); } b.style.width=p+'%'; pp.textContent=p.toFixed(p>90?1:0)+'%'; },300);\r\n    }\r\n  },\r\n  {\r\n    id:'runaway', cat:'fun', name:'Runaway Button', desc:'\u201cClick OK to cancel the restart\u201d \u2014 but the button keeps running away.', isNew:true,\r\n    thumb: th('#e9edf3','#111','Click OK to cancel<div style=\"margin-top:10px;margin-left:80px;background:#0078d7;color:#fff;padding:3px 16px;border-radius:4px;font-size:.8rem\">OK \ud83c\udfc3<\/div>'),\r\n    html:'<div class=\"ps-scr ps-run\"><div class=\"ps-run-box\"><h2>\u26a0 Restart in <span data-s>60<\/span> s<\/h2><p data-m>Your computer will restart to finish installing important updates. Click OK to cancel.<\/p><\/div><button class=\"ps-run-btn\">OK<\/button><\/div>',\r\n    start:function(el){\r\n      var b=el.querySelector('.ps-run-btn'),m=el.querySelector('[data-m]'),sEl=el.querySelector('[data-s]'),sec=60,tries=0,bx=0,by=0;\r\n      var lines=['Nope \ud83d\ude1c','Too slow!','Almost had it\u2026','Try again!','Are you even trying?','So close!','Catch me if you can!','Hehe \ud83c\udfc3'];\r\n      function place(x,y){ bx=x; by=y; b.style.transform='translate('+x+'px,'+y+'px)'; }\r\n      place(el.clientWidth\/2-b.offsetWidth\/2, el.clientHeight\/2+60);\r\n      function flee(){ place(rnd(0,el.clientWidth-b.offsetWidth), rnd(0,el.clientHeight-b.offsetHeight)); tries++; m.textContent=pick(lines)+' (attempt '+tries+')'; beep(rnd(500,900),.06,'sine',.04); }\r\n      el.addEventListener('pointermove',function(e){ if(Math.hypot(e.clientX-bx-b.offsetWidth\/2,e.clientY-by-b.offsetHeight\/2)<110) flee(); });\r\n      b.addEventListener('pointerdown',function(e){ e.preventDefault(); flee(); });\r\n      every(function(){ sec=sec>0?sec-1:60; sEl.textContent=sec; },1000);\r\n    }\r\n  },\r\n  {\r\n    id:'flip', cat:'fun', name:'Upside-Down Screen', desc:'The desktop wobbles, spins around and ends up upside down.', isNew:true,\r\n    thumb: th('linear-gradient(135deg,#4a7dff,#0b1a4a)','#fff','<span style=\"display:inline-block;transform:rotate(180deg);font-size:1.6rem\">\ud83d\udda5\ufe0f<\/span><small style=\"display:inline-block;transform:rotate(180deg)\">Upside down!<\/small>'),\r\n    html: deskHTML(),\r\n    start:function(el){ startClock(el); el.style.transition='transform 3s cubic-bezier(.6,-.3,.4,1.3)'; after(function(){ el.style.transform='rotate(180deg)'; noise(.3,.15); },1200); }\r\n  },\r\n  {\r\n    id:'melt', cat:'fun', name:'Melting Screen', desc:'The desktop starts dripping and slowly melts away into darkness.', isNew:true,\r\n    thumb: th('linear-gradient(180deg,#4a7dff 0%,#7b4dff 55%,#000 100%)','#fff','<span style=\"font-size:1.6rem\">\ud83e\udee0<\/span><small>drip\u2026 drip\u2026<\/small>'),\r\n    html:'<div class=\"ps-scr ps-canvas\" style=\"background:#000\"><canvas><\/canvas><\/div>',\r\n    start:function(el){\r\n      var c=el.querySelector('canvas'),x=c.getContext('2d'); fit(c); var W=c.width,H=c.height;\r\n      var g=x.createLinearGradient(0,0,W,H); g.addColorStop(0,'#0b1a4a'); g.addColorStop(.6,'#123a8a'); g.addColorStop(1,'#0b1a4a'); x.fillStyle=g; x.fillRect(0,0,W,H);\r\n      [['#7b4dff',.3,.4],['#4a7dff',.7,.6]].forEach(function(r){ var rg=x.createRadialGradient(W*r[1],H*r[2],0,W*r[1],H*r[2],Math.max(W,H)*.45); rg.addColorStop(0,r[0]); rg.addColorStop(1,'rgba(0,0,0,0)'); x.fillStyle=rg; x.fillRect(0,0,W,H); });\r\n      x.textAlign='center';\r\n      DESK_ICONS.forEach(function(ic,i){ x.font='38px sans-serif'; x.fillText(ic[0],56,64+i*100); x.font='13px sans-serif'; x.fillStyle='#fff'; x.fillText(ic[1],56,88+i*100); });\r\n      x.fillStyle='rgba(22,26,40,.95)'; x.fillRect(0,H-48,W,48);\r\n      x.fillStyle='#fff'; x.font='bold 13px sans-serif'; x.textAlign='right'; x.fillText(new Date().toLocaleTimeString([],{hour:'2-digit',minute:'2-digit'}),W-14,H-20);\r\n      var cw=6,cols=Math.ceil(W\/cw),sp=[],ph=rnd(0,6); for(var i=0;i<cols;i++) sp.push(.25+.75*Math.abs(Math.sin(i*.05+ph))*rnd(.7,1));\r\n      after(function(){ loop(function(){\r\n        for(var k=0;k<cols\/3;k++){ var i=Math.random()*cols|0, dy=Math.ceil(sp[i]*rnd(1,4));\r\n          x.drawImage(c,i*cw,0,cw,H-dy,i*cw,dy,cw,H-dy); x.fillStyle='#000'; x.fillRect(i*cw,0,cw,dy); }\r\n      }); },1500);\r\n    }\r\n  },\r\n  {\r\n    id:'gravity', cat:'fun', name:'Gravity Desktop', desc:'All the desktop icons suddenly fall to the bottom. Click one to toss it back up.', isNew:true,\r\n    thumb: th('linear-gradient(135deg,#0b1a4a,#4a7dff)','#fff','<span style=\"font-size:1.5rem;margin-top:44px\">\ud83d\udcc1<span style=\"display:inline-block;transform:rotate(-25deg)\">\ud83d\uddd1\ufe0f<\/span><span style=\"display:inline-block;transform:rotate(35deg)\">\ud83d\udcbb<\/span>\ud83d\udcdd<\/span>'),\r\n    html: deskHTML(),\r\n    start:function(el){\r\n      startClock(el);\r\n      after(function(){\r\n        var bodies=[];\r\n        el.querySelectorAll('.ps-icon').forEach(function(ic){ var r=ic.getBoundingClientRect(); bodies.push({el:ic,x:r.left,y:r.top,w:r.width,h:r.height,vx:rnd(-2,2),vy:rnd(-3,0),a:0,va:rnd(-4,4)}); });\r\n        bodies.forEach(function(b){ el.appendChild(b.el); b.el.style.position='absolute'; b.el.style.left='0'; b.el.style.top='0'; b.el.style.zIndex='2';\r\n          b.el.addEventListener('pointerdown',function(){ b.vy=-rnd(14,22); b.vx=rnd(-10,10); b.va=rnd(-15,15); beep(300,.08,'sine',.04); }); });\r\n        noise(.2,.15);\r\n        loop(function(){ var W=el.clientWidth,floor=el.clientHeight-48;\r\n          bodies.forEach(function(b){ b.vy+=.6; b.x+=b.vx; b.y+=b.vy; b.a+=b.va;\r\n            if(b.y+b.h>floor){ b.y=floor-b.h; b.vy*=-.45; b.vx*=.85; b.va*=.7; if(Math.abs(b.vy)<1) b.vy=0; }\r\n            if(b.x<0){ b.x=0; b.vx*=-.6; } if(b.x+b.w>W){ b.x=W-b.w; b.vx*=-.6; }\r\n            b.el.style.transform='translate('+b.x+'px,'+b.y+'px) rotate('+b.a+'deg)'; });\r\n        });\r\n      },1500);\r\n    }\r\n  },\r\n  {\r\n    id:'fly', cat:'fun', name:'Annoying Fly', desc:'A buzzing fly lands on the screen and dodges every attempt to swat it.', isNew:true,\r\n    thumb: th('linear-gradient(135deg,#0b1a4a,#4a7dff)','#fff','<span style=\"font-size:2rem\">\ud83e\udeb0<\/span><small>bzzzz\u2026<\/small>'),\r\n    html: deskHTML('<div class=\"ps-fly\">\ud83e\udeb0<\/div><div class=\"ps-miss\" data-miss><\/div>'),\r\n    start:function(el){\r\n      startClock(el);\r\n      var f=el.querySelector('.ps-fly'),miss=el.querySelector('[data-miss]'),x=el.clientWidth\/2,y=el.clientHeight\/2,vx=0,vy=0,rest=0,mx=-999,my=-999,n=0;\r\n      var a=ac(),osc,lfo,g;\r\n      if(a){ osc=a.createOscillator(); osc.type='sawtooth'; osc.frequency.value=210; lfo=a.createOscillator(); lfo.frequency.value=28;\r\n        var lg=a.createGain(); lg.gain.value=25; lfo.connect(lg); lg.connect(osc.frequency);\r\n        g=a.createGain(); g.gain.value=0; osc.connect(g); g.connect(a.destination); osc.start(); lfo.start();\r\n        cleanups.push(function(){ try{ osc.stop(); lfo.stop(); }catch(e){} }); }\r\n      el.addEventListener('pointermove',function(e){ mx=e.clientX; my=e.clientY; });\r\n      el.addEventListener('pointerdown',function(e){ n++; miss.textContent=pick(['Missed!','Too slow!','Nope!','Ha!','Bzzz \ud83d\ude1c'])+' \u00d7'+n;\r\n        miss.style.left=e.clientX+'px'; miss.style.top=e.clientY+'px'; miss.classList.remove('show'); void miss.offsetWidth; miss.classList.add('show');\r\n        rest=0; vx=rnd(-14,14); vy=rnd(-14,14); });\r\n      loop(function(){\r\n        var W=el.clientWidth,H=el.clientHeight,d=Math.hypot(mx-x,my-y)||1;\r\n        if(d<140){ rest=0; vx+=(x-mx)\/d*2.5; vy+=(y-my)\/d*2.5; }\r\n        if(rest>0){ rest--; vx*=.5; vy*=.5; } else { vx+=rnd(-1.2,1.2); vy+=rnd(-1.2,1.2); if(Math.random()<.004) rest=rnd(60,200)|0; }\r\n        var sp=Math.hypot(vx,vy); if(sp>12){ vx*=12\/sp; vy*=12\/sp; }\r\n        x+=vx; y+=vy;\r\n        if(x<20||x>W-20){ vx*=-1; x=Math.max(20,Math.min(W-20,x)); } if(y<20||y>H-20){ vy*=-1; y=Math.max(20,Math.min(H-20,y)); }\r\n        f.style.transform='translate('+x+'px,'+y+'px) rotate('+(Math.atan2(vy,vx)*57.3+90)+'deg)';\r\n        if(g) g.gain.setTargetAtTime(rest>0?0:Math.min(.05,.01+sp*.004),a.currentTime,.05);\r\n      });\r\n    }\r\n  },\r\n  {\r\n    id:'ghost', cat:'fun', name:'Ghost Typing', desc:'A Notepad window opens and starts typing spooky messages all by itself.', isNew:true,\r\n    thumb: th('linear-gradient(135deg,#0b1a4a,#4a7dff)','#111','<div style=\"background:#fff;width:150px;text-align:left;font:400 .65rem monospace;border-radius:4px;overflow:hidden\"><div style=\"background:#eee;padding:3px 6px\">Untitled - Notepad<\/div><div style=\"padding:6px\">Hello?<br>I can see you\u2026 \ud83d\udc7b<\/div><\/div>'),\r\n    html: deskHTML('<div class=\"ps-np\"><div class=\"ps-np-t\"><span>\ud83d\udcdd Untitled - Notepad<\/span><span>\u2014&nbsp;&nbsp;\u25a2&nbsp;&nbsp;\u2715<\/span><\/div><div class=\"ps-np-m\">File&nbsp;&nbsp;&nbsp;Edit&nbsp;&nbsp;&nbsp;View<\/div><div class=\"ps-np-b\"><span data-t><\/span><span class=\"ps-cur\"><\/span><\/div><\/div>'),\r\n    start:function(el){\r\n      startClock(el);\r\n      var box=el.querySelector('.ps-np-b'),t=el.querySelector('[data-t]'),i=0;\r\n      var msg=Array.from('Hello?\\n\\nIs someone there?\\n\\n...\\n\\nI can see you reading this.\\n\\nNo, don\\'t look behind you.\\n\\n...\\n\\nWhy is your mouse not moving?\\n\\nI live inside your computer now.\\nIt\\'s quite cozy in here. Lots of cat pictures.\\n\\n...\\n\\nBOO! \ud83d\udc7b\\n\\nJust kidding. You\\'ve been pranked! \ud83d\ude1c');\r\n      function next(){ if(i>=msg.length) return; var ch=msg[i++]; t.textContent+=ch; box.scrollTop=box.scrollHeight;\r\n        if(ch!==' '&&ch!=='\\n') beep(rnd(1400,1800),.015,'square',.015);\r\n        after(next, ch==='\\n'?rnd(400,900):ch==='.'?rnd(250,500):rnd(40,160)); }\r\n      after(next,1500);\r\n    }\r\n  },\r\n  {\r\n    id:'battery', cat:'fun', name:'Battery Dying', desc:'Battery hits 1%, a shutdown countdown runs, then the screen goes completely dark.', isNew:true,\r\n    thumb: th('#000','#ff3b30','<span style=\"font-size:2rem\">\ud83e\udeab<\/span>1%<small style=\"color:#aaa\">Shutting down\u2026<\/small>'),\r\n    html:'<div class=\"ps-scr ps-bat\"><div class=\"cell\"><div class=\"lvl\"><\/div><\/div><h2>1%<\/h2><p>Battery critically low<\/p><p class=\"s\">Shutting down in <b data-s>15<\/b> seconds. Plug in your device now.<\/p><div class=\"off\"><\/div><\/div>',\r\n    start:function(el){ var s=15,se=el.querySelector('[data-s]'),off=el.querySelector('.off');\r\n      var id=every(function(){ s--; se.textContent=s; if(s<=5) beep(440,.1,'sine',.04); if(s<=0){ clearInterval(id); beep(180,.6,'sine',.05); off.classList.add('on'); } },1000); }\r\n  }\r\n\r\n  ];\r\n\r\n  var CATS = [['all','All'],['windows','Windows'],['mac','Mac'],['hacker','Hacker'],['fun','Fun']];\r\n\r\n  \/* ================= LAUNCHER UI ================= *\/\r\n  var grid = document.getElementById('ps-grid'), chips = document.getElementById('ps-chips'), search = document.getElementById('ps-search');\r\n  var goBtn = document.getElementById('ps-go'), selName = document.getElementById('ps-selname');\r\n  var curCat = 'all', selected = null;\r\n\r\n  document.getElementById('ps-count').textContent = '\ud83c\udfad ' + PRANKS.length + ' prank screens';\r\n\r\n  chips.innerHTML = CATS.map(function(c){\r\n    var n = c[0] === 'all' ? PRANKS.length : PRANKS.filter(function(p){ return p.cat === c[0]; }).length;\r\n    return '<button class=\"ps-chip' + (c[0] === 'all' ? ' on' : '') + '\" data-cat=\"' + c[0] + '\">' + c[1] + '<i>' + n + '<\/i><\/button>';\r\n  }).join('');\r\n  chips.addEventListener('click', function(e){\r\n    var b = e.target.closest('.ps-chip'); if (!b) return;\r\n    curCat = b.dataset.cat; chips.querySelectorAll('.ps-chip').forEach(function(x){ x.classList.toggle('on', x === b); }); render();\r\n  });\r\n  search.addEventListener('input', render);\r\n\r\n  function render(){\r\n    var q = search.value.trim().toLowerCase();\r\n    var list = PRANKS.filter(function(p){ return (curCat === 'all' || p.cat === curCat) && (!q || (p.name + ' ' + p.desc).toLowerCase().indexOf(q) > -1); });\r\n    grid.innerHTML = list.length ? list.map(function(p){\r\n      return '<div class=\"ps-card' + (selected === p.id ? ' sel' : '') + '\" data-id=\"' + p.id + '\">' + p.thumb +\r\n        '<h3>' + p.name + (p.isNew ? ' <span class=\"ps-new\">NEW<\/span>' : '') + '<\/h3><p>' + p.desc + '<\/p>' +\r\n        '<div class=\"ps-meta\"><span class=\"ps-tag\">' + p.cat + '<\/span><button class=\"ps-play\" title=\"Launch now\" data-play=\"' + p.id + '\">\u25b6<\/button><\/div><\/div>';\r\n    }).join('') : '<div class=\"ps-empty\">No pranks match your search \ud83e\udd37<\/div>';\r\n  }\r\n  grid.addEventListener('click', function(e){\r\n    var play = e.target.closest('[data-play]'); if (play){ select(play.dataset.play); launch(play.dataset.play); return; }\r\n    var card = e.target.closest('.ps-card'); if (card) select(card.dataset.id);\r\n  });\r\n  grid.addEventListener('dblclick', function(e){ var card = e.target.closest('.ps-card'); if (card) launch(card.dataset.id); });\r\n\r\n  function select(id){\r\n    selected = id; var p = PRANKS.filter(function(x){ return x.id === id; })[0];\r\n    selName.textContent = p ? p.name : 'None \u2014 pick a card'; goBtn.disabled = !p;\r\n    grid.querySelectorAll('.ps-card').forEach(function(c){ c.classList.toggle('sel', c.dataset.id === id); });\r\n  }\r\n  goBtn.addEventListener('click', function(){ if (selected) launch(selected); });\r\n  document.getElementById('ps-random').addEventListener('click', function(){ var p = pick(PRANKS); select(p.id); launch(p.id); });\r\n\r\n  \/* ================= RUN \/ EXIT ================= *\/\r\n  function fsEl(){ return document.fullscreenElement || document.webkitFullscreenElement; }\r\n  function enterFS(el){\r\n    var fn = el.requestFullscreen || el.webkitRequestFullscreen;\r\n    if (fn){ try { var r = fn.call(el); if (r && r.catch) r.catch(function(){}); } catch(e){} }\r\n  }\r\n  function launch(id){\r\n    var p = PRANKS.filter(function(x){ return x.id === id; })[0]; if (!p) return;\r\n    opts.sound = document.getElementById('o-sound').checked;\r\n    var delay = +document.getElementById('o-delay').value, reveal = +document.getElementById('o-reveal').value;\r\n    ac(); \/\/ unlock audio while we still have the user's click\r\n    clearAll();\r\n    stage.className = 'on' + (document.getElementById('o-cursor').checked ? ' ps-nocursor' : '');\r\n    document.documentElement.style.overflow = 'hidden';\r\n    if (!document.getElementById('o-nofs').checked) enterFS(stage);\r\n    function run(){\r\n      stage.innerHTML = p.html;\r\n      if (p.start) p.start(stage.firstElementChild);\r\n      if (reveal > 0 && p.id !== 'selfdestruct') after(function(){ showReveal(); }, reveal * 1000);\r\n    }\r\n    if (delay > 0){ stage.innerHTML = '<div class=\"ps-black\"><\/div>'; after(run, delay * 1000); } else run();\r\n  }\r\n  function showReveal(emoji, title, text){\r\n    if (!stage.classList.contains('on') || stage.querySelector('.ps-reveal')) return;\r\n    stage.insertAdjacentHTML('beforeend', '<div class=\"ps-reveal\"><div><div class=\"e\">' + (emoji || '\ud83d\ude1c') + '<\/div><h2>' + (title || 'Gotcha!') + '<\/h2><p>' +\r\n      (text || 'You\\'ve been pranked! Nothing is actually wrong with your device.') + '<\/p><small>Press Esc or tap here to exit<\/small><\/div><\/div>');\r\n    stage.querySelector('.ps-reveal').addEventListener('click', exitPrank);\r\n    beep(660, .12, 'sine'); setTimeout(function(){ beep(880, .2, 'sine'); }, 130);\r\n  }\r\n  function exitPrank(){\r\n    if (!stage.classList.contains('on')) return;\r\n    clearAll(); stage.className = ''; stage.innerHTML = '';\r\n    document.documentElement.style.overflow = '';\r\n    if (fsEl()){ var fn = document.exitFullscreen || document.webkitExitFullscreen; if (fn){ try { var r = fn.call(document); if (r && r.catch) r.catch(function(){}); } catch(e){} } }\r\n  }\r\n\r\n  document.addEventListener('keydown', function(e){ if (e.key === 'Escape') exitPrank(); });\r\n  ['fullscreenchange','webkitfullscreenchange'].forEach(function(ev){ document.addEventListener(ev, function(){ if (!fsEl()) exitPrank(); }); });\r\n\r\n  \/\/ Secret exit: 3 quick taps\/clicks in the top-right corner (useful on phones without Esc)\r\n  var taps = [];\r\n  stage.addEventListener('pointerdown', function(e){\r\n    if (e.clientX < window.innerWidth - 90 || e.clientY > 90) return;\r\n    var now = Date.now(); taps = taps.filter(function(t){ return now - t < 1200; }); taps.push(now);\r\n    if (taps.length >= 3){ taps = []; exitPrank(); }\r\n  }, true);\r\n\r\n  render();\r\n})();\r\n<\/script>\r\n<\/body>\r\n<\/html><\/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 style=\"text-align: left;\" data-start=\"470\" data-end=\"535\"><strong data-start=\"473\" data-end=\"535\">Prank Screen Simulator \u2013 The Fun Way to Troll Your Friends<\/strong><\/h1>\n<p data-start=\"537\" data-end=\"759\">Looking for a harmless but hilarious way to prank your friends or coworkers?<br data-start=\"613\" data-end=\"616\" \/><strong data-start=\"616\" data-end=\"642\">Prank Screen Simulator<\/strong> lets you fake system screens like updates, crashes, or loading errors \u2014 so realistic that anyone will fall for it!<\/p>\n<h2 data-start=\"766\" data-end=\"807\">\ud83c\udfad <strong data-start=\"773\" data-end=\"807\">Simulate Any Screen in Seconds<\/strong><\/h2>\n<p data-start=\"808\" data-end=\"847\">With just one click, you can display:<\/p>\n<ul data-start=\"848\" data-end=\"1077\">\n<li data-start=\"848\" data-end=\"937\"><strong>Blue Screen of Death<\/strong><\/li>\n<li data-start=\"938\" data-end=\"973\"><strong>Virus Detected<\/strong><\/li>\n<li data-start=\"974\" data-end=\"1011\"><strong>Critical System Error<\/strong><\/li>\n<li data-start=\"1012\" data-end=\"1077\"><strong>Forced Update<\/strong><\/li>\n<li data-start=\"1012\" data-end=\"1077\"><strong>Fake Desktop<\/strong><\/li>\n<li data-start=\"1012\" data-end=\"1077\"><strong>Deleting Files<\/strong><\/li>\n<\/ul>\n<p data-start=\"1079\" data-end=\"1201\">Simply choose your prank, hit <strong data-start=\"1109\" data-end=\"1123\">Fullscreen<\/strong>, and watch your victim panic \u2014 while you laugh quietly in the background \ud83d\ude06<\/p>\n<h2 data-start=\"1208\" data-end=\"1250\">\ud83d\udcbb <strong data-start=\"1215\" data-end=\"1250\">Perfect for Fun at Work or Home<\/strong><\/h2>\n<ul data-start=\"1251\" data-end=\"1463\">\n<li data-start=\"1251\" data-end=\"1299\">\n<p data-start=\"1253\" data-end=\"1299\">Prank your <strong data-start=\"1264\" data-end=\"1277\">coworkers<\/strong> during office hours<\/p>\n<\/li>\n<li data-start=\"1300\" data-end=\"1356\">\n<p data-start=\"1302\" data-end=\"1356\">Make <strong data-start=\"1307\" data-end=\"1332\">funny reaction videos<\/strong> for YouTube or TikTok<\/p>\n<\/li>\n<li data-start=\"1357\" data-end=\"1416\">\n<p data-start=\"1359\" data-end=\"1416\"><strong data-start=\"1359\" data-end=\"1376\">Teach or demo<\/strong> how to handle system crashes (safely)<\/p>\n<\/li>\n<li data-start=\"1417\" data-end=\"1463\">\n<p data-start=\"1419\" data-end=\"1463\">Lighten up a boring day with a quick laugh<\/p>\n<\/li>\n<\/ul>\n<h2 data-start=\"1470\" data-end=\"1493\">\u2699\ufe0f <strong data-start=\"1477\" data-end=\"1493\">Key Features<\/strong><\/h2>\n<p data-start=\"1494\" data-end=\"1730\">\u2705 Easy-to-use \u2014 just open and click<br data-start=\"1529\" data-end=\"1532\" \/>\u2705 Works <strong data-start=\"1540\" data-end=\"1568\">directly in your browser<\/strong> (no install required)<br data-start=\"1590\" data-end=\"1593\" \/>\u2705 Includes <strong data-start=\"1604\" data-end=\"1647\">Windows, macOS, Linux, Android, and iOS<\/strong> styles<br data-start=\"1654\" data-end=\"1657\" \/>\u2705 <strong data-start=\"1659\" data-end=\"1678\">Fullscreen mode<\/strong> for maximum realism<br data-start=\"1698\" data-end=\"1701\" \/>\u2705 100% <strong data-start=\"1708\" data-end=\"1728\">free and ad-free<\/strong><\/p>\n<h2 data-start=\"1737\" data-end=\"1758\">\ud83d\udd12 <strong data-start=\"1744\" data-end=\"1758\">Disclaimer<\/strong><\/h2>\n<p data-start=\"1759\" data-end=\"1891\">This tool is meant <strong data-start=\"1778\" data-end=\"1813\">for entertainment purposes only<\/strong>.<br data-start=\"1814\" data-end=\"1817\" \/>Please use it responsibly and <strong data-start=\"1847\" data-end=\"1888\">avoid disrupting real work or systems<\/strong>.<\/p>\n<h2 data-start=\"1898\" data-end=\"1923\">\ud83e\udde9 <strong data-start=\"1905\" data-end=\"1923\">Final Thoughts<\/strong><\/h2>\n<p data-start=\"1924\" data-end=\"2139\">If you love harmless fun and want to surprise your friends with something clever,<br data-start=\"2005\" data-end=\"2008\" \/>the <strong data-start=\"2012\" data-end=\"2038\">Prank Screen Simulator<\/strong> is your best choice.<br data-start=\"2059\" data-end=\"2062\" \/>Try it now \u2014 and see who keeps their cool when the \u201csystem update\u201d hits! \ud83d\ude04<\/p>\n<\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":6514,"parent":4298,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-6507","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":"prank-screen-simulator","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":"Prank Screen Simulator \u2013 Fake Error &amp; Update Screens","description":"Prank Screen Simulator lets you create fake Windows updates, system errors, or loading screens to prank friends and coworkers in a fun, realistic way.","focusKeywords":"Prank Screen Simulator","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":6507,"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%2Ffi%2Fwp-json%2Fwp%2Fv2%2Fpages%2F6507%3Fnonce%3D064cc9b4da","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\/6507","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=6507"}],"version-history":[{"count":11,"href":"https:\/\/www.ezcalculatoronline.com\/wp-json\/wp\/v2\/pages\/6507\/revisions"}],"predecessor-version":[{"id":10719,"href":"https:\/\/www.ezcalculatoronline.com\/wp-json\/wp\/v2\/pages\/6507\/revisions\/10719"}],"up":[{"embeddable":true,"href":"https:\/\/www.ezcalculatoronline.com\/wp-json\/wp\/v2\/pages\/4298"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ezcalculatoronline.com\/wp-json\/wp\/v2\/media\/6514"}],"wp:attachment":[{"href":"https:\/\/www.ezcalculatoronline.com\/wp-json\/wp\/v2\/media?parent=6507"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}