<!DOCTYPE html> <html lang="en-NZ"> <head> <script type="application/ld+json"> {
      "@context": "https://schema.org",
      "@graph": [
        {
          "@type": "Organization",
          "name": "Piñata Play Entertainment Limited",
          "url": "http://capability-unlimited.com",
          "contactPoint": {
            "@type": "ContactPoint",
            "email": "support@pinatasmashplay.com",
            "contactType": "customer support"
          }
        },
        {
          "@type": "WebApplication",
          "name": "Piñata Popper",
          "applicationCategory": "GameApplication",
          "genre": "Social Casino Slots",
          "offers": { "@type": "Offer", "price": "0", "priceCurrency": "NZD" }
        },
        {
          "@type": "WebApplication",
          "name": "Plinko Fiesta",
          "applicationCategory": "GameApplication",
          "genre": "Social Casino Plinko",
          "offers": { "@type": "Offer", "price": "0", "priceCurrency": "NZD" }
        },
        {
          "@type": "WebApplication",
          "name": "Smash & Grab",
          "applicationCategory": "GameApplication",
          "genre": "Social Casino Mines",
          "offers": { "@type": "Offer", "price": "0", "priceCurrency": "NZD" }
        }
      ]
    } </script> <style>:root{--bg:#1a0b2e;--text:#fcf9ff;--primary:#ff0055;--secondary:#00e5ff;--accent:#ffea00;--surface:#2a1b40;--font-head:'Fredoka One',cursive;--font-body:'Nunito',sans-serif;--shadow:4px 6px 0px rgba(0,0,0,0.4);--shadow-hover:2px 3px 0px rgba(0,0,0,0.4);--transition:all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);--jagged:polygon(0% 10px, 2.5% 0px, 5% 10px, 7.5% 0px, 10% 10px, 12.5% 0px, 15% 10px, 17.5% 0px, 20% 10px, 22.5% 0px, 25% 10px, 27.5% 0px, 30% 10px, 32.5% 0px, 35% 10px, 37.5% 0px, 40% 10px, 42.5% 0px, 45% 10px, 47.5% 0px, 50% 10px, 52.5% 0px, 55% 10px, 57.5% 0px, 60% 10px, 62.5% 0px, 65% 10px, 67.5% 0px, 70% 10px, 72.5% 0px, 75% 10px, 77.5% 0px, 80% 10px, 82.5% 0px, 85% 10px, 87.5% 0px, 90% 10px, 92.5% 0px, 95% 10px, 97.5% 0px, 100% 10px, 100% calc(100% - 10px), 97.5% 100%, 95% calc(100% - 10px), 92.5% 100%, 90% calc(100% - 10px), 87.5% 100%, 85% calc(100% - 10px), 82.5% 100%, 80% calc(100% - 10px), 77.5% 100%, 75% calc(100% - 10px), 72.5% 100%, 70% calc(100% - 10px), 67.5% 100%, 65% calc(100% - 10px), 62.5% 100%, 60% calc(100% - 10px), 57.5% 100%, 55% calc(100% - 10px), 52.5% 100%, 50% calc(100% - 10px), 47.5% 100%, 45% calc(100% - 10px), 42.5% 100%, 40% calc(100% - 10px), 37.5% 100%, 35% calc(100% - 10px), 32.5% 100%, 30% calc(100% - 10px), 27.5% 100%, 25% calc(100% - 10px), 22.5% 100%, 20% calc(100% - 10px), 17.5% 100%, 15% calc(100% - 10px), 12.5% 100%, 10% calc(100% - 10px), 7.5% 100%, 5% calc(100% - 10px), 2.5% 100%, 0% calc(100% - 10px))}*,::after,::before{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background-color:var(--bg);color:var(--text);line-height:1.6;overflow-x:hidden;cursor:default}h1,h2,h3,h4{font-family:var(--font-head);font-weight:400;margin-bottom:1rem;text-transform:uppercase;letter-spacing:1px}p{margin-bottom:1rem}a{color:var(--secondary);text-decoration:none;font-weight:700;transition:color .2s}a:hover{color:var(--accent)}ul{list-style:none}img{max-width:100%;height:auto;display:block}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 20px}.text-center{text-align:center}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.btn{display:inline-block;background-color:var(--primary);color:#fff;font-family:var(--font-head);padding:12px 24px;font-size:1.2rem;border:3px solid #fff;border-radius:8px;cursor:pointer;text-transform:uppercase;box-shadow:var(--shadow);transition:var(--transition);text-decoration:none;user-select:none}.btn:focus,.btn:hover{background-color:#f37;transform:translateY(-2px)}.btn:active{transform:translateY(4px);box-shadow:0 0 0 transparent}.btn-sec{background-color:var(--secondary);color:var(--bg);border-color:var(--bg)}.btn-sec:hover{background-color:#3ef}.overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(26,11,46,.95);z-index:9999;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(10px)}.overlay-card{background:var(--surface);padding:40px;border-radius:12px;max-width:500px;width:90%;text-align:center;border:4px solid var(--accent);box-shadow:0 10px 30px rgba(0,0,0,.8);clip-path:var(--jagged);padding-top:50px;padding-bottom:50px}#age-gate[aria-hidden=true],#cookie-banner[aria-hidden=true],.modal[aria-hidden=true]{display:none}.cookie-wrapper{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--surface);padding:20px;border-radius:8px;border:2px solid var(--secondary);box-shadow:var(--shadow);z-index:9990;width:90%;max-width:600px;display:flex;flex-direction:column;gap:10px;align-items:center;text-align:center}@media(min-width:600px){.cookie-wrapper{flex-direction:row;text-align:left;justify-content:space-between}}header{position:sticky;top:0;z-index:1000;pointer-events:none}.nav-wrapper{display:flex;justify-content:space-between;padding:0 10px;pointer-events:auto}.nav-flags{display:flex;gap:5px}.nav-flag{background:var(--primary);color:#fff;padding:15px 20px 30px;clip-path:polygon(0 0,100% 0,100% 100%,50% 80%,0 100%);font-family:var(--font-head);font-size:1.1rem;text-decoration:none;transition:var(--transition);transform-origin:top center;animation:swing 4s infinite ease-in-out alternate}.nav-flag:nth-child(2n){background:var(--secondary);color:var(--bg);animation-delay:1s}.nav-flag:nth-child(3){background:var(--accent);color:var(--bg);animation-delay:2s}.nav-flag:hover{transform:scale(1.1) rotate(2deg)}.balance-ui{background:var(--surface);border:3px solid var(--accent);padding:10px 20px;border-radius:20px;font-family:var(--font-head);font-size:1.2rem;color:var(--accent);display:flex;align-items:center;gap:10px;box-shadow:var(--shadow);margin-top:10px;position:relative}.spark-icon{width:20px;height:20px;background:var(--accent);clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}.hamburger{display:none;background:0 0;border:none;font-size:2rem;color:#fff;cursor:pointer;padding:10px}@media(max-width:768px){.nav-flags{flex-direction:column;position:absolute;top:60px;left:10px;background:rgba(42,27,64,.95);padding:10px;border-radius:8px;display:none}.nav-flags.active{display:flex}.nav-flag{padding:10px;clip-path:none;animation:none;border-radius:4px;border-bottom:2px dashed #fff}.hamburger{display:block;pointer-events:auto}.nav-wrapper{align-items:flex-start}}section{padding:80px 0;position:relative}.paper-divider{position:absolute;top:-15px;left:0;width:100%;height:30px;background:inherit;clip-path:var(--jagged);z-index:10}#hero_banner{min-height:80vh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;text-align:center;background:linear-gradient(to bottom,#1a0b2e,#4a154b)}.hero-bg{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;z-index:0;opacity:.6;pointer-events:none}.hero-content{position:relative;z-index:1;max-width:800px;padding:20px}.hero-content h1{font-size:4rem;color:var(--accent);text-shadow:4px 4px 0 var(--primary);margin-bottom:20px;animation:popIn .8s cubic-bezier(.175,.885,.32,1.275)}.hero-content p{font-size:1.5rem;margin-bottom:30px;font-weight:700;text-shadow:2px 2px 4px #000;animation:popIn 1s cubic-bezier(.175,.885,.32,1.275)}.disclaimer-badge{background:rgba(0,0,0,.6);display:inline-block;padding:5px 15px;border-radius:20px;font-size:.9rem;margin-bottom:20px;border:1px solid var(--secondary)}#world_lore{background:var(--surface)}.lore-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}.mascot-img{width:100%;max-width:400px;filter:drop-shadow(0 10px 10px rgba(0,0,0,.5));animation:float 4s ease-in-out infinite;margin:0 auto}@media(max-width:768px){.lore-grid{grid-template-columns:1fr;text-align:center}.lore-grid>div:first-child{order:2}}#game_lobby{background:var(--bg)}.game-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:30px;margin-top:40px}.game-card{background:#8b5a2b;border:8px solid #5c3a21;border-radius:12px;padding:15px;position:relative;overflow:hidden;box-shadow:inset 0 0 20px rgba(0,0,0,.5),var(--shadow);transition:var(--transition);cursor:pointer}.game-card::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:repeating-linear-gradient(0deg,transparent,transparent 10px,rgba(0,0,0,.1) 10px,rgba(0,0,0,.1) 20px);pointer-events:none}.game-card:hover{transform:translateY(-10px) rotate(2deg);box-shadow:var(--shadow-hover)}.game-img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:4px;border:3px dashed #fff;margin-bottom:15px}.game-info h3{color:var(--accent);margin-bottom:5px;text-shadow:2px 2px 0 #000}.game-info p{font-size:.9rem;margin-bottom:15px}.game-card .btn{width:100%}#how_it_works{background:var(--surface);text-align:center}.steps{display:flex;justify-content:center;gap:30px;margin-top:40px;position:relative;flex-wrap:wrap}.step{flex:1;min-width:250px;background:var(--bg);padding:30px 20px;border-radius:12px;border:2px dashed var(--secondary);position:relative;z-index:2}.step-icon{width:60px;height:60px;background:var(--primary);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem;font-family:var(--font-head);margin:-60px auto 20px;border:4px solid var(--surface);box-shadow:var(--shadow)}.hiw-img{width:100%;max-width:600px;margin:0 auto 40px;border-radius:12px;border:4px solid var(--primary);box-shadow:var(--shadow)}#paco_presents{background:var(--primary);color:#fff}.comic-layout{display:flex;align-items:center;justify-content:center;gap:40px;flex-wrap:wrap}.bubble{background:#fff;color:#000;padding:30px;border-radius:30px;position:relative;font-family:var(--font-head);font-size:1.5rem;max-width:500px;box-shadow:8px 8px 0 rgba(0,0,0,.2);border:4px solid #000}.bubble::after{content:'';position:absolute;top:50%;left:-20px;border-width:20px 20px 20px 0;border-style:solid;border-color:transparent #fff transparent transparent;transform:translateY(-50%)}.bubble::before{content:'';position:absolute;top:50%;left:-26px;border-width:24px 24px 24px 0;border-style:solid;border-color:transparent #000 transparent transparent;transform:translateY(-50%);z-index:-1}.paco-face{width:150px;height:150px;background:var(--accent);border-radius:50%;border:4px solid #000;display:flex;align-items:center;justify-content:center;font-size:4rem;overflow:hidden}@media(max-width:768px){.bubble::after,.bubble::before{top:-20px;left:50%;transform:translateX(-50%) rotate(90deg)}.bubble{order:2;margin-top:20px}.paco-face{order:1}}#community_cheer{background:var(--bg)}.masonry{column-count:3;column-gap:20px;margin-top:40px}.cheer-card{background:var(--surface);padding:20px;border-radius:8px;break-inside:avoid;margin-bottom:20px;border-left:5px solid var(--secondary);box-shadow:var(--shadow)}.cheer-card h4{margin-bottom:5px;font-size:1.1rem;color:var(--secondary)}@media(max-width:900px){.masonry{column-count:2}}@media(max-width:600px){.masonry{column-count:1}}#spark_economy{background:var(--surface);text-align:center}.economy-img{width:100%;max-width:400px;margin:0 auto 30px;animation:pulseGlow 2s infinite alternate;border-radius:50%}.economy-box{max-width:700px;margin:0 auto;background:var(--bg);padding:40px;border-radius:12px;border:2px dashed var(--accent)}#responsible_play{background:#110720}.rg-card{max-width:800px;margin:0 auto;background:var(--surface);padding:40px;border-radius:12px;border:3px solid #f44;box-shadow:0 0 20px rgba(255,68,68,.2)}.rg-card h2{color:#f44}footer{background:#0a0414;padding:60px 0 20px;border-top:2px dashed var(--text);position:relative;overflow:hidden}.footer-confetti{position:absolute;width:100%;height:100%;top:0;left:0;background-image:radial-gradient(#f05 2px,transparent 2px),radial-gradient(#00e5ff 2px,transparent 2px),radial-gradient(#ffea00 2px,transparent 2px);background-size:40px 40px;background-position:0 0,20px 20px,10px 30px;opacity:.1;pointer-events:none}.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:40px;position:relative;z-index:1;margin-bottom:40px}.footer-col h4{color:var(--secondary);margin-bottom:15px}.footer-col ul li{margin-bottom:8px}.footer-col a{color:var(--text);font-weight:400}.footer-col a:hover{color:var(--accent);text-decoration:underline}.badge-18{display:inline-block;background:var(--primary);color:#fff;font-family:var(--font-head);width:50px;height:50px;line-height:50px;text-align:center;border-radius:50%;border:2px dashed #fff;font-size:1.2rem;transform:rotate(-10deg);margin-bottom:10px}.footer-bottom{text-align:center;padding-top:20px;border-top:1px solid rgba(255,255,255,.1);position:relative;z-index:1;font-size:.8rem;opacity:.7}.game-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.9);z-index:2000;display:flex;flex-direction:column;align-items:center;justify-content:center}.game-modal[aria-hidden=true]{display:none}.game-header{width:100%;max-width:800px;display:flex;justify-content:space-between;align-items:center;padding:10px;background:var(--surface);border-bottom:2px solid var(--accent)}.close-btn{background:var(--primary);color:#fff;border:none;padding:8px 15px;font-family:var(--font-head);cursor:pointer;border-radius:4px}.game-container{width:100%;max-width:800px;height:70vh;background:#222;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;flex-direction:column}.game-controls{padding:15px;background:var(--surface);width:100%;max-width:800px;display:flex;justify-content:center;gap:20px;border-top:2px solid var(--accent)}.game-msg{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:var(--font-head);font-size:3rem;color:var(--accent);text-shadow:2px 2px 0 #000;z-index:10;pointer-events:none;opacity:0;transition:opacity .3s;text-align:center;width:100%}.slots-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;width:90%;max-width:500px;height:60%;background:#fff;padding:10px;border-radius:8px;border:5px solid #8b5a2b}.slot-col{display:flex;flex-direction:column;gap:5px;overflow:hidden}.slot-cell{flex:1;background:#eee;display:flex;align-items:center;justify-content:center;font-size:2rem;border-radius:4px;transition:transform .3s}.slot-col.spin .slot-cell{animation:slotSpin .3s linear infinite}@keyframes slotSpin{0%{transform:translateY(-100%)}100%{transform:translateY(100%)}}#plinko-canvas{background:#8b5a2b;border:5px solid #5c3a21;border-radius:8px;max-width:100%;max-height:100%}.mines-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;width:90%;max-width:400px;aspect-ratio:1}.mine-btn{background:var(--secondary);border:2px solid #fff;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:2rem;transition:transform .1s}.mine-btn:active{transform:scale(.9)}.mine-btn.revealed{background:var(--surface);cursor:default}.mine-btn.safe{background:var(--accent)}.mine-btn.bomb{background:var(--primary)}@keyframes swing{0%{transform:rotate(-5deg)}100%{transform:rotate(5deg)}}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-20px)}100%{transform:translateY(0)}}@keyframes popIn{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes pulseGlow{0%{box-shadow:0 0 20px var(--accent)}100%{box-shadow:0 0 60px var(--accent)}}.confetti-particle{position:fixed;pointer-events:none;z-index:9999;animation:fall linear forwards}@keyframes fall{to{transform:translateY(100vh) rotate(720deg);opacity:0}}.mini-pinata{position:absolute;cursor:pointer;z-index:100;animation:float 3s infinite;width:40px;height:40px;background:var(--primary);clip-path:polygon(20% 0%,80% 0%,100% 20%,100% 80%,80% 100%,20% 100%,0% 80%,0% 20%);display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px}</style> <style>html{scroll-behavior:smooth}canvas,img,svg,video{max-width:100%;height:auto}</style> <style>@font-face{font-family:'Fredoka One';font-style:normal;font-weight:400;font-display:swap;src:url(https://cdn.pinatasmashplay.com/fonts/fredoka-one-400.woff2?v=8smy6h8u) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-weight:400;font-display:swap;src:url(https://cdn.pinatasmashplay.com/fonts/nunito-400.woff2?t=c331cprs) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-weight:400;font-display:swap;src:url(https://cdn.pinatasmashplay.com/fonts/nunito-400.woff2?cb=ftus1hm7) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-weight:400;font-display:swap;src:url(https://cdn.pinatasmashplay.com/fonts/nunito-400.woff2?v=5ee8b318) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}</style> <meta http-equiv="Content-Security-Policy" content="default-src 'self' 'unsafe-inline' data: https:; script-src 'self' 'unsafe-inline' https:; style-src 'self' 'unsafe-inline' https:; img-src 'self' data: https:; font-src 'self' data: https:; connect-src 'self' https:; object-src 'none'"> <link rel="preconnect" href="https://cdn.pinatasmashplay.com"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta charset="UTF-8"> <link rel="icon" href="https://cdn.pinatasmashplay.com/favicon.png?v=mpl4k6up"> <meta property="og:description" content="Experience the ultimate papercraft fiesta at Piñata Smash Play! 100% free social casino for New Zealand. No real money, just pure smashing fun."> <title>Piñata Smash Play | Free Social Casino Games NZ</title> <link rel="preload" as="image" fetchpriority="high" imagesrcset="https://cdn.pinatasmashplay.com/pinata_pop_asset.webp?h=5ee78ae1&w=352 352w, https://cdn.pinatasmashplay.com/pinata_pop_asset.webp?h=5ee78ae1&w=491 491w, https://cdn.pinatasmashplay.com/pinata_pop_asset.webp?h=5ee78ae1&w=754 754w, https://cdn.pinatasmashplay.com/pinata_pop_asset.webp?h=5ee78ae1 1024w" imagesizes="(max-width: 768px) 93vw, (max-width: 1200px) 47vw, 600px"> <link rel="dns-prefetch" href="https://cdn.pinatasmashplay.com"> <meta property="og:title" content="Piñata Smash Play | Free Social Casino Games NZ"> <link rel="preload" as="font" type="font/woff2" crossorigin href="https://cdn.pinatasmashplay.com/fonts/nunito-400.woff2?t=c331cprs"> <meta name="description" content="Experience the ultimate papercraft fiesta at Piñata Smash Play! 100% free social casino for New Zealand. No real money, just pure smashing fun."> <meta property="og:url" content="http://capability-unlimited.com"> <meta name="robots" content="index, follow"> <meta property="og:type" content="website"> <link rel="preload" as="font" type="font/woff2" crossorigin href="https://cdn.pinatasmashplay.com/fonts/fredoka-one-400.woff2?v=8smy6h8u" fetchpriority="high"> </head> <body> <div id="hidden-assets" style="display:none" aria-hidden="true"> <img fetchpriority="high" id="asset_pinata" src="https://cdn.pinatasmashplay.com/pinata_pop_asset.webp?h=5ee78ae1" srcset="https://cdn.pinatasmashplay.com/pinata_pop_asset.webp?h=5ee78ae1&w=352 352w, https://cdn.pinatasmashplay.com/pinata_pop_asset.webp?h=5ee78ae1&w=491 491w, https://cdn.pinatasmashplay.com/pinata_pop_asset.webp?h=5ee78ae1&w=754 754w, https://cdn.pinatasmashplay.com/pinata_pop_asset.webp?h=5ee78ae1 1024w" sizes="(max-width: 768px) 93vw, (max-width: 1200px) 47vw, 600px" width="1024" height="1024" alt="Pinata Symbol" width="64" height="64"> <img loading="eager" id="asset_candy" src="https://cdn.pinatasmashplay.com/candy_drop_asset.webp?r=1z57jtcv" srcset="https://cdn.pinatasmashplay.com/candy_drop_asset.webp?r=1z57jtcv&w=311 311w, https://cdn.pinatasmashplay.com/candy_drop_asset.webp?r=1z57jtcv&w=515 515w, https://cdn.pinatasmashplay.com/candy_drop_asset.webp?r=1z57jtcv&w=780 780w, https://cdn.pinatasmashplay.com/candy_drop_asset.webp?r=1z57jtcv 1024w" sizes="(max-width: 768px) 88vw, (max-width: 1200px) 56vw, 600px" width="1024" height="1024" alt="Candy Physics Object" width="64" height="64"> <img loading="eager" id="asset_wasp" src="https://cdn.pinatasmashplay.com/wasp_nest_smash_asset.webp?_=ittlr0mg" srcset="https://cdn.pinatasmashplay.com/wasp_nest_smash_asset.webp?_=ittlr0mg&w=319 319w, https://cdn.pinatasmashplay.com/wasp_nest_smash_asset.webp?_=ittlr0mg&w=533 533w, https://cdn.pinatasmashplay.com/wasp_nest_smash_asset.webp?_=ittlr0mg&w=778 778w, https://cdn.pinatasmashplay.com/wasp_nest_smash_asset.webp?_=ittlr0mg 1024w" sizes="(max-width: 768px) 91vw, (max-width: 1200px) 46vw, 600px" width="1024" height="1024" alt="Wasp Mine Object" width="64" height="64"> </div> <div id="age-gate" class="overlay" role="dialog" aria-modal="true" aria-labelledby="age-title"> <div class="overlay-card"> <h1 id="age-title">Welcome to the Fiesta!</h1> <p>Piñata Smash Play is a free social casino designed for adults.</p> <p><strong>Are you 18 years or older and located in New Zealand?</strong></p> <div style="display:flex;gap:20px;justify-content:center;margin-top:20px"> <button id="btn-age-yes" class="btn">Yes, I am 18+</button> <button id="btn-age-no" class="btn btn-sec">No, I am under 18</button> </div> <p id="age-error" style="color:var(--primary);margin-top:15px;display:none;font-weight:700">You must be 18 or older to access this site.</p> </div> </div> <header> <div class="container nav-wrapper"> <button class="hamburger" aria-label="Toggle Navigation" aria-expanded="false" aria-controls="nav-menu">☰</button> <nav id="nav-menu" class="nav-flags"> <a href="#game_lobby" class="nav-flag">Games</a> <a href="#how_it_works" class="nav-flag">How to Play</a> <a href="#spark_economy" class="nav-flag">Economy</a> </nav> <div class="balance-ui" aria-label="Your Confetti Sparks Balance"> <div class="spark-icon"></div> <span id="spark-balance">25000</span> <button id="btn-refill" class="btn" style="padding:2px 8px;font-size:.8rem;margin-left:10px;display:none">Refill</button> </div> </div> </header> <main> <section id="hero_banner"> <img loading="lazy" src="https://cdn.pinatasmashplay.com/hero_banner_img.webp?h=9li7osxz" srcset="https://cdn.pinatasmashplay.com/hero_banner_img.webp?h=9li7osxz&w=357 357w, https://cdn.pinatasmashplay.com/hero_banner_img.webp?h=9li7osxz&w=488 488w, https://cdn.pinatasmashplay.com/hero_banner_img.webp?h=9li7osxz&w=797 797w, https://cdn.pinatasmashplay.com/hero_banner_img.webp?h=9li7osxz 1024w" sizes="(max-width: 768px) 88vw, (max-width: 1200px) 55vw, 600px" width="1024" height="434" alt="Vibrant Papercraft Canopy Background" class="hero-bg" width="1920" height="822"> <div class="container hero-content"> <div class="disclaimer-badge">100% Free Social Casino • No Real Money</div> <h1>Step Into the Papercraft Fiesta</h1> <p>Grab your stick and swing away! Enjoy 100% free, no-risk social casino games where the only thing you break is a sweat.</p> <a href="#game_lobby" class="btn">Start Smashing Now</a> </div> </section> <section id="world_lore"> <div class="paper-divider"></div> <div class="container lore-grid"> <div> <h2>Meet Paco the Podge</h2> <p>Welcome to the vibrant Papercraft Canopy, a magical forest entirely constructed from tissue paper, cardboard, and glitter. Here, magical piñatas roam free, full of surprises and endless joy.</p> <p>Our beloved mascot, Paco the Podge, is a grand, colorful donkey piñata who guides visitors to the best smashing spots. He ensures every swing is safe, fun, and packed with Confetti Sparks!</p> </div> <div> <img loading="lazy" src="https://cdn.pinatasmashplay.com/mascot.webp?t=p54zpjun" srcset="https://cdn.pinatasmashplay.com/mascot.webp?t=p54zpjun&w=202 202w, https://cdn.pinatasmashplay.com/mascot.webp?t=p54zpjun&w=335 335w, https://cdn.pinatasmashplay.com/mascot.webp?t=p54zpjun&w=494 494w, https://cdn.pinatasmashplay.com/mascot.webp?t=p54zpjun 640w" sizes="(max-width: 768px) 88vw, (max-width: 1200px) 55vw, 600px" width="640" height="640" alt="Paco the Podge Mascot" class="mascot-img" width="500" height="500"> </div> </div> </section> <section id="game_lobby"> <div class="paper-divider" style="background:var(--surface)"></div> <div class="container"> <h2 class="text-center">Choose Your Piñata</h2> <div class="game-grid"> <div class="game-card" onclick='openGame("popper")'> <img loading="eager" src="https://cdn.pinatasmashplay.com/pinata_pop_cover.webp?t=hkapgrit" srcset="https://cdn.pinatasmashplay.com/pinata_pop_cover.webp?t=hkapgrit&w=254 254w, https://cdn.pinatasmashplay.com/pinata_pop_cover.webp?t=hkapgrit&w=385 385w, https://cdn.pinatasmashplay.com/pinata_pop_cover.webp?t=hkapgrit&w=564 564w, https://cdn.pinatasmashplay.com/pinata_pop_cover.webp?t=hkapgrit 765w" sizes="(max-width: 768px) 91vw, (max-width: 1200px) 49vw, 600px" width="765" height="1024" alt="Piñata Popper Game Cover" class="game-img" width="300" height="400"> <div class="game-info"> <h3>Piñata Popper</h3> <p>Swing at falling shapes. Match 3+ to shower in Sparks!</p> <p><strong>Cost:</strong> 100 Sparks | <strong>Win:</strong> Up to 5000</p> <button class="btn" tabindex="-1">Play Now</button> </div> </div> <div class="game-card" onclick='openGame("plinko")'> <img loading="eager" src="https://cdn.pinatasmashplay.com/candy_drop_cover.webp?r=mpl4lt8s" srcset="https://cdn.pinatasmashplay.com/candy_drop_cover.webp?r=mpl4lt8s&w=264 264w, https://cdn.pinatasmashplay.com/candy_drop_cover.webp?r=mpl4lt8s&w=387 387w, https://cdn.pinatasmashplay.com/candy_drop_cover.webp?r=mpl4lt8s&w=565 565w, https://cdn.pinatasmashplay.com/candy_drop_cover.webp?r=mpl4lt8s 765w" sizes="(max-width: 768px) 87vw, (max-width: 1200px) 52vw, 600px" width="765" height="1024" alt="Plinko Fiesta Game Cover" class="game-img" width="300" height="400"> <div class="game-info"> <h3>Plinko Fiesta</h3> <p>Drop sweets down the board for ultimate multipliers!</p> <p><strong>Cost:</strong> 50 Sparks | <strong>Win:</strong> Up to 1000</p> <button class="btn" tabindex="-1">Play Now</button> </div> </div> <div class="game-card" onclick='openGame("mines")'> <img loading="eager" src="https://cdn.pinatasmashplay.com/wasp_nest_smash_cover.webp?t=5ee7ebf1" srcset="https://cdn.pinatasmashplay.com/wasp_nest_smash_cover.webp?t=5ee7ebf1&w=260 260w, https://cdn.pinatasmashplay.com/wasp_nest_smash_cover.webp?t=5ee7ebf1&w=395 395w, https://cdn.pinatasmashplay.com/wasp_nest_smash_cover.webp?t=5ee7ebf1&w=548 548w, https://cdn.pinatasmashplay.com/wasp_nest_smash_cover.webp?t=5ee7ebf1 765w" sizes="(max-width: 768px) 91vw, (max-width: 1200px) 53vw, 600px" width="765" height="1024" alt="Smash & Grab Game Cover" class="game-img" width="300" height="400"> <div class="game-info"> <h3>Smash & Grab</h3> <p>Find sweets, avoid angry paper wasps!</p> <p><strong>Cost:</strong> 200 Sparks | <strong>Win:</strong> Up to 10000</p> <button class="btn" tabindex="-1">Play Now</button> </div> </div> </div> </div> </section> <section id="how_it_works"> <div class="paper-divider" style="background:var(--bg)"></div> <div class="container"> <h2>The Rules of the Fiesta</h2> <img loading="lazy" src="https://cdn.pinatasmashplay.com/how_it_works_img.webp?t=luyiqeaz" srcset="https://cdn.pinatasmashplay.com/how_it_works_img.webp?t=luyiqeaz&w=324 324w, https://cdn.pinatasmashplay.com/how_it_works_img.webp?t=luyiqeaz&w=510 510w, https://cdn.pinatasmashplay.com/how_it_works_img.webp?t=luyiqeaz&w=790 790w, https://cdn.pinatasmashplay.com/how_it_works_img.webp?t=luyiqeaz 1024w" sizes="(max-width: 768px) 88vw, (max-width: 1200px) 51vw, 600px" width="1024" height="572" alt="3 steps to play" class="hiw-img" width="800" height="450"> <div class="steps"> <div class="step"> <div class="step-icon">1</div> <h3>Claim Sparks</h3> <p>Start with a generous balance of free Confetti Sparks. No purchase necessary, ever.</p> </div> <div class="step"> <div class="step-icon">2</div> <h3>Pick a Game</h3> <p>Choose from our selection of handcrafted, physically satisfying mini-games.</p> </div> <div class="step"> <div class="step-icon">3</div> <h3>Smash & Enjoy</h3> <p>Play for fun, climb the simulated ranks, and enjoy the visual spectacle of the canopy.</p> </div> </div> </div> </section> <section id="paco_presents"> <div class="paper-divider" style="background:var(--surface)"></div> <div class="container comic-layout"> <div class="bubble"> "Hola Amigos! Remember, the sparks you win here stay in the canopy. It's all about the thrill of the swing, not real money. Take breaks and stay hydrated!" </div> <div class="paco-face">🐴</div> </div> </section> <section id="community_cheer"> <div class="paper-divider" style="background:var(--primary)"></div> <div class="container"> <h2 class="text-center">Canopy Champions</h2> <p class="text-center">Recent simulated big smashes from around the canopy.</p> <div class="masonry" id="cheer-grid"> </div> </div> </section> <section id="spark_economy"> <div class="paper-divider" style="background:var(--bg)"></div> <div class="container"> <h2>Endless Confetti</h2> <img loading="lazy" src="https://cdn.pinatasmashplay.com/spark_economy_img.webp?_=mpl4laut" srcset="https://cdn.pinatasmashplay.com/spark_economy_img.webp?_=mpl4laut&w=319 319w, https://cdn.pinatasmashplay.com/spark_economy_img.webp?_=mpl4laut&w=514 514w, https://cdn.pinatasmashplay.com/spark_economy_img.webp?_=mpl4laut&w=781 781w, https://cdn.pinatasmashplay.com/spark_economy_img.webp?_=mpl4laut 1024w" sizes="(max-width: 768px) 92vw, (max-width: 1200px) 55vw, 600px" width="1024" height="765" alt="Pile of glowing Confetti Sparks" class="economy-img" width="600" height="450"> <div class="economy-box"> <h3>What are Confetti Sparks?</h3> <p>Confetti Sparks are the lifeblood of the Papercraft Canopy, but they are purely virtual. They have <strong>no real-world monetary value</strong> and cannot be exchanged, cashed out, or redeemed for physical prizes. They exist solely to track your high scores and allow you to interact with the piñatas.</p> <p>If you run out, don't worry! Paco will always provide a free refill so the fiesta never has to end.</p> </div> </div> </section> <section id="responsible_play"> <div class="paper-divider" style="background:var(--surface)"></div> <div class="container"> <div class="rg-card"> <h2>Keep the Fiesta Fun</h2> <p>At Piñata Smash Play, the fiesta is all about fun and community, strictly without real-money risks. Our games are designed as purely social entertainment for adults 18 and over in New Zealand.</p> <p>While winning Confetti Sparks brings joy to the Papercraft Canopy, it's vital to play within your boundaries and remember that this is a simulated experience.</p> <p>If gameplay ever stops feeling like a celebration, we encourage taking a break and utilizing local support services to keep gaming positive.</p> </div> </div> </section> </main> <footer> <div class="footer-confetti"></div> <div class="container"> <div class="footer-grid"> <div class="footer-col"> <div class="badge-18">18+</div> <h3>Piñata Play Entertainment Ltd</h3> <p>Level 4, 15 Custom Street West,<br>Auckland CBD, Auckland 1010</p> <p>NZBN: 9429031234567</p> <p>Contact: <a href="#" data-reach-href="support@pinatasmashplay.com">support@pinatasmashplay.com</a></p> </div> <div class="footer-col"> <h4>Legal</h4> <ul> <li><a href="/terms">Terms of Service</a></li> <li><a href="/privacy">Privacy Policy</a></li> <li><a href="/cookies">Cookie Policy</a></li> </ul> </div> <div class="footer-col"> <h4>Responsible Gambling Support</h4> <ul> <li><a href="https://www.pgf.nz/" target="_blank" rel="noopener">Problem Gambling Foundation NZ</a></li> <li><a href="https://www.gamblinghelpline.co.nz/" target="_blank" rel="noopener">Gambling Helpline NZ</a></li> <li><a href="https://www.health.govt.nz/our-work/mental-health-and-addiction/gambling" target="_blank" rel="noopener">Ministry of Health — Gambling</a></li> <li>Gambling Helpline: 0800 654 655</li> </ul> </div> </div> <div class="footer-bottom"> <p>&copy; <span id="year"></span> Piñata Play Entertainment Limited. All rights reserved. This is a free social casino. No real money gambling.</p> </div> </div> </footer> <div id="cookie-banner" class="cookie-wrapper" role="dialog" aria-modal="true" aria-label="Cookie Consent" aria-hidden="true"> <div> <strong>We use cookies!</strong> <p style="margin-bottom:0;font-size:.9rem">To enhance your papercraft experience, we use minimal cookies to save your progress locally.</p> </div> <div style="display:flex;gap:10px"> <button id="btn-cookie-accept" class="btn" style="padding:8px 16px;font-size:1rem">Accept</button> <button id="btn-cookie-manage" class="btn btn-sec" style="padding:8px 16px;font-size:1rem">Manage</button> </div> </div> <div id="modal-popper" class="game-modal" aria-hidden="true" role="dialog"> <div class="game-header"> <h3>Piñata Popper</h3> <button class="close-btn" onclick='closeGame("popper")'>X</button> </div> <div class="game-container"> <div id="msg-popper" class="game-msg"></div> <div class="slots-grid" id="slots-grid"> </div> </div> <div class="game-controls"> <button class="btn" id="btn-spin-popper">Swing Stick (100)</button> </div> </div> <div id="modal-plinko" class="game-modal" aria-hidden="true" role="dialog"> <div class="game-header"> <h3>Plinko Fiesta</h3> <button class="close-btn" onclick='closeGame("plinko")'>X</button> </div> <div class="game-container" style="background:0 0"> <div id="msg-plinko" class="game-msg"></div> <canvas id="plinko-canvas" width="400" height="500"></canvas> </div> <div class="game-controls"> <button class="btn" id="btn-drop-plinko">Drop Candy (50)</button> </div> </div> <div id="modal-mines" class="game-modal" aria-hidden="true" role="dialog"> <div class="game-header"> <h3>Smash & Grab</h3> <button class="close-btn" onclick='closeGame("mines")'>X</button> </div> <div class="game-container"> <div id="msg-mines" class="game-msg"></div> <div style="color:var(--accent);font-family:var(--font-head);margin-bottom:10px">Multiplier: <span id="mines-mult">1.0</span>x</div> <div class="mines-grid" id="mines-grid"> </div> </div> <div class="game-controls"> <button class="btn" id="btn-start-mines">Start Round (200)</button> <button class="btn btn-sec" id="btn-cash-mines" disabled>Cash Out</button> </div> </div> <script>const elBalance=document.getElementById("spark-balance"),elRefill=document.getElementById("btn-refill"),ageGate=document.getElementById("age-gate"),cookieBanner=document.getElementById("cookie-banner");let balance=parseInt(localStorage.getItem("psp_balance"))||25e3,isAgeVerified="true"===localStorage.getItem("psp_age"),isCookieAccepted="true"===localStorage.getItem("psp_cookie");const symbols=["⭐","🌺","🔺","🍬","🪅"];function init(){document.getElementById("year").textContent=(new Date).getFullYear(),updateBalanceUI(),isAgeVerified?(ageGate.setAttribute("aria-hidden","true"),isCookieAccepted||cookieBanner.removeAttribute("aria-hidden"),startBackgroundFeatures()):(ageGate.removeAttribute("aria-hidden"),document.body.style.overflow="hidden"),setupEventListeners(),populateCheerGrid()}function updateBalanceUI(){elBalance.textContent=balance,localStorage.setItem("psp_balance",balance),elRefill.style.display=balance<200?"block":"none"}function modifyBalance(e){if(balance+=e,updateBalanceUI(),e>0){const e=elBalance.getBoundingClientRect();spawnConfetti(e.left+e.width/2,e.top+e.height/2,20),elBalance.style.transform="scale(1.2)",setTimeout(()=>elBalance.style.transform="scale(1)",200)}}function setupEventListeners(){document.getElementById("btn-age-yes").addEventListener("click",()=>{localStorage.setItem("psp_age","true"),ageGate.setAttribute("aria-hidden","true"),document.body.style.overflow="auto",isCookieAccepted||cookieBanner.removeAttribute("aria-hidden"),startBackgroundFeatures()}),document.getElementById("btn-age-no").addEventListener("click",()=>{document.getElementById("age-error").style.display="block"}),document.getElementById("btn-cookie-accept").addEventListener("click",()=>{localStorage.setItem("psp_cookie","true"),cookieBanner.setAttribute("aria-hidden","true")}),document.getElementById("btn-cookie-manage").addEventListener("click",()=>{localStorage.setItem("psp_cookie","true"),cookieBanner.setAttribute("aria-hidden","true")}),elRefill.addEventListener("click",()=>{modifyBalance(25e3)});const e=document.querySelector(".hamburger"),t=document.getElementById("nav-menu");e.addEventListener("click",()=>{t.classList.toggle("active");const n="true"===e.getAttribute("aria-expanded")||!1;e.setAttribute("aria-expanded",!n)}),document.querySelectorAll(".btn").forEach(e=>{e.addEventListener("mousedown",()=>e.style.transform="scale(0.95)"),e.addEventListener("mouseup",()=>e.style.transform=""),e.addEventListener("mouseleave",()=>e.style.transform="")}),document.querySelectorAll('a[href^="#"]').forEach(e=>{e.addEventListener("click",function(e){e.preventDefault(),t.classList.contains("active")&&t.classList.remove("active"),document.querySelector(this.getAttribute("href")).scrollIntoView({behavior:"smooth"})})}),document.getElementById("btn-spin-popper").addEventListener("click",playPopper),document.getElementById("btn-drop-plinko").addEventListener("click",playPlinko),document.getElementById("btn-start-mines").addEventListener("click",startMines),document.getElementById("btn-cash-mines").addEventListener("click",cashoutMines)}function spawnConfetti(e,t,n){const a=["#ff0055","#00e5ff","#ffea00","#ffffff"];for(let l=0;l<n;l++){const n=document.createElement("div");n.className="confetti-particle",n.style.left=e+"px",n.style.top=t+"px",n.style.width=8*Math.random()+4+"px",n.style.height=8*Math.random()+4+"px",n.style.backgroundColor=a[Math.floor(Math.random()*a.length)];const l=Math.random()*Math.PI*2,o=100*Math.random()+50,i=Math.cos(l)*o,s=Math.sin(l)*o-100;n.style.transform=`translate(${i}px, ${s}px)`,n.style.animationDuration=1*Math.random()+1+"s",document.body.appendChild(n),setTimeout(()=>n.remove(),2e3)}}function startBackgroundFeatures(){let e=0,t=0;document.addEventListener("mousemove",n=>{if(Math.abs(n.clientX-e)>20||Math.abs(n.clientY-t)>20){if(Math.random()>.5){const e=["var(--primary)","var(--secondary)","var(--accent)"],t=document.createElement("div");t.style.position="fixed",t.style.left=n.clientX+"px",t.style.top=n.clientY+"px",t.style.width="6px",t.style.height="6px",t.style.background=e[Math.floor(Math.random()*e.length)],t.style.pointerEvents="none",t.style.zIndex="9998",t.style.transition="all 0.5s",document.body.appendChild(t),setTimeout(()=>{t.style.transform="translateY(20px)",t.style.opacity="0"},50),setTimeout(()=>t.remove(),550)}e=n.clientX,t=n.clientY}}),setInterval(()=>{if(document.hidden||document.querySelectorAll(".mini-pinata").length>3)return;const e=document.createElement("div");e.className="mini-pinata",e.innerHTML="🪅",e.style.left=90*Math.random()+"vw",e.style.top=90*Math.random()+"vh",e.addEventListener("click",t=>{spawnConfetti(t.clientX,t.clientY,30),e.remove()}),document.body.appendChild(e),setTimeout(()=>{e.parentNode&&e.remove()},5e3)},8e3)}function populateCheerGrid(){const e=document.getElementById("cheer-grid"),t=["KiwiSmasher","PaperDonkey","FiestaFan99","AucklanderX","WellyWiner"];for(let n=0;n<6;n++){const n=document.createElement("div");n.className="cheer-card",n.innerHTML=`<h4>${t[Math.floor(Math.random()*t.length)]}</h4><p>Just won ${Math.floor(5e3*Math.random()+500)} Sparks on ${["Piñata Popper","Plinko Fiesta","Smash & Grab"][Math.floor(3*Math.random())]}!</p>`,e.appendChild(n)}}function showMessage(e,t){const n=document.getElementById("msg-"+e);n.textContent=t,n.style.opacity="1",setTimeout(()=>n.style.opacity="0",2e3)}function openGame(e){document.getElementById("modal-"+e).removeAttribute("aria-hidden"),document.body.style.overflow="hidden","popper"===e&&initPopper(),"plinko"===e&&initPlinko(),"mines"===e&&initMines()}function closeGame(e){document.getElementById("modal-"+e).setAttribute("aria-hidden","true"),document.body.style.overflow="auto"}let popperGrid=[];function initPopper(){const e=document.getElementById("slots-grid");e.innerHTML="";for(let t=0;t<5;t++){const t=document.createElement("div");t.className="slot-col";for(let e=0;e<3;e++){const e=document.createElement("div");e.className="slot-cell",e.textContent=symbols[Math.floor(Math.random()*symbols.length)],t.appendChild(e)}e.appendChild(t)}}function playPopper(){if(balance<100)return void alert("Not enough Sparks! Need a refill?");modifyBalance(-100);const e=document.querySelectorAll(".slot-col");e.forEach(e=>e.classList.add("spin"));const t=document.getElementById("btn-spin-popper");t.disabled=!0,setTimeout(()=>{e.forEach(e=>{e.classList.remove("spin"),Array.from(e.children).forEach(e=>{e.textContent=symbols[Math.floor(Math.random()*symbols.length)]})});if(Math.random()>.6){const e=Math.floor(400*Math.random()+100);modifyBalance(e),showMessage("popper","+"+e)}else showMessage("popper","Try Again!");t.disabled=!1},1e3)}const canvas=document.getElementById("plinko-canvas"),ctx=canvas.getContext("2d");let plinkoAnim,ball=null;const pegs=[],rows=8;function initPlinko(){pegs.length=0;const e=canvas.height/(rows+2);for(let t=0;t<rows;t++){const n=t%2==0?7:8,a=canvas.width/n;for(let l=0;l<n;l++)pegs.push({x:(l+.5)*a,y:(t+1.5)*e,radius:4})}drawPlinko()}function drawPlinko(){ctx.clearRect(0,0,canvas.width,canvas.height),ctx.fillStyle="#fff",pegs.forEach(e=>{ctx.beginPath(),ctx.arc(e.x,e.y,e.radius,0,2*Math.PI),ctx.fill()}),ctx.fillStyle="rgba(255,255,255,0.2)";for(let e=0;e<5;e++)ctx.fillRect(e*(canvas.width/5),canvas.height-30,canvas.width/5-2,30);if(ball){const e=document.getElementById("asset_candy");e&&e.complete?ctx.drawImage(e,ball.x-ball.radius,ball.y-ball.radius,2*ball.radius,2*ball.radius):(ctx.fillStyle="var(--primary)",ctx.beginPath(),ctx.arc(ball.x,ball.y,ball.radius,0,2*Math.PI),ctx.fill())}}function playPlinko(){if(ball)return;balance<50?alert("Not enough Sparks!"):(modifyBalance(-50),document.getElementById("btn-drop-plinko").disabled=!0,ball={x:canvas.width/2+(20*Math.random()-10),y:20,vx:0,vy:0,radius:8},function e(){if(ball.vy+=.2,ball.x+=ball.vx,ball.y+=ball.vy,pegs.forEach(e=>{const t=ball.x-e.x,n=ball.y-e.y,a=Math.sqrt(t*t+n*n);if(a<ball.radius+e.radius){const l=t/a,o=n/a,i=ball.vx*l+ball.vy*o;ball.vx=.6*(ball.vx-2*i*l),ball.vy=.6*(ball.vy-2*i*o),ball.x=e.x+l*(ball.radius+e.radius+1),ball.y=e.y+o*(ball.radius+e.radius+1),ball.vx+=Math.random()-.5}}),ball.x<ball.radius&&(ball.x=ball.radius,ball.vx*=-1),ball.x>canvas.width-ball.radius&&(ball.x=canvas.width-ball.radius,ball.vx*=-1),drawPlinko(),ball.y<canvas.height-ball.radius)plinkoAnim=requestAnimationFrame(e);else{const e=Math.floor(ball.x/(canvas.width/5)),t=[2,1,.5,1,2],n=Math.floor(50*t[e]);modifyBalance(n),showMessage("plinko","+"+n),ball=null,document.getElementById("btn-drop-plinko").disabled=!1}}())}let minesState=[],minesActive=!1,currentMult=1,minesCost=200;function initMines(){const e=document.getElementById("mines-grid");e.innerHTML="";for(let t=0;t<25;t++){const n=document.createElement("button");n.className="mine-btn",n.dataset.index=t,n.innerHTML="🪅",n.disabled=!0,n.addEventListener("click",handleMineClick),e.appendChild(n)}document.getElementById("mines-mult").textContent="1.0",document.getElementById("btn-cash-mines").disabled=!0,document.getElementById("btn-start-mines").disabled=!1}function startMines(){if(balance<minesCost)return void alert("Not enough Sparks!");modifyBalance(-minesCost),minesActive=!0,currentMult=1,document.getElementById("mines-mult").textContent=currentMult.toFixed(2),document.getElementById("btn-start-mines").disabled=!0,document.getElementById("btn-cash-mines").disabled=!1,minesState=Array(25).fill("safe");let e=0;for(;e<5;){let t=Math.floor(25*Math.random());"safe"===minesState[t]&&(minesState[t]="wasp",e++)}document.querySelectorAll(".mine-btn").forEach(e=>{e.className="mine-btn",e.innerHTML="🪅",e.disabled=!1}),showMessage("mines","Good Luck!")}function handleMineClick(e){if(!minesActive)return;const t=e.currentTarget,n=t.dataset.index;"wasp"===minesState[n]?(t.innerHTML="🐝",t.classList.add("bomb"),minesActive=!1,showMessage("mines","Busted!"),revealMines()):(t.innerHTML="🍬",t.classList.add("safe","revealed"),t.disabled=!0,currentMult+=.2,document.getElementById("mines-mult").textContent=currentMult.toFixed(2))}function cashoutMines(){if(!minesActive)return;const e=Math.floor(minesCost*currentMult);modifyBalance(e),showMessage("mines","Cashed Out +"+e),minesActive=!1,revealMines()}function revealMines(){document.querySelectorAll(".mine-btn").forEach((e,t)=>{e.disabled=!0,"wasp"!==minesState[t]||e.classList.contains("bomb")||(e.innerHTML="🐝",e.style.opacity="0.5")}),document.getElementById("btn-start-mines").disabled=!1,document.getElementById("btn-cash-mines").disabled=!0}window.onload=init</script> <script>document.querySelectorAll("form[data-reach]").forEach(function(t){t.addEventListener("submit",function(e){e.preventDefault();var a=new FormData(t),n=[];a.forEach(function(t,e){t&&n.push(e+": "+t)});var o=t.getAttribute("data-reach");window.location.href="mailto:"+o+"?subject=Contact&body="+encodeURIComponent(n.join("\n"))})}),document.querySelectorAll("a[data-reach-href]").forEach(function(t){t.addEventListener("click",function(e){e.preventDefault(),window.location.href="mailto:"+t.getAttribute("data-reach-href")})})</script> </body> </html>