{"id":1040,"date":"2024-12-14T00:13:14","date_gmt":"2024-12-14T00:13:14","guid":{"rendered":"https:\/\/madlysane.com\/?page_id=1040"},"modified":"2025-10-21T07:47:55","modified_gmt":"2025-10-21T12:47:55","slug":"1040-2","status":"publish","type":"page","link":"https:\/\/madlysane.site\/en\/1040-2\/","title":{"rendered":"Stress"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Quick Stress Release: Anxiety Reduction Technique<\/title>\n<\/head>\n<body>\n    <iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/lrhPTqholcc?rel=0&#038;playlist=lrhPTqholcc&#038;controls=0&#038;modestbranding=1\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe>\n<\/body>\n<\/html>\n\n\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\" \/>\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\/>\n  <title>Mental Wellness Techniques to Try<\/title>\n\n  <style>\n    body {\n      font-family: 'Segoe UI', sans-serif;\n      background: linear-gradient(to bottom right, #f1f8e9, #e3f2fd);\n      color: #212121;\n      padding: 2rem;\n      text-align: center;\n    }\n\n    .container {\n      background: #ffffffcc;\n      padding: 2rem;\n      border-radius: 12px;\n      box-shadow: 0 0 20px rgba(0,0,0,0.1);\n      max-width: 700px;\n      margin: auto;\n    }\n\n    h1 {\n      font-size: 2rem;\n      color: #1b5e20;\n    }\n\n    .skill {\n      font-size: 1.3rem;\n      margin: 1rem 0;\n      font-weight: bold;\n    }\n\n    .description {\n      font-size: 1rem;\n      margin: 1rem 0;\n      color: #424242;\n    }\n\n    .practice {\n      font-size: 1rem;\n      margin: 1rem 0;\n      font-style: italic;\n      color: #2e7d32;\n      display: none;\n    }\n\n    .stars {\n      margin: 1rem 0;\n    }\n\n    .stars span {\n      font-size: 2rem;\n      cursor: pointer;\n      color: #ccc;\n      transition: color 0.3s ease;\n    }\n\n    .stars span.active {\n      color: #fbc02d;\n    }\n\n    .bookmark, .practiced {\n      margin-top: 1rem;\n      font-size: 1rem;\n      color: #00796b;\n      cursor: pointer;\n    }\n\n    button {\n      background-color: #1b5e20;\n      color: white;\n      border: none;\n      padding: 0.8rem 1.5rem;\n      font-size: 1rem;\n      border-radius: 8px;\n      cursor: pointer;\n      margin: 1rem 0.5rem;\n    }\n\n    button:hover {\n      background-color: #0d3c13;\n    }\n\n    .footer {\n      margin-top: 2rem;\n      font-size: 0.9rem;\n      color: #555;\n    }\n  <\/style>\n<\/head>\n<body>\n\n  <div class=\"container\">\n    <h1>Mental Wellness Techniques to Try<\/h1>\n\n    <div class=\"skill\" id=\"skill\">Loading technique&#8230;<\/div>\n    <div class=\"description\" id=\"description\"><\/div>\n    <div class=\"practice\" id=\"practice\"><\/div>\n\n    <div class=\"actions\">\n      <div class=\"stars\" id=\"stars\">\n        <span onclick=\"rateSkill(1)\">\u2605<\/span>\n        <span onclick=\"rateSkill(2)\">\u2605<\/span>\n        <span onclick=\"rateSkill(3)\">\u2605<\/span>\n        <span onclick=\"rateSkill(4)\">\u2605<\/span>\n        <span onclick=\"rateSkill(5)\">\u2605<\/span>\n      <\/div>\n      <div class=\"bookmark\" id=\"bookmark\" onclick=\"toggleBookmark()\">\ud83d\udccc Bookmark this technique<\/div>\n      <div class=\"practiced\" id=\"practicedStatus\"> Not yet practiced<\/div>\n    <\/div>\n    \n\n    <button onclick=\"teachSkill()\">Technique<\/button>\n    <button onclick=\"showPractice()\">Try This Technique<\/button>\n    <button onclick=\"markAsPracticed()\">Mark as Practiced<\/button>\n  <\/div>\n\n  <div class=\"footer\">Based on CBT, DBT, and neuroscience principles<\/div>\n\n  <script>\n   \n  const skills = [\n    {\n      name: \"Cognitive Reframing\",\n      description: \"Learn to challenge automatic negative thoughts by asking: 'Is this thought true? What\u2019s the evidence against it?' This reduces rumination and improves mood. (Beck, 1979)\",\n      practice: \"Write down one negative thought. Ask: Is this 100% true? What\u2019s the evidence against it? Replace it with a more balanced thought.\"\n    },\n    {\n      name: \"Opposite Action\",\n      description: \"When your emotion urges you to withdraw, do the opposite\u2014engage. Acting opposite to emotion can reduce its intensity. Used in DBT for emotion regulation. (Linehan, 1993)\",\n      practice: \"Notice an emotion that urges you to withdraw or avoid. Do the opposite: engage, move, or reach out.\"\n    },\n    {\n      name: \"Grounding Technique\",\n      description: \"Use the 5-4-3-2-1 method: Name 5 things you see, 4 you feel, 3 you hear, 2 you smell, 1 you taste. This anchors you in the present and reduces anxiety. (Najmi et al., 2009)\",\n      practice: \"Name 5 things you see, 4 you feel, 3 you hear, 2 you smell, and 1 you taste. Say each one aloud or write them down.\"\n    },\n    {\n      name: \"Behavioral Activation\",\n      description: \"Schedule one enjoyable or meaningful activity\u2014even if you don\u2019t feel like it. Action precedes motivation. (Martell et al., 2001)\",\n      practice: \"Schedule one activity today that aligns with your values. Commit to doing it even if motivation is low.\"\n    },\n    {\n      name: \"Thought Labeling\",\n      description: \"Instead of saying 'I am anxious,' say 'I am having an anxious thought.' This creates psychological distance and activates the prefrontal cortex. (Lieberman et al., 2007)\",\n      practice: \"Instead of saying 'I\u2019m anxious,' say 'I\u2019m having an anxious thought.' Repeat this for any strong emotion today.\"\n    },\n    {\n      name: \"Progressive Muscle Relaxation\",\n      description: \"Tense and release muscle groups one by one. This lowers physical tension and calms the nervous system. (Jacobson, 1938)\",\n      practice: \"Start at your feet and move upward. Tense each muscle group for 5 seconds, then release. Notice the difference.\"\n    },\n    {\n      name: \"Values Clarification\",\n      description: \"Identify what truly matters to you. Use it to guide decisions and build meaning. Core to Acceptance and Commitment Therapy. (Hayes et al., 1999)\",\n      practice: \"List 5 things that matter most to you. Choose one and write down how you\u2019ll act on it this week.\"\n    },\n    {\n      name: \"Self-Compassion Pause\",\n      description: \"Say: 'This is a moment of suffering. Suffering is part of life. May I be kind to myself.' Proven to reduce shame and increase resilience. (Neff, 2003)\",\n      practice: \"Say: 'This is a moment of suffering. Suffering is part of life. May I be kind to myself.' Repeat slowly and gently.\"\n    },\n    {\n      name: \"Urge Surfing\",\n      description: \"When a craving or impulse arises, observe it like a wave\u2014rising, peaking, and falling. Builds distress tolerance. (Marlatt, 1994)\",\n      practice: \"When an urge arises, close your eyes and describe it like a wave. Notice how it changes over time without acting on it.\"\n    },\n    {\n      name: \"SMART Goal Setting\",\n      description: \"Set goals that are Specific, Measurable, Achievable, Relevant, and Time-bound. Boosts motivation and clarity. (Locke & Latham, 2002)\",\n      practice: \"Choose one goal and rewrite it using the SMART format. Post it somewhere visible.\"\n    },\n    {\n      name: \"Self-Distancing for Emotional Clarity\",\n      description: \"Use third-person language when reflecting on distress (e.g., 'Jayci is feeling overwhelmed' instead of 'I am'). This reduces emotional reactivity and improves decision-making. (Kross et al., 2021)\",\n      practice: \"Think of a recent challenge. Describe it using your name instead of 'I'. Notice how it shifts your perspective.\"\n    },\n    {\n      name: \"Affect Labeling for Stress Reduction\",\n      description: \"When you name your emotion precisely ('I feel frustrated'), it activates the prefrontal cortex and reduces amygdala activity. (Torre & Lieberman, 2022)\",\n      practice: \"Pause and say: 'I feel ___.' Choose the most accurate word. Notice how naming it changes your experience.\"\n    },\n    {\n      name: \"Micro-Goal Chunking\",\n      description: \"Break tasks into 5-minute micro-goals. This boosts dopamine and reduces avoidance behavior. (Hofmann et al., 2023)\",\n      practice: \"Pick one task you\u2019ve been avoiding. Set a timer for 5 minutes and do just the first step.\"\n    },\n    {\n      name: \"Interoceptive Awareness Training\",\n      description: \"Tune into internal signals like heartbeat or breath to regulate anxiety. (Khalsa et al., 2020)\",\n      practice: \"Sit quietly and focus on your breath or heartbeat. Describe what you feel without judgment.\"\n    },\n    {\n      name: \"Compassionate Reappraisal\",\n      description: \"Reframe the other person\u2019s behavior with compassion. (Weng et al., 2024)\",\n      practice: \"Think of someone who upset you. Ask: 'What pain or fear might they be carrying?' Write a compassionate reframe.\"\n    },\n    {\n      name: \"Cognitive Processing for Trauma\",\n      description: \"Challenge trauma-related beliefs like 'I\u2019m permanently damaged'. (APA, 2025)\",\n      practice: \"Write down a painful belief. Ask: 'Is this always true? What\u2019s a more balanced alternative?'\"\n    },\n    {\n      name: \"Narrative Exposure Technique\",\n      description: \"Reconstruct your trauma story chronologically while anchoring it in safe memories. (APA, 2024)\",\n      practice: \"Write your story from beginning to end, anchoring it in safe memories. Focus on coherence, not detail.\"\n    },\n    {\n      name: \"Somatic Grounding\",\n      description: \"Use body-based techniques like tapping or breath anchoring to reduce dissociation. (SAMHSA, 2023)\",\n      practice: \"Try tapping your chest, pressing your feet into the floor, or holding a textured object. Focus on sensation.\"\n    },\n    {\n      name: \"Collaborative Problem Solving\",\n      description: \"Practice executive skills by solving real-life problems with others. (Pollastri et al., 2023)\",\n      practice: \"Choose a small challenge and solve it with someone else. Reflect on how collaboration changed your approach.\"\n    },\n    {\n      name: \"Micro-Planning with Visual Anchors\",\n      description: \"Use visual planners to break tasks into 5 top priorities. (Welby, 2022)\",\n      practice: \"Draw or list your top 5 priorities for today. Use color or icons to make them visually distinct.\"\n    },\n    {\n      name: \"EF Skill Transfer via Real Context\",\n      description: \"Executive function improves when practiced in real-life situations. (Psychology Today, 2022)\",\n      practice: \"Pick one daily task and name the EF skill it uses (e.g., planning, inhibition). Practice it intentionally.\"\n    },\n    {\n      name: \"Blended Care Check-Ins\",\n      description: \"Combine digital prompts with human-led support to build trust. (World Economic Forum, 2025)\",\n      practice: \"Set a reminder to check in with a trusted person or app. Reflect on how it affects your sense of connection.\"\n    },\n    {\n      name: \"Micro-Connection Rituals\",\n      description: \"Send a short message or share a moment with someone daily. (Harvard Chan School, 2025)\",\n      practice: \"Send a short message, share a photo, or say something kind to someone today. Notice how it feels.\"\n    },\n    {\n      name: \"Community-Based Support Mapping\",\n      description: \"Identify 3 safe people or spaces in your life. (MDPI, 2025)\",\n      practice: \"Draw a map of your support system. Include people, places, and routines that help you feel safe.\"\n    }\n\n  \n\n      \/\/ \ud83d\udc49 Add more techniques here using the same format\n    ];\n\n    let currentIndex = 0;\n    let ratings = {};\n    let bookmarks = {};\n    let practiced = {};\n\n    function teachSkill() {\n      currentIndex = Math.floor(Math.random() * skills.length);\n      const skill = skills[currentIndex];\n      document.getElementById('skill').textContent = skill.name;\n      document.getElementById('description').textContent = skill.description;\n      document.getElementById('practice').style.display = 'none';\n      updateStars();\n      updateBookmark();\n      updatePracticed();\n    }\n\n    function rateSkill(stars) {\n      ratings[currentIndex] = stars;\n      updateStars();\n    }\n\n    function updateStars() {\n      const starElements = document.querySelectorAll('#stars span');\n      starElements.forEach((star, i) => {\n        star.classList.toggle('active', i < (ratings[currentIndex] || 0));\n      });\n    }\n\n    function toggleBookmark() {\n      bookmarks[currentIndex] = !bookmarks[currentIndex];\n      updateBookmark();\n    }\n\n    function updateBookmark() {\n      const bookmark = document.getElementById('bookmark');\n      bookmark.textContent = bookmarks[currentIndex]\n        ? \"\u2705 Bookmarked\"\n        : \"\ud83d\udccc Bookmark this technique\";\n    }\n\n    function updatePracticed() {\n      const status = document.getElementById('practicedStatus');\n      status.textContent = practiced[currentIndex]\n        ? \" You\u2019ve practiced this technique\"\n        : \" Not yet practiced\";\n    }\n\n    function showPractice() {\n      const practiceText = skills[currentIndex].practice;\n      document.getElementById('practice').textContent = practiceText;\n      document.getElementById('practice').style.display = 'block';\n    }\n\n    function markAsPracticed() {\n      practiced[currentIndex] = true;\n      updatePracticed();\n      document.getElementById('practice').style.display = 'none';\n    }\n\n\/\/ \u2705 Add this at the end of your script\nwindow.onload = function () {\n  teachSkill();\n};\n  <\/script>\n\n<\/body>\n<\/html>\n\n\n\n<div id=\"ripple-deed\" class=\"ripple-wrap\" aria-labelledby=\"ripple-title\">\n  <h2 id=\"ripple-title\" class=\"ripple-title\">Ripple Deed<\/h2>\n  <p class=\"ripple-subtitle\">Practice kindness \u2014 speak it, act it, spread it.<\/p>\n\n  <!-- Today\u2019s prompt -->\n  <div class=\"ripple-prompt\" role=\"status\" aria-live=\"polite\">\n    <span class=\"prompt-label\">Today\u2019s deed:<\/span>\n    <span id=\"prompt-text\">Share one sincere compliment with someone.<\/span>\n    <button class=\"prompt-next\" id=\"prompt-next\" type=\"button\" aria-label=\"Show another idea\">\u21bb<\/button>\n  <\/div>\n\n  <!-- Deed form -->\n  <form id=\"deed-form\" class=\"deed-form\" autocomplete=\"on\" aria-describedby=\"deed-help\">\n    <label for=\"deed-input\" class=\"deed-label\">What did you do? (Optional, 100 chars)<\/label>\n    <input id=\"deed-input\" name=\"deed\" maxlength=\"100\" placeholder=\"e.g., Thanked a barista for their kindness\" \/>\n    <div id=\"deed-help\" class=\"deed-help\">You can leave this blank and just log the deed.<\/div>\n\n    <div class=\"deed-privacy\">\n      <input type=\"checkbox\" id=\"deed-anon\" name=\"anon\" checked \/>\n      <label for=\"deed-anon\">Keep my note private (only the ripple and count will show)<\/label>\n    <\/div>\n\n    <button type=\"submit\" class=\"deed-submit\" aria-label=\"Log your ripple deed\">Log ripple<\/button>\n  <\/form>\n\n  <!-- Counter + milestone -->\n  <div class=\"ripple-stats\" role=\"status\" aria-live=\"polite\">\n    <div class=\"stat\">\n      <span class=\"stat-label\">Today\u2019s ripples<\/span>\n      <span class=\"stat-value\" id=\"today-count\">0<\/span>\n    <\/div>\n    <div class=\"stat\">\n      <span class=\"stat-label\">Community goal<\/span>\n      <span class=\"stat-value\" id=\"goal-count\">500<\/span>\n    <\/div>\n  <\/div>\n\n  <!-- Ripple pond -->\n  <div class=\"pond\" id=\"pond\" aria-hidden=\"true\"><\/div>\n\n  <!-- Celebration overlay with your video -->\n  <div id=\"celebrate\" class=\"celebrate\" aria-hidden=\"true\" role=\"dialog\" aria-label=\"Celebration\">\n    <div class=\"celebrate-content\">\n      <video id=\"celebrate-video\" playsinline preload=\"metadata\">\n        <source src=\"https:\/\/madlysane.site\/wp-content\/uploads\/2025\/09\/PRACTICE-KINDNESS-Speak-it-\u2022-Act-it-\u2022-Spread-it-.-1.mp4\" type=\"video\/mp4\" \/>\n      <\/video>\n      <div class=\"celebrate-text\">\n        <h3>Wave unlocked<\/h3>\n        <p>Together, we sparked a kindness ripple. Keep it going.<\/p>\n        <button id=\"celebrate-close\" class=\"celebrate-close\" type=\"button\" aria-label=\"Close celebration\">Close<\/button>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<style>\n  \/* Layout *\/\n  .ripple-wrap { max-width: 880px; margin: 0 auto; padding: 24px; border-radius: 16px; background: #0f1220; color: #eaf0ff; box-shadow: 0 20px 60px rgba(0,0,0,0.35);}\n  .ripple-title { margin: 0 0 8px; font-size: 2rem; letter-spacing: 0.2px;}\n  .ripple-subtitle { margin: 0 0 20px; opacity: 0.85;}\n\n  \/* Prompt *\/\n  .ripple-prompt { display: flex; align-items: center; gap: 10px; background: #1a1f36; padding: 12px 14px; border-radius: 12px;}\n  .prompt-label { font-weight: 600; color: #93c5fd;}\n  .prompt-next { margin-left: auto; background: #2b3354; color: #c6ddff; border: none; padding: 8px 10px; border-radius: 8px; cursor: pointer;}\n  .prompt-next:hover { background: #3a4370;}\n\n  \/* Form *\/\n  .deed-form { margin-top: 18px; display: grid; gap: 10px;}\n  .deed-label { font-weight: 600; }\n  #deed-input { padding: 12px 14px; border-radius: 10px; border: 1px solid #2b3354; background: #121528; color: #eaf0ff; outline: none;}\n  #deed-input::placeholder { color: #7e8bb6;}\n  .deed-help { font-size: 0.9rem; color: #a9b6e5;}\n  .deed-privacy { display: flex; align-items: center; gap: 8px; color: #cbd5e1;}\n  .deed-submit { background: linear-gradient(135deg,#5eead4,#60a5fa); color: #0b1020; border: none; padding: 12px 16px; border-radius: 10px; font-weight: 700; cursor: pointer;}\n  .deed-submit:hover { filter: brightness(1.05); }\n\n  \/* Stats *\/\n  .ripple-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 18px;}\n  .stat { background: #121528; border: 1px solid #2b3354; padding: 12px 14px; border-radius: 12px;}\n  .stat-label { display: block; color: #a9b6e5; font-size: 0.9rem;}\n  .stat-value { display: block; font-size: 1.6rem; font-weight: 800; color: #c6ddff;}\n\n  \/* Pond + ripples *\/\n  .pond { position: relative; height: 280px; margin-top: 20px; border-radius: 16px; background: radial-gradient(1200px 480px at 30% 10%, #0b1020, #0c1430 50%, #0c1538 80%); overflow: hidden; border: 1px solid #2b3354;}\n  .ripple { position: absolute; border-radius: 50%; border: 2px solid rgba(94,234,212,0.7); transform: translate(-50%,-50%) scale(0.2); opacity: 0.9; animation: ripple 1800ms ease-out forwards; }\n  .ripple.alt { border-color: rgba(96,165,250,0.7); }\n\n  @keyframes ripple {\n    0% { transform: translate(-50%,-50%) scale(0.2); opacity: 0.9; }\n    60% { opacity: 0.55; }\n    100% { transform: translate(-50%,-50%) scale(1.6); opacity: 0; }\n  }\n\n  \/* Celebration overlay *\/\n  .celebrate { position: fixed; inset: 0; background: rgba(6, 10, 24, 0.85); display: none; align-items: center; justify-content: center; z-index: 9999; }\n  .celebrate-content { width: min(920px, 94vw); display: grid; grid-template-columns: 1fr 1fr; gap: 0; background: #0f1220; border: 1px solid #2b3354; border-radius: 14px; overflow: hidden; }\n  .celebrate-content video { width: 100%; height: 100%; object-fit: cover; background: #000; }\n  .celebrate-text { padding: 18px; display: grid; align-content: center; gap: 10px; }\n  .celebrate-text h3 { margin: 0; font-size: 1.6rem; color: #93c5fd; }\n  .celebrate-text p { margin: 0; color: #c6ddff; }\n  .celebrate-close { justify-self: start; margin-top: 6px; background: #2b3354; color: #c6ddff; border: none; padding: 8px 12px; border-radius: 8px; cursor: pointer;}\n  .celebrate-close:hover { background: #3a4370; }\n\n  \/* Accessibility *\/\n  .deed-submit:focus, .prompt-next:focus, .celebrate-close:focus { outline: 2px solid #60a5fa; outline-offset: 2px; }\n  @media (max-width: 720px) {\n    .celebrate-content { grid-template-columns: 1fr; }\n  }\n<\/style>\n\n<script>\n(function(){\n  \/\/ Config\n  const GOAL = 500;                 \/\/ Daily community goal\n  const COMMUNITY_MULTIPLIER = 7;   \/\/ Simulated multiplier: 1 personal deed contributes visually to more (tweak as desired)\n\n  \/\/ Elements\n  const pond = document.getElementById('pond');\n  const todayCountEl = document.getElementById('today-count');\n  const goalCountEl = document.getElementById('goal-count');\n  const form = document.getElementById('deed-form');\n  const input = document.getElementById('deed-input');\n  const anon = document.getElementById('deed-anon');\n  const celebrate = document.getElementById('celebrate');\n  const celebrateVideo = document.getElementById('celebrate-video');\n  const celebrateClose = document.getElementById('celebrate-close');\n  const promptText = document.getElementById('prompt-text');\n  const promptNext = document.getElementById('prompt-next');\n\n  goalCountEl.textContent = GOAL;\n\n  \/\/ Prompt seeds\n  const PROMPTS = [\n    \"Share one sincere compliment with someone.\",\n    \"Send a message of gratitude to a friend.\",\n    \"Hold the door open for someone.\",\n    \"Leave a kind note in an unexpected place.\",\n    \"Take 3 mindful breaths, then smile at a stranger.\",\n    \"Donate one item you no longer need.\",\n    \"Tell someone: you matter to me.\",\n    \"Share a resource that helped you.\",\n    \"Offer help without being asked.\",\n    \"Light a tribute candle for someone you miss.\"\n  ];\n\n  \/\/ Local storage per day\n  function todayKey(){ \n    const d = new Date();\n    return \"ripple:\" + d.getFullYear() + \"-\" + (d.getMonth()+1) + \"-\" + d.getDate();\n  }\n\n  function loadState(){\n    const key = todayKey();\n    const raw = localStorage.getItem(key);\n    try { return raw ? JSON.parse(raw) : { count: 0, entries: [] }; } catch(e){ return { count: 0, entries: [] }; }\n  }\n\n  function saveState(state){\n    localStorage.setItem(todayKey(), JSON.stringify(state));\n  }\n\n  let state = loadState();\n  updateCount();\n\n  \/\/ Randomize prompt on load\n  promptText.textContent = PROMPTS[Math.floor(Math.random() * PROMPTS.length)];\n  promptNext.addEventListener('click', () => {\n    const next = PROMPTS[Math.floor(Math.random() * PROMPTS.length)];\n    promptText.textContent = next;\n  });\n\n  \/\/ Form submit\n  form.addEventListener('submit', function(e){\n    e.preventDefault();\n    const note = (input.value || \"\").trim();\n    const entry = { note: note, anon: !!anon.checked, ts: Date.now() };\n\n    state.entries.push(entry);\n    state.count += 1;\n    saveState(state);\n    updateCount();\n\n    \/\/ Visual ripple(s)\n    spawnRipples();\n\n    \/\/ Reset input\n    input.value = \"\";\n\n    \/\/ Mini haptic: focus back on prompt for keyboard users\n    promptNext.focus();\n\n    \/\/ Milestone celebration when visible total reaches or exceeds goal\n    const visibleTotal = simulatedTotal(state.count);\n    if (visibleTotal >= GOAL) {\n      openCelebration();\n    }\n  });\n\n  \/\/ Count display\n  function updateCount(){\n    const visibleTotal = simulatedTotal(state.count);\n    todayCountEl.textContent = visibleTotal;\n  }\n\n  \/\/ Simple simulation: each deed appears as multiple community ripples\n  function simulatedTotal(personal){\n    return Math.min(GOAL, personal * COMMUNITY_MULTIPLIER);\n  }\n\n  \/\/ Ripples\n  function spawnRipples(){\n    \/\/ Create 1\u20133 circles at random positions for a \u201cwave\u201d feel\n    const bursts = Math.floor(Math.random() * 3) + 1;\n    for (let i = 0; i < bursts; i++){\n      const x = Math.random() * pond.clientWidth;\n      const y = Math.random() * pond.clientHeight;\n      const size = 60 + Math.random() * 120;\n\n      const r = document.createElement('div');\n      r.className = 'ripple' + (Math.random() < 0.5 ? ' alt' : '');\n      r.style.left = x + 'px';\n      r.style.top = y + 'px';\n      r.style.width = size + 'px';\n      r.style.height = size + 'px';\n\n      pond.appendChild(r);\n      setTimeout(()=>{ r.remove(); }, 1900);\n    }\n  }\n\n  \/\/ Celebration\n  function openCelebration(){\n    celebrate.style.display = 'flex';\n    celebrate.setAttribute('aria-hidden', 'false');\n\n    \/\/ Try autoplay muted, then unmute on interaction\n    celebrateVideo.muted = true;\n    const playPromise = celebrateVideo.play();\n    if (playPromise !== undefined) {\n      playPromise.then(() => {\n        \/\/ Unmute on user interaction (close or click anywhere)\n        const unmute = () => { celebrateVideo.muted = false; document.removeEventListener('click', unmute); };\n        document.addEventListener('click', unmute, { once: true });\n      }).catch(() => {\n        \/\/ If autoplay blocked, show poster frame; user can click to play\n      });\n    }\n  }\n\n  celebrateClose.addEventListener('click', function(){\n    celebrate.style.display = 'none';\n    celebrate.setAttribute('aria-hidden', 'true');\n    celebrateVideo.pause();\n    celebrateVideo.currentTime = 0;\n  });\n\n})();\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"<p>Quick Stress Release: Anxiety Reduction Technique Mental Wellness Techniques to Try Mental Wellness Techniques to Try Loading technique&#8230; \u2605 \u2605 \u2605 \u2605 \u2605 \ud83d\udccc Bookmark this technique Not yet practiced Technique Try This Technique Mark as Practiced Based on CBT, DBT, and neuroscience principles Ripple Deed Practice kindness \u2014 speak it, act it, spread it. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"footnotes":""},"class_list":["post-1040","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/madlysane.site\/en\/wp-json\/wp\/v2\/pages\/1040","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/madlysane.site\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/madlysane.site\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/madlysane.site\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/madlysane.site\/en\/wp-json\/wp\/v2\/comments?post=1040"}],"version-history":[{"count":5,"href":"https:\/\/madlysane.site\/en\/wp-json\/wp\/v2\/pages\/1040\/revisions"}],"predecessor-version":[{"id":6307,"href":"https:\/\/madlysane.site\/en\/wp-json\/wp\/v2\/pages\/1040\/revisions\/6307"}],"wp:attachment":[{"href":"https:\/\/madlysane.site\/en\/wp-json\/wp\/v2\/media?parent=1040"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}