{"id":21,"date":"2026-06-12T03:32:36","date_gmt":"2026-06-12T03:32:36","guid":{"rendered":"https:\/\/howtostopgooning.com\/?page_id=21"},"modified":"2026-06-12T03:44:10","modified_gmt":"2026-06-12T03:44:10","slug":"what-level-gooner-are-you","status":"publish","type":"page","link":"https:\/\/howtostopgooning.com\/?page_id=21","title":{"rendered":"What Level Gooner Are You?"},"content":{"rendered":"\n<meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  <title>What Type of Reset Do You Need?<\/title>\n  <style>\n    :root {\n      --htsg-cream: #f6f0e5;\n      --htsg-cream-deep: #eee3d1;\n      --htsg-paper: #fbf7ef;\n      --htsg-ink: #111812;\n      --htsg-muted: #677068;\n      --htsg-green: #238252;\n      --htsg-green-dark: #153d2a;\n      --htsg-dark: #101710;\n      --htsg-gold: #c6ad72;\n      --htsg-border: rgba(17, 24, 18, 0.13);\n      --htsg-shadow: 0 24px 70px rgba(24, 31, 24, 0.12);\n      --htsg-radius-xl: 32px;\n      --htsg-radius-lg: 24px;\n      --htsg-radius-md: 17px;\n    }\n\n    * {\n      box-sizing: border-box;\n    }\n\n    .htsg-quiz-shell {\n      \/* Safely widens the quiz beyond the narrow WordPress content column\n         without creating the horizontal scrolling from the previous version. *\/\n      width: min(94vw, 1500px);\n      max-width: none;\n      min-height: 100vh;\n      margin-left: 50%;\n      transform: translateX(-50%);\n      padding: 46px clamp(18px, 3.5vw, 58px);\n      color: var(--htsg-ink);\n      font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif;\n      background-color: var(--htsg-cream);\n      background-image:\n        radial-gradient(circle at 18% 10%, rgba(255, 255, 255, 0.9), transparent 28%),\n        radial-gradient(circle at 88% 2%, rgba(198, 173, 114, 0.13), transparent 22%),\n        repeating-radial-gradient(circle at 0 0, rgba(34, 43, 35, 0.018) 0 0.7px, transparent 0.7px 4px);\n      overflow: hidden;\n    }\n\n    \/* To use your generated cream paper image, upload it to WordPress and add:\n       background-image: url(\"YOUR-IMAGE-URL-HERE\");\n       background-size: cover;\n       background-position: center;\n       background-attachment: fixed;\n    *\/\n\n    .htsg-quiz-wrap {\n      width: 100%;\n      max-width: 1380px;\n      margin: 0 auto;\n    }\n\n    .htsg-brand {\n      margin: 0 0 24px;\n      font-size: clamp(1.05rem, 2vw, 1.25rem);\n      font-weight: 850;\n      letter-spacing: -0.02em;\n    }\n\n    .htsg-card {\n      position: relative;\n      overflow: hidden;\n      background: rgba(255, 253, 248, 0.92);\n      border: 1px solid rgba(255, 255, 255, 0.9);\n      border-radius: var(--htsg-radius-xl);\n      box-shadow: var(--htsg-shadow);\n      backdrop-filter: blur(8px);\n      -webkit-backdrop-filter: blur(8px);\n    }\n\n    .htsg-card::before {\n      content: \"\";\n      position: absolute;\n      inset: 0;\n      pointer-events: none;\n      background:\n        linear-gradient(125deg, rgba(255,255,255,0.56), transparent 35%),\n        radial-gradient(circle at 100% 0, rgba(198, 173, 114, 0.12), transparent 30%);\n    }\n\n    .htsg-inner {\n      position: relative;\n      z-index: 1;\n      padding: clamp(25px, 5vw, 54px);\n    }\n\n    .htsg-eyebrow {\n      display: inline-flex;\n      align-items: center;\n      gap: 8px;\n      margin-bottom: 19px;\n      padding: 9px 14px;\n      border: 1px solid var(--htsg-border);\n      border-radius: 999px;\n      background: rgba(255,255,255,0.66);\n      font-size: 0.78rem;\n      font-weight: 850;\n      letter-spacing: 0.08em;\n      text-transform: uppercase;\n    }\n\n    .htsg-title {\n      max-width: 1080px;\n      margin: 0;\n      font-size: clamp(2.15rem, 7vw, 4.7rem);\n      line-height: 0.98;\n      letter-spacing: -0.065em;\n      font-weight: 720;\n    }\n\n    .htsg-subtitle {\n      max-width: 980px;\n      margin: 23px 0 0;\n      color: var(--htsg-muted);\n      font-size: clamp(1rem, 2.2vw, 1.2rem);\n      line-height: 1.65;\n      font-weight: 560;\n    }\n\n    .htsg-start-actions,\n    .htsg-result-actions {\n      display: flex;\n      flex-wrap: wrap;\n      gap: 12px;\n      margin-top: 30px;\n    }\n\n    .htsg-btn {\n      min-height: 54px;\n      padding: 14px 22px;\n      border: 0;\n      border-radius: 999px;\n      font: inherit;\n      font-weight: 850;\n      cursor: pointer;\n      transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease;\n    }\n\n    .htsg-btn:hover {\n      transform: translateY(-2px);\n    }\n\n    .htsg-btn:focus-visible,\n    .htsg-answer:focus-visible {\n      outline: 4px solid rgba(35, 130, 82, 0.22);\n      outline-offset: 3px;\n    }\n\n    .htsg-btn-primary {\n      color: #fff;\n      background: var(--htsg-green);\n      box-shadow: 0 12px 26px rgba(35, 130, 82, 0.24);\n    }\n\n    .htsg-btn-secondary {\n      color: var(--htsg-ink);\n      background: rgba(255,255,255,0.72);\n      border: 1px solid var(--htsg-border);\n    }\n\n    .htsg-note {\n      margin-top: 22px;\n      color: #717870;\n      font-size: 0.85rem;\n      line-height: 1.55;\n    }\n\n    .htsg-hidden {\n      display: none !important;\n    }\n\n    .htsg-topbar {\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n      gap: 16px;\n      margin-bottom: 24px;\n    }\n\n    .htsg-progress-copy {\n      font-size: 0.9rem;\n      font-weight: 820;\n      color: #485149;\n    }\n\n    .htsg-back {\n      border: 0;\n      background: transparent;\n      color: #4d564e;\n      font: inherit;\n      font-size: 0.9rem;\n      font-weight: 800;\n      cursor: pointer;\n      padding: 8px 0;\n    }\n\n    .htsg-progress-track {\n      width: 100%;\n      height: 11px;\n      overflow: hidden;\n      border-radius: 999px;\n      background: #e5dfd3;\n      box-shadow: inset 0 0 0 1px rgba(17, 24, 18, 0.06);\n    }\n\n    .htsg-progress-fill {\n      width: 0;\n      height: 100%;\n      border-radius: inherit;\n      background: linear-gradient(90deg, var(--htsg-green), #42a36f);\n      transition: width 320ms ease;\n    }\n\n    .htsg-question-number {\n      margin-top: 34px;\n      color: var(--htsg-green-dark);\n      font-size: 0.78rem;\n      font-weight: 900;\n      letter-spacing: 0.1em;\n      text-transform: uppercase;\n    }\n\n    .htsg-question {\n      max-width: 740px;\n      margin: 12px 0 10px;\n      font-size: clamp(1.65rem, 4vw, 2.65rem);\n      line-height: 1.08;\n      letter-spacing: -0.045em;\n      font-weight: 760;\n    }\n\n    .htsg-question-help {\n      max-width: 700px;\n      margin: 0 0 25px;\n      color: var(--htsg-muted);\n      font-size: 0.97rem;\n      line-height: 1.55;\n    }\n\n    .htsg-answers {\n      display: grid;\n      gap: 12px;\n    }\n\n    .htsg-answer {\n      width: 100%;\n      display: grid;\n      grid-template-columns: 42px minmax(0, 1fr) 24px;\n      align-items: center;\n      gap: 14px;\n      padding: 16px;\n      border: 1px solid var(--htsg-border);\n      border-radius: var(--htsg-radius-md);\n      background: rgba(255,255,255,0.72);\n      color: var(--htsg-ink);\n      text-align: left;\n      font: inherit;\n      cursor: pointer;\n      transition: transform 170ms ease, border-color 170ms ease, box-shadow 170ms ease, background 170ms ease;\n    }\n\n    .htsg-answer:hover {\n      transform: translateY(-2px);\n      border-color: rgba(35, 130, 82, 0.5);\n      background: #fff;\n      box-shadow: 0 10px 25px rgba(25, 35, 27, 0.08);\n    }\n\n    .htsg-answer-index {\n      width: 42px;\n      height: 42px;\n      display: grid;\n      place-items: center;\n      border-radius: 12px;\n      color: var(--htsg-green-dark);\n      background: #edf4ee;\n      font-weight: 900;\n    }\n\n    .htsg-answer-copy {\n      min-width: 0;\n    }\n\n    .htsg-answer-title {\n      display: block;\n      font-size: 1rem;\n      line-height: 1.3;\n      font-weight: 830;\n    }\n\n    .htsg-answer-detail {\n      display: block;\n      margin-top: 3px;\n      color: var(--htsg-muted);\n      font-size: 0.86rem;\n      line-height: 1.4;\n      font-weight: 550;\n    }\n\n    .htsg-answer-arrow {\n      color: var(--htsg-green);\n      font-size: 1.25rem;\n      font-weight: 900;\n    }\n\n    .htsg-result-shell {\n      padding: clamp(24px, 5vw, 48px);\n      border-radius: 26px;\n      color: #f8f4e9;\n      background:\n        radial-gradient(circle at 100% 0, rgba(198, 173, 114, 0.23), transparent 28%),\n        radial-gradient(circle at 0 100%, rgba(35, 130, 82, 0.19), transparent 32%),\n        linear-gradient(145deg, #142219, #0d120e 72%);\n      box-shadow: 0 26px 60px rgba(13, 18, 14, 0.24);\n    }\n\n    .htsg-result-kicker {\n      color: #b9c4b9;\n      font-size: 0.8rem;\n      font-weight: 900;\n      letter-spacing: 0.1em;\n      text-transform: uppercase;\n    }\n\n    .htsg-result-name {\n      margin: 12px 0 0;\n      font-size: clamp(2.5rem, 8vw, 5rem);\n      line-height: 0.95;\n      letter-spacing: -0.06em;\n      font-weight: 780;\n    }\n\n    .htsg-result-reset {\n      margin-top: 13px;\n      color: #d6c28f;\n      font-size: clamp(1rem, 2.3vw, 1.25rem);\n      font-weight: 860;\n    }\n\n    .htsg-result-summary {\n      max-width: 690px;\n      margin: 23px 0 0;\n      color: #d8ded8;\n      font-size: 1.03rem;\n      line-height: 1.7;\n    }\n\n    .htsg-result-quote {\n      margin: 24px 0 0;\n      padding: 20px 22px;\n      border: 1px solid rgba(255,255,255,0.15);\n      border-radius: 18px;\n      background: rgba(255,255,255,0.055);\n      color: #fffaf0;\n      font-size: clamp(1.05rem, 2.6vw, 1.3rem);\n      line-height: 1.5;\n      font-weight: 760;\n    }\n\n    .htsg-result-grid {\n      display: grid;\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n      gap: 14px;\n      margin-top: 24px;\n    }\n\n    .htsg-result-box {\n      padding: 19px;\n      border: 1px solid rgba(255,255,255,0.13);\n      border-radius: 18px;\n      background: rgba(255,255,255,0.045);\n    }\n\n    .htsg-result-box-label {\n      color: #aeb8ae;\n      font-size: 0.72rem;\n      font-weight: 900;\n      letter-spacing: 0.09em;\n      text-transform: uppercase;\n    }\n\n    .htsg-result-box-value {\n      margin-top: 7px;\n      color: #fff;\n      font-size: 1rem;\n      line-height: 1.45;\n      font-weight: 780;\n    }\n\n    .htsg-result-actions .htsg-btn-secondary {\n      color: #f8f4e9;\n      background: rgba(255,255,255,0.08);\n      border-color: rgba(255,255,255,0.17);\n    }\n\n    .htsg-disclaimer {\n      margin-top: 20px;\n      color: #aab2aa;\n      font-size: 0.78rem;\n      line-height: 1.55;\n    }\n\n    .htsg-toast {\n      position: fixed;\n      left: 50%;\n      bottom: 24px;\n      z-index: 99999;\n      transform: translate(-50%, 20px);\n      opacity: 0;\n      pointer-events: none;\n      padding: 12px 17px;\n      border-radius: 999px;\n      color: #fff;\n      background: #111812;\n      box-shadow: 0 12px 35px rgba(0,0,0,0.2);\n      font-size: 0.86rem;\n      font-weight: 800;\n      transition: opacity 180ms ease, transform 180ms ease;\n    }\n\n    .htsg-toast.htsg-show {\n      opacity: 1;\n      transform: translate(-50%, 0);\n    }\n\n    @media (max-width: 660px) {\n      .htsg-quiz-shell {\n        width: 100%;\n        margin-left: 0;\n        transform: none;\n        padding: 18px 12px;\n      }\n\n      .htsg-brand {\n        margin: 8px 4px 16px;\n      }\n\n      .htsg-card {\n        border-radius: 24px;\n      }\n\n      .htsg-inner {\n        padding: 24px 18px;\n      }\n\n      .htsg-answer {\n        grid-template-columns: 38px minmax(0, 1fr) 18px;\n        gap: 11px;\n        padding: 13px;\n      }\n\n      .htsg-answer-index {\n        width: 38px;\n        height: 38px;\n      }\n\n      .htsg-result-grid {\n        grid-template-columns: 1fr;\n      }\n\n      .htsg-btn {\n        width: 100%;\n      }\n    }\n\n    @media (prefers-reduced-motion: reduce) {\n      .htsg-btn,\n      .htsg-answer,\n      .htsg-progress-fill,\n      .htsg-toast {\n        transition: none;\n      }\n    }\n  <\/style>\n\n\n  <section class=\"htsg-quiz-shell\" id=\"htsgQuizApp\">\n    <div class=\"htsg-quiz-wrap\">\n      <div class=\"htsg-brand\">How To Stop Gooning<\/div>\n\n      <div class=\"htsg-card\">\n        <div class=\"htsg-inner\">\n          <section id=\"htsgIntro\">\n            <div class=\"htsg-eyebrow\">Private self-assessment \u00b7 No sign-in<\/div>\n            <h1 class=\"htsg-title\">What Type of Reset Do You Need?<\/h1>\n            <p class=\"htsg-subtitle\">\n              Answer 10 honest questions about frequency, triggers, control, and what the habit may be changing in your life. Your answers stay in this browser.\n            <\/p>\n\n            <div class=\"htsg-start-actions\">\n              <button class=\"htsg-btn htsg-btn-primary\" id=\"htsgStart\" type=\"button\">Take the 2-Minute Quiz<\/button>\n            <\/div>\n\n            <p class=\"htsg-note\">\n              This quiz is a self-reflection tool, not a medical diagnosis. Sexual-function changes can have many causes.\n            <\/p>\n          <\/section>\n\n          <section id=\"htsgQuiz\" class=\"htsg-hidden\" aria-live=\"polite\">\n            <div class=\"htsg-topbar\">\n              <button class=\"htsg-back\" id=\"htsgBack\" type=\"button\">\u2190 Back<\/button>\n              <div class=\"htsg-progress-copy\" id=\"htsgProgressCopy\">1 of 10<\/div>\n            <\/div>\n\n            <div class=\"htsg-progress-track\" aria-hidden=\"true\">\n              <div class=\"htsg-progress-fill\" id=\"htsgProgressFill\"><\/div>\n            <\/div>\n\n            <div class=\"htsg-question-number\" id=\"htsgQuestionNumber\"><\/div>\n            <h2 class=\"htsg-question\" id=\"htsgQuestionText\"><\/h2>\n            <p class=\"htsg-question-help\" id=\"htsgQuestionHelp\"><\/p>\n            <div class=\"htsg-answers\" id=\"htsgAnswers\"><\/div>\n          <\/section>\n\n          <section id=\"htsgResult\" class=\"htsg-hidden\" aria-live=\"polite\"><\/section>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"htsg-toast\" id=\"htsgToast\">Result copied<\/div>\n  <\/section>\n\n  <script>\n    (() => {\n      \"use strict\";\n\n      const STORAGE_KEY = \"htsg-reset-quiz-v1\";\n\n      const archetypes = {\n        opportunist: {\n          name: \"The Opportunist\",\n          reset: \"The Clean Break\",\n          summary: \"Your pattern is mostly driven by access, boredom, privacy, and the moment presenting itself. The habit may not control your whole routine yet, but easy opportunities keep reopening the loop.\",\n          quote: \"You do not need to rebuild your whole life. You need to stop making the habit so easy to choose.\",\n          focus: \"Reduce easy access and interrupt boredom-based triggers.\",\n          firstStep: \"Remove saved content, unfollow trigger accounts, and keep your phone away from the places where it usually starts.\"\n        },\n        habitual: {\n          name: \"The Habitual\",\n          reset: \"The Habit Breaker\",\n          summary: \"Gooning has become part of your routine. Certain times, places, devices, or patterns now trigger it automatically\u2014even when you did not begin the day planning to do it.\",\n          quote: \"You are not always choosing the habit. Sometimes the habit is choosing for you.\",\n          focus: \"Break the connection between your usual triggers and the routine that follows.\",\n          firstStep: \"Change the time and location of your vulnerable routine, use a blocker, and plan a replacement for the first ten minutes of an urge.\"\n        },\n        escapist: {\n          name: \"The Escapist\",\n          reset: \"The Emotional Rewire\",\n          summary: \"The habit is doing more than providing stimulation. It has become a fast way to escape stress, loneliness, frustration, rejection, anxiety, or dissatisfaction.\",\n          quote: \"You are not just chasing pleasure. You are trying to get away from discomfort.\",\n          focus: \"Replace the emotional escape instead of relying on willpower alone.\",\n          firstStep: \"Name your strongest emotional trigger and choose one immediate substitute: walk, workout, shower, call, journal, or leave the room.\"\n        },\n        outsider: {\n          name: \"The Outsider\",\n          reset: \"The Full Rebuild\",\n          summary: \"The habit appears to be separating you from parts of your real life\u2014your energy, attraction, sleep, responsibilities, relationships, motivation, or sense of control.\",\n          quote: \"The habit is no longer only taking your time. It is pulling you away from your life.\",\n          focus: \"Rebuild the environment around you and add real accountability.\",\n          firstStep: \"Use strict blocking, remove private access points, tell one trusted person, and consider professional support if the behavior feels uncontrollable.\"\n        }\n      };\n\n      const questions = [\n        {\n          text: \"During the past 7 days, on how many days did you goon?\",\n          help: \"Count days, not individual sessions.\",\n          options: [\n            { title: \"0\u20131 days\", detail: \"Once this week or not at all\", scores: { opportunist: 5 } },\n            { title: \"2\u20133 days\", detail: \"Every few days\", scores: { opportunist: 3, habitual: 1 } },\n            { title: \"4\u20135 days\", detail: \"Most days\", scores: { habitual: 5, outsider: 1 } },\n            { title: \"6\u20137 days\", detail: \"Daily or almost daily\", scores: { habitual: 6, outsider: 2 }, impact: 1 }\n          ]\n        },\n        {\n          text: \"What is your longest recent streak of consecutive gooning days?\",\n          help: \"Think about the last month, not your entire life.\",\n          options: [\n            { title: \"One day\", detail: \"It usually stops there\", scores: { opportunist: 4 } },\n            { title: \"2\u20133 days\", detail: \"A short run before a clean day\", scores: { opportunist: 2, habitual: 2 } },\n            { title: \"4\u20136 days\", detail: \"Most of a week\", scores: { habitual: 5 } },\n            { title: \"7+ days\", detail: \"It can continue without a clean day\", scores: { habitual: 4, outsider: 3 }, impact: 1 }\n          ]\n        },\n        {\n          text: \"What most often starts the behavior?\",\n          help: \"Choose the answer that feels most true, not the one that sounds best.\",\n          options: [\n            { title: \"The opportunity is there\", detail: \"I am alone, bored, or scrolling\", scores: { opportunist: 6 } },\n            { title: \"It is part of my routine\", detail: \"Same time, place, device, or sequence\", scores: { habitual: 6 } },\n            { title: \"I want relief from a feeling\", detail: \"Stress, loneliness, anxiety, rejection, or frustration\", scores: { escapist: 7 }, impact: 1 },\n            { title: \"I want to disconnect from real life\", detail: \"I would rather disappear into it than deal with things\", scores: { outsider: 7, escapist: 2 }, impact: 2 }\n          ]\n        },\n        {\n          text: \"How automatic does the behavior feel?\",\n          help: \"Think about how much conscious choice happens before you begin.\",\n          options: [\n            { title: \"Not automatic\", detail: \"I make a clear decision\", scores: { opportunist: 3 } },\n            { title: \"A little automatic\", detail: \"I sometimes catch myself drifting toward it\", scores: { habitual: 2 } },\n            { title: \"Very automatic\", detail: \"The same trigger usually leads to the same routine\", scores: { habitual: 5 }, impact: 1 },\n            { title: \"Almost immediate\", detail: \"Once the trigger appears, it feels hard to interrupt\", scores: { habitual: 4, outsider: 3 }, impact: 2 }\n          ]\n        },\n        {\n          text: \"How often do you use it to change your mood?\",\n          help: \"For example: to numb stress, loneliness, anger, anxiety, or disappointment.\",\n          options: [\n            { title: \"Rarely or never\", detail: \"It is mostly sexual or boredom-based\", scores: { opportunist: 3 } },\n            { title: \"Sometimes\", detail: \"It helps me shut my brain off\", scores: { escapist: 2, habitual: 1 } },\n            { title: \"Often\", detail: \"Bad moods regularly trigger it\", scores: { escapist: 6 }, impact: 1 },\n            { title: \"It is my main escape\", detail: \"I depend on it when I feel bad\", scores: { escapist: 7, outsider: 2 }, impact: 2 }\n          ]\n        },\n        {\n          text: \"Has the porn you search for changed over time?\",\n          help: \"This means needing more novelty, intensity, tabs, or content that does not reflect what you want in real life.\",\n          options: [\n            { title: \"No noticeable change\", detail: \"My viewing pattern is roughly the same\", scores: { opportunist: 2 } },\n            { title: \"A little more novelty\", detail: \"I switch more or search longer\", scores: { habitual: 2 } },\n            { title: \"A clear escalation\", detail: \"I need more intense or unusual material\", scores: { escapist: 1, outsider: 4 }, impact: 2 },\n            { title: \"It concerns me\", detail: \"I sometimes watch things that leave me disturbed or disconnected\", scores: { outsider: 7 }, impact: 3 }\n          ]\n        },\n        {\n          text: \"Have you noticed changes in erections, arousal, or real-life attraction?\",\n          help: \"These changes can have many causes. Answer only based on what you have personally noticed.\",\n          options: [\n            { title: \"No\", detail: \"Nothing noticeable\", scores: { opportunist: 2 } },\n            { title: \"I am not sure\", detail: \"There may be a small difference\", scores: { habitual: 1 } },\n            { title: \"Occasionally\", detail: \"Porn can feel easier or more stimulating than real life\", scores: { escapist: 1, outsider: 4 }, impact: 2 },\n            { title: \"Frequently\", detail: \"The change is obvious or affecting me\", scores: { outsider: 8 }, impact: 4 }\n          ]\n        },\n        {\n          text: \"What has the habit interfered with?\",\n          help: \"Choose the closest overall answer.\",\n          options: [\n            { title: \"Nothing important\", detail: \"I have not noticed meaningful interference\", scores: { opportunist: 3 } },\n            { title: \"A little time or sleep\", detail: \"It occasionally throws off my plans\", scores: { habitual: 2 } },\n            { title: \"My energy or responsibilities\", detail: \"Work, school, fitness, or sleep has taken a hit\", scores: { outsider: 5, escapist: 1 }, impact: 3 },\n            { title: \"Several areas of my life\", detail: \"It is affecting relationships, goals, or daily functioning\", scores: { outsider: 9 }, impact: 5 }\n          ]\n        },\n        {\n          text: \"How connected do you feel to dating, relationships, friends, and real life?\",\n          help: \"Think about whether the habit makes isolation feel easier than participation.\",\n          options: [\n            { title: \"Connected\", detail: \"The habit is not replacing real life\", scores: { opportunist: 3 } },\n            { title: \"Slightly withdrawn\", detail: \"I sometimes choose it over going out or engaging\", scores: { habitual: 2 } },\n            { title: \"Noticeably withdrawn\", detail: \"It has reduced my motivation to connect\", scores: { escapist: 3, outsider: 4 }, impact: 3 },\n            { title: \"Deeply disconnected\", detail: \"I feel like I am watching life from the outside\", scores: { outsider: 9 }, impact: 5 }\n          ]\n        },\n        {\n          text: \"What happens when you seriously try to stop?\",\n          help: \"Base this on your real attempts\u2014not what you believe you could do.\",\n          options: [\n            { title: \"I can usually stop\", detail: \"It is uncomfortable but manageable\", scores: { opportunist: 4 } },\n            { title: \"I drift back into it\", detail: \"The routine slowly returns\", scores: { habitual: 4 } },\n            { title: \"I return when emotions hit\", detail: \"Stress or loneliness breaks the reset\", scores: { escapist: 6 }, impact: 2 },\n            { title: \"I repeatedly lose control\", detail: \"I make firm promises and still cannot maintain them\", scores: { outsider: 8 }, impact: 4 }\n          ]\n        }\n      ];\n\n      const intro = document.getElementById(\"htsgIntro\");\n      const quiz = document.getElementById(\"htsgQuiz\");\n      const result = document.getElementById(\"htsgResult\");\n      const startButton = document.getElementById(\"htsgStart\");\n      const backButton = document.getElementById(\"htsgBack\");\n      const questionNumber = document.getElementById(\"htsgQuestionNumber\");\n      const questionText = document.getElementById(\"htsgQuestionText\");\n      const questionHelp = document.getElementById(\"htsgQuestionHelp\");\n      const answersElement = document.getElementById(\"htsgAnswers\");\n      const progressCopy = document.getElementById(\"htsgProgressCopy\");\n      const progressFill = document.getElementById(\"htsgProgressFill\");\n      const toast = document.getElementById(\"htsgToast\");\n\n      let currentQuestion = 0;\n      let answers = [];\n\n      function safeSave() {\n        try {\n          localStorage.setItem(STORAGE_KEY, JSON.stringify({ currentQuestion, answers }));\n        } catch (error) {\n          \/\/ The quiz still works if local storage is unavailable.\n        }\n      }\n\n      function safeClear() {\n        try {\n          localStorage.removeItem(STORAGE_KEY);\n        } catch (error) {}\n      }\n\n      function showToast(message) {\n        toast.textContent = message;\n        toast.classList.add(\"htsg-show\");\n        window.setTimeout(() => toast.classList.remove(\"htsg-show\"), 1700);\n      }\n\n      function beginQuiz() {\n        intro.classList.add(\"htsg-hidden\");\n        result.classList.add(\"htsg-hidden\");\n        quiz.classList.remove(\"htsg-hidden\");\n        renderQuestion();\n      }\n\n      function renderQuestion() {\n        const item = questions[currentQuestion];\n        const percent = ((currentQuestion + 1) \/ questions.length) * 100;\n\n        questionNumber.textContent = `Question ${currentQuestion + 1}`;\n        questionText.textContent = item.text;\n        questionHelp.textContent = item.help;\n        progressCopy.textContent = `${currentQuestion + 1} of ${questions.length}`;\n        progressFill.style.width = `${percent}%`;\n        backButton.style.visibility = currentQuestion === 0 ? \"hidden\" : \"visible\";\n\n        answersElement.innerHTML = \"\";\n\n        item.options.forEach((option, index) => {\n          const button = document.createElement(\"button\");\n          button.type = \"button\";\n          button.className = \"htsg-answer\";\n          button.innerHTML = `\n            <span class=\"htsg-answer-index\">${String.fromCharCode(65 + index)}<\/span>\n            <span class=\"htsg-answer-copy\">\n              <span class=\"htsg-answer-title\">${option.title}<\/span>\n              <span class=\"htsg-answer-detail\">${option.detail}<\/span>\n            <\/span>\n            <span class=\"htsg-answer-arrow\" aria-hidden=\"true\">\u203a<\/span>\n          `;\n          button.addEventListener(\"click\", () => selectAnswer(index));\n          answersElement.appendChild(button);\n        });\n\n        questionText.focus?.();\n        safeSave();\n      }\n\n      function selectAnswer(optionIndex) {\n        answers[currentQuestion] = optionIndex;\n\n        if (currentQuestion < questions.length - 1) {\n          currentQuestion += 1;\n          renderQuestion();\n        } else {\n          safeSave();\n          showResult();\n        }\n      }\n\n      function goBack() {\n        if (currentQuestion <= 0) return;\n        currentQuestion -= 1;\n        renderQuestion();\n      }\n\n      function calculateResult() {\n        const totals = {\n          opportunist: 0,\n          habitual: 0,\n          escapist: 0,\n          outsider: 0\n        };\n\n        let impact = 0;\n\n        answers.forEach((optionIndex, questionIndex) => {\n          const option = questions[questionIndex]?.options[optionIndex];\n          if (!option) return;\n\n          Object.entries(option.scores).forEach(([key, value]) => {\n            totals[key] += value;\n          });\n\n          impact += option.impact || 0;\n        });\n\n        \/\/ High real-world impact should not be hidden by a frequency score.\n        if (impact >= 16 || totals.outsider >= 25) {\n          return \"outsider\";\n        }\n\n        const ordered = Object.entries(totals).sort((a, b) => b[1] - a[1]);\n        let winner = ordered[0][0];\n\n        \/\/ Emotional coping should win when it is clearly established.\n        if (totals.escapist >= 16 && totals.escapist >= totals.habitual - 1) {\n          winner = \"escapist\";\n        }\n\n        \/\/ The Opportunist is reserved for low-impact, low-frequency patterns.\n        if (winner === \"opportunist\" && impact > 6) {\n          winner = totals.escapist >= totals.habitual ? \"escapist\" : \"habitual\";\n        }\n\n        return winner;\n      }\n\n      function getPatternLabels(type) {\n        const frequency = questions[0].options[answers[0]]?.title || \"Your current pattern\";\n        const trigger = questions[2].options[answers[2]]?.title || \"Your main trigger\";\n\n        const impactLabels = {\n          opportunist: \"Low current interference\",\n          habitual: \"Routine and repetition\",\n          escapist: \"Emotional coping\",\n          outsider: \"Real-life interference\"\n        };\n\n        return { frequency, trigger, impact: impactLabels[type] };\n      }\n\n      function showResult() {\n        const type = calculateResult();\n        const data = archetypes[type];\n        const labels = getPatternLabels(type);\n\n        quiz.classList.add(\"htsg-hidden\");\n        intro.classList.add(\"htsg-hidden\");\n        result.classList.remove(\"htsg-hidden\");\n\n        result.innerHTML = `\n          <div class=\"htsg-result-shell\">\n            <div class=\"htsg-result-kicker\">Your reset type<\/div>\n            <h2 class=\"htsg-result-name\">${data.name}<\/h2>\n            <div class=\"htsg-result-reset\">Recommended reset: ${data.reset}<\/div>\n            <p class=\"htsg-result-summary\">${data.summary}<\/p>\n            <div class=\"htsg-result-quote\">\u201c${data.quote}\u201d<\/div>\n\n            <div class=\"htsg-result-grid\">\n              <div class=\"htsg-result-box\">\n                <div class=\"htsg-result-box-label\">Frequency<\/div>\n                <div class=\"htsg-result-box-value\">${labels.frequency}<\/div>\n              <\/div>\n              <div class=\"htsg-result-box\">\n                <div class=\"htsg-result-box-label\">Primary trigger<\/div>\n                <div class=\"htsg-result-box-value\">${labels.trigger}<\/div>\n              <\/div>\n              <div class=\"htsg-result-box\">\n                <div class=\"htsg-result-box-label\">Main pattern<\/div>\n                <div class=\"htsg-result-box-value\">${labels.impact}<\/div>\n              <\/div>\n              <div class=\"htsg-result-box\">\n                <div class=\"htsg-result-box-label\">Your first move<\/div>\n                <div class=\"htsg-result-box-value\">${data.firstStep}<\/div>\n              <\/div>\n            <\/div>\n\n            <div class=\"htsg-result-actions\">\n              <button class=\"htsg-btn htsg-btn-secondary\" id=\"htsgShare\" type=\"button\">Share My Result<\/button>\n              <button class=\"htsg-btn htsg-btn-secondary\" id=\"htsgRestart\" type=\"button\">Retake Quiz<\/button>\n            <\/div>\n\n            <div class=\"htsg-disclaimer\">\n              This result is for self-reflection and is not a diagnosis. Erectile or arousal changes can have physical, psychological, medication-related, and relationship-related causes. Consider speaking with a qualified healthcare professional if symptoms are persistent or distressing.\n            <\/div>\n          <\/div>\n        `;\n\n        document.getElementById(\"htsgRestart\").addEventListener(\"click\", restartQuiz);\n        document.getElementById(\"htsgShare\").addEventListener(\"click\", () => shareResult(data));\n\n        safeClear();\n        result.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\n      }\n\n      async function shareResult(data) {\n        const shareText = `I got ${data.name} on the \u201cWhat Type of Reset Do You Need?\u201d quiz. My recommended reset is ${data.reset}.`;\n        const shareData = {\n          title: \"What Type of Reset Do You Need?\",\n          text: shareText,\n          url: window.location.href\n        };\n\n        try {\n          if (navigator.share) {\n            await navigator.share(shareData);\n          } else if (navigator.clipboard) {\n            await navigator.clipboard.writeText(`${shareText} ${window.location.href}`);\n            showToast(\"Result copied\");\n          } else {\n            showToast(\"Sharing is not supported on this browser\");\n          }\n        } catch (error) {\n          if (error?.name !== \"AbortError\") showToast(\"Could not share result\");\n        }\n      }\n\n      function restartQuiz() {\n        currentQuestion = 0;\n        answers = [];\n        safeClear();\n        result.classList.add(\"htsg-hidden\");\n        quiz.classList.remove(\"htsg-hidden\");\n        renderQuestion();\n        document.getElementById(\"htsgQuizApp\").scrollIntoView({ behavior: \"smooth\", block: \"start\" });\n      }\n\n      startButton.addEventListener(\"click\", () => {\n        currentQuestion = 0;\n        answers = [];\n        beginQuiz();\n      });\n\n      backButton.addEventListener(\"click\", goBack);\n\n      \/\/ Resume an unfinished quiz from this browser.\n      try {\n        const saved = JSON.parse(localStorage.getItem(STORAGE_KEY));\n        if (\n          saved &&\n          Array.isArray(saved.answers) &&\n          Number.isInteger(saved.currentQuestion) &&\n          saved.currentQuestion >= 0 &&\n          saved.currentQuestion < questions.length\n        ) {\n          currentQuestion = saved.currentQuestion;\n          answers = saved.answers;\n          startButton.textContent = \"Continue My Quiz\";\n        }\n      } catch (error) {}\n    })();\n  <\/script>\n","protected":false},"excerpt":{"rendered":"<p>What Type of Reset Do You Need? How To Stop Gooning Private self-assessment \u00b7 No sign-in What Type of Reset Do You Need? Answer 10 honest questions about frequency, triggers, control, and what the habit may be changing in your life. Your answers stay in this browser. Take the 2-Minute Quiz This quiz is a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-21","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/howtostopgooning.com\/index.php?rest_route=\/wp\/v2\/pages\/21","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/howtostopgooning.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/howtostopgooning.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/howtostopgooning.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/howtostopgooning.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=21"}],"version-history":[{"count":4,"href":"https:\/\/howtostopgooning.com\/index.php?rest_route=\/wp\/v2\/pages\/21\/revisions"}],"predecessor-version":[{"id":25,"href":"https:\/\/howtostopgooning.com\/index.php?rest_route=\/wp\/v2\/pages\/21\/revisions\/25"}],"wp:attachment":[{"href":"https:\/\/howtostopgooning.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=21"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}